CS Insights

TLS 1.3 핸드셰이크의 RTT 혁명과 해커를 절망시키는 퍼펙트 포워드 시크리시(Perfect Forward Secrecy)

TLS 1.3 핸드셰이크의 RTT 혁명과 해커를 절망시키는 퍼펙트 포워드 시크리시(Perfect Forward Secrecy)
해외 고객에게 서비스되는 저희 회사 프론트엔드의 첫 로딩 타임(TTFB)을 단축하기 위한 프로젝트 중, 가장 크게 병목을 해소해 준 것은 CDN 튜닝이 아니라 인증서 프로토콜을 TLS 1.3으로 판올림 하는 한 줄의 조치였습니다. HTTPS 보안 통신을 맺기 위해 기존 TLS 1.2 버전은 너무나 말과 절차가 많았습니다. 클라이언트와 서버가 서로 암호 체계를 합의하고(Hello), 인증서를 주고받으며, 대칭키를 생성하는 데 통신 라운드 트립(RTT)을 두 번 반이나 소모해야 했습니다. 모바일 환경의 높은 지연율 하에서 이 통신 성립 비용 자체만으로 수백 밀리초가 날아갑니다. TLS 1.3은 이 군더더기를 철저하게 파괴했습니다. 클라이언트는 이제 묻지도 따지지도 않고 첫 인사말(Client Hello)에 자신이 즐겨 쓰는 타원 곡선 암호 기반의 키 생성 재료들을 무조건 동봉해 보내버립니다. 서버가 이를 수락함과 동시에 즉각적으로 1-RTT 만에 마스터 시크릿 키가 완성되며, 과거에 한 번 만났던 사용자라면 아예 핸드셰이크를 건너뛰고 첫 패킷에 애플리케이션 데이터를 버무려 보내버리는 0-RTT 부활(Resumption) 신공까지 발휘합니다. 그러나 엔지니어로서 제가 TLS 1.3에 경탄한 부분은 속도보다 보안 철학이었습니다. 과거 TLS 1.2 시설물들은 서버의 하드코딩된 단일 RSA 개인 키를 통해 키 교환 보안을 구성했습니다. 이는 해커가 오늘 당장 암호를 풀지 못하더라도 일단 이 회사와 오가는 모든 암호화 패킷들을 스토리지 트래픽 캡처로 5년 동안 모아두다가, 5년 뒤 실수로 이 회사의 서버 RSA 개인키가 털리는 단 한 번의 순간, 과거 5년 치의 모든 트래픽이 싸그리 복호화되어 열려버리는 파멸적 구조였습니다. TLS 1.3은 이 RSA 키 교환 알고리즘 자체를 표준에서 영구 제명시켜버렸습니다. 오로지 DHE(Diffie-Hellman Ephemeral) 방식만을 강제하여, 통신 세션이 맺어질 때마다 단 한 번 쓰고 버려지는 휘발성(Ephemeral) 키를 발급하게 만든 것입니다. 이제 해커가 내일 당장 저희 서버의 뼈대 프라이빗 키를 탈취해 낸다 하더라도, 어제 교환된 암호화 트래픽의 마스터 키를 역추산하는 것은 수학적 다항 분리 구조에 의해 원천적으로 불가능해집니다. 이 우아하고도 파괴적인 과거 봉인 기법인 완전 순방향 침해 증명(Perfect Forward Secrecy)의 강제화는 통신 인프라 엔지니어들에게 더없는 축복입니다.

Related Posts