¿Cuáles son los requisitos técnicos para una frase de contraseña WPA-PSK?

¿Cuáles son los requisitos técnicos para una frase de contraseña WPA-PSK?

Estaba pensando en generar una frase de contraseña WPA-PSK y veo en la página de manual de OpenBSD wpa-psk(8):

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

¿Cuál es exactamente el criterio para "codificado en ASCII" aquí? ¿Solo que deben ser caracteres de 8 bits con el bit alto sin configurar? ¿Se permiten caracteres no imprimibles?

Ahora que lo pienso... ¿Tiene algún sentido mi enfoque de generar aleatoriamente una frase de contraseña? ¿Sería mejor simplemente generar 64 bytes aleatorios y usarlos como clave?

Respuesta1

¿Cuál es exactamente el criterio para "codificado en ASCII" aquí? ¿Solo que deben ser caracteres de 8 bits con el bit alto sin configurar? ¿Se permiten caracteres no imprimibles?

WikipediaAcceso Wi-Fi Protegidodice que la frase de contraseña WPA-PSK es 8 a 63caracteres ASCII imprimibles, e incluye esta referencia como nota a pie de página:

Cada carácter de la frase de contraseña debe tener una codificación en el rango de 32 a 126 (decimal), inclusive. (IEEE Std. 802.11i-2004, Anexo H.4.1) El carácter de espacio está incluido en este rango.

Ahora que lo pienso... ¿Tiene algún sentido mi enfoque de generar aleatoriamente una frase de contraseña? ¿Sería mejor simplemente generar 64 bytes aleatorios y usarlos como clave?

Creo que seguiré generando 256 bits usando un RNG seguro...

¿Su enrutador inalámbrico y todos los dispositivos que desea conectar a su red inalámbrica le permiten ingresar manualmente la clave WPA-PSK con 64 caracteres hexadecimales? De lo contrario, es posible que deba utilizar una frase de contraseña ASCII para poder ingresarla en todos sus dispositivos.

Respuesta2

Dehttp://www.xs4all.nl/~rjoris/wpapsk.html- "Cálculo de la clave WPA - De la frase de contraseña a la clave hexadecimal Detalles del cálculo":

Para el cifrado WPA-PSK, la clave binaria se deriva de la frase de contraseña según la siguiente fórmula:

La función PBKDF2 es un método estandarizado para derivar una clave a partir de una frase de contraseña. Se especifica en RFC2898 con una explicación clara sobre cómo calcularlo. La función necesita una función pseudoaleatoria subyacente. En el caso de WPA, la función subyacente es HMAC-SHA1. SHA1 es una función que calcula un hash de 160 bits a partir de una cantidad arbitraria de datos de entrada. Se explica claramente en RFC3174. HMAC es un método estandarizado para convertir una función hash criptográfica en una función de autenticación de mensajes con clave. Está especificado en RFC2104.

En resumen, el proceso de derivación de claves implica iterar una función HMAC-SHA1 4096 veces y luego volver a hacerlo para producir más bits de clave. La cantidad de cálculo involucrado es equivalente a calcular el hash SHA1 en 1 MByte de datos. Quizás eso explique por qué el Javascript de esta página es tan lento.

En cuanto a su pregunta: 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?Cualquiera de los dos sería muy seguro, siempre que utilice todo tipo de símbolos, números y caracteres alfabéticos aleatorios en su frase de contraseña de bytes aleatorios. A mi modo de ver: ambos (generados o aleatorios) seríanimposibleadivinar/hackear...

información relacionada