본문 바로가기

보안 이론/웹 보안

HTTPS와 SSL/TLS

반응형

HTTPS의 대한 내용과 SSL/TLS의 차이에 대해 한번 알아보았다.


HTTPS

HTTPS는 HTTP + SSL로 HTTP에 SSL을 이용한 보안을 추가한 프로토콜이다.

브라우저 주소창에서 쉽게 찾아 볼 수 있는 이 자물쇠 모양이 있다면 해당 사이트는 HTTPS 통신을 사용하고 있는 것이다.

HTTP와 HTTPS는 어떻게 달라졌길래 안전해졌다고 하는 걸까?

 

HTTP와 HTTPS 차이점

와이어샤크를 이용하여 HTTP로 전송된 패킷과 HTTPS로 전송된 패킷을 살펴보자.

[와이어샤크는 네트워크에 떠다니는 패킷을 캡쳐하여 눈으로 확인할 수 있는 프로그램이다.]

HTTP를 사용하는 환경부 페이지의 패킷

HTTP 프로토콜 내부의 데이터가 평문으로 전송되어 중간에서 내용을 전부 확인할 수 있다. 

 

HTTPS를 사용하는 네이버 페이지의 패킷

패킷 내부의 데이터가 TLSv1.2라는 프로토콜로 암호화되어 내용은 알 수 없고 암호화에 대한 내용만 담겨 있다. 

 

이렇듯 HTTPS를 사용했을 때 더 안전하다는 것은 알 수 있으나 한가지 궁금증이 생긴다.

 

1. 방금 너가 HTTP + SSL이라고 했는데 왜 TLS라는 이상한 말을 하는 거니?

 

이 질문에 답하기 위해서는 SSL과 TLS에 대해서 알아야 한다.

 

SSL/TLS

결론부터 말하자면 현재는 SSL과 TLS는 같은 의미로 사용된다. 그러나 처음부터 똑같은 것은 아니었다.

 

SSL

Secure Socket Layer의 약자로 Netscape사에서 1995년에 개발한 암호화 기반 인터넷 보안 프로토콜이다.

사용자의 민감한 정보가 평문 형태로 전송되어 누구나 볼 수 있다는 문제를 바로잡기 위해 제작되었으며 사용자와 웹 서버 사이의 모든 데이터를 암호화해 데이터를 가로채더라도 안전하다는 장점이 있다.

 

하지만 여러 취약점들이 발견되어  SSL2.0 SSL3.0 을 거듭하며 업데이트하였으나 안전하지 않다고 판단되어 국제 표준기구 IETF에서 업데이트를 개발 및 표준화하여 TLS로 이름이 변경되었다.

 

TLS

Transport Layer Security의 약자로 현재 거의 모든 HTTPS에서 사용된다.

사실상 TLS는 SSL의 최신 버전이기 때문에 SSL이라고 부르거나 SSL/TLS라고 부르기도 한다.

 

동작 방식 - Handshake Process

(1) 클라이언트는 서버에게 chipher suite, session ID 등 여러가지 암호 설정을 위한 정보들을 제공한다.

      - Cipher Suite : 클라이언트가 지원 가능한 대칭키 암호 알고리즘, 키교환 알고리즘, 해시 알고리즘 등을 전부 알려준다.

(2) 서버는 전달받은 CipherSuite 중 가장 최적의 방법을 결정하고 서버의 정보들과 인증서를 제공한다. 

      선택적으로 클라이언트의 인증서를 요청한다.

(3) 서버의 인증서를 확인하고 보안 파라미터를 확인한다.

(4) 서버의 공개키를 이용해 세션키를 암호화하여 서버로 전송한다.

(5) (6) 클라이언트의 인증서를 요구했을 시 전송 및 확인한다.

(7) (8) 교환이 정상적으로 끝났는지 확인하고 데이터 교환을 준비한다.


요약

1. HTTPS는 HTTP + SSL로 보안이 추가적으로 적용되어 평문이 아닌 암호화 전송을 하는 프로토콜이다.

2. SSL과 TLS는 같은 뜻으로 쓰이나 TLS가 SSL보다 최신 버전 + 표준화된 프로토콜이다.

반응형


Calendar
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Visits
Today
Yesterday