
384
HTTP
3
부 식별, 인가, 보안
· 프로그램의 제일 위에서는 TCP 네트워킹과 SSL을 지원하기 위해 필요한 지원 파
일들을 포함시켰다.
· 섹션 1에서는 SSL_CTX_new를 호출해서 핸드셰이크 매개변수와 그 외 SSL 커넥
션에 대한 상태들을 추적할 로컬 콘텍스트를 생성했다.
· 섹션 2에서는 유닉스 gethostbyname 함수를 이용해 입력 호스트 명(명령줄 인수
로 제공된)을 IP 주소로 변환한다. 이 기능을 제공하는 방법은 플랫폼에 따라 다
를 수 있다.
· 섹션 3에서는 로컬 소켓을 생성해서 서버의 443 포트로 TCP 커넥션을 열고, 원격
주소 정보를 설정한 뒤, 원격 서버와 연결한다.
· 한번 TCP 커넥션이 수립되면, 우리는 SSL_new와 SSL_set_fd를 사용해서 SSL 레
이어를 TCP 커넥션에 붙이고 SSL_connect를 호출해서 서버와의 SSL 핸드셰이크
를 수행한다. 섹션 4가 완료되면 우리는 암호 선택 및 인증 교환이 완료되고 동작
하는 SSL 채널을 수립하게 된다.
· 섹션 5에서는 선택된 대량 암호화 암호의 값을 출력한다.
· 섹션 6에서는 서버가 되돌려준 X.509 인증서 안에 포함된 정보 중 일부를 출력한
다(인증서 소지자 및 인증서를 발급한 기관에 대한 정보 등). OpenSSL 라이브러
리는 서버 인증서의 ...