8

Я думал о генерации парольной фразы WPA-PSK, и я вижу в справочной странице OpenBSD для wpa-psk(8):

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

Что именно является критерием для «ASCII-кодирования» здесь? Просто они должны быть 8-битными символами с неустановленным старшим битом? Разрешены ли непечатные символы?

Подумать об этом... Имеет ли смысл мой подход случайной генерации ключевой фразы? Было бы лучше просто сгенерировать 64 случайных байта и использовать их в качестве ключа?

2 ответа2

11

> Что именно является критерием для «ASCII-кодирования» здесь?Просто они должны быть 8-битными символами с неустановленным старшим битом? Разрешены ли непечатные символы?

Защищенный доступ Wi-Fi в Википедии гласит, что пароль WPA-PSK содержит от 8 до 63 печатаемых символов ASCII и включает эту ссылку в качестве сноски:

Каждый символ в парольной фразе должен иметь кодировку в диапазоне от 32 до 126 (десятичное число) включительно. (IEEE Std. 802.11i-2004, Приложение H.4.1)
Символ пробела входит в этот диапазон.

> Давай думать об этом ...Имеет ли смысл мой подход случайной генерации ключевой фразы? Было бы лучше просто сгенерировать 64 случайных байта и использовать их в качестве ключа?

> Я думаю, что я все еще буду генерировать 256 бит, используя безопасный RNG ...

Позволяет ли беспроводной маршрутизатор и каждое устройство, которое вы хотите подключить к беспроводной сети, вручную ввести ключ WPA-PSK в виде 64 шестнадцатеричных символов? Если нет, то вам, возможно, придется использовать кодовую фразу ASCII, чтобы иметь возможность вводить ее на всех ваших устройствах.

1

От http://www.xs4all.nl/~rjoris/wpapsk.html - «Расчет ключа WPA - От парольной фразы до шестнадцатеричного ключа Подробности расчета»:

Для шифрования WPA-PSK двоичный ключ извлекается из ключевой фразы в соответствии со следующей формулой:

Функция PBKDF2 - это стандартизированный метод получения ключа из ключевой фразы. Это указано в RFC2898 с четким объяснением того, как его вычислять. Функция нуждается в базовой псевдослучайной функции. В случае WPA основной функцией является HMAC-SHA1. SHA1 - это функция, которая вычисляет 160-битный хэш из произвольного количества входных данных. Это ясно объяснено в RFC3174. HMAC - это стандартизированный метод превращения криптографической хеш-функции в функцию аутентификации сообщения с ключом. Это указано в RFC2104.

Подводя итог, можно сказать, что процесс вывода ключа включает в себя итерацию функции HMAC-SHA1 4096 раз, а затем повторение этого для получения большего количества битов ключа. Объем вычислений эквивалентен вычислению хэша SHA1 для 1 МБ данных. Возможно, это объясняет, почему Javascript на этой странице такой медленный.

Что касается вашего вопроса: имеет 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? Любой из них будет очень сильным, если вы используете все виды символов, чисел и случайных символов алфавита в вашей парольной фразе случайных байтов. Как я смотрю на это: их обоих (сгенерированных или случайных) было бы невозможно угадать / взломать ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .