ECDHE

임시 비밀값은 로컬에 두고 공개값만 네트워크에 보낸다

ECDHE는 클라이언트와 서버가 각자의 임시 비밀값을 숨긴 채 공개값을 교환하고, 같은 공유 비밀을 계산하는 키 교환 방식입니다.

양쪽 계산

compare
Client secret a, public g^a

서버의 공개값 g^b와 자신의 비밀값 a로 g^(ab)를 계산한다.

Server secret b, public g^b

클라이언트의 공개값 g^a와 자신의 비밀값 b로 같은 g^(ab)를 계산한다.

네트워크에 보이는 것과 숨기는 것

matrix
구분예시의미
공개 정보기준점, g^a, g^b도청자가 볼 수 있지만 이것만으로 공유 비밀을 계산하기 어렵다
비밀 정보a, b각자 로컬에만 두고 네트워크에 보내지 않는다
공유 비밀g^(ab)핸드셰이크 키와 트래픽 키 파생의 입력이 된다

TLS가 추가로 하는 일

checkpoints
인증

순수 DH만 쓰면 중간자가 공개값을 바꿀 수 있어 인증서 서명이 필요하다.

전방 비밀성

임시 비밀값을 폐기하면 장기 키 유출만으로 과거 세션을 풀기 어렵다.

키 파생

공유 비밀은 그대로 쓰지 않고 transcript와 난수를 섞어 여러 키로 파생한다.