
wpa_passphrase
crea información de inicio de sesión de red para wpa_supplicant.conf
.
wpa_supplicant
toma una opción -e
para almacenar entropía entre reinicios.
Entiendo la entropía almacenada internamente como una forma de hacer conexiones másseguro, porque es difícil para un atacante adivinarlo correctamente.
La opción -e
funciona muy bien cuando llamo manualmente wpa_supplicant
, pero Raspberry Pi ya invoca el wpa_supplicant
servicio al inicio y me gustaría conservarlo.
- ¿Dónde está el almacén de entropía predeterminado en RasPi (que ejecuta Raspbian GNU/Linux 11)?
- ¿En qué parte del RPi puedo configurar esa ubicación para el
wpa_supplicant
servicio? - ¿Puedo hacerlo en
/etc/wpa_supplicant/wpa_supplicant.conf
?
Respuesta1
wpa_passphrase crea información de inicio de sesión de red para wpa_supplicant.conf. wpa_supplicant toma una opción -e para almacenar entropía entre reinicios.
Estos dos no tienen nada que ver el uno con el otro. La información almacenada en wpa_supplicant.conf es determinista: el parámetro "psk=" es estrictamente solo un hash PBKDF2 de su frase de contraseña y el SSID de la red.
La entropía (datos aleatorios) se necesita más adelante, durante cada protocolo de enlace de autenticación, donde ambos
Entiendo la entropía almacenada internamente como una forma de hacer que las conexiones sean más seguras, porque es difícil para un atacante adivinarla correctamente.
Sí, pero hay un poco más en la historia que eso.
En la mayoría de los sistemas Linux, los programas pueden simplementepregunta al sistema operativopara datos aleatorios de alta calidad, por ejemplo, leyendo desde el dispositivo virtual /dev/[u]random o usando la llamada al sistema getentropy(). El motivo por el que wpa_supplicant tiene su propio almacenamiento interno es más específico, como se describe a continuación.
¿Dónde está el almacén de entropía predeterminado en RasPi (que ejecuta Raspbian GNU/Linux 11)?
La función de datos aleatorios proporcionada por el sistema operativo no tiene un "almacén de entropía" permanente de forma predeterminada: el grupo de entropía se inicializa de nuevo en cada arranque, utilizando datos de varias fuentes de hardware.
Pero el problema surge cuando la plataforma de hardware no tiene buenas fuentes para recolectar entropía (por ejemplo, una Raspberry Pi no tiene un reloj en tiempo real; muchos puntos de acceso basados en Linux son pequeños SoC con pocas entradas externas). , en cuyo caso la inicialización del grupo de entropía podría tardar un poco más.largotiempo. Algunas distribuciones de Linux agregan un archivo de "almacén de entropía" en todo el sistema operativo para ese propósito (generalmente en algún lugar de /var/lib), lo que permite que los programas continúen usando /dev/[u]random en dichos sistemas.
(Esto era especialmente un problema con las versiones anteriores de Linux, donde /dev/random y /dev/urandom funcionaban de manera diferente: leer desde el primero agotaría rápidamente el "grupo de entropía" del sistema operativo, obligando a los programas a esperar, mientras que el segundo podría proporcionar baja datos aleatorios de calidad si se leen demasiado pronto.)
Entonces, el grupo de entropía interno de wpa_supplicant y las opciones de "archivo de entropía" son específicamente para uso en sistemas quenotener un grupo de entropía funcional para todo el sistema operativo, como SoC baratos basados en MIPS. (wpa_supplicant proviene del proyecto "hostapd" que se usa para construir puntos de acceso). Generalmente no es necesario usar la -e
opción en sistemas Linux normales.
Además, si está ejecutando una distribución de Linux basada en systemd en su Raspberry Pi, ya usa /var/lib/systemd/random-seed para ayudar con la inicialización del grupo de entropía del sistema operativo en el inicio (y probablemente esté ejecutando un kernel reciente con mejoras). a la colección de entropía también).
¿En qué parte del RPi puedo configurar esa ubicación para el servicio wpa_supplicant?
Tu configuras las opcionesenel servicio wpa_supplicant.
Si está ejecutando Linux con systemd, utilice systemctl cat
para ver la definición del servicio; la ExecStart=
línea específicamente. Según la distribución, existen dos opciones:
A veces, la línea de comando configurada incluirá una variable como
$WPA_ARGS
. Esto proviene de un archivo especificado en una configuración EnvironmentFile= en la misma definición de servicio (comúnmente ubicado en /etc/default/ o /etc/sysconfig/), así que edite ese archivo y ejecutesystemctl daemon-reload
.A veces no es así y todas las opciones se definen directamente en el parámetro ExecStart=. En este caso, ejecute
systemctl edit --full wpa_supplicant
para editarlo directamente: su archivo de servicio personalizado se almacenará en /etc/systemd/system/ para anular el de distribución.