- https 에서 프로토콜은 SSL/TLS 로 암호화 된다.
- https 프로토콜을 사용하기 위해서는 인증기관(CA)으로부터 SSL을 발급받아야한다.
*TLS- 넷스케이프는 IEFT 에 SSL 프로토콜 제어권을 넘겼고 이후에 TLS버전이 출시됨
- handshake란 서버와 클라이언트가 통신을 연결할때 서로 악수(협상)를 통한 정보를 주고받고, 신뢰 할 수 있는 서버인지, 통신할때 암호화는 어떻게 할지 등등 정하는 과정이다.
- 서버와 클라이언트가 주고받을 데이터의 암호화 알고리즘 결정 및 암호화를 위한 동일한 대칭키 얻기가 주 목적이다.
SSL handshake 동작 원리 및 과정
client에서 server로 연결시도 (Client hello)
server에서 client로 응답 (server hello)
client에서 server의 SSL인증서 검증
SSL인증서 검증 방법
- client는 인증서를 발급한 인증기관의 public key를 구하고 CA의 public key를 사용하여 SSL 인증서를 복호화 한다. 복호화가 성공하면 인증서 검증완료.
구하는 방법
- client는 browser 또는 android에 CA의 리스트와 public key를 가지고 있다. 그래서 매번 CA에 요청이 아닌 list에서 확인해본다. 하지만 없으면 외부 인터넷을 통해 인증기관의 정보와 public key를 확보한다.
client에서 server로 대칭키(private key)전달
server/client SSL hand shake 끝