WLAN: So konfigurieren Sie die Entropiedatei in wpa_supplicant.conf

WLAN: So konfigurieren Sie die Entropiedatei in wpa_supplicant.conf

wpa_passphraseerstellt Netzwerkanmeldeinformationen für wpa_supplicant.conf. wpa_supplicantverwendet eine Option -ezum Speichern der Entropie über Neustarts hinweg.

Ich verstehe intern gespeicherte Entropie als eine Möglichkeit, Verbindungensicher, da es für einen Angreifer schwierig ist, es richtig zu erraten.

Die Option -efunktioniert gut, wenn ich sie manuell aufrufe wpa_supplicant, aber Raspberry Pi ruft den wpa_supplicantDienst bereits beim Start auf, und das möchte ich beibehalten.

  • Wo ist der Standard-Entropiespeicher auf dem RasPi (mit Raspbian GNU/Linux 11)?
  • Wo im RPi kann ich diesen Speicherort für den wpa_supplicantDienst konfigurieren?
  • Kann ich das in tun /etc/wpa_supplicant/wpa_supplicant.conf?

Antwort1

wpa_passphrase erstellt Netzwerkanmeldeinformationen für wpa_supplicant.conf. wpa_supplicant verwendet die Option -e, um die Entropie über Neustarts hinweg zu speichern.

Diese beiden haben nichts miteinander zu tun. Die in wpa_supplicant.conf gespeicherten Informationen sind deterministisch – der Parameter „psk=“ ist streng genommen nur ein PBKDF2-Hash Ihrer Passphrase und der Netzwerk-SSID.

Entropie (Zufallsdaten) wird später benötigt – bei jedem Authentifizierungs-Handshake, bei dem beide

Ich verstehe die intern gespeicherte Entropie als eine Möglichkeit, Verbindungen sicherer zu machen, da es für einen Angreifer schwierig ist, sie richtig zu erraten.

Ja, aber die Geschichte hat noch etwas mehr zu bieten.

In den meisten Linux-Systemen können Programme einfachFragen Sie das Betriebssystemfür qualitativ hochwertige Zufallsdaten, z. B. durch Lesen vom virtuellen Gerät /dev/[u]random oder durch Verwendung des Systemaufrufs getentropy(). Der Grund dafür, dass wpa_supplicant seinen eigenen internen Speicher hat, ist spezifischer und wird unten beschrieben.

Wo ist der Standard-Entropiespeicher auf dem RasPi (mit Raspbian GNU/Linux 11)?

Die vom Betriebssystem bereitgestellte Zufallsdatenfunktion verfügt standardmäßig nicht über einen permanenten „Entropiespeicher“ – der Entropiepool wird bei jedem Systemstart mithilfe von Daten aus verschiedenen Hardwarequellen neu initialisiert.

Das Problem entsteht jedoch, wenn die Hardwareplattform keine guten Quellen hat, aus denen Entropie gesammelt werden kann (z. B. hat ein Raspberry Pi keine Echtzeituhr; viele Linux-basierte Access Points sind winzige SoCs mit wenigen externen Eingängen). In diesem Fall kann die Initialisierung des Entropiepools eine Weile dauern.langZeit. Einige Linux-Distributionen fügen zu diesem Zweck eine betriebssystemweite „Entropiespeicher“-Datei hinzu (normalerweise irgendwo in /var/lib), sodass Programme auf solchen Systemen weiterhin /dev/[u]random verwenden können.

(Dies war insbesondere bei älteren Linux-Versionen ein Problem, bei denen /dev/random und /dev/urandom unterschiedlich funktionierten – das Lesen von ersterem erschöpfte den „Entropiepool“ des Betriebssystems schnell und zwang Programme zum Warten, während letzteres bei zu frühem Lesen zufällige Daten von geringer Qualität liefern konnte.)

Der interne Entropiepool von wpa_supplicant und die Optionen für die „Entropiedatei“ sind daher speziell für den Einsatz in Systemen gedacht, dienichtverfügen über einen funktionierenden betriebssystemweiten Entropiepool, wie etwa günstige SoCs auf MIPS-Basis. (wpa_supplicant stammt aus dem Projekt „hostapd“, das zum Erstellen von Zugriffspunkten verwendet wird.) -eAuf normalen Linux-Systemen müssen Sie diese Option im Allgemeinen nicht verwenden.

Wenn Sie auf Ihrem Raspberry Pi eine systemd-basierte Linux-Distribution ausführen, verwendet diese außerdem bereits /var/lib/systemd/random-seed, um die Initialisierung des Entropiepools des Betriebssystems beim Start zu unterstützen (und wahrscheinlich läuft auch ein aktueller Kernel mit Verbesserungen bei der Entropiesammlung).

Wo im RPi kann ich diesen Speicherort für den wpa_supplicant-Dienst konfigurieren?

Sie konfigurieren die OptionenInder wpa_supplicant-Dienst.

Wenn Sie Linux mit systemd ausführen, sehen Sie sich systemctl catdie Servicedefinition an, ExecStart=genauer gesagt die Zeile. Je nach Distribution gibt es zwei Möglichkeiten:

  • Manchmal enthält die konfigurierte Befehlszeile eine Variable wie $WPA_ARGS. Diese stammt aus einer Datei, die in einer EnvironmentFile=-Einstellung in derselben Dienstdefinition angegeben ist (normalerweise in /etc/default/ oder /etc/sysconfig/). Bearbeiten Sie daher diese Datei und führen Sie aus systemctl daemon-reload.

  • Manchmal ist dies nicht der Fall und alle Optionen werden direkt im Parameter ExecStart= definiert. In diesem Fall führen Sie systemctl edit --full wpa_supplicantdie Bearbeitung direkt aus – Ihre angepasste Servicedatei wird in /etc/systemd/system/ gespeichert und überschreibt die Distributionsdatei.

verwandte Informationen