🧮 PTK는 어떻게 만들어지나
# 802.11i PTK 유도 (개념 의사코드)
PMK = PBKDF2(password, ssid, iters=4096)
PTK = PRF(
PMK,
"Pairwise key expansion",
min(AP_MAC,STA_MAC) + max(AP_MAC,STA_MAC) +
min(ANonce,SNonce) + max(ANonce,SNonce)
)
# PTK → KCK(무결성) + KEK(키 암호화) + TK(데이터 암호화)로 분할
PMK와 두 MAC 주소는 이미 서로 알고, ANonce·SNonce만 M1·M2에서 평문으로 오갑니다.
그래서 도청자가 전부 지켜봐도 PMK(비밀번호)를 모르면 같은 PTK를 만들 수 없습니다.
☠️ KRACK 공격 재현 Key Reinstallation
공격자가 M3를 가로채 재전송하면, 클라이언트는 "재연결 요청"으로 착각해
같은 PTK를 다시 설치하면서 암호화 카운터(논스)가 0으로 리셋됩니다.
데이터 논스 재사용 횟수
0
같은 키+같은 논스로 암호화된 패킷이 2개 생기면 키스트림이 겹쳐 평문 복구·패킷 위조가 가능해집니다.
2017년 실제 공개된 취약점이며, 패치된 기기는 같은 키를 재설치해도 논스를 리셋하지 않도록 수정되었습니다.