2012-02-16 10 views
7

Mozilla afirma que alguien puede sentarse en su computadora y obtener sus contraseñas para cada sitio en 15 segundos. Aprendí al escribir una extensión de Firefox por primera vez que podía acceder a cualquier archivo en un directorio de usuarios (dado que era propiedad del usuario). Si las contraseñas se descifran y escriben en algún lugar del directorio de usuarios, se puede acceder a ellas durante una sesión mediante una extensión o sitio malicioso que utiliza un código web que puede acceder a un directorio de usuarios. ¿Cuál es el proceso que el Dispositivo de Seguridad de Software usa en Firefox que asegura que las contraseñas del sitio son realmente seguras contra dicho código malicioso?¿Cómo protege el dispositivo de seguridad de software de Firefox las contraseñas?

Desencriptar las contraseñas en el disco duro sería inseguro porque otros procesos podrían leerlas. ¿El dispositivo de seguridad del software los descifra en el directorio de usuarios?

Si no es así, ¿el dispositivo de seguridad del software los descifra solo en ram? Si es así, ¿cuáles son las posibilidades de que otra aplicación lea el espacio de la aplicación del Dispositivo de seguridad del software?

Por favor, describa.

Describir el proceso no debe ser un secreto, porque los secretos son una indicación de vulnerabilidad y debilidad, en cambio un verdadero método seguro requiere la fuerza bruta para romperse. Una política abierta sobre el proceso de encriptación brinda una audiencia más amplia, lo que aumenta el potencial de soluciones más seguras.

Traigo esto a colación, porque no se describe en la explicación del Dispositivo de Seguridad de Software ni en la explicación de Contraseña Maestra en el sitio de Mozilla, lo que me hace preguntar si realmente estamos seguros usando esa característica.

Respuesta

12

Las contraseñas se almacenan en la base de datos SQLite signons.sqlite en el directorio de perfiles del usuario. Por defecto, no están realmente encriptados, extraerlos de este archivo y "descifrar" es trivial. Para tener algo de seguridad aquí el usuario tiene que definir una contraseña maestra (en la pestaña Seguridad de las opciones de Firefox), esta será utilizada para encriptar las contraseñas en la base de datos. Si eso se ha hecho, la extracción de contraseñas de signons.sqlite no es trivial, hay que adivinar la contraseña maestra.

Pero Firefox necesita descifrar las contraseñas para usarlas, por supuesto. Si algún código del navegador solicita una contraseña (a través del nsILoginManager) aparece un mensaje de contraseña maestra - el usuario necesita ingresar la contraseña maestra para permitir el descifrado de sus contraseñas. Las contraseñas descifradas nunca se escriben en el disco, pero el navegador (y cualquier extensión del navegador) podrán acceder a ellas después de eso.

Firefox no hace nada para evitar que las extensiones accedan a las contraseñas porque sería inútil. La única manera de evitar que una extensión maliciosa llegue a sus contraseñas es evitar la instalación de una extensión maliciosa en primer lugar. Incluso si nsILoginManager no estuvieran allí, una extensión maliciosa podría aún oler su comunicación con la página web cuando se transmite la contraseña. O podría escuchar lo que escribes cuando te pidan la contraseña maestra. O podría falsificar un cuadro de diálogo de contraseña maestra y obtener la contraseña maestra directamente. Hay muchas posibilidades: una aplicación no puede vencer a otra aplicación que se ejecuta con los mismos privilegios.

PS: Software Security Device es para certificados, no contraseñas, sin relación alguna. Pero usa la misma contraseña maestra, de ahí el diálogo confuso.

+2

Excelente respuesta –

+0

Sería bueno ver esta explicación en Mozilla. Un diagrama sería útil también. Gracias. Esto trajo algo de luz al tema. – user1213645

+0

El foco principal parece ser la protección de acceso físico. Obviamente mejor que no tener protección. No creo que debamos cancelar más protecciones.Firefox podría ser más fuerte con otras consideraciones y lluvia de ideas. Si una persona accedió a dar su contraseña maestra cada vez que navegaba a una página que solicitaba su contraseña, esto ayudaría a evitar que las extensiones y otras solicitudes en línea tengan acceso irrestricto a todas las contraseñas. Un poco más de esfuerzo por parte del usuario, pero sigue siendo una ventaja porque teclean una contraseña para todas las cuentas. – user1213645

Cuestiones relacionadas