Secure Socket Layer(SSL)
○SSL(Secure Socket Layer)은 인터넷 통신을 위한 암호화,복호화 프로토콜이다. 서버와 클라이언트 사이에 이루어지는 통신을 암호화함으로써 중요한 정보를 지켜준다.(ex:https:// - HTTP를 SSL를 사용해 암호화하고 있음을 의미한다)
○SSL을 사용하는 목적:도청방지,변조방지,위장방지

○서버 인증서 준비
-키 작성:SSL서버에서 비밀키와 공개키 한 쌍을 만든다.이 키들은 쌍으로 구성된다.공개키로 암호화한 것은 비밀키로만 복원할 수 있다.
-서버 인증서 요구:공개키나 사이트 정보를 CRS(Certificates Signing Request)랜덤 문자열로 변경해서 인증처에 인증서 발행을 요청한다.CSR을 만들 때 공개키의 길이도 지정(1,024비트가 주류였지만 2,028비트로 변경하는 추세)
-인증처 심의:CSR을 접수한 인증처는 요청이 들어온 곳을 심의한다.심의를 통과하면 인증처 서명을 추가해 서버 인증서를 발행하며, 요청한 곳으로 전달한다. 인증서도 랜덤 문자열
-서버 인증서 설치:전달받은 서버 인증서를 서버에 설치한다.
이상이 SSL 서버와 인증처 사이에 이루어지는 작업
○SSL접속 처리(SSL 핸드셰이크)
TCP에서 말하는 3-way와는 다르다.TCP의 3-way 핸드셰이크가 수행된 후, 이 핸드셰이크를 사용해 암호화 방식,키,해쉬함수등 암호화를 위한 정보를 결정.그 정보를 사용해 데이터를 암호화해서 전송.
-사용 방식 결정:어떤 알고리즘을 사용해 작업할 것인지 결정.Client Hello로 클라이언트가 사용할 수 있는 조합 리스트를 제시.그리고 Server Hello로 서버가 리스트 중에서 사용할 수 있는 암호화 알고리즘(RC4,3DES,DES등)과 해쉬 함수 알고리즘(SHA-1,MD5등)조합을 선택해서 통신에 사용할 알고리즘을 결정.
-통신 상대 인증:올바른 서버와 통신하고 있는지를 서버 인증서를 사용해 확인.Server Certificate로 서버 자신이 올바른 서버라는 것은 서버 인증서를 사용해 어필.Server Hello Done으로 전송이 끝났다고 통보.
-키 교환:데이터 전송에 사용하는 공통키를 교환.실제로 데이터 전송 시 사용하는 키는 공통키이다.SSL은 이 공통키로 암호화해서 전달.
-암호화 통신 시작:실제 사용할 암호화 알고리즘 확인 작업.Chage Cipher Spec을 서로가 교환해 암호화 알고리즘을 선언. 이 작업이 끝나야 암호화한 데이터 전송단계로 진입



○클라이언트 인증
클라이언트에 설치된 클라이언트 인증서를 가지고 올바른 사용자인지 판단하고 인증.일반전인 SSL 접속 처리에 클라이언트 인증서를 교환하고 인증하는 절차를 추가한 것이다.