2012-03-06 20 views
10

Para un dispositivo incrustado en desarrollo, tenemos un requisito para iniciar sesión en su web sin enviar credenciales de usuario en texto claro.Dispositivo incorporado habilitado para web SSL

El aspecto del formulario de inicio de sesión debe ser personalizable, por lo que no es posible la autenticación resumida. La única opción restante, tal como la vemos, es usar HTTPS con SSL.

Por lo general, se accede al dispositivo desde la red local por su dirección IP, pero también se puede acceder desde Internet.

Mi pregunta es: ¿es posible evitar la advertencia del navegador "No se puede certificar", cuando no se asigna un nombre DNS al dispositivo al que se accede localmente? Según lo veo, un certificado SSL debe estar vinculado a un nombre DNS y certificado en una autoridad de certificación para que el navegador acepte completamente el certificado.

Soy plenamente consciente del hecho de que sin una certificación certificada, el navegador no puede autenticar el servidor web, lo que podría conducir a un ataque de "man-in-the-middle".

Cuando el dispositivo está completamente configurado, solo se accede muy raramente, pero debe ser de fácil acceso.

+0

Si tiene las huellas dactilares del certificado de antemano (que solo es manejable para un puñado de dispositivos), puede verificarlas cuando se presente con el certificado autofirmado. Si coinciden, es su dispositivo bien. – Piskvor

+0

@Piskvor tener un certificado de CA y emitir certificados de dispositivos personalizados sería más fácil desde el punto de vista de la administración: el cliente necesitaría instalar/confiar solo en un certificado de CA. –

+1

@Eugene Mayevski 'EldoS Corp: Sería muy reacio a instalar el certificado de CA de un fabricante de hardware de red, que solo muestra una inmensa bandera roja y grita "MITM" (Como usted sabe, cualquier CA confiable puede emitir certificados para cualquier sitio web, y el navegador los va a confiar). – Piskvor

Respuesta

7

HTTPS permite que se emita un certificado a una dirección IP en lugar de un nombre de host. De hecho, la especificación HTTPS (RFC 2818) establece "En algunos casos, el URI se especifica como una dirección IP en lugar de un nombre de host. En este caso, el tema iPAddressAltName debe estar presente en el certificado y debe coincidir exactamente con la IP en el URI "

Por lo tanto, si puede obtener un certificado SSL/TLS de una CA que está vinculada a la dirección IP de su dispositivo, los clientes que se conectan deben aceptarlo como válido (1) el URI utilizado para acceder al dispositivo es la dirección IP que coincide con la que figura en el certificado, y (2) el certificado es emitido por una cadena de CA de confianza del dispositivo cliente.

Si solo necesita acceder a este dispositivo utilizando los clientes que controla, puede usar un autofirma, vinculado a la dirección IP, certificado que genera, pero deberá configurar cada cliente que lo accederá a Confíe explícitamente en ese certificado ya que no sería emitido por una CA confiable.

+0

OK. Vamos a enviar un montón de dispositivos, principalmente para que se pueda acceder a ellos en una red local con direcciones IP locales. Así que, como lo veo, no es posible evitar que el navegador advierta, salvo que configure manualmente el certificado como confiable en el navegador, ya que el navegador no tiene forma de autenticar el certificado autofirmado. – Munk

+0

¿Los enrutadores y otros equipos de red con interfaz web también usan un certificado autofirmado cuando SSL está habilitado? – Munk

+6

(1) Estoy de acuerdo. (2) La práctica común es enviar un certificado autofirmado para la interfaz web (que generará una advertencia desde la conexión de un navegador) y permitir la carga de un certificado diferente por parte del administrador del dispositivo. Por lo tanto, la persona responsable del dispositivo puede aceptar la advertencia o cargar su propio certificado de confianza. – jeffsix

Cuestiones relacionadas