Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

326
Vistas
¿Cómo almacenar correctamente los secretos de usuario en una aplicación frontend?

Estoy creando una aplicación web donde los datos del usuario están encriptados de extremo a extremo.

El cliente web obviamente necesita un secreto que nadie más conozca para que funcione el cifrado de extremo a extremo.

He planeado que el usuario elija una contraseña y luego obtenga una clave de cifrado a partir de ella.

Actualmente, el usuario tiene que ingresar su contraseña nuevamente, una vez que vuelve a cargar mi aplicación de una sola página, ya que el secreto no se almacena en el disco, porque almacenarlo en el almacenamiento local probablemente sea malo desde el punto de vista de la seguridad.

En una aplicación nativa, usaría algo como el llavero para almacenar de forma segura esos secretos. ¿Qué usaría en la web?

Sé que existe la API de administración de credenciales , esto no funciona para mí porque Safari en iOS no lo admite.

¿Cuáles son las mejores prácticas para almacenar secretos de usuario en el dispositivo desde una aplicación web? (Preferiblemente sin interacción del usuario al recuperar la contraseña almacenada)

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Si desea habilitar el cifrado de extremo a extremo dentro del navegador, es posible hacerlo a través de javascript (aunque no completamente, debido a las siguientes razones).

Proton mail afirma que tiene el cifrado de extremo a extremo habilitado en su servicio y es posible a través de un archivo Javascript que el servidor comparte con el cliente (usuario final).

Sin embargo, un investigador cuestionó que no está completamente encriptado de extremo a extremo. Explica que si el servidor está comprometido y el servidor envía un javascript malicioso al cliente, el servidor puede leer toda su clave privada. Puede leer más sobre el blog y el documento de investigación y la discusión aquí:

  • https://eprint.iacr.org/2018/1121.pdf
  • https://www.reddit.com/r/ProtonMail/comments/9yqxkh/an_analysis_of_the_protonmail_cryptographic/

Este blog muestra cómo es posible crear una clave usando JavaScript a la que el servidor no puede acceder, pero el desafío aquí es que comparte la URL con el usuario final a través de un canal diferente.

  • https://blog.excalidraw.com/cifrado de extremo a extremo/

Solución posible:

Podemos permitir que el cliente genere una clave privada localmente y almacene la clave pública asociada a ella en el servidor. Sin embargo, para descifrar el mensaje, requerirá la clave privada nuevamente. Para esto, podemos hacer uso de extensiones de navegador que almacenarán las claves privadas y decodificarán los mensajes sobre la marcha (lado del cliente).

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda