Wireshark WPA 4 방향 핸드 셰이크


13

에서 이 위키 페이지 :

WPA 및 WPA2는 EAPOL 핸드 셰이크에서 파생 된 키를 사용하여 트래픽을 암호화합니다. 암호 해독하려는 세션에 네 개의 핸드 셰이크 패킷이 모두 존재 하지 않으면 Wireshark는 트래픽을 암호 해독 할 수 없습니다. 디스플레이 필터 eapol을 사용하여 캡처에서 EAPOL 패킷을 찾을 수 있습니다.

암호 해독이 (1, 2, 4)에서도 작동하지만 (1, 2, 3)에서는 작동하지 않습니다. 내가 아는 한, 적어도 두 개의 패킷만으로도 유니 캐스트 트래픽과 관련이 있습니다. 누군가 Wireshark가 어떻게 그것을 처리하는지, 즉 네 번째 패킷이 단지 인정이라는 점을 감안할 때 왜 이전 시퀀스 만 작동합니까? 또한 (1, 2, 3, 4)가 작동 할 때 (1, 2, 4)가 항상 작동한다는 것이 보장됩니까?

테스트 사례

이것은 gzip 된 핸드 (1, 2, 4)와 ecrypted 인 ARP패킷 (: SSID SSID: 암호 password에서) base64인코딩 :

H4sICEarjU8AA2hhbmRzaGFrZS5jYXAAu3J400ImBhYGGPj / n4GhHkhfXNHr37KQgWEqAwQzMAgx
6HkAKbFWzgUMhxgZGDiYrjIwKGUqcW5g4Ldd3rcFQn5IXbWKGaiso4 + RmSH + H0MngwLUZMarj4Rn
S8vInf5yfO7mgrMyr9g / Jpa9XVbRdaxH58v1fO3vDCQDkCNv7mFgWMsAwXBHMoEceQ3kSMZbDFDn
ITk1gBnJkeX / GDkRjmyccfus4BKl75HC2cnW1eXrjExNf66uYz + VGLl + snrF7j2EnHQy3JjDKPb9
3FOd9zT0TmofYZC4K8YQ8IkR6JaAT0zIJMjxtWaMmCEMdvwNnI5PYEYJYSTHM5EegqhggYbFhgsJ
9gJXy42PMx9JzYKEcFkcG0MJULYE2ZEGrZwHIMnASwc1GSw4mmH1JCCNQYEF7C7tjasVT + 0 / J3LP
gie59HFL + 5RDIdmZ8rGMEldN5s668eb / tp8vQ + 7OrT9jPj / B7425QIGJI3Pft72dLxav8BefvcGU
7 + kfABxJX + SjAgAA

로 디코딩 :

$ base64 -d | gunzip > handshake.cap

패킷을 tshark올바르게 해독했는지 확인하기 위해 실행 하십시오 ARP.

$ tshark -r handshake.cap -o wlan.enable_decryption:TRUE -o wlan.wep_key1:wpa-pwd:password:SSID

인쇄해야합니다.

  1 0.000000 D-Link_a7 : 8e : b4-> HonHaiPr_22 : 09 : b0 EAPOL 키
  2 0.006997 HonHaiPr_22 : 09 : b0-> D-Link_a7 : 8e : b4 EAPOL 키
  3 0.038137 HonHaiPr_22 : 09 : b0-> D-Link_a7 : 8e : b4 EAPOL 키
  4 0.376050 ZyxelCom_68 : 3a : e4-> HonHaiPr_22 : 09 : b0 ARP 192.168.1.1은 00 : a0 : c5 : 68 : 3a : e4에 있습니다.

그것은 .. 그것은 4 개 모두를 가지고 있기 때문에 해독해야합니다. 또는 당신은 wifi 네트워크에 연결되어 있고 그것은 패킷을 해독하고 있습니다
Paul

RFMON 모드에서 캡처 된 패킷에 대해 (분명히) 이야기하고 있습니다.
cYrus

@Paul : 질문을 편집했습니다. 대답 할 수 있습니까?
cYrus

할 수 있으면 좋겠다. EAPOL 시퀀스를 따르는 경우 클라이언트는 첫 번째 패킷 (한 번 통과) 후에 PTK를 갖습니다. AP는 두 번째 패킷 (snonce) 이후 PTK를 알고 있습니다. 이 두 가지를 관찰하고 MAC과 물론 ssid + psk를 알고 있다면 이것이 필요한 모든 것입니다. 세 번째 패킷은 브로드 캐스트 및 멀티 캐스트를위한 GTK이고 네 번째 패킷은 ACK입니다. arp-reply 인 유니 캐스트를 해독하는 경우 처음 두 패킷이면 충분합니다. 나는 도울 수는 없지만 모든 것이 네 가지가 모두 필요하다고 말하면서 무언가를 놓치고 있다고 생각합니다.
Paul

이것으로 더 이상 얻었습니까?
Paul

답변:


1

EAPOL 교환은 또한 임시 키를 갱신하는 데 사용됩니다. 새 키는 4/4를 보낸 후 신청자에 설치되며 4/4 [1]을 받으면 인증 자에 설치됩니다. Wireshark가 키 재조정을 올바르게 처리해야하는 경우, 프레임에서 4/4 패킷을 읽은 후에 만 ​​키를 사용해야합니다. 버퍼링으로 인해 키를 다시 입력하는 동안 패킷이 계속 흐를 수 있기 때문입니다.

첫 번째 4WHS의 경우 4/4를 기다리지 않아도 가능하지만 구현하기가 게으른 것으로 완벽하게 이해할 수 있습니다. 3/4는 그룹 키 (관심이 없더라도 AP 또는 4WHS의 일부가없는 클라이언트의 ARP 요청은 표시되지 않음)와 관리 키를 포함하므로 여전히 필요합니다. 3/4도 건너 뛸 수 있지만 인증자가 PMK를 알고 있는지 확인하는 데 3/4가 사용되므로 교환에 성공했다는 확인 메시지가 없습니다.

[1] 현재 체계에서 4/4 메시지가 유실되면 신청자는 새 키를 사용하기 시작했으며 인증자는 여전히 이전 키를 사용하며 이전 키로 암호화 된 3/4를 재전송하면 도움이되지 않습니다. . WPA2를 사용하는 많은 다른 사람 중에서도이 문제는 두 개의 키를 병렬로 유지하여 최신 802.11 2012 표준에서 해결되었습니다.


1

PTK를 구성하는 데 필요한 모든 정보는 1 단계와 2 단계에서 교환됩니다. 이는 유니 캐스트 트래픽을 해독하기에 충분해야합니다.

3 단계가 없으면 GTK가 없으므로 멀티 캐스트 / 브로드 캐스트를 해독 할 수 없습니다.

4 단계는 캡처 트래픽을 해독하는 데 실제로 필요하지 않지만 4 단계가 없으면 클라이언트 / AP가 암호화를 사용하기 시작하지 않습니다. Wireshark는 데이터 암호 해독을 시도하기 전에이 문제를 해결할 수 있습니다.


0

분명히 WireShark 설명서가 잘못되었습니다. :-)

여기 에서 설명서를 삭제 하십시오 .

  • EAPOL 1 및 2 이후에 양쪽은 트래픽을 해독하는 데 사용될 임시 키를 알고 있습니다.
  • 세 번째 메시지는 양측이 임시 키를 알고 있다는 증거이며 인증 자 (기지국)가 임시 키를 사용할 준비가 되었음을 나타냅니다 .
  • 네 번째 메시지는 EAPOL 이전에 설정된 PMK에서 EAPOL에서 파생 된 임시 키로의 전환을 트리거합니다.

따라서, 그것은 의미가 있습니다. WireShark에는 메시지 3이 필요하지 않습니다. 메시지 1과 2 이후의 키는 알고 있지만 메시지 4를 수신 할 때까지 키를 사용하여 트래픽을 해독하기 위해 대기합니다.

인생의 어떤 것, 특히 자유 소프트웨어의 행동에 대한 보장은 없지만 WireShark이 세션을 해독하기 위해 메시지 3이 필요하지 않다는 것이 합리적입니다.


패킷 4는 어느 쪽도 필요 하지 않은 것 같습니다. 단지 그것을 기다리도록 설계되었습니다.
Paul

@Paul, "일시 정지"후에 는 "재개"라고 말할 필요 가 없습니다 .
Old Pro

@OldPro, 4 °를 기다리는 것이 좋은 생각인지 잘 모르겠습니다. 캡처 된 패킷은 특히 공기를 통과 할 때 손실되는 경향이 있습니다.
cYrus

암호화 키는 양쪽에서 동시에 변경되어야하므로 @cYrus는 4를 기다리는 것이 필수적입니다. 클라이언트가 4를 수신하지 않으면,베이스가 3을 수신했는지 알 수 없습니다. 클라이언트가 4를 수신하지 않으면 4를 수신하거나 시도를 포기할 때까지 3을 다시 보냅니다 (재전송을 4로 트리거 함). 연결을 만듭니다.
Old Pro

@ OldPro : 프로토콜에 대해 이야기하고 있지 않습니다. 양측은 모든 패킷을 수신 할 수 있지만 트래픽을 수동으로 캡처하는 엔티티에 의해 삭제되거나 캡처되지 않을 수 있습니다.
cYrus

0

이것은 왜 그런지 설명하지 않지만 어쨌든 airdecap-ng 문서 에서 인용하면 ,

WPA/WPA2 Requirements

The capture file must contain a valid four-way handshake. For this purpose having (packets 2 and 3) or (packets 3 and 4) will work correctly. In fact, you don't truly need all four handshake packets. 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.