Intruder-in-the-Middle Attacks이라고 불리는 중간자 공격은, 키 교환에 있어서 또 다른 문제가 된다. Diffie-Hellman 키 교환 방법에서, 어떻게 이것이 이루어지는가를 살펴보자.
먼저, 정상적인 Diffie-Hellman 키 교환은 다음과 같이 이루어진다.
1. 키를 교환하고자 하는 Alice와 Bob은 커다란 Prime Number p와 Primitive Root α를 선택하고 공개한다.
2. Alice는 1 ≤ x ≤ p - 2인 x를 선택하고, Bob도 2 ≤ y ≤ p - 2인 y를 선택한다. x와 y는 공개되어서는 안된다.
3. Alice는 α^x (mod p)를 계산하여 Bob에게 알려주고, Bob은 α^y (mod p)를 계산하여 Alice에게 전달한다. Alice는 (α^y)^x (mod p)를, Bob은 (α^x)^y (mod p)를 계산하여 키 K = α^xy (mod p)를 얻는다.
4. 서로 전달하기를 원하는 메세지가 있다면, 키 K = α^xy (mod p)를 이용하여 암호화하고 이를 전달한다.
Diffie-Hellman 키 교환에서의 중간자 공격은 다음과 같이 이루어진다.
1. Eve는 적당한 지수 z를 선택한다.
2. Eve는 Alice와 Bob 사이에서 오고가는 α^x, α^y를 빼낸다.
3. Eve는 Alice와 Bob에게 α^z를 보내며, Alice와 Bob은 이것을 유효한 상대의 계산 결과로 생각하고 (α^z)^x, (α^z)^y를 계산하여 키로 간주한다.
4. Alice가 Bob에게 (α^z)^x (mod p)로 암호화된 메세지를 보낸다. Eve는 z 값을 가지고 있으며, α^x 값을 알고 있기 때문에 어떤 키로 암호화되었는지 알 수 있다.
이런 중간자 공격을 막기 위해서는, 키를 주고 받는 상대방이 서로가 메세지를 전달하려고 하는 본인이 맞는지 신원 확인이 이루어져야 한다.
Reference
Wade Trappe, Lawrence Washington, Introduction to Cryptography with Coding Theory, Second Edition, PEARSON Eduction
Library/Cryptography