Ich untersuche die Verwendung des Android KeyStore für Marshmallow und darüber.
Ich möchte gleichzeitig die Datenintegrität und die Authentifizierung meiner Daten durch die Verwendung von HMACs überprüfen.
Wie kann ich das erreichen?
Ich erstelle gerade einen Schlüssel zum Verschlüsseln / Entschlüsseln wie folgt: -
%Vor%Ich habe dieses Beispiel zum Erzeugen von HMACs gefunden
%Vor%Wie verwende ich dies jedoch beim Verschlüsseln / Entschlüsseln meiner Daten?
ERKLÄRUNG
Ich habe bei der Implementierung von Sicherheit / Kryptografie innerhalb einer beliebigen Android-Anwendung eine Reihe von Entscheidungen / Entscheidungen zu treffen.
1). Implementiere ich Kryptografie jeglicher Art Ja oder Nein? 2). Wenn ja, dann ... sollte ich versuchen, die "höchstmögliche" sichere Lösung zu erreichen.
Wenn ich Kryptographie einsetzen möchte, muss ich Folgendes sicherstellen:
a). Ich speichere Kennwörter / geheime Schlüssel in einem "sicheren Ort", z. Android-Schlüsselspeicher b). Ich verwende die "stärkste" verfügbare Kryptographie. c). Ich möchte gleichzeitig sowohl die Datenintegrität als auch die Authentifizierung meiner Daten, z. Ich würde gerne feststellen, ob meine verschlüsselten Daten manipuliert wurden.
Wie ich verstehe, was ich über HMACs gelesen habe, bieten sie diese Funktionalität. Ich würde gerne wissen, wie ich die Verwendung von HMACs in meiner Android-Anwendung kodiere, um sowohl die Datenintegrität als auch die Authentifizierung meiner Daten sicherzustellen.
Sie können HMAC auf den Klartext HMAC(plain text)
anwenden, bevor Sie den HMAC nach dem Entschlüsseln verschlüsseln und neu berechnen, um zu überprüfen, ob die ursprüngliche Nachricht die gleiche ist.
Es kann überflüssig sein, denn wenn der verschlüsselte Text geändert wird, können Sie ihn nicht entschlüsseln.
Erzeugen Sie zuerst einen HMAC Schlüssel in AndroidKeyStore
. Ich habe ein Beispiel hier
Wenden Sie dann HMAC auf die Originaldaten an und speichern Sie das Ergebnis irgendwo
%Vor%Nach der Entschlüsselung den HMAC-Schlüssel von AndroidKeyStore holen, HMAC neu berechnen und prüfen, ob beide Macs gleich sind
%Vor%Tags und Links android cryptography keystore