Was sind die technischen Voraussetzungen für eine WPA-PSK-Passphrase?

26666
asveikau

Ich habe überlegt, eine WPA-PSK-Passphrase zu generieren, und ich sehe in der OpenBSD-Manpage für wpa-psk(8):

The passphrase must be a sequence of between 8 and 63 ASCII-encoded characters. 

Was genau sind hier die Kriterien für "ASCII-codiert"? Nur, dass sie 8-Bit-Zeichen mit dem hohen Bit sein müssen, das nicht gesetzt ist? Sind nicht druckbare Zeichen erlaubt?

Denken Sie darüber nach ... Ist mein Ansatz, eine Passphrase zufällig zu generieren, sinnvoll? Wäre es besser, nur 64 zufällige Bytes zu generieren und diese als Schlüssel zu verwenden?

8

2 Antworten auf die Frage

11
Bavi_H

> Was genau sind hier die Kriterien für "ASCII-kodiert"? Nur, dass sie 8-Bit-Zeichen mit dem hohen Bit sein müssen, das nicht gesetzt ist? Sind nicht druckbare Zeichen erlaubt?

Der Wi-Fi-geschützte Zugriff von Wikipedia besagt, dass die WPA-PSK-Passphrase aus 8 bis 63 druckbaren ASCII-Zeichen besteht und diese Referenz als Fußnote enthält:

Jedes Zeichen in der Passphrase muss eine Kodierung im Bereich von 32 bis 126 (dezimal) enthalten. (IEEE-Standard 802.11i-2004, Anhang H.4.1)
Das Leerzeichen ist in diesem Bereich enthalten.

> Denken Sie darüber nach ... Ist mein Ansatz, eine Passphrase zufällig zu generieren, sinnvoll? Wäre es besser, nur 64 zufällige Bytes zu generieren und diese als Schlüssel zu verwenden?

> Ich denke, ich werde immer noch 256 Bits mit einem sicheren RNG erzeugen ...

Erlaubt Ihnen Ihr WLAN-Router und jedes Gerät, das Sie mit Ihrem WLAN verbinden möchten, die manuelle Eingabe des WPA-PSK-Schlüssels als 64 Hexadezimalzeichen? Wenn nicht, müssen Sie möglicherweise eine ASCII-Passphrase verwenden, um sie auf allen Ihren Geräten eingeben zu können.

Aus dem von @studiohack zitierten RFC2898 - In diesem Dokument wird ein Kennwort als eine beliebige Zeichenkette eines Oktetts betrachtet, deren Interpretation als Textzeichenfolge nicht spezifiziert ist. Im Interesse der Interoperabilität wird jedoch empfohlen, dass Anwendungen einigen allgemeinen Textcodierungsregeln folgen. ASCII und UTF-8 [27] sind zwei Möglichkeiten. (ASCII ist eine Teilmenge von UTF-8.) asveikau vor 13 Jahren 0
Offenbar unterstützen auch OpenBSD, Linux, Windows und Mac OS X die Verwendung von Hex-Schlüsseln. Das einzige Problem, dem ich begegnet bin, ist, dass die Maemo-Benutzeroberfläche sie nicht mag - aber die XML-Datei, die die Konfiguration unterstützt, unterstützt sie. asveikau vor 13 Jahren 0
OK, ich sehe den Teil von 802.11i-2004, der das sagt. Du hast recht. asveikau vor 13 Jahren 0
1
studiohack

Von http://www.xs4all.nl/~rjoris/wpapsk.html - "WPA-Schlüsselberechnung - Von der Passphrase zum hexadezimalen Schlüssel Details der Berechnung":

Bei der WPA-PSK-Verschlüsselung wird der Binärschlüssel aus der Passphrase gemäß der folgenden Formel abgeleitet:

Die Funktion PBKDF2 ist eine standardisierte Methode, um einen Schlüssel aus einer Passphrase abzuleiten. Es wird in RFC2898 mit einer klaren Erklärung zur Berechnung angegeben. Die Funktion benötigt eine zugrunde liegende Pseudozufallsfunktion. Im Falle von WPA ist die zugrunde liegende Funktion HMAC-SHA1. SHA1 ist eine Funktion, die einen 160-Bit-Hash aus einer beliebigen Menge an Eingangsdaten berechnet. In RFC3174 wird dies klar erklärt. HMAC ist eine standardisierte Methode, um aus einer kryptographischen Hash-Funktion eine Authentifizierungsfunktion für verschlüsselte Nachrichten zu machen. Es ist in RFC2104 angegeben.

Zusammenfassend kann gesagt werden, dass der Schlüsselableitungsprozess 4096-mal eine HMAC-SHA1-Funktion durchläuft und dies erneut tut, um weitere Schlüsselbits zu erzeugen. Der Rechenaufwand entspricht dem Berechnen des SHA1-Hashwerts über 1 MByte Daten. Vielleicht erklärt das, warum das Javascript auf dieser Seite so langsam ist.

Zu Ihrer Frage Does my approach of randomly generating a passphrase make any sense? Would it be better to just generate 64 random bytes and use that as a key?:: Entweder wäre eine sehr stark, solange Sie alle Arten von Symbolen, Zahlen und zufälligen Buchstaben in Ihrer zufälligen Bytes-Passphrase verwenden. So wie ich es sehe: beide (generiert oder zufällig) wären unmöglich zu erraten / zu hacken ...

Hm. Aufgrund meines Lesens des RFC scheint es also so zu sein, dass die PBKDF2-Funktion nicht davon abhängig ist, dass sie druckbare ASCII-Zeichen ist, und sollte mit binären Daten funktionieren. Ich denke, ich werde mit einem sicheren RNG immer noch nur 256 Bits generieren ... (Ich bin nicht so sicher, dass man es nicht erraten kann. Es gibt kleine Chancen, dass dies letztendlich etwas erzeugt, das mit einem Schwachen kollidiert Passphrase.: P) asveikau vor 13 Jahren 1