2017-01-10 3 views
0

Ich erstelle eine Anwendung mit Appcelerator, in der der Benutzer den Benutzernamen und das Passwort eingeben muss, um sich einzuloggen. Nach der Anmeldung kann der Benutzer die TouchID für die Authentifizierung aktivieren. Nach dem Abmelden kann der Benutzer die TouchID zur Authentifizierung verwenden und die Anwendung verwenden.Passwort auf der Clientseite mit Appcelerator speichern - Design Approach

Mein Fluss ist, dass, sobald der Benutzername und das Passwort bereitgestellt wird, ich diese beiden Informationen in Keychain mit dem folgenden Modul iOS Keychain Module speichern. Dann benutze ich ti.touchid, um den Fingerabdruck zu authentifizieren, wenn Erfolg, dann erhalte ich den Benutzernamen und das Passwort vom Schlüsselbund und schicke es dann über den HTTPS-Webservice-Anruf und melde den Benutzer bei der Anwendung an.

Meine Abfrage ist, ob dies ein akzeptabler Ansatz ist.

Antwort

2

Ich bin kein iOS-Entwickler und auch keine ti- oder keychain-Begriffe bedeuten mir überhaupt etwas. Das ist für einen Anfang und um die Anzahl der Stimmen zu reduzieren, die ich bekommen könnte.

In Sicherheitsfragen würde ich vorschlagen, dass Sie sich vorstellen, das Telefon dieses bestimmten Benutzers zu erhalten, von dem Sie wissen, dass Sie einige Authentifizierungsdaten gespeichert haben. Nehmen wir an, ich bin ein Nutzer Ihrer App, der bereits angemeldet ist und meine Anmeldeinformationen irgendwo auf meinem Gerät gespeichert haben, und Sie erhalten dieses Telefon, indem Sie es von mir stehlen.

Jetzt werden Sie in der Lage sein, auf mein Konto trotzdem zuzugreifen? Wird ein Hacker mit Zugriff auf das physische Telefon in der Lage sein, alle in Ihrem Schlüsselbundspeicher gespeicherten Informationen abzurufen?

Wenn ja, wenn Sie trotzdem daran denken können, dann ist Ihr Ansatz nicht gültig.

Ich verstehe, dass Sie Benutzer irgendwann speichern möchten, indem Sie sicherstellen, dass sie sich nur mit ihrem Fingerabdruck anmelden können, was ein guter Grund ist, über einen solchen Ansatz nachzudenken, aber Sie müssen alles in Bezug auf Reverse Engineering denken.

Zusätzliche Empfehlungen würden einen on-the-fly-Hash verwenden, um Informationen im Schlüsselbund zu speichern und sicherzustellen, dass vor dem Wiederherstellen derselben zu überprüfen. Beispielsweise können Benutzeranmeldeinformationen, die auf "home wifi" gespeichert sind, mit Ihrem Fingerabdruck nur "zu Hause" im selben WLAN-Netzwerk verifiziert werden, in dem dasselbe in einem anderen Netzwerk ungültig ist.

ie) (keychainItem.x = y) TRUE ist NUR WENN (etwas anderes)

wo diese (etwas anderes) ist etwas, das Hacker verhindern, dass der Schlüsselbund zugreifen, auch wenn sie Zugriff auf das Gerät haben selbst.

Ich mache das selbst, wenn ich Webanwendungen mit gespeicherten Cookies programmiere. Ich benutze zum Beispiel ein gespeichertes Cookie NUR wenn es von der gleichen IP zugegriffen wird, von der es gespeichert wurde. Jedes Mal, wenn sich die IP-Adresse ändert, muss sich der Benutzer erneut authentifizieren, selbst wenn die Cookie-Werte korrekt sind.

Hoffe, das hilft.

+0

Ich mag Ihren Ansatz Ruslan. Einige Hinweise, die Sie erwähnt haben, sollten bei der Entwicklung eines solchen Ansatzes beachtet werden. Aber ich werde die Frage offen halten, um weitere Gedanken zu machen, bevor ich eine Antwort aushege. – Soumya

+0

Sicher @Soumya, froh, dass geholfen hat und viel Glück mit Ihren Bemühungen. –

Verwandte Themen