2012-02-16 2 views
7

Mozilla afferma che qualcuno può sedersi al computer e ottenere le password per ogni sito in 15 secondi. Ho imparato mentre scrivevo un'estensione per Firefox per la prima volta che potevo accedere a qualsiasi file in una directory degli utenti (dato che era di proprietà dell'utente). Se le password vengono decodificate e scritte da qualche parte nella directory degli utenti, sono accessibili durante una sessione da un'estensione malevola o da un sito che utilizza un codice Web che può accedere a una directory degli utenti. Qual è il processo utilizzato da Software Security Device in Firefox per garantire che le password dei siti siano effettivamente al sicuro da tale codice dannoso?In che modo il dispositivo di sicurezza software di Firefox protegge le password?

Decifrare le password sul disco rigido non sarebbe sicuro perché altri processi potrebbero leggerle. Il dispositivo di sicurezza del software li decodifica nella directory degli utenti?

In caso contrario, il dispositivo di sicurezza software decrittografa solo in ram? In tal caso, quali sono le possibilità di un'altra applicazione che legge lo spazio applicativo del Dispositivo di sicurezza del software?

Descrivere.

Descrivere il processo non dovrebbe essere un segreto, perché i segreti sono un'indicazione di vulnerabilità e debolezza, invece un vero metodo sicuro richiede la rottura della forza bruta. Una politica aperta sul processo di crittografia offre un pubblico più ampio, che aumenta il potenziale per soluzioni più sicure.

L'ho presentato, perché non è descritto nella spiegazione del dispositivo di sicurezza del software o nella spiegazione della password master sul sito Mozilla, lasciandomi la domanda se siamo davvero sicuri utilizzando tale funzione.

risposta

12

Le password vengono archiviate nel database SQLite signons.sqlite nella directory del profilo dell'utente. Di default non sono realmente criptati - estraendoli da questo file e "decifrando" è banale. Per avere un po 'di sicurezza qui l'utente deve definire una password principale (nella scheda Sicurezza delle opzioni di Firefox), questa sarà usata per crittografare le password nel database. Se ciò è stato fatto, estrarre le password da signons.sqlite non è banale, è necessario indovinare la password principale.

Ma Firefox ha bisogno di decifrare le password per usarle ovviamente. Se alcuni codici browser richiedono una password (tramite nsILoginManager), viene visualizzata una richiesta di password principale: l'utente deve immettere la password principale per consentire la decodifica delle sue password. Le password decodificate non vengono mai scritte su disco ma il browser (e le eventuali estensioni del browser) saranno in grado di accedervi successivamente.

Firefox non fa nulla per impedire alle estensioni di accedere alle password perché sarebbe inutile. L'unico modo per impedire a un'estensione malintenzionata di accedere alle password è evitare di installare un'estensione malevola in primo luogo. Anche se nsILoginManager non fosse presente, un'estensione malevola potrebbe ancora annusare sulla tua comunicazione con la pagina web quando viene trasmessa la password. Oppure potrebbe ascoltare ciò che digiti quando ti viene chiesta la password principale. Oppure potrebbe simulare una finestra di dialogo della password principale e ottenere direttamente la password principale. Ci sono un sacco di possibilità: un'applicazione non può battere un'altra applicazione in esecuzione con gli stessi privilegi.

PS: Dispositivo di sicurezza del software è per i certificati, non le password - del tutto indipendenti. Ma usa la stessa password principale, quindi la finestra di dialogo confusa.

+2

Risposta eccellente –

+0

Sarebbe bello vedere questa spiegazione su Mozilla. Un diagramma sarebbe utile anche. Grazie. Questo ha portato un po 'di luce sull'argomento. – user1213645

+0

L'obiettivo principale sembra essere la protezione dell'accesso fisico. Ovviamente meglio che non avere alcuna protezione. Non penso che dovremmo cancellare più protezioni.Firefox potrebbe essere più forte con altre considerazioni e brainstorming. Se una persona acconsentiva a fornire la propria password principale ogni volta che navigavano verso una pagina che chiedeva la propria password, ciò aiuterebbe a prevenire le estensioni e altre richieste online di avere accesso illimitato a tutte le password. Un po 'più di sforzo da parte dell'utente, ma comunque una comodità perché digitano una password per tutti gli account. – user1213645