¿Cómo mostrar con seguridad algún texto en una página web?

2

Quiero mostrar información muy confidencial en una página web y quiero asegurarme de que nadie, excepto el usuario que está delante del navegador, pueda acceder a esta información. Soy consciente de que, en general, no es una buena idea, pero algunos sitios logran hacerlo. Por ejemplo: LastPass

¿Cuáles son los riesgos de seguridad a considerar?

¿Cómo procederías a implementarlo de manera segura?

Supongamos que la computadora cliente no está comprometida y que el problema del cliente es asegurarse de que nadie más esté mirando por encima de su hombro.

Ahora, si solo vas a responder "NO", no lo hagas. Es claramente posible porque algún sitio lo está haciendo o ¿estás diciendo que todos son inseguros? Si este es el caso, ¿podría explicarnos?

Y, antes de que alguien marque esta pregunta como duplicada, solo hice la misma pregunta aquí pero no recibió ninguna buena respuesta y la pregunta quedó en suspenso, tal vez porque no lo hice t formular la pregunta correctamente.

Además, si algo no está claro en la pregunta, por favor, deje un comentario a continuación y lo responderé.

    
pregunta Gudradain 27.06.2014 - 17:39
fuente

5 respuestas

5

No hay una forma mágica de mostrar el texto de forma segura en una página web. O bien es seguro mostrarlo o no, y en cuál de esos grupos de datos depende su modelo de amenaza. ¿Contra qué amenaza específica quiere protegerse y cuál es el riesgo de que la amenaza se utilice en un ataque? Para contrarrestar el riesgo, ¿cuál es el valor de mostrar los datos al usuario? ¿Es lo suficientemente importante que vean los datos que el valor supera el riesgo?

En el caso de LassPass, toda la aplicación está diseñada para permitirle administrar contraseñas. A veces eso significa que necesita ver las contraseñas en texto plano. Es una característica importante de la aplicación y, por lo tanto, vale la pena el riesgo de que un internauta descubra la contraseña. Para la mayoría de las otras aplicaciones, realmente no hay mucho valor en mostrar una contraseña de texto sin formato al usuario, por lo que mostrarla no compensaría ni siquiera los riesgos pequeños.

Entonces, ¿tiene que decidir si su caso de uso es el valor de mostrar los datos al usuario por encima del riesgo, o no?

Más allá de esto, vale la pena mencionar que hay una tercera vía. Podrías dejarlo en manos del usuario. Puede preguntarles (a través de una casilla de verificación o un enlace, por ejemplo) si quieren los datos que se mostrarán. Luego, depende de ellos determinar si el valor de ver los datos supera no solo el riesgo general, sino también el riesgo específico en ese instante. (Por ejemplo, podrían elegir una opción diferente si usan una computadora en casa frente a un quiosco en un centro comercial lleno de gente). Por lo tanto, podría optar por la opción más segura de no mostrar datos, pero dar al usuario la opción de anular esa opción predeterminada. Sin embargo, siendo realistas, debe haber un valor significativo en la visualización de los datos para que usted pueda visualizarlos en absoluto. Generalmente, en el caso específico de mostrar la contraseña de un usuario en texto plano, ese valor simplemente no existe.

    
respondido por el Xander 27.06.2014 - 18:09
fuente
2

Si realmente no quiere que nadie más que el 'usuario que está delante del navegador' tenga acceso, debe cifrar los datos en reposo (del lado del servidor), así como el canal de comunicación (HTTPS). Necesitaría tener algún tipo de algoritmo de descifrado implementado en el lado del cliente.

Para obtener más información, consulte enlace .

El mismo modelo sería aplicable aquí.

    
respondido por el Tim Brigham 27.06.2014 - 18:05
fuente
2

El uso de SSL, que requiere que toda la página sea SSL y la autenticación del usuario durante la sesión garantiza que solo el navegador que el usuario está utilizando tenga acceso a los datos, pero no tiene forma de asegurarse de que no haya software en el la computadora del usuario que está copiando los datos, ni es realmente su responsabilidad garantizar la integridad de la computadora del cliente en la mayoría de los casos.

Los sitios web casi no tienen control sobre el entorno del cliente, por lo que se ve obligado a confiar en que el navegador que usa el usuario es seguro y se comportará correctamente.

    
respondido por el AJ Henderson 27.06.2014 - 18:37
fuente
1

No hay absolutamente ninguna manera de que usted, el propietario del sitio web, pueda asegurarse de que solo el usuario pueda ver todo lo que su sitio web les muestra. El usuario es una entidad que está completamente fuera de su control y, en la mayoría de los casos, está viendo su sitio en un sistema que está casi igualmente fuera de su control.

La seguridad de la información que se muestra en una página web, una vez que llega a la computadora del usuario, depende completamente de la seguridad de la computadora del usuario y del entorno en el que ésta y sus periféricos residen. No hay forma de que usted, como propietario de un sitio web, pueda controlarlo por completo.

Lo mejor que puede hacer es proteger los datos en sus propios sistemas e implementar mecanismos sólidos de encriptación y autenticación para garantizar que solo los usuarios autorizados puedan recuperar esos datos de forma remota. Una vez que los datos están en el entorno del usuario, su seguridad ya no está bajo su control ni debe considerarse su responsabilidad, siempre y cuando pueda demostrar que usted y / o su sistema estaban autorizados para proporcionar los datos al usuario en el momento en que fue proporcionado.

    
respondido por el Iszi 27.06.2014 - 20:31
fuente
0

Hay tres enfoques para este problema:

  • Usted encripta los datos confidenciales en su servidor y los descifra a petición. Esto es lo que Lavabit hizo, y no terminó bien El problema es que no importa cuánto voodoo crypto haga, toda la seguridad siempre depende de su servidor. Su servicio será tan vulnerable a los ataques como cualquier otro sitio web estándar.

  • Usted delega la criptografía al cliente, pero sí proporciona las herramientas. Por ejemplo, incluye un programa de JavaScript en su sitio que encripta los datos antes de enviarlos al servidor y desencripta los datos encriptados que provienen del servidor. Esto puede parecer una buena idea, pero en realidad es solo la primera opción disfrazada. La seguridad de los datos aún depende de su servidor. Un atacante que tiene el control del servidor puede simplemente romper las herramientas y subvertir el cifrado.

  • Mantienes tus manos fuera de los datos y del cifrado y dejas todo al cliente. En otras palabras, usted solo trata con datos encriptados y ni siquiera sabe el texto simple. Esta es realmente la única solución honesta. Sin embargo, significa que los usuarios necesitan herramientas adicionales como PGP / GPG. Esto podría ser un problema.

respondido por el Fleche 27.06.2014 - 19:56
fuente

Lea otras preguntas en las etiquetas