세상 모든 보안 이야기

보안 백과사전

좌우로 움직여보세요

웹 보안

SSL/TLS/https

포스팅 뷰427

SSL/TLS/https의 정의

SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security) 프로토콜은 전송 시 암호화를 위한 대표적인 기술이다. 실제로 SSL은 더 이상 사용되지 않고 TLS가 사용되는데도 아직 SSL이라고 부르는 사람들이 많다. 웹에서 전송 시 암호화를 사용하는 https는 TLS 프로토콜을 사용한다.

  • SSL은 전송 시 암호화를 위해 넷스케이프사가 만든 프로토콜로서 RFC 표준으로 채택되었고, SSL 3.0이 TLS 1.0으로 바뀌었고, 이후 표준에서 공식적으로 폐기되었다. 현재 TLS의 최신 버전은 2018년에 제정된 TLS 1.3(RFC 8446)이다.


TLS의 주요 용도

TLS의 주요 용도는 송수신 주체에 대한 인증(상호 인증, 일방 인증)과 전송 시 암호화이다. 일방향 인증은 보통 클라이언트가 서버를 인증하는 것인데, 서버가 클라이언트에게 제공한 인증서를 검증하는 방식으로 이뤄진다. 웹에서는 웹 브라우저가 웹 서버가 제출한 인증서가 신뢰할만한 CA에서 발급한 인증서임을 확인하는 방식으로 이뤄진다. TLS에서 인증은 공개키 기반구조(PKI) 기술을 기반으로 하는데, 이는 신뢰받는 인증서 발급기관(Certificate Authority)가 발급한 인증서가 매개체가 된다.


상호 인증은 일방향 인증에 서버의 클라이언트 인증이 추가된다. 웹에서는 웹 서버가 웹 브라우저가 제출한 인증서가 신뢰할만한 CA에서 발급한 인증서임을 확인하는 방식으로 이뤄진다. 전송 시 암호화는 송신자가 대칭키로 데이터를 암호화하여 송신하고, 수신자가 받은 데이터를 복호화함으로 이뤄진다. 이 때 데이터를 암호화한 키(대칭키)는 RSA, Diffie-Hellman 등 공개키 방식으로 서로 공유한다.


SSL/TLS/https 관련 참고사항

  • OpenSSL은 TLS를 구현한 공개소스이다. 다양한 운영체제에 최신 버전은 OpenSSL 3.0.0(2021.9.7 출시)이다. 유닉스, 리눅스, MacOS, 윈도를 지원한다.
  • 웹 브라우저에서 https가 작동하면 URL 옆에 자물쇠 표시가 생긴다.