4

Ich baue eine Android-App, wo ich den Benutzer über einen Benutzernamen und ein Kennwort (auf der Rückseite) mit der Fingerabdruck-API authentifizieren muss.Abrufen von Benutzeranmeldeinformationen (Benutzername und Kennwort) über einen android Keystore mit Fingerabdruck

Hier ist mein Verständnis, was ich in den einfachsten Begriffen tun muss.

  1. Auf Login, nachdem der Benutzer einen Benutzernamen und Passwort ein und mit dem Backend erfolgreich authentifiziert, ich erzeugen und speichern, um die androidkeystore einen bestimmten Schlüsselspeicher mit diesen Anmeldeinformationen eingegeben hat.

  2. bei der nächsten Anmeldung, wenn der Benutzer über einen Fingerabdruck authentifiziert erfolgreich, rufen Sie die Anmeldeinformationen (Benutzername und Passwort) aus der Androide Schlüsselspeicher und den Benutzer auf dem Back-End mit diesen Anmeldeinformationen authentifizieren.

Ich habe gefolgt: http://www.techotopia.com/index.php/An_Android_Fingerprint_Authentication_Tutorial

Das gibt ein gutes Beispiel dafür, wie den Fingerabdruck-API zu verwenden, um den Benutzer mit dem Gerät zu authentifizieren. Aber wie bekomme ich die Anmeldeinformationen zurück, damit ich den Benutzer mit dem Backend authentifizieren kann?

Gibt es irgendwelche Schritte, Vorschläge oder detaillierte Beispiele für das, was ich tun möchte?

Danke.

+0

Vielleicht kann dieser Artikel Ihnen helfen: https://www.sitepoint.com/securing-your-android-apps-with-the-fingerprint-api/ –

Antwort

1

In Ihrer vorgeschlagenen Lösung erhält das Back-End immer noch bei jeder Anmeldung einen Benutzernamen + ein Passwort. Dies bedeutet, dass Ihre App den Benutzernamen und das Passwort des Benutzers speichern muss. Es kann ratsam sein, dies zu vermeiden. Wenn das Passwort später geändert wird, kann Ihre App sich beispielsweise nicht mehr anmelden. Wenn Sie keine besondere Sorgfalt walten lassen, werden Benutzername und Passwort möglicherweise über das USB-Debugging mithilfe von adb backup gesichert und/oder extrahiert.

Eine alternative Lösung besteht darin, dass der Client ein Android Keystore-Schlüsselpaar generiert, das eine Benutzerauthentifizierung (Fingerabdruck-Authentifizierung) für jede Verwendung des privaten Schlüssels erfordert. Das Back-End bietet dann eine Operation zum Registrieren eines öffentlichen Schlüssels für die Authentifizierung als Benutzerkonto an. Die Registrierungsoperation benötigt einen öffentlichen Schlüssel, einen Benutzernamen und ein Passwort. Wenn der Benutzername + das Passwort überprüft wird, wird der öffentliche Schlüssel für das Konto registriert. Die Login-Operation wird dann erweitert, um das Authentifizieren des Clients zu unterstützen, indem der Client unter Verwendung des entsprechenden privaten Schlüssels eine vom Back-End erzeugte Abfrage/Nonce signiert. Wenn die Signatur überprüft wird, nimmt das Backend an, dass dies immer noch derselbe Client ist, der den öffentlichen Schlüssel ursprünglich unter Verwendung des Benutzernamens + Passworts registriert hat.