HTTPS, SSL, TLS

ou·2024년 1월 24일
0

basic

목록 보기
20/24

HTTPS

1996년 HTTP가 등장한 후 웹 기술이 고도화되며 다양한 해킹 방법이 등장했고, 그에 따라 더욱 안전하게 데이터를 주고 받을 수 있는 방법이 필요해졌다.
HTTPS는 HTTP 뒤에 'S' 한 글자가 추가된 형태로 풀어쓰면 Secure이다.
즉, 보안이 추가된 Hyper Text Tranfer Protocol 인 것 이다.

SSL & TLS

여태까지 SSL만 알고 있었지 TLS가 있는지는 몰랐다.
지금까지 SSL을 일반적인 용어로 사용하고 있는데 사실 지금 우리가 널리 사용중인 보안 프로토콜은 TLS이다.

아래 그림을 보면 계층이 있는데 TCP 계층 위에 TLS가 존재하고 HTTP로 이어진다.
HTTP가 한번에 HTTPS가 되는 것이 아니고 TLS 계층이 추가되면 HTTPS가 되는 것이다.


출처 - https://developer.mozilla.org/ko/docs/Web/HTTP/Overview

암호화 방식

먼저 암호화 방식에 대해 알아보자
SSL, TLS은 핸드셰이크, 세션, 세션 종료 세 단계로 이루어진다.
대칭키와 공개키 방식을 혼합해서 사용한다.

대칭키 방식

키 하나로 암호화와 복호화 가능
클라이언트와 서버가 키를 주고 받는 과정에서 키 탈취 위험있음

  • Pros
    • 빠른 속도
    • 단순, 효율적
  • Cons
    • 키 관리 어려움
    • 키 유출 시 보안 위험

공개키 방식

서로 다른 키 두개로 암호화, 복호화를 함
A키로 암호화 했다면 B로 복호화 가능함
만약 서버가 A키로 암호화 한 뒤 B키를 클라이언트에 주고 데이터를 주고 받다가 B키가 탈취된다해도 온전히 복호화 할 수 없음.
다만, 암호화 과정이 복잡하므로 속도가 느림

  • Pros
    • 키 교환 문제에서 안전
  • Cons
    • 대칭키에 비해 느린 속도
    • 암호화 된 데이터의 크기 커짐

그래서! 2가지 방식을 모두 채용해서 복합적으로 적용하고 있다.

그렇다면 지금 쓰이는 것은 TLS(Transport Layer Security)인데 왜 SSL(Secure Sockets Layer)가 일반적인 용어로 쓰이는 걸까?

SSL 의 역사

SSL 1.0

1994년 넷스케이프에 의해 처음 도입
실제로 사용되지 않음

SSL 2.0

1995년 넷스케이프
SSL의 첫 표준이 됨

SSL 3.0

1996년 넷스케이프
2014년 POODLE 공격 등 취약점 발견으로 사용 중단

TLS의 역사

TLS 1.0

1999년 IETF에서 SSL 3.0 개선판으로 도입

TLS 1.1

2006년

TLS 1.2

2008년

TLS 1.3

2018년, 속도와 보안 강화
1.2에 비해 간소화된 핸드셰이크 과정으로 빠르고 안전하게 연결

1.2와 1.3버전에 대해 그림을 보며 이해해보자

TLS 1.2 과정
1. 클라이언트는 서버에게 인사를 건넨다. 이때 랜덤한 데이터, 현재 지원하는 암호화 방식을 전달한다.
2. 서버가 클라이언트에게 인사한다. 동일한 랜덤 데이터와 지원 가능한 암호화 방식, 인증서를 전달한다.
3. 클라이언트는 인증서를 CA 기관에 확인한다. 그리고 CA에서 공유해준 공개키로 인증서를 복호화 한다. 복호화가 된다면 인증서는 서버가 유효한 비밀키로 암호화 했다는 것이니 서버를 신뢰 할 수 있게 된다.
그리고 임시 키를 만들고 CA에서 받은 공개키로 암호화해서 서버에 전달한다.
4. 서버는 비밀키로 복호화해 임시 키를 전달 받는다.
이로서 임시 키는 세션 키로 바뀌고 이 세션 키를 이용해 앞으로 통신하게 된다.

TLS 1.3 과정
1. 클라이언트는 서버에 인사를 건넨다. 이때 추가로 공개키를 전달한다. 비밀 키는 클라이언트가 갖고 있는다.
2. 서버도 마찬가지로 공개키를 전달한다. 비밀키는 마찬가지로 서버가 갖고 있다. 이후 각자 가지고 있는 비밀키와 받은 공개키로 세션키를 생성.
3. 이후 세션 키를 이용해 대칭키 암호화 방식으로 통신을 시작한다.

참고자료
https://brunch.co.kr/@swimjiy/47
https://aday7.tistory.com/entry/HTTPS-SSLTLS-%EB%B3%B4%EC%95%88-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-TLS-12-TLS-13
https://medium.com/@vanrijn/what-is-new-with-tls-1-3-e991df2caaac
https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange

profile
경험을 현명하게 사용한다면, 어떤 일도 시간 낭비는 아니다.

0개의 댓글

관련 채용 정보