2010-04-20 18 views
13

Meine Android-Anwendung verwendet einen geheimen Schlüssel, um ein Token für Authentifizierungszwecke zu generieren. Gibt es eine sicherere Möglichkeit, dies zu speichern, als nur in den Datenspeicher zu legen? Ich denke, für das iPhone speichern wir es im Schlüsselbund. Mir ist bekannt, android.accounts.AccountManager, aber dies scheint anderen Anwendungen möglicherweise die Möglichkeit zu geben, auf das Passwort zuzugreifen (wenn der Benutzer die falsche Option auswählt) und scheint daher weniger sicher.Speichern eines geheimen Schlüssels unter Android

Antwort

6

Android (leider) bietet keine Möglichkeit, dies zu tun. Der Ansatz, den ich zuvor verwendet habe, besteht darin, dieses Token mit einem anderen Schlüssel zu verschlüsseln, der in der App generiert wird.

Ihr App-Schlüssel kann algorithmisch generiert werden. Dies ist jedoch nur so sicher wie Ihr Algorithmus. Sobald dies bekannt ist, entspricht dies dem Speichern des Tokens im Klartext.

+0

Ich denke nicht, dass jemand es zu schwer finden würde, die Funktion zu finden, wenn sie wirklich wollten. Allerdings denke ich, dass dies viel mehr Aufwand als nur das Lesen eines einfachen Textschlüssels – Casebash

+0

True ist. Es ist mehr Sicherheit vor der Dunkelheit als alles andere. Ein anderer Ansatz besteht darin, das Token unter Verwendung eines vom Benutzer bestimmten Passworts zu speichern. Dies ist am sichersten, aber der Benutzer muss sich bei jedem Start der App bei der App authentifizieren. – Prashast

+0

Es ist überhaupt nicht sicher. Es ist das Äquivalent der Verschleierung. Es schützt Sie vor dem gelegentlichen Browser und dem Scriptkiddie, aber nicht jemand, der die Antwort wissen möchte. Aber wenn Sie sich nur um Script-Kiddies sorgen, dann ist es eine gute Lösung. –

4

Sie können den Schlüssel in den Einstellungen Ihrer App speichern. Dies schützt den Schlüssel davor, von anderen Anwendungen gelesen zu werden, da die Dateisystembeschränkungen des Android-Systems darunter liegen.

Aber das schützt den Schlüssel nicht davor, vom Benutzer selbst gelesen zu werden.

+7

Wahr, aber ich kann Ihren Schlüssel in einer Minute, wenn Sie dies tun! Probieren Sie apktool und Sie können die ganze strings.xml bekommen. Habe es gerade auf einer berühmten android Social-App gemacht und habe ihren OAuth Consumer Key und Secret, Facebook Secret, Google Analytics ID, .... hat mich 2 Minuten. –

1

Wenn Sie apk-Tool ausführen können, dann ist es in debug und Sie werden das Gerät root. Es gibt keinen Schutz mehr auf dem Schlüsselbund in iOS, wenn sein Jailbroken

+1

Es ist die Schuld des Benutzers, dass das System nicht sicher ist – Casebash

0

Sie können geheime Daten speichern, indem Sie es mit einem Schlüssel von Android Keystore System generiert und speichern Sie das Ergebnis, wenn Sie möchten.

Verwandte Themen