SSL은 인터넷 웹상의 네트워크 보안을 강화하기 위해 가장 널리 사용되는 프로토콜이다. SSL은 관련 코드가 공개 소스 방식에 따라 일반에게 공개됐기 때문에 서버와 클라이언트간의 안전한 채널을 생성해 암호 통신이 가능하게 해준다. SSL은 구현된 공개 소스가 존재해 암호 관련 프로그램에 유용하게 응용할 수 있다. 1. SSL 프로토콜의 개요SSL(Secure Socket Layer)는 넷스케이프에서 개발한 보안 프로토콜로 전송 프로토콜(ex, TCP/IP)상에서 송수신자간에 통신의 비밀성과 데이터 무결성을 제공하는 것을 목적으로 한다.현재 인터넷은 SSL2.0, SSL3.0, TLS1.0이 함께 사용되고 있으며 넷스케이프와 익스플로러에서 이를 지원하고 있다.웹서버에서 SSL을 가장 쉬운 보안 프로토콜로 채택하고 있는 이유는 사용자가 특별한 프로그램을 다운로드 받지 않아도 넷스케이프와 익스플로러가 자동으로 보안 채널을 연결해주기 때문이다. 즉, 웹서버 설치시 SSL과 인증서를 포팅하면 된다.미국에서 생산된 웹서버나 인증서는 1999년 중반까지 암호 수출 정책의 영향을 받았기 때문에 암호 프로토콜 이용시 키 길이가 대칭키 40비트, 비대칭키 512비트로 제한됐었다. 현재는 이같은 제한이 완화돼 넷스케이프 4.72, 익스플로러 5.01 이상은대칭키 128비트, 비대칭키 1024비트를 사용할 수 있다. 하지만 새로운 정책이 적용된 인증서를 이용하지 않고 있는 웹사이트는 여전히 많은 편이다.2. SSL 프로토콜의 구조SSL은 크게 핸드세이크 프로토콜과 레코드 프로토콜로 되어있다. 핸드세이크 프로토콜은 다시 체인지 사이퍼 스펙 프로토콜(Change cipher spec protocol), 얼러트 프로토콜(Alert Protocol), 핸드세이크 프로토콜로 나뉘어 진다.SSL은 클라이언트와 서버간에 핸드세이크 프로토콜을 수행해 암호화된 하나의 세션을 성립하게 된다. 이 세션 동안 보안 서비스를 위한 세션키, 암호 알고리즘, 인증서 등과 같은 변수 등을 서로 공유해야 하며, 이 정보를 이용해 레코드 프로토콜에서 실질적인 보안 서비스를 제공한다. 여기에 이용되는 세션 정보는 다음과 같다.