TLS1.3 (RFC 8446)
2018년 8월 IETF(Internet Engineering Task Force, 인터넷 프로토콜 정의 조직)에서 TLS의 최신 버전 표준화 배포
기존 사용하던 알고리즘 중 취약성이 존재하는 알고리즘을 제거하여 표준안 제시
더 빠른 보안 연결 속도와 보안 강화 제공
기존 TLS1.2 이하와 TLS1.3 의 차이점을 살펴보자.
1. 키 교환 알고리즘 & PFS
2. 인증 알고리즘
3. 암호화 및 해시 알고리즘
4. Handshake (0-RTT)
1. 키 교환 알고리즘 & PFS
기존 TLS 1.2 이하에서 사용되던 키 교환 알고리즘 중 RSA 와 SRP 등은 PFS 를 보장하지 않기 때문에 TLS 1.3 에서는 제거되었다.
그리고 ECDHE (, )가 추가되었다.
*ECDHE (Elliptic Curve Diffie-Hellman Exchange, 타원 곡선 임시 디피-헬만 키 교환)
: 세션 키의 사용 주기를 매우 짧게 하여 지속적으로 변경해주는 방식
*SRP : 인증 과정에서 password를 유추할 수 있는 직접적인 정보가 전달되지 않아 안전한 방식
*PSK (pre-shared key, 키 사전 공유)
: 비대칭 키 (공개 키) 암호의 키 배송 문제를 해결하기 위한 또 다른 키 교환 알고리즘으로,
키 관리기관 (TA, trust authority)이 사전에 임의의 두 사용자에게 비밀 경로를 통하여 임의의 키를 선택하고 전달할 수 있게 해줌
: 세션 재개 시 사용 됨
: 기존 TLS 1.2 이하에서 session ID 와 session ticket 에 해당하던 것
2. 인증 알고리즘
인증 알고리즘에서는,
2048 bit 의 키 길이를 지원하는 RSA 와 비교해서 1024 bit 라는 짧은 키를 사용하는 DSA 는 TLS 1.3 에서 삭제되었다.
*DSA (Digital Signature Algorithm, 디지털 서명 알고리즘)
*EdDSA (Edwards-curve Digital Signature Algorithm, 에드워드 곡선 디지털 서명 알고리즘)
*ECDSA (Elliptic Curve Digital Signature Algorithm, 타원 곡선 디지털 서명 알고리즘)
3. 암호화 및 해시 알고리즘
암호화 및 해시 알고리즘 중 기존의 불안정한 항목 6가지는 제거되었으며,
트래픽을 잡아서 cipher suites 를 살펴보던 중 ChaCha20_Poly1305 알고리즘도 확인할 수 있었다.
찾아보니 ChaCha20_Poly1305 는 비교적 최근에 등장한 암호 알고리즘으로, TLS 1.2 에서도 사용 가능하다.
*ChaCha20 : 대칭 스트링 암호 알고리즘 중 하나
*Poly1305 : (지문)방법을 이용한 해시 알고리즘
: 다양한 소프트웨어 플랫폼에서 높은 성능 및 보안 수준을 제공하는 암호화 알고리즘
4. Handshake
TLS 1.3 에서 기존과 가장 큰 차이를 꼽으라면 단축 협상에서의 0-RTT 지원이라고 할 수 있을 것 같다.
다음은 RFC 8446 에 제시된 TLS 1.3 완전 협상 (1-RTT) 와 TLS 1.3 단축 협상 (0-RTT) Handshake 과정이다.
Handshake 과정을 살펴보면 알 수 있듯,
완전 협상에서는 전체 Handshake 과정이 기존 2-RTT 에서 1-RTT 로 단축되어 연결 속도가 향상되었다.
또한 세션 재개 시 0-RTT (제로 라운드 트립)을 지원한다.
첫 Handshake 완료 후 서버와 클라이언트에 공유된 암호 키(PSK)를 로컬에 저장하는데,
이 PSK를 통해 이전에 방문한 사이트로 첫 번째 메시지의 메시지를 전송하여 Handshake 과정 없이 바로 연결이 가능하다.
0-RTT 와 1-RTT에 대한 자세한 이해를 위해 환경 구축과 실습을 진행해보자.
참고
: blog.naver.com/PostView.nhn?blogId=cr0sscert&logNo=221706613801
'NETWORK Security > 보안 프로토콜' 카테고리의 다른 글
TLS1.3 (6) - 환경 구축 (Nginx-2) (0) | 2020.12.29 |
---|---|
TLS1.3 (5) - 환경 구축 (Nginx-1) / nginx, openssl RPM update (0) | 2020.12.29 |
TLS1.3 (4) - 환경 구축 (Apache) (0) | 2020.12.29 |
TLS1.3 (2) - SSL/TLS Handshake (1) | 2020.12.29 |
TLS1.3 (1) - cipher suite, 키 합의 프로토콜, 완전 순방향 비밀성(PFS) (0) | 2020.12.22 |