TLS 1.3 defense

TLS 1.3은 인증된 키 교환 뒤 AEAD 레코드로 데이터를 보호한다

MITM을 막는 핵심은 “암호화” 한 단어가 아니라, 인증서로 서버를 확인하고, 핸드셰이크 기록에 묶인 키를 파생한 뒤, record마다 암호화와 변조 검증을 수행하는 구조입니다.

01 ClientHello 클라이언트가 지원 버전, cipher suite, key_share를 보냅니다.
02 ServerHello + Certificate 서버는 key_share와 인증서를 보내 신원 검증 기준을 제공합니다.
03 Finished 검증 서명과 transcript MAC으로 핸드셰이크 변조 여부를 확인합니다.
04 Encrypted records HTTP 요청/응답은 AEAD로 암호화되고 tag로 변조가 검출됩니다.
key schedule 키는 한 번에 하나가 아니라 용도별로 파생된다
ECDHE secret네트워크에 직접 보내지 않는 공유 비밀
handshake key인증서와 Finished 메시지 보호
traffic keyapplication data record 보호
MITM 시도
TLS가 확인하는 것
실패 결과
가짜 서버
인증서 체인, 호스트명, 서명
인증서 오류로 연결 중단
키 교환 변조
transcript와 Finished MAC
핸드셰이크 검증 실패
본문 수정
AEAD authentication tag
해당 record 폐기

HSTS 첫 연결 이후 HTTP downgrade를 줄인다 브라우저가 해당 사이트를 HTTPS로만 접속하도록 기억하게 합니다.

root trust 악성 루트 인증서가 설치되면 보호가 약해진다 기기 신뢰 저장소와 프록시 인증서 배포 정책도 보안 경계입니다.