Ich habe mich umgesehen und keine Informationen gefunden, wie Android es schafft, Passwörter auf dem Gerät zu speichern. Insbesondere Google Mail-Passwörter. Ich möchte erfahren, wie Android Passwörter verschlüsselt und speichert. Welcher Schlüssel wird verwendet und wo wird dieser Schlüssel gespeichert und welcher Verschlüsselungsalgorithmus wird verwendet.
security
gmail
password
gmail-password
Asudhak
quelle
quelle
Antworten:
Die offizielle Google Mail-App speichert kein Passwort auf Ihrem Gerät. Ihr Passwort ist 100% sicher, wenn Sie diese App verwenden.
So funktioniert es: Das Passwort wird NUR von den Authentifizierungsservern von Google zum ersten Mal verwendet. Nach der ersten erfolgreichen Authentifizierung wird ein
Auth Token
auf ein Gerät heruntergeladen, dasaccounts.db
als Klartext in einer Datei gespeichert ist . Für alle nachfolgenden Anmeldungen wird diesAuth Token
verwendet, NICHT Ihr ursprüngliches Passwort.Wenn also Ihr Gerät gestohlen wird, kann nur jemand etwas bekommen,
Auth Token
das ungültig wird, sobald Sie Ihr Passwort ändern. Sie haben also das ultimative Kommando.Für die ultimative Sicherheit empfehle ich Ihnen
2-Factor Authentication
, diese FunktionDevice Specific Password
für Ihr Gerät zu aktivieren und zu erstellen . Nachdem Sie das Gerät verloren haben, müssen Sie es nur noch deaktivieren. Sie müssen nicht einmal das Hauptkennwort ändern.Hinweis: Dies gilt nicht für E-Mail-Apps von Drittanbietern für Google Mail. Stock E-Mail-App, K-9 Mail usw. IMAP- oder POP-Protokoll benötigen ein Originalkennwort, um Benutzer jederzeit zu authentifizieren. Daher muss ein einfaches Kennwort für die E-Mail-App verfügbar sein, bevor es an den Server gesendet wird. Die meisten E-Mail-Apps speichern Kennwörter daher im Nur-Text-Format (Hashing / Verschlüsselung ist nutzlos, da Hashing / Verschlüsselungsschlüssel lokal gespeichert werden müssen). In diesem Fall empfehle ich Ihnen, die Funktion für Ihr Gerät zu aktivieren
2-Factor Authentication
und zu erstellenDevice Specific Password
. Nachdem Sie das Gerät verloren haben, müssen Sie es nur noch deaktivieren.Update:
Technisch ist es möglich, Passwörter lokal in verschlüsselter / gehashter Form zu speichern, ohne den Verschlüsselungs- / Hashing-Schlüssel lokal im Klartext zu belassen. Vielen Dank an @JFSebastian für den Hinweis.
Leider ist eine solche Implementierung für Android noch nicht verfügbar.Beim Starten von ICS stellt Android die KeyChain-API bereit, mit der eine App ein Kennwort lokal in sicherer Form speichern kann. Apps, die die KeyChain-API verwenden, sind selten, aber die Standard-E-Mail-App verwendet sie (Vielen Dank an @wawa für diese Informationen). So ist Ihr Passwort mit der Standard-E-Mail-App sicher, solange Ihr Bildschirm gesperrt ist. Denken Sie daran, dass KeyChain nicht sicher ist, wenn das Gerät gerootet ist und auf Geräten vor ICS nicht verfügbar ist.quelle
Android-Passwörter, die mit der integrierten E-Mail-Anwendung verwendet werden, werden in einer SQLite-Datenbank im Klartext gespeichert. Dies steht im Gegensatz zu der Google Mail- Anwendung, die Authentifizierungstoken verwendet, wie in Sachin Sekhars Antwort beschrieben .
Für Jelly Bean lautet der Speicherort der Datenbank:
Die oben angegebene Position hängt von der Android-Version ab
Dieser Speicherort auf einem nicht gerooteten Gerät wird vom Betriebssystem gesichert und geschützt.
Auf gerooteten Geräten haben Benutzer ihre eigene Sicherheit bereits technisch geknackt, und selbst wenn sie nicht im Nur-Text-Format vorliegen würde, wäre das Entschlüsseln dennoch trivial, da der Schlüssel dazu irgendwo auf dem Gerät vorhanden sein muss.
Ein Mitglied des Android-Entwicklungsteams hat eine Erklärung veröffentlicht , die bis heute noch gilt:
Da dieses Problem anscheinend viele Android-Benutzer stört, können Sie diese Diskussion auch unter Slashdot - In Klartext gespeicherte Android-Kennwortdaten verfolgen .
quelle
accounts.db
Datei ist jedoch vor dem Lesen durch andere Konten als geschütztsystem
.