🔒 TLS vs SSL : HTTPS 보안 개념

2025. 2. 13. 20:41· Computer Science/CS 개인 공부
목차
  1. 0️⃣ 들어가기 전
  2. 1️⃣ HTTPS
  3. 2️⃣ SSL과 TLS의 역사
  4. 3️⃣ SSL과 TLS란?
  5. ✅ SSL (Secure Sockets Layer)
  6. ✅ TLS (Transport Layer Security)
  7. 3️⃣ SSL의 작동원리 (암호화 기법)
  8. 4️⃣ SSL과 TLS의 차이점
반응형

0️⃣ 들어가기 전

우리는 웹 브라우저와 웹 서버 간에 데이터를 주고 받기 위한 프로토콜로 HTTP를 사용하고 있다는 점은 익히 안다.

그러나, 시대가 지남에 따라 다양한 해킹 방법이 등장하고, HTTP 또한 보안적으로 취약한 프로토콜로 지적받기 시작했다.

특히, HTTP는 데이터 전송 과정에서 암호화 과정이 포함되어 있지 않기 때문에, 중간자 공격 같은 보안 위협에 쉽게 노출될 수 있다.

그래서 더욱 안전하게 리소스를 주고 받을 수 있는 보안 체계가 필요했고, HTTPS가 탄생했다.

1️⃣ HTTPS

HTTPS는 HTTP의 보안버전이며,

SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security) 프로토콜을 사용하여
데이터를 암호화하고, 서버와 클라이언트 간의 통신을 안전하게 보호한다.

 

 

즉, 중간자들이 데이터를 가로채도 실제 평문으로 보이지 않기 때문에 보안적으로 유리한 면이 있다.

 

사실 2024년 기준으로 실제 배포된 웹사이트 중에 99퍼센트는 HTTPS를 사용하고 있다.

크롬 브라우저에서는 클라이언트가 HTTP 페이지에 접근하면 "주의 요함"이라는 보안 경고를 표시하는 패널티를 부과하여 거의 반 강제적으로 HTTPS 사용을 권장했다.

https://transparencyreport.google.com/https/overview?hl=ko

 

HTTP vs HTTPS

  HTTP HTTPS
의미 Hypertext Transfer Protocol Hypertext Transfer Protocol Secure
기본 프로토콜 HTTP/1과 HTTP/2는 TCP/IP를 사용합니다. HTTP/3은 QUIC 프로토콜을 사용합니다. HTTP 요청 및 응답을 추가로 암호화하기 위해 SSL/TLS와 함께 HTTP/2 사용
포트 기본 포트 80 기본 포트 443
용도 이전 텍스트 기반 웹 사이트 모든 최신 웹 사이트
보안 추가 보안 기능 없음 퍼블릭 키 암호화에 SSL 인증서 사용
이점 인터넷을 통한 통신 지원 웹 사이트에 대한 권위, 신뢰성 및 검색 엔진 순위 개선

 

2️⃣ SSL과 TLS의 역사

오늘날에는 개인 정보 및 금융 데이터 등, 인터넷에서 너무 민감한 데이터를 통신하기 때문에 데이터를 안전하게 주고받기 위한 기술들이 더욱 중요해졌다.

 

그 중 SSL과 TLS는 웹사이트와 사용자 간의 안전한 연결을 구축하는 핵심 기술이다.

 

HTTPS라는 용어는 사실 HTTP + SSL/TLS로 이해할 수 있다.

 

OSI 7계층을 말할때 보통 SSL(TLS)는 Layer 4-5에 포함된다고 말한다.

표현 게층의 주요 역할은 데이터를 어떻게 표현할지를 결정하는 것이다.

이를테면, 텍스트 인코딩(ASCII, UTF-8 등), 암호화, 압축 등이 이 계층에서 처리됩니다. SSL/TLS는 그 중에서도 암호화와 보안을 담당하며, 데이터의 안전한 전달을 보장합니다.

<사실상 표준이라고 불리는 TCP/IP에서는  네트워크를 사용하는 응용프로그램에 모두 뭉뜨그려서 표현된다.>


3️⃣ SSL과 TLS란?

그래서 SSL이랑 TLS가 뭔데.

✅ SSL (Secure Sockets Layer)

SSL은 인터넷에서 데이터를 암호화하여 안전하게 전송하는 프로토콜이다.

하지만 SSL은 여러 보안 취약점이 발견되면서, 현재는 더 이상 사용되지 않고 있다.
👉 SSL의 후속 버전이 바로 TLS (Transport Layer Security)

✅ TLS (Transport Layer Security)

TLS는 SSL을 개선한 보안 프로토콜이다.
사실은 현재 우리가 사용하는 HTTPS는 사실 SSL이 아닌 TLS 기반이다.
TLS는 데이터 암호화, 인증, 무결성 보장 등의 기능을 제공해서 네트워크 통신을 안전하게 유지한다.


3️⃣ SSL의 작동원리 (암호화 기법)

먼저 SSL은 대칭키 암호화와 공개키 암호화를 결합하는 방식을 사용한다.

 

간단하게만 설명하면,

"대칭키 암호화"는 하나의 키로 암호화와 복호화를 모두 수행하는 방식이다.

속도는 빠르지만, 키를 하이재킹 당하면 보안 문제가 있다.

 

"공개키 암호화"는 두 개의 키(공개키와 개인키)를 사용하는 방식이다.

누구나 가질 수 있는 공개키로 암호화하고, 개인키로만 복호화가 가능하다. (반대도 가능하다.)

 

 

1단계: 클라이언트 Hello
클라이언트는 서버에게 "Client Hello" 메시지를 보낸다. 이 메시지에는 랜덤 데이터와 암호화 방식 목록이 포함된다. 암호화 방식은 대칭키 및 공개키 기법이지만, 서로 다른 암호화 방식이 존재하므로 이를 협의하기 위해 사용된다.

2단계: 서버 Hello 및 인증서 전송
서버는 클라이언트의 요청을 받으면 "Server Hello" 메시지를 보낸다. 이 메시지에는 클라이언트가 요청한 암호화 방식과 랜덤 데이터, 그리고 인증서가 포함된다. 인증서는 **공인된 인증기관(CA)**에서 발급받은 문서로, 서버의 신뢰성을 검증한다.

3단계: 인증서 검증
클라이언트는 받은 인증서를 CA에서 발급한 인증서 목록과 비교하여 검증한다. 인증서가 유효하면, 공개키로 복호화하여 서버의 신뢰성을 확인할 수 있다.

4단계: 임시 대칭키 생성
클라이언트는 데이터를 암호화하는 데 사용할 대칭키를 임시로 생성한다. 이 임시 키는 공개키로 암호화되어 서버에게 전달된다. 이 과정에서 공개키 암호화 방식이 사용되며, 이 키는 중간에서 노출되지 않도록 보장된다.

5단계: 서버가 임시 키 복호화
서버는 자신이 가진 개인키로 암호를 복호화하여 임시 키를 받는다. 이제 클라이언트와 서버는 동일한 임시 대칭키를 공유하게 된다.

6단계: 세션 키 생성
클라이언트와 서버는 해당 임시 키를 이용해 세션 키를 생성하고, 이후의 데이터 통신은 대칭키 암호화 방식으로 암호화된 세션 키를 사용하여 이루어진다. 이렇게 암호화된 데이터는 속도가 빠르며, 안전하게 통신할 수 있게 된다.

세션 종료
데이터 전송이 끝나면 세션이 종료되며, 세션 동안 사용된 키는 폐기된다. 이로써 안전한 통신이 종료된다.


4️⃣ SSL과 TLS의 차이점

보안성 취약점이 많음 SSL보다 훨씬 강력한 보안
지원 여부 더 이상 사용되지 않음 현재 대부분의 웹사이트에서 사용
버전 SSL 2.0, SSL 3.0 (모두 폐기됨) TLS 1.0, 1.1 (구버전) / TLS 1.2, 1.3 (현재 표준)
HTTPS 적용 과거에는 사용됨 현재 모든 HTTPS 사이트에서 사용

[현재 SSL은 완전히 폐기되었고, TLS 1.2 이상을 사용해야 안전]

 

 

참고 : https://aws.amazon.com/ko/compare/the-difference-between-https-and-http/

https://www.digicert.com/kr/what-is-ssl-tls-and-https

 

반응형
저작자표시 (새창열림)
  1. 0️⃣ 들어가기 전
  2. 1️⃣ HTTPS
  3. 2️⃣ SSL과 TLS의 역사
  4. 3️⃣ SSL과 TLS란?
  5. ✅ SSL (Secure Sockets Layer)
  6. ✅ TLS (Transport Layer Security)
  7. 3️⃣ SSL의 작동원리 (암호화 기법)
  8. 4️⃣ SSL과 TLS의 차이점
'Computer Science/CS 개인 공부' 카테고리의 다른 글
  • 네트워크 보안 개념 정리
  • [네트워크] 유선LAN과 무선LAN
  • [네트워크] 네트워크를 이루는 장치
  • [네트워크] HTTP 상태코드와 HTTP 메서드
dog-pawwer
dog-pawwer
성장 중 🌱🌱
dog-pawwer
지노개발일기
dog-pawwer
전체
오늘
어제
  • 분류 전체보기 (117)
    • FrontEnd (4)
      • Android (4)
    • BackEnd (22)
    • Cloud (15)
    • Trouble Shooting (2)
    • Computer Science (52)
      • CS 개인 공부 (19)
      • 알고리즘 (코딩테스트) (1)
      • 프로그래밍언어론 (15)
      • 분산시스템 (5)
      • 정보처리기사 (개인공부용) (3)
    • 강의 (18)
      • 자바-스프링부트-서버개발 (8)
      • UMC (Study) (9)
      • 스프링 부트와 JPA (1)
    • 🚨ERROR (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • GitHub

공지사항

인기 글

태그

  • 9-0
  • 카카오
  • java
  • 카카오 로그인
  • 스프링부트
  • springboot
  • 카카오 로그인 구현
  • oauth
  • RestAPI
  • 오어스
  • kakao

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
dog-pawwer
🔒 TLS vs SSL : HTTPS 보안 개념
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.