En sistemas Unix-esque, Mozilla Firefox almacena las preferencias, el historial web y las contraseñas almacenadas de un usuario en un conjunto de archivos que son legibles y grabables por ese usuario en particular.
Esto tiene sentido: cuando el usuario bob
está ejecutando Firefox, estos archivos deben ser legibles por bob
para que Firefox pueda acceder a ellos. Sin embargo, esto también significa que cualquier aplicación maliciosa que Bob ejecuta accidentalmente también tiene acceso a esta información personal.
Entonces, ¿por qué los navegadores como Firefox no crean un nuevo usuario, con una contraseña aleatoria, llamada algo como firefox-bob
, cuál sería el único usuario capaz de acceder a estos archivos?
Posteriormente, el ejecutable principal firefox
podría ser propiedad de firefox-bob
, ejecutable por bob
, y tener su bit setuid
activado.
No me sorprendería si un sistema similar también fuera posible en (versiones recientes de) Windows.
Por supuesto, un enfoque de este tipo no sería resistente a que el malware obtenga permisos de root o exploits dentro del propio navegador. Sin embargo, creo que utilizar permisos de archivo como este podría mejorar significativamente la seguridad de las contraseñas almacenadas u otros datos privados.
¿Sería esta una buena idea? ¿O me estoy perdiendo algo? ¿Hay problemas prácticos con este enfoque?