ECDHE

공개값만 오가지만 같은 공유 비밀에 도달한다

각자의 임시 비밀값은 로컬에만 두고, 공개 채널에는 계산된 공개값만 보낸다.

공개 정보 비밀 정보 공유 비밀
클라이언트
임시 비밀값a
공개값 전송g^a mod p →
공유 비밀 계산(g^b)^a = g^(ab)
서버
임시 비밀값b
공개값 전송← g^b mod p
공유 비밀 계산(g^a)^b = g^(ab)

도청자가 보는 것

public

기준점과 양쪽 공개값은 볼 수 있지만, 임시 비밀값 a와 b는 네트워크에 나오지 않는다.

인증 없는 위험

MITM

순수 DH만 쓰면 중간자가 공개값을 바꿔 끼울 수 있다. TLS는 인증서 서명으로 이 구멍을 막는다.

전방 비밀성

ephemeral

임시 비밀값이 안전하게 폐기되면, 나중에 서버 장기 키만 유출되어도 과거 공유 비밀을 복원하기 어렵다.