Cifrado PGP para la aplicación basada en servidor

1

Aquí está el contexto:

Estoy usando PGP para cifrar mensajes en una aplicación web de chat. Después de leer algunos artículos, tengo una breve idea de cómo funciona PGP y aquí es cómo lo estoy haciendo con openPGPJs :

  • Client (navegador web) genera el public/private key-pairs y envía una clave pública al servidor para almacenarlo.
  • El remitente usa public key del receptor para cifrar los datos y enviarlos.
  • El receptor usa su propio private key para descifrar el mensaje.

Como una aplicación de chat, necesito almacenar todos los mensajes y descifrarlos cuando el usuario quiera ver un mensaje antiguo. El descifrado de mensajes necesita la clave privada. Aquí el cliente es un navegador web que no puede almacenar las claves privadas por mucho tiempo ni puede mantenerlas seguras. Así que decidí guardar la clave privada en el servidor web. Ahora el cliente (navegador web) solicita al servidor la clave privada siempre que sea necesario descifrar el mensaje.

Considerando PGP como un protocolo de extremo a extremo, el almacenamiento de la clave privada en el servidor es vulnerable. mi pregunta es:

  • ¿Cómo funciona el cifrado PGP para aplicaciones basadas en la web donde el cliente no puede mantener private key seguro y confidencial?

  • ¿Está bien almacenar private key en el servidor?

  • ¿Hay alguna manera mejor de hacer esto?

Gracias por cualquier sugerencia.

    
pregunta Suraj 12.08.2017 - 20:44
fuente

1 respuesta

0

He estado trabajando en algo similar para firmar mensajes. La respuesta corta es: solo se admite en Chrome, pero el futuro no es brillante.

Puede hacerlo utilizando la API del sistema de archivos . Sin embargo, el problema es: esto no se está estandarizando con el soporte de w3c, para cualquier otro navegador que no sea Chrome , y es totalmente posible que una secuencia de comandos no autorizada pueda acceder a la API del sistema de archivos y robar su clave.

Finalmente abandoné el proyecto. Sería prudente reconsiderar en qué estás trabajando. CryptoCat ya resolvió el problema del chat seguro del navegador ...

EDIT :

Parece que Crypto Cat se reescribió en 2016 y ahora tiene versiones para PC. Hay un repo heredado de crypto-cat que parece tener el código CryptoCat original.

    
respondido por el DrDamnit 12.08.2017 - 23:15
fuente

Lea otras preguntas en las etiquetas