WLAN: как настроить файл энтропии в wpa_supplicant.conf

WLAN: как настроить файл энтропии в wpa_supplicant.conf

wpa_passphraseсоздает информацию для входа в сеть wpa_supplicant.conf. wpa_supplicantпринимает опцию -eсохранения энтропии между перезапусками.

Я понимаю, что внутренне сохраненная энтропия — это способ сделать связи болеебезопасный, поскольку злоумышленнику сложно его правильно угадать.

Эта опция -eотлично работает, когда я вызываю ее вручную wpa_supplicant, но Raspberry Pi вызывает wpa_supplicantслужбу уже при запуске, а я хотел бы это сохранить.

  • Где находится хранилище энтропии по умолчанию на Raspbian GNU/Linux 11?
  • Где в RPi я могу настроить это местоположение для wpa_supplicantсервиса?
  • Могу ли я сделать это в /etc/wpa_supplicant/wpa_supplicant.conf?

решение1

wpa_passphrase создает информацию для входа в сеть для wpa_supplicant.conf. wpa_supplicant принимает опцию -e для сохранения энтропии между перезапусками.

Эти два параметра не имеют ничего общего друг с другом. Информация, хранящаяся в wpa_supplicant.conf, является детерминированной – параметр "psk=" – это просто хэш PBKDF2 вашей парольной фразы и сетевого SSID.

Энтропия (случайные данные) понадобится позже – во время каждого рукопожатия аутентификации, где оба

Я понимаю, что внутренняя энтропия позволяет сделать соединения более безопасными, поскольку злоумышленнику сложно ее правильно угадать.

Да, но в этой истории есть нечто большее.

В большинстве систем Linux программы могут простоспросите ОСдля высококачественных случайных данных, например, путем чтения из виртуального устройства /dev/[u]random или с помощью системного вызова getentropy(). Причина, по которой wpa_supplicant имеет собственное внутреннее хранилище, более конкретна, как описано ниже.

Где находится хранилище энтропии по умолчанию на Raspbian GNU/Linux 11?

Функция случайных данных, предоставляемая ОС, по умолчанию не имеет постоянного «хранилища энтропии» — пул энтропии инициализируется заново при каждой загрузке, используя данные из различных аппаратных источников.

Но проблема возникает, когда у аппаратной платформы нет хороших источников для сбора энтропии (например, у Raspberry Pi нет часов реального времени; многие точки доступа на базе Linux представляют собой крошечные SoC с небольшим количеством внешних входов), и в этом случае инициализация пула энтропии может занятьдлинныйвремя. Некоторые дистрибутивы Linux добавляют для этой цели общесистемный файл «хранилища энтропии» (обычно где-то в /var/lib), что позволяет программам продолжать использовать /dev/[u]random в таких системах.

(Это было особенно актуально в старых версиях Linux, где /dev/random и /dev/urandom работали по-разному — чтение из первого быстро истощало «пул энтропии» ОС, заставляя программы ждать, в то время как второе могло предоставлять случайные данные низкого качества, если считывалось слишком рано.)

Таким образом, внутренний пул энтропии wpa_supplicant и параметры «файла энтропии» предназначены специально для использования в системах, которыенеиметь функционирующий пул энтропии для всей ОС, например, дешевые SoC на базе MIPS. (wpa_supplicant взят из проекта «hostapd», который используется для создания точек доступа.) Обычно вам не нужно использовать эту -eопцию в обычных системах Linux.

Кроме того, если вы используете на своем Raspberry Pi дистрибутив Linux на основе systemd, он уже использует /var/lib/systemd/random-seed для инициализации пула энтропии ОС при запуске (и, вероятно, он также использует последнее ядро ​​с улучшениями в сборе энтропии).

Где в RPi я могу настроить это местоположение для службы wpa_supplicant?

Вы настраиваете параметрывслужба wpa_supplicant.

Если вы используете Linux с systemd, используйте systemctl catдля просмотра определения сервиса; ExecStart=в частности, строки. В зависимости от дистрибутива есть два варианта:

  • Иногда настроенная командная строка будет включать переменную, такую ​​как $WPA_ARGS. Она берется из файла, указанного в настройке EnvironmentFile= в том же определении службы (обычно расположенном в /etc/default/ или /etc/sysconfig/), поэтому отредактируйте этот файл и запустите systemctl daemon-reload.

  • Иногда это не так, и все параметры определяются непосредственно в параметре ExecStart=. В этом случае запустите, systemctl edit --full wpa_supplicantчтобы редактировать его напрямую – ваш настроенный файл службы будет сохранен в /etc/systemd/system/, чтобы переопределить файл дистрибутива.

Связанный контент