주니봉
  • SSL과 TLS 비교
    2025년 03월 07일 11시 52분 29초에 업로드 된 글입니다.
    작성자: 봉주니

    이전 글에서 HTTP 와 HTTPS 의 비교해본적이 있다.(이전글 참조 : https://junibong.tistory.com/96)

    HTTPS 통신에서 빠질 수 없는 SSL과 TLS를 비교해보려고 한다.

     

    TLS(Transport Layer Security) 란?

    TLS(Transport Layer Security)란 전송 계층 보안이라고도 하며 인터넷 상의 커뮤니케이션을 위한 개인 정보와 데이터 보안을 용이하게 하기 위해 설계되었으며 널리 채택된 보안 프로토콜입니다. TLS의 주료 사용 사례는 웹 사이트를 로드하는 웹 브라우저와 같이 웹 응용 프로그램과 서버 간의 커뮤니케이션을 암호화하는 것입니다.

     

    TLS 프로토콜은 암호화, 인증, 무결성이라는 세가지 주요 요소를 가지고 있습니다.

    • 암호화 - 제 3자로부터 전송되는 데이터를 숨깁니다.
    • 인증 -  정보를 교환하는 당사자가 요청된 당사자임을 보장합니다.
    • 무결성 - 데이터가 위조되거나 변조되지 않았는지 확인합니다.

    HTTPS는 HTTP 프로토콜 상위에서 TLS 암호화를 구현한 것으로 모든 웹 사이트와 다른 웹 서비스에서 사용됩니다. 따라소 HTTPS를 사용하는 웹 사이트는 TLS 암호화를 이용합니다.

    TLS의 동작원리

    TLS 연결은 TLS Handshake로 사용자가 TLS를 사용하는 웹 사이트를 돌아다니면 사용자 장치(클라이언트 장치)와 웹 서버 간에 TLS Handshake가 시작됩니다.

     

    출처:https://www.cloudflare.com/ko-kr/learning/ssl/transport-layer-security-tls/

    ① 클라이언트 메시지

    • 클라이언트(예: 웹 브라우저)가 서버에 연결을 시도합니다.
    • 클라이언트는 서버에 "Client Hello" 메시지를 보냅니다. 이 메시지에는 클라이언트가 지원하는 TLS 버전, 암호화 알고리즘 목록, 무작위 바이트(랜덤 데이터) 등이 포함됩니다.

    ② 서버 메시지

    • 서버는 "Server Hello" 메시지로 응답합니다. 이 메시지에는 서버가 선택한 TLS 버전, 암호화 알고리즘, 무작위 바이트 등이 포함됩니다.

    ③ 서버 인증 및 키 교환

    • 서버는 자신의 인증서를 클라이언트에 보냅니다. 이 인증서는 서버의 신원을 확인하고, 클라이언트가 서버를 신뢰할 수 있도록 합니다.
    • 일부 암호화 알고리즘에서는 서버가 추가 키 교환 정보를 보낼 수 있습니다.

    ④ 서버 완료 메시지(ServerHelloDone)

    • 서버는 "Server Hello Done" 메시지를 보내 서버 헬로 단계가 완료되었음을 알립니다.

    ⑤ 클라이언트 키 교환(ClientKeyExchange)

    • 클라이언트는 세션 키를 생성하기 위해 필요한 정보를 서버에 보냅니다. 이 정보는 서버의 공개 키로 암호화되어 전송됩니다.

    ⑥ 암호화 스펙 전환

    • 클라이언트는 "Change Cipher Spec" 메시지를 보내 앞으로의 통신이 암호화될 것임을 서버에 알립니다.
    • 서버도 같은 메시지를 클라이언트에게 보냅니다.

    ⑦ Finished 메시지

    • 클라이언트는 "Finished" 메시지를 보내 클라이언트 측의 핸드셰이크가 완료되었음을 알립니다. 이 메시지는 암호화된 상태로 전송됩니다.
    • 서버도 같은 메시지를 클라이언트에게 보냅니다.

    암호화된 데이터 전송

    • 핸드셰이크가 완료되면, 클라이언트와 서버는 세션 키를 사용하여 암호화된 데이터를 주고받습니다.

     

    SSL과 TLS는 무엇이 다른가?

    SSL(Secure Sockets Layer)과 TLS(Transport Layer Security)는 인터넷을 통해 데이터를 안전하게 전송하기 위한 암호화 프로토콜입니다. SSL은 1990년대 중반에 넷스케이프(Netscape)에 의해 처음 개발되었으며, 이후 여러 버전이 출시되었습니다. 그러나 SSL 3.0 이후로 더 이상 업데이트되지 않았고, 보안상의 취약점이 발견됨에 따라 TLS가 그 뒤를 이었습니다.

    TLS는 SSL의 후속 프로토콜로, 보안성과 성능이 향상되었습니다. TLS 1.0은 SSL 3.0을 기반으로 개발되었으며, 이후 여러 버전이 출시되어 현재는 TLS 1.3이 최신 버전입니다. TLS는 SSL보다 더 강력한 암호화 알고리즘을 사용하며, 보안 취약점을 보완하여 더 안전한 통신을 제공합니다.

    HTTPS를 사용하면 HTTP 메시지에 포함되는 콘텐츠 정보에 보안 요소가 추가되기 때문에 데이터를 안전하게 주고 받을 수 있습니다. HTTPS는 HTTP에 SSL 또는 TLS를 결합한 프로토콜로, 웹 브라우저와 웹 서버 간의 통신을 암호화하여 도청, 변조, 위조를 방지합니다.

    또한, SSL과 TLS는 파일 전송을 위한 FTP(File Transfer Protocol), 이메일 전송을 위한 SMTP(Simple Mail Transfer Protocol)에서도 사용됩니다.

    이를 통해 파일 전송과 이메일 통신 시에도 데이터의 기밀성과 무결성을 보장할 수 있습니다.

     

    간단히 표로 정리해보면 아래와 같습니다.

     

     

    정리

    SSL 인증서와 TLS 인증서를 비교하면 데이터 흐름을 암호화하는 기능은 둘 다 동일 하지만, SSL이 개선되고 더 안전한 버전이 TLS입니다.

    반응형

    'ETC' 카테고리의 다른 글

    크롬확장으로 REST API 테스트하기  (0) 2019.04.12
    댓글