암호화(cryptology) - SSL/TLS

2022. 9. 22. 04:11시스템 & 네트워크 보안

SSL/TLS

  • 웹 브라우저와 웹 서버간 즉 네트워크 내에서 암호화 통신을 하기 위해 만들어진 프로토콜
  • 비밀키, 공개키, 해시함수 사용
  • SSL1.0, SSL2.0 :  취약점이 발견되어 SSL3.0 개발하였지만 여전히 취약점 존재
  • 표준화하기로 결정하고 TLS로 이름 변경
  • 최근에는 TLS1.3 사용
  • http는 메시지가 평문으로 전송되며 TCP 80번 포트 사용
  • https는 암호문으로 전송되며 TCP 443번 포트를 사용

 

작동 원리

1. https TCP 443번 포트를 사용하면 TLS가 동작하면서 웹 브라우저에 웹 서버 공개키가 전달됨(인증서 형식으로 전달)

2. 전달된 웹 서버 공개키(인증서)는 CA(인증기관)으로부터 검증을 받게됨

3. 웹 브라우저는 세션키를 생성한뒤 검증이 완료된 웹 서버의 공개키로 암호화해서 웹 서버로 전송 ( 웹서버의 공개키로 암호화 했기 때문에 웹 서버의 개인키 말고는 복호화 불가)

4. 웹서버는 자신의 개인키로 암호화된 세션키를 복호화(양쪽 다 세션키 보유)

5. 웹 브라우저는 메시지를 세션키로 암호화한뒤 웹서버에 전송

6. 웹 서버는 세션키로 암호화된 메시지 복호화

 

사용자의 OS에 저장되어 있는 RootCA(최상위인증기관)으로 CA(인증기관) 공개키를 검증하고 검증된 CA(인증기관)으로 웹서버의 공개키를 검증받는 방식