Estoy construyendo un dispositivo basado en Raspberry Pi para jardineros de jardín que tiene una página web y un punto de acceso para la configuración inicial, incluida la configuración de Wi-Fi. La conexión utiliza WPA2 y los únicos dos dispositivos en esa red interna serían el dispositivo en sí y el teléfono / tableta / computadora portátil del usuario. El punto de acceso solo es visible durante la configuración, lo que reduce la probabilidad de que los atacantes externos puedan adivinar la contraseña aleatoria, enviada de fábrica. Así que he encriptado el tráfico, casi con seguridad solo dos nodos, por un corto tiempo, y una contraseña aleatoria. Por lo tanto, no hay necesidad de HTTPS que pueda ver, y había planeado ejecutar HTTP.
Sin embargo, hoy supe que a partir de julio Chrome comenzará a marcar todos los sitios HTTP como inseguros. [1] Pero debido a que la configuración de Wi-Fi se realizará por punto de acceso, aún no hay acceso a Internet disponible para verificar los certificados TLS, lo que entiendo es necesario para un funcionamiento adecuado. [2] Podría autofirmar el certificado, pero eso presenta otros problemas. [3]
Entonces mis opciones parecen ser:
- Presente la página de configuración con un mensaje grande y aterrador, "Este sitio web no es seguro"
- Presente la página de configuración con un mensaje grande y aterrador, "Este certificado no es confiable" (por ejemplo, autofirmado)
¿Cómo proporcionaría ese hermoso bloqueo verde de forma predeterminada para una página de configuración del dispositivo?
[1] https://www.theverge.com/2018/2/8/16991254/chrome-not-secure-marked-http-encryption-ssl
[3] https://www.globalsign.com/en/ssl-information-center/dangers-self-signed-certificates/
Respuestas:
Una opción posible es usar HTTPS y enviar un certificado real en el dispositivo:
Dado que usted controla el punto de acceso, presumiblemente controla el servidor DHCP en el punto de acceso, por lo que puede hacer que proporcione una dirección de servidor DNS al mismo tiempo.
Este servidor DNS puede estar en el AP y puede resolver un nombre de host totalmente calificado para que se señale a sí mismo.
Luego puede comprar un certificado para ese nombre de dominio totalmente calificado y combinarlo con el producto para crear una conexión HTTPS totalmente verificada.
Un gran problema con esta idea es que está enviando la clave privada y el certificado para ese nombre de dominio, por lo que debe asumir que se verá comprometido en algún momento, por lo que nunca debe colocar una máquina real (es posible que deba ejecutar una máquina con esto nombre por un tiempo muy corto para obtener realmente el certificado) en Internet que usa ese nombre de host ya que los atacantes podrían falsificarlo fácilmente.
Además, el firmware para el AP tendría una vida limitada ya que el certificado caducará (probablemente después de un año por defecto, iirc), entonces obtendría advertencias desagradables del certificado caducado.
Siguiente idea:
Elimine el modo de punto de acceso WiFi y use Bluetooth, por ejemplo
https://www.hardill.me.uk/wordpress/2016/09/13/provisioning-wifi-iot-devices/
La desventaja es que Apple actualmente no es compatible con WebBluetooth, pero Chrome en Windows / Linux / Mac sí y podría enviar una aplicación iOS nativa para usuarios de teléfonos / tabletas Apple.
fuente