2017-05-16 4 views
2

Ich verwende JWT für die Authentifizierung. Ich benutze einen signingKey, um meinen Token zu verschlüsseln. Ich möchte den signingKey an einem sicheren Ort auf der Client-Seite speichern (vermeiden Sie es hart zu kodieren). Ich hatte gehofft, android Schlüsselspeicher dafür zu verwenden; aber bis jetzt habe ich es nur geschafft, mit dem JDK keytool einen Schlüsselspeicher zu erstellen, um meine App zu signieren.Speichern Sie JWT SigningKey in Java KeyStore

Meine Frage ist: Gibt es eine Möglichkeit, ich kann einen Schlüssel in den Schlüsselspeicher für meine App vor seiner Bereitstellung auf dem Gerät speichern, so dass ich den Schlüssel in der App abrufen und damit den JWT signieren kann ?

Wenn nicht, was sind meine anderen Optionen?

Ich entwickle auf Xamarin. Mein Backend ist ASP.Net, das auf Azure bereitgestellt wird.

Antwort

2

Ich weiß nicht, wie man es mit einem Schlüsselspeicher in der App macht. Aber ich habe es getan, indem ich es in einer JAR/.SO Datei gespeichert habe. Dies wird in der App verschleiert und ist nicht über Reverse Engineering verfügbar.

Obwohl diese Methode nur technisches Problem Reverse löst, wäre die beste Lösung sein, mit dem Server zu tun, um das Netzwerk-Interception Problem

+0

Dies ist eine mobile App zu vermeiden, und ich mag den Zugang zu verhindern, um alle meine API-Endpunkte von außerhalb der App Selbst wenn der Server den öffentlichen/privaten Verschlüsselungsschlüssel erzeugt, kann jeder Client (z. B. Postbote) den Server nach einem Schlüsselpaar fragen und eine Berechtigung erhalten. Wie kann ich das verhindern? – AHA

+0

Ummm ... Ich verstehe, dass es eine Android-App ist und daher der Vorschlag, das Token in einer Ihrer Bibliotheken zu speichern. Sieht aus wie meine Antwort ist die Antwort auf Ihre Frage, während Sie eine andere Frage in den Kommentar haben –

+0

Sicher. Mein Kommentar war ein Follow-up auf Ihren Vorschlag, es mit dem Server zu tun. Hast du irgendwelche Hinweise darauf? – AHA

Verwandte Themen