es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Certificados SSL efímeros para la aplicación Electron

Actualmente estoy desarrollando una aplicación Electron en la que un proceso WebView se comunica a través de HTTPS con un proceso Node.js local generado desde la misma aplicación Electron.

Debido a que la aplicación tiene control sobre la URL cargada en el proceso WebView, así como el contenido HTML que se está mostrando, no estoy preocupado por los ataques del hombre en el medio. Además, el proceso WebView es el único cliente que accede a este servidor en cualquier momento dado.

Solo me preocupa el espionaje pasivo.

Por esta razón, necesito que mi proceso de servidor Node.js sirva contenido a través de HTTPS.

Mis opciones son:

  1. Generar un certificado autofirmado y una clave privada y distribuirlos con mi aplicación: esto compromete la clave privada, así que no estoy contento con esto.
  2. Imponer la Perfecta Secrencia Adelantada sobre #1, pero no estoy seguro de cómo hacerlo.
  3. Generar un certificado/clave efímero al azar en tiempo de ejecución, solo para la sesión. Para esto, necesitaría alguna API incorporada de Node.js, en lugar de CLI.

Gracias de antemano por cualquier idea o sugerencia.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en node.js, ssl, openssl y electron, sugiero optar por la opción 3: generar un certificado / clave efímero aleatorio en tiempo de ejecución para cada sesión. Este enfoque es más seguro que usar un certificado autofirmado y garantiza que la clave privada no esté comprometida.

    Para generar un certificado / clave efímero en tiempo de ejecución, puede usar la API incorporada de Node.js llamada tls.createSecureContext(). Esta función le permite generar un contexto seguro con una clave y un certificado generados aleatoriamente, que luego puede usar para crear un servidor seguro utilizando la función https.createServer().

    Para hacer cumplir la perfecta secreción hacia adelante, puede utilizar la función tls.createDiffieHellmanGroup() para generar un intercambio de claves Diffie-Hellman. Esto asegura que cada sesión utilice una clave única para la encriptación, lo que dificulta que un atacante descifre el tráfico si lo interceptaran.

    En general, el uso de un certificado / clave efímero aleatorio y la aplicación de la perfecta secreción hacia adelante puede proporcionar un alto nivel de seguridad para la comunicación HTTPS de su aplicación Electron.

Comments are closed.