/ / Wie speichere ich vertrauliche Daten als ein Passwort in firemonkey? - Android, Delphi, Feuerwaffe, Delphi-10.1-berlin, firemonkey-fm3

Wie speichere ich sensible Daten als ein Passwort in FireMonkey? - Android, Delphi, Feuerwaffe, Delphi-10.1-berlin, firemonkey-fm3

Ich entwickle eine Android-App mit Firemonkey. Diese App stellt Anfragen an ein WebApi, indem sie Rest verwendet und das json-Ergebnis zurückgibt. Die API ist bereits entwickelt und jede Anfrage muss Benutzer und Passwort als Querystring senden, um Daten zurückzugeben. Meine Frage ist: Was ist der beste Weg, um sensible Daten in FireMonkey (Android) zu speichern. Natürlich ist das erste, was einem in den Sinn kommt, Verschlüsselung zu verwenden, um solche Daten zu speichern, aber gibt es eine native und sichere Funktion dafür auf firemonkey?

Antworten:

0 für die Antwort № 1

Verschlüsseln Sie keine Passwörter, wenn der Angreifer die DB erhält, erhält er auch den Verschlüsselungsschlüssel.

Die Verwendung einer Hash-Funktion ist nicht ausreichend und das Hinzufügen eines Salzes trägt wenig zur Verbesserung der Sicherheit bei.

Stattdessen iterieren Sie über einen HMAC mit einem zufälligen Salz für etwa 100ms und speichern Sie das Salz mit dem Hash. Verwenden Sie Funktionen wie PBKDF2, password_hash, Bcrypt und ähnliche Funktionen. Es geht darum, den Angreifer dazu zu bringen, viel Zeit mit der Suche nach Passwörtern zu verbringen.

Senden Sie das Kennwort des Benutzers nicht in die Abfragezeichenfolge. Bei einer HTTP-Verbindung ist es unverschlüsselt, bei einer HTTPS-Verbindung wird es verschlüsselt, landet jedoch wahrscheinlich in den Serverprotokolldateien


1 für die Antwort № 2

Speichern Sie es nicht. Wenn es wirklich sicher sein muss, fordern Sie es bei Bedarf vom Server an. Es gibt keine sichere Verschlüsselung, wenn der Schlüssel und die Daten auf demselben Computer gespeichert sind.