¿Hay alguna manera de hacer que el navegador elimine la contraseña de inicio de sesión de la memoria de inmediato, como parece hacer Chrome en accounts.google.com?

22

Hice algunas pruebas y descubrí que un volcado de memoria de Chrome no contiene la contraseña de gmail.com/Google después de iniciar sesión en ese sitio (el inicio de sesión se realiza en accounts.google.com).

(Mi sistema es Windows 10 64bit Professional, Chrome 60).

Puedo encontrar las contraseñas de todos los otros sitios que he probado. Además, cuando hago lo mismo en Firefox, la contraseña de gmail.com se almacenará en el volcado de memoria. Este es un comportamiento específico de Chrome.

He intentado muchas cosas para evitar que la contraseña se almacene en un volcado de memoria. Incluso cuando tengo la contraseña en el campo de contraseña antes de enviar el formulario, la contraseña original (sin hash) estará contenida en el volcado de memoria. Intenté con autocomplete="off", intenté enviar la contraseña a través de un campo 'oculto' y un campo de texto invisible. (Para que el navegador no intente almacenar la contraseña en el administrador de contraseñas incorporado).

También, por supuesto, he intentado con el almacenamiento de contraseñas desactivado, borré el caché, experimenté con Cache-Control / Pragma / Expires -headers, y otras cosas. Y sé que, de hecho, el sitio web de Gmail envía la contraseña no dañada / original en la solicitud al servidor. Por lo tanto, no hay un método del lado del cliente involucrado para cifrar / hash / ofuscar la contraseña.

Entonces, mi pregunta es: lo que gmail.com (accounts.google.com) use para que la contraseña no esté contenida en un volcado de memoria, ¿sería posible hacer lo mismo para mi propio sitio web? ¿O es posiblemente una característica específica de gmail.com del navegador Chrome?

¿Podría ser una coincidencia, ya que ese sitio causa mucha actividad de lectura / escritura en la memoria, de modo que el recolector de basura se limpia más rápido o algo así?

    
pregunta Martin Fürholz 23.09.2017 - 09:21
fuente

2 respuestas

2

Por lo que puedo suponer, realmente solo tienes dos opciones aquí:

Opción 1: trabajar desde Google

Comience observando de cerca el comportamiento de Javascript / red. Como mencionó alguien en los comentarios, trabajar con un clon total podría dar buenos resultados. Sin embargo, personalmente, realmente no me gustaría hacer ese tipo de depuración incondicional.

Opción 2: algunos javascript que (podrían) ayudar

Cualquier cosa menos enviar la contraseña en el POST. Por ejemplo, aquí están todas las soluciones válidas (no probadas):

  • Intente reemplazar cada carácter a medida que se escribe (por ejemplo, cifrar la clave original con un cifrado de flujo con una clave específica de la sesión, luego puede recuperarse en el otro lado)
  • Intente simplemente capturar la entrada clave y simularla apareciendo en el cuadro de texto (de esa manera no se guarda en caché nada - dudo que las pulsaciones de teclado estén en caché: D)
  • No hay garantía de que esto funcione: pero intente manipular los contenidos de entrada justo antes de la publicación (pero tenga en cuenta que algo simple como un cambio de Ceaser realmente no funcionará, porque un atacante lo suficientemente inteligente simplemente revertirá eso)

Sospecho que el segundo enfoque en la lista anterior es lo único que funcionará (captura de la entrada clave), ya que es probable que las entradas de los cuadros de texto aún se guarden en la memoria (no tengo idea de cómo maneja Google esto, pero tengo mucha fe en la segunda opción de la lista).

Tal vez más tarde, hoy / mañana, publicaré un ejemplo mínimo con pruebas

    
respondido por el Samuel Allan 08.02.2018 - 03:56
fuente
-1

No, no es posible. A menos que desee crear su propio navegador y cifrar el volcado del navegador o crear un cliente de autenticación de token independiente del servicio.

    
respondido por el jtillman 06.11.2017 - 03:35
fuente

Lea otras preguntas en las etiquetas