Как происходит передача пароля роутеру по wifi?

  1. Как происходит первая передача пароля от мобильного устройства роутеру? Шифруется ли пароль?
  2. Предполагаю что пароль шифруется открытым ключем который роутер говорит устройству при подключении?
  3. Если 2 верно, то как мобильное устройство может быть уверено что ей свой открытый ключ сообщил именно нужный роутер, а не какой то поставленный рядом злоумышленником? Ведь данные все передаются "по воздуху" и все их видят и могут сами генерировать.

Ответы (1 шт):

Автор решения: Pak Uula

Если вас интересует схема аутентификации "вообще", то такой нет. В Wi-Fi стандартизированы несколько схем аутентификации. В бытовых роутерах наиболее часто используется схема аутентификации WPA-PSK (она же WPA-Personal). Спецификация называется IEEE 802.11i

В этой спецификации точка доступа и станция (т.е. устройство пользователя) взаимно аутентифицируются только в том случае, если они знают одинаковый общий пароль, так называемый pre-shared key (PSK).

Сразу отвечу на ваши вопросы:

  1. Пароль не передаётся по сети ни в каком виде.
  2. Соответственно, его не требуется шифровать.
  3. Станция (мобильное устройство) сможет корректно взаимодействовать только с той точкой доступа, которая знает пароль и предоставляет сеть с заданным именем. Если враги смогли узнать пароль и раздают сеть с тем же именем, что и правильная точка доступа, то WPA Personal никак не сможет догадаться, что это враги. Мобильное устройство успешно аутентифицируется с такой вражеской точкой доступа.

Более развёрнуто.

Из пароля станция и точка доступа независимо генерируют взаимный мастер-ключ (Pairwise master key, PMK): PMK = PBKDF2(hashFn=HMAC−SHA1, hashKey=passphrase, salt=ssid, rounds=4096, outSize=256) Если по-русски, то для получения ключа стороны 4096 раза хэшируют идентификатор сети криптографической хэш функцией (HMAC), используя бинарное представление пароля как ключ HMAC (схема называется PBKDF2). То есть

Но и этот ключ не передают по сети. Чтобы подтвердить знание секрета, стороны обмениваются случайными числами (nonce-ами) , из которых генерируют взаимный временный ключ (PTK).

Когда мобильное устройство обращается к точке доступа с запросом на аутентификацию, та стартует четырехэтапный аутентификационный обмен (four step handshake). В первом сообщение точка доступа посылает станции случайное число, ANonce. Получив это сообщение станция генерирует своё случайное число, SNonce, и из этих случайных чисел и PMK генерирует PTK: PTK = RANDOM_FN(PMK, ANonce, SNonce, AP_MAC, Station_MAC). То есть PTK есть результат применения псевдо-случайной функции, инициализированной конкатенацией байтовых последовательностей общего ключа, сгенерированного из пароля, случайных чисел, сгенерированных точкой доступа и станцией, и МАС-адресов станции и точки доступа.

И этот ключ тоже не передают по сети. Вместо этого станция формирует сообщение с SNonce и включает в него имитовставку (message integrity code, MIC). В первой версии WPA для вычисления этого кода использовали HMAC-MD5 с ключом PTK, во второй версии стали использовать CCM-MIC, то есть шифруют сообщение шифром AES с ключом PSK и в качестве кода целостности берут последний блок. Точка доступа, получив SNonce, формирует PTK на своей стороне и вычисляет с этим ключом код MIC для полученного сообщения.

Если вычисление дало тот же результат, что и код MIC вычисленный станцией, значит у станции и точки доступа одинаковые ключи PTK. Раз у них одинаковые ключи PTK, значит, у них одинаковые ключи PMK. А раз у них одинаковые ключи PMK, значит, у них одинаковые пароли.

Когда точка доступа убеждается, что у станции тот же пароль, то она формирует третье сообщение и в него вставляет MIС, вычисленный с ключом PTK и установленным битом Install. Тем самым точка доступа подтверждает аутентификацию станции показывает, что она сгенерировала тот же ключ, что и станция.

Четвертым сообщением станция подтверждает аутентификацию точки доступа.

Пароль не пересылается по сети. Вместо этого используются механизмы генерации ключей, которые гарантируют малую вероятность коллизии - то есть генерируются одинаковые ключи, несмотря на разные пароли.

→ Ссылка