Я думал о создании парольной фразы WPA-PSK и на странице руководства OpenBSD вижу следующее wpa-psk(8)
:
The passphrase must be a sequence of between 8 and 63
ASCII-encoded characters.
Каковы конкретно критерии "ASCII-кодировки" здесь? Только то, что они должны быть 8-битными символами с неустановленным старшим битом? Разрешены ли непечатаемые символы?
Если подумать... Имеет ли смысл мой подход случайной генерации парольной фразы? Будет ли лучше просто сгенерировать 64 случайных байта и использовать их в качестве ключа?
решение1
Каковы конкретно критерии "ASCII-кодировки" здесь? Только то, что они должны быть 8-битными символами с неустановленным старшим битом? Разрешены ли непечатаемые символы?
ВикипедияЗащищенный доступ Wi-Fiговорит, что парольная фраза WPA-PSK — от 8 до 63печатные символы ASCII, и включает эту ссылку в качестве сноски:
Каждый символ в парольной фразе должен иметь кодировку в диапазоне от 32 до 126 (десятичная система) включительно. (IEEE Std. 802.11i-2004, Приложение H.4.1) Символ пробела включен в этот диапазон.
Если подумать... Имеет ли смысл мой подход случайной генерации парольной фразы? Будет ли лучше просто сгенерировать 64 случайных байта и использовать их в качестве ключа?
Думаю, я все же просто сгенерирую 256 бит, используя безопасный ГСЧ...
Позволяет ли ваш беспроводной маршрутизатор и каждое устройство, которое вы хотите подключить к беспроводной сети, вручную вводить ключ WPA-PSK в виде 64 шестнадцатеричных символов? Если нет, то вам, возможно, придется использовать парольную фразу ASCII, чтобы иметь возможность ввести его на всех ваших устройствах.
решение2
От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?
: Любой из них будет очень сильным, если вы используете все виды символов, цифр и случайных букв алфавита в вашей случайной байтовой парольной фразе. Как я смотрю на это: оба они (сгенерированные или случайные) будутневозможныйугадать/взломать...