secret a, public g^a
서버의 공개값 g^b와 자신의 비밀값 a로 g^(ab)를 계산한다.
ECDHE는 클라이언트와 서버가 각자의 임시 비밀값을 숨긴 채 공개값을 교환하고, 같은 공유 비밀을 계산하는 키 교환 방식입니다.
secret a, public g^a
서버의 공개값 g^b와 자신의 비밀값 a로 g^(ab)를 계산한다.
secret b, public g^b
클라이언트의 공개값 g^a와 자신의 비밀값 b로 같은 g^(ab)를 계산한다.
| 구분 | 예시 | 의미 |
|---|---|---|
| 공개 정보 | 기준점, g^a, g^b | 도청자가 볼 수 있지만 이것만으로 공유 비밀을 계산하기 어렵다 |
| 비밀 정보 | a, b | 각자 로컬에만 두고 네트워크에 보내지 않는다 |
| 공유 비밀 | g^(ab) | 핸드셰이크 키와 트래픽 키 파생의 입력이 된다 |
순수 DH만 쓰면 중간자가 공개값을 바꿀 수 있어 인증서 서명이 필요하다.
임시 비밀값을 폐기하면 장기 키 유출만으로 과거 세션을 풀기 어렵다.
공유 비밀은 그대로 쓰지 않고 transcript와 난수를 섞어 여러 키로 파생한다.