TLS 1.3 Defense Map

TLS는 인증된 키 교환으로 협상을 묶고, AEAD 레코드로 데이터를 보호한다

HTTPS에서 TLS는 단순 암호화가 아니다. 서버 인증서 검증, ECDHE 키 교환, handshake transcript 검증, AEAD record protection이 함께 맞아야 중간자 변조와 도청을 실패시킨다.

Client lane SNI, ALPN, key_share를 내고 서버 증명을 검증한다.
ClientHello ↔ ServerHello ECDHE 공유 비밀과 cipher suite가 정해진다.
Certificate + Verify CA 체인과 transcript 서명이 서버 신원을 묶는다.
Finished 양쪽 transcript MAC이 중간자 변조를 닫는다.
Server lane 인증서와 handshake key로 협상 결과를 증명한다.
Application key Handshake가 끝나면 record protection key로 전환한다. HTTP payload는 AEAD nonce, tag와 함께 레코드 단위로 보호된다.
협상 무작위값, 버전, 알고리즘, 임시 공개키가 만난다.
인증 인증서 이름과 체인이 서버 신원 검사의 중심이다.
무결성 Finished가 앞선 메시지 전체를 해시로 묶는다.
레코드 애플리케이션 데이터는 AEAD tag 실패 시 폐기된다.
ClientHello SNI, ALPN, key_share 지원 버전, cipher suite, group, 무작위값과 임시 공개키를 제안한다.
ServerHello ECDHE secret 확정 서버 선택값과 key_share로 handshake traffic key가 파생된다.
Certificate chain + identity 인증서 체인, SAN, EKU, 유효기간, 폐기 상태를 클라이언트가 확인한다.
Finished transcript binding 협상 메시지가 바뀌면 Finished 검증이 실패해 연결이 중단된다.
Application AEAD records HTTP 데이터는 AES-GCM 또는 ChaCha20-Poly1305 같은 AEAD로 보호된다.
certificate 서버 이름은 CN보다 SAN이 기준 브라우저는 신뢰된 루트까지의 체인과 DNS 이름 일치를 확인한다.
forward secrecy ECDHE 임시 키로 세션 키 파생 서버 장기 개인키가 나중에 유출되어도 과거 세션 복호화를 어렵게 한다.
downgrade 협상 결과가 transcript에 묶인다 버전·cipher suite 조작은 Finished 검증 실패나 downgrade sentinel로 드러난다.
record 무결성과 암호화를 같이 제공 AEAD tag가 맞지 않으면 레코드는 애플리케이션에 전달되지 않는다.
보이는 것 IP, 포트, 트래픽 크기·시간, DNS 질의, ECH가 없으면 SNI 일부 메타데이터는 노출될 수 있다.
inspection 기업 TLS inspection은 신뢰 경계가 프록시로 이동한다. 단말에 배포된 루트 CA와 로그 통제가 핵심이다.
우회 조건 인증서 경고 무시, 검증 비활성화, 악성 루트 CA, 오발급 인증서는 MITM 위험을 다시 키운다.
정책 TLS 1.2 이상, 취약 cipher 비활성화, ALPN/HTTP2·HTTP3 정책, HSTS는 브라우저 강제 정책으로 별도 관리.
인증서 자동 갱신, OCSP stapling, 폐기 상태, Certificate Transparency 모니터링, 키 권한 분리.
진단 hostname mismatch, expired cert, unknown CA, handshake_failure, protocol_version은 원인이 서로 다르다.

오해 방지: HSTS는 TLS handshake 단계가 아니라 브라우저의 HTTPS 강제 정책이다. TLS가 보호하는 것은 정상 검증된 연결의 내용과 협상 무결성이며, 모든 네트워크 메타데이터를 숨기는 기술은 아니다.