私は関数を実装しようとしています、Pythonでペアワイズマスターキー識別子([〜#〜] pmkid [〜#〜])を読んだ後、以前に発見されたWPA2のバググーグルは私にこの論理的なステートメントを与えました:
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)
ただし、問題は正しいハッシュを計算できないことです。私はさまざまな可能性を試し、データをバイナリに変換し、さまざまなバージョンのMACを試しましたが、まだチャンスはありませんでした。
問題は、PMKIDを計算する関数を、できればPythonでどのように実装するかです。これが私が少しやっていることです:
import hashlib, binascii, hmac
from pbkdf2 import PBKDF2
print "Required hash: 2a416a999af0a6bf454684269afb06ef"
apmac = '34:bf:90:4a:bb:57'
clmac = '98:de:d0:1a:97:c2'
pmk = PBKDF2('786 5555', 'unknown', 4096).read(32)
print "PMK: "+binascii.hexlify(pmk)
pmkid = hmac.new(pmk, "PMK Name"+apmac+clmac, hashlib.sha1).hexdigest()
print pmkid
コードは問題ありませんが、MACを16進数で配置する必要があります。
'34:bf:90:4a:bb:57 'の代わりに'\x34\xbf\x90\x4a\xbb\x57 '