¿Cuáles son las implicaciones de almacenar datos confidenciales en bookmarklets?

1

Al discutir alternativas para pedirle al navegador que recuerde su contraseña, un tipo sugirió usar un marcador para almacenar las credenciales de los usuarios. La respuesta original está en portugués, pero traduciré aquí el protocolo que usó:

  1. El usuario, mientras está conectado, tiene acceso a un bookmarklet [enlace] con un token único

  2. Puede arrastrar ese bookmarklet a la barra de enlaces o a los marcadores normalmente

  3. Al hacer clic en ese bookmarklet, el token se almacena en la propiedad window.name y se carga una URL

  4. Esta URL contiene un JS con otro token único

  5. El JS combina ambos tokens y crea un hash [de autenticación]

  6. El usuario se redirige a otra URL con el hash como argumento

Un poco más intrincado de lo que era IMHO, pero la idea básica era guardar las credenciales en la barra de favoritos, para que el usuario pudiera cargar el sitio e iniciar sesión automáticamente con solo hacer clic en un enlace.

Estoy tratando de envolver mi cabeza en torno a las implicaciones de dicha práctica. Supongo que al menos es seguro contra XSS (ya que el código JavaScript no puede acceder a la barra de favoritos AFAIK). Y en comparación con las contraseñas almacenadas en el navegador, no parece estar demasiado lejos (ambos permitirían que otra persona con acceso físico a la máquina inicie sesión como ese usuario fácilmente). A menos que haya algo más que esté pasando por alto ...

Información adicional: Mi intención original era mantener (no necesariamente almacenar) en el navegador algunos datos a los que ni siquiera el servidor puede acceder (por ejemplo, una clave de cifrado del lado del cliente). Este detalle es importante, de lo contrario, este escenario no sería diferente de la función "Recordarme" . Pero, por favor, no se centre demasiado en los detalles (los he analizado en detalle en este sitio y en otros sitios), solo en lo que se solicitó.

En otras palabras, supongamos que mi modelo de subprocesos pone más énfasis en la confidencialidad de los datos en la nube y menos en la computadora cliente del usuario (por ejemplo, alguien con acceso local que ve la contraseña no es una preocupación, sino una fuga de vulnerabilidades de XSS podría ser). Y la facilidad de uso es un requisito, de lo contrario nadie usará mi sistema (alternativas más seguras como el uso de un administrador de contraseñas o una extensión de navegador que interactúe con PGP o incluso, en el futuro, se ofrecerá la API WebCrypto para los usuarios más preocupados por la seguridad, pero no es obligatorio ; formulé la pregunta para comprender mejor las implicaciones de usar marcadores / la barra de favoritos, no para basar toda mi decisión en eso solo).

    
pregunta mgibsonbr 29.01.2014 - 08:08
fuente

1 respuesta

2

No debe almacenar datos confidenciales en marcadores porque la gente no espera que lo haga y, por lo tanto, no tratarán los datos confidenciales de manera adecuada.

Esencialmente, no es diferente a la opción "recordar mi contraseña" proporcionada por el navegador o el llavero OSX, excepto que está menos protegida , y el usuario y sus administradores de sistemas no pueden Entiendo que la necesidad de protegerlo .

"Recordar mi contraseña" de IE está protegido por DPAPI. OSX KeyChain es similar. KeePass requiere una contraseña adicional. Es por eso que están "más protegidos". Pero el punto principal es que las personas saben que contienen datos confidenciales y, por lo general, los administradores del sistema los tratarán de manera adecuada.

Pero un marcador es solo un marcador, ¿verdad? Nada sensible acerca de eso está ahí? Sincronizar & Compártelo todo lo que quieras, ¿verdad?

Debe permitir que el usuario utilice el software de seguridad de llavero / contraseña apropiado para el sistema en el que se encuentra. Es decir. simplemente deje que el navegador "recuerde" la contraseña si lo desea, use OSX KeyChain, KWallet de KDE, GnomeKeyring de Gnome, KeePass, etc.

    
respondido por el Ben 30.01.2014 - 16:45
fuente

Lea otras preguntas en las etiquetas