2017-05-16 2 views
2

J'utilise JWT pour l'authentification. J'utilise une clé de signature pour encoder mon jeton. Je veux stocker le signingKey dans un endroit sûr du côté du client (évitez le codage dur). J'espérais utiliser un magasin de clés Android pour ça; mais jusqu'à présent, j'ai seulement réussi à créer un magasin de clés en utilisant l'outil keytool JDK pour signer mon application. Ma question est la suivante: est-il possible de stocker une clé dans le magasin de clés associé à mon application, avant son déploiement sur l'appareil, afin que je puisse récupérer la clé dans l'application et l'utiliser pour signer le JWT ?Enregistrer JWT SigningKey dans Java KeyStore

Sinon, quelles sont mes autres options?

Je développe sur Xamarin. Mon backend est ASP. Net, déployé sur Azure. Je ne sais pas comment le faire en utilisant un magasin de clés à l'intérieur de l'App

Répondre

2

Mais je l'ai fait en le stockant dans un fichier JAR/.SO. Cela devient obfuscated à l'intérieur de l'application et n'est pas disponible via l'ingénierie inverse.

Bien que cette méthode résoud inverse seul problème technique, la meilleure solution serait de faire avec le serveur pour éviter le problème

+0

d'interception réseau Ceci est une application mobile, et je veux empêcher l'accès à tous mes critères d'évaluation de l'API de en dehors de l'application. Même si le serveur génère la clé de chiffrement publique/privée, n'importe quel client (par exemple un facteur) peut demander une paire de clés au serveur et obtenir une autorisation. Comment puis-je empêcher cela? – AHA

+0

Ummm ... Je comprends que c'est une application Android et donc la suggestion de stocker le jeton dans l'une de vos bibliothèques. On dirait que ma réponse est la réponse à votre question, alors que vous avez une question différente dans le commentaire ici –

+0

Bien sûr. Mon commentaire était un suivi de votre suggestion, en le faisant avec le serveur. Avez-vous des indications à ce sujet? – AHA