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
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.
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.
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. –
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
Es ist die Schuld des Benutzers, dass das System nicht sicher ist – Casebash
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.
- 1. Speichern eines gemeinsamen Schlüssels für Rails-Anwendung
- 2. Best Practices zum Speichern von geheimen Schlüsseln
- 3. Wie können wir Rails-Cookies aufgrund des Sitzungsschlüssels und des geheimen Schlüssels entschlüsseln?
- 4. Wie man geheimen Schlüssel in Java verwaltet
- 5. Perl bekomme Wert eines Schlüssels
- 6. Verwenden eines Google Maps-API-Schlüssels für verschiedene Android-Anwendungen
- 7. "Speichern unter" und "Speichern und Hinzufügen eines anderen" in Admin
- 8. Verzeichnis zum Speichern von Audiodateien unter Android
- 9. Speichern des Schlüssels in den Anwendungseinstellungen
- 10. ansible: Wie Variablen eines bestimmten Schlüssels
- 11. Zuweisen eines öffentlichen Schlüssels zum Benutzer-Login
- 12. Verschlüsseln eines privaten Schlüssels mit BouncyCastle
- 13. Lesen eines Schlüssels aus einer Datei
- 14. Singleton zum Abrufen eines Dateispeicherorts unter Android
- 15. Was ist der Zweck des geheimen Schlüssels für Streifen? Ist das auch sicher?
- 16. Wie man Zweiwege-Enkodierungs-/Dekodierungsmethoden unter Verwendung eines anwendungsspezifischen Schlüssels - PHP - erzeugt?
- 17. Hinzufügen eines privaten Schlüssels zu iOS Keychain
- 18. Ausblenden eines MapBox-Markers unter Android
- 19. Android: Platzieren eines Textes unter einer Schaltfläche
- 20. Ausführen eines Tensorflow-Modells unter Android
- 21. Sicherstellung der Eindeutigkeit eines MySQL-Schlüssels
- 22. Erstellen eines eindeutigen Schlüssels - effizienteste Möglichkeit
- 23. Serialisieren und Deserialisieren eines öffentlichen RSA-Schlüssels
- 24. Erstellen einer Legende/eines Schlüssels in GraphViz
- 25. Karte auf mehrere Werte eines Schlüssels pyspark
- 26. Generieren eines GPG-Schlüssels für Git-Tagging
- 27. Den Wert eines assoziativen Array-Schlüssels erhöhen
- 28. Öffnen eines privaten RSA-Schlüssels aus Ruby
- 29. wird die Reihenfolge eines zusammengesetzten Schlüssels definiert?
- 30. Entfernen eines leeren Schlüssels von RDD
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
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
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. –