¿Cómo permito que los sitios web llamen a mi aplicación de escritorio a través de HTTPS?

3

Estoy creando una aplicación de escritorio. Me gustaría que los sitios web puedan comunicarse con la aplicación a través de HTTPS. La idea general es que un sitio web podría ejecutar una llamada JSONP a https://127.0.0.1:8844 y enviar datos a la aplicación de escritorio.

El problema es que la mayoría de los navegadores más nuevos no te permiten ejecutar una llamada en segundo plano a un sitio HTTPS no reconocido por la autoridad, por lo que mi certificado autofirmado evita que los navegadores llamen a mi aplicación.

La solución en la que pensé es registrar local.myapp.com , señalarlo a 127.0.0.1 y hacer que una autoridad de certificación firme el certificado correspondiente. Lo bueno es que la aplicación es de código abierto, por lo que tendré que distribuir el certificado / clave a todos los clientes.

¿Cuáles son las implicaciones de seguridad de tener esta información completamente a la vista? ¿Hay otra forma de permitir que los navegadores modernos envíen datos a una aplicación de escritorio?

    
pregunta andrew 21.03.2014 - 19:10
fuente

2 respuestas

1

Dejando de lado las implicaciones de seguridad por un minuto, parece que esto es una mala idea o simplemente no funcionará en muchas situaciones.

Mi solución, que apesta pero no es el fin del mundo, es crear extensiones de navegador para comunicarse entre la aplicación y el navegador. De esta manera, la extensión puede recopilar información sobre la página actual, ya sea http o https, y enviarla a través de http a la aplicación de escritorio mediante ajax.

    
respondido por el andrew 22.03.2014 - 00:23
fuente
0

La investigación utilizando CORS primero en lugar de JSONP, es mucho más fácil de usar, más segura y más confiable como Puedes hacer el manejo de errores con jQuery. El soporte es irregular para IE8 e IE9 pero todos los demás navegadores principales funcionan bien. El código de backend de su servidor web solo necesita enviar algunos encabezados HTTP y comienza a trabajar con las solicitudes regulares de AJAX.

Si desea que los navegadores acepten un certificado autofirmado antes de que utilicen su servicio, primero deben escribir manualmente la IP del servidor en la barra de direcciones del navegador web. Primero emitirá una gran advertencia de miedo injustificada, de modo que verifique manualmente los hashes del certificado contra los hashes del certificado real y luego almacene la excepción (confíe en el certificado). Alternativamente, puede exportar el certificado desde el servidor a un archivo, luego los usuarios pueden cargar el archivo de certificado manualmente en el almacén de confianza del navegador que se encuentra en la configuración / preferencias del navegador.

Recibir un certificado autofirmado directamente del operador del sitio web (por ejemplo, en persona) y luego almacenarlo en la memoria caché de su navegador es mucho más seguro que confiar en un tercero como una "Autoridad de certificación" para firmarlo Esto prácticamente elimina los ataques MITM activos y los problemas con las CA comprometidas al firmar certificados falsos. Sin embargo, para que esto funcione, también deberá limpiar su navegador de todas las autoridades de certificados de aceite de serpiente firmadas previamente, de modo que solo el certificado autofirmado sea de confianza. Si los deja allí, entonces un atacante con acceso a uno de los saltos del enrutador a su servidor (piense que la agencia de inteligencia) puede interceptar su conexión, crear un certificado falso sobre la marcha, presentarle el certificado falso firmado por el CA comprometido en el que su navegador ya confía, entonces MITM activa su conexión, lo que lo deja completamente inconsciente, a menos que, por supuesto, verifique manualmente los detalles de la conexión y se dé cuenta de que Verisign no firmó su certificado autofirmado. eliminado del navegador, y su firma firmada confía explícitamente que esto ya no es posible y recibirá una advertencia de miedo legítima si el certificado cambia.

Visualización obligatoria: Moxie Marlinspike y el futuro de la autenticidad.

    
respondido por el NDF1 02.05.2014 - 04:16
fuente

Lea otras preguntas en las etiquetas