Quali sono i requisiti tecnici per una passphrase WPA-PSK?


8

Stavo pensando di generare una passphrase WPA-PSK e vedo nella manpage OpenBSD per wpa-psk(8):

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

Quali sono esattamente i criteri per la "codifica ASCII" qui? Solo che devono essere caratteri a 8 bit con il bit alto non impostato? Sono ammessi caratteri non stampabili?

Vieni a pensarci bene ... Il mio approccio alla generazione casuale di una passphrase ha un senso? Sarebbe meglio generare solo 64 byte casuali e usarlo come chiave?

Risposte:


12

> Quali sono esattamente i criteri per la "codifica ASCII" qui? Solo che devono essere caratteri a 8 bit con il bit alto non impostato? Sono ammessi caratteri non stampabili?

L' accesso protetto Wi-Fi di Wikipedia afferma che la passphrase WPA-PSK è composta da 8 a 63 caratteri ASCII stampabili e include questo riferimento come nota a piè di pagina:

Ogni carattere nella passphrase deve avere una codifica compresa tra 32 e 126 (decimale), inclusi. (IEEE Std. 802.11i-2004, Allegato H.4.1)
Il carattere di spazio è incluso in questo intervallo.

> Vieni a pensarci bene ... Il mio approccio alla generazione casuale di una passphrase ha senso? Sarebbe meglio generare solo 64 byte casuali e usarlo come chiave?

> Penso che genererò ancora 256 bit usando un RNG sicuro ...

Il router wireless e tutti i dispositivi che si desidera connettere alla rete wireless consentono di immettere manualmente la chiave WPA-PSK come 64 caratteri esadecimali? In caso contrario, potrebbe essere necessario utilizzare una passphrase ASCII per poterla inserire in tutti i tuoi dispositivi.


Da RFC2898 citato da @studiohack - In tutto questo documento, una password è considerata una stringa di ottetti di lunghezza arbitraria la cui interpretazione come stringa di testo non è specificata. Nell'interesse dell'interoperabilità, tuttavia, si consiglia alle applicazioni di seguire alcune regole comuni di codifica del testo. ASCII e UTF-8 [27] sono due possibilità. (ASCII è un sottoinsieme di UTF-8.)
asveikau,

Inoltre, sembra che OpenBSD, Linux, Windows e Mac OS X supportino tutti utilizzando chiavi esadecimali. L'unico problema che ho riscontrato è che l'interfaccia utente di Maemo non gli piace, ma il file XML che supporta la configurazione lo supporta.
asveikau,

OK, vedo la parte di 802.11i-2004 che dice questo. Hai ragione.
asveikau,

1

Da http://www.xs4all.nl/~rjoris/wpapsk.html - "Calcolo chiave WPA - Dalla passphrase alla chiave esadecimale Dettagli del calcolo":

Per la crittografia WPA-PSK, la chiave binaria è derivata dalla passphrase secondo la seguente formula:

La funzione PBKDF2 è un metodo standardizzato per derivare una chiave da una passphrase. È specificato in RFC2898 con una chiara spiegazione su come calcolarlo. La funzione necessita di una funzione pseudocasuale sottostante. Nel caso di WPA, la funzione sottostante è HMAC-SHA1. SHA1 è una funzione che calcola un hash a 160 bit da una quantità arbitraria di dati di input. È chiaramente spiegato in RFC3174. HMAC è un metodo standardizzato per trasformare una funzione hash crittografica in una funzione di autenticazione dei messaggi con chiave. È specificato in RFC2104.

Riassumendo, il processo di derivazione della chiave comporta l'iterazione di una funzione HMAC-SHA1 4096 volte, e quindi farlo di nuovo per produrre più bit di chiave. La quantità di calcolo coinvolta equivale a calcolare l'hash SHA1 su 1 MByte di dati. Forse questo spiega perché il Javascript in questa pagina è così lento.

Per quanto riguarda la tua domanda: 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?O uno dei due sarebbe molto forte, a patto che tu abbia usato tutti i tipi di simboli, numeri e caratteri alfabetici casuali nella tua frase di byte casuali. Per come la vedo io: entrambi (generati o casuali) sarebbero impossibili da indovinare / hackerare ...


1
Hm. Quindi sembrerebbe basato sulla mia lettura dell'RFC che la funzione PBKDF2 non dipende dal fatto che si tratta di caratteri ASCII stampabili e che dovrebbe funzionare bene con i dati binari. Penso che continuerò a generare 256 bit usando un RNG sicuro ... (Non sono così sicuro che sarebbe impossibile indovinarlo però. Ci sono piccole probabilità che ciò finisca per generare qualcosa che si scontra con un debole passphrase.: P)
asveikau,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.