0
votes

Est-il sécuritaire de stocker la clé de cryptage / de déchiffrement dans une variable statique?

Je développe une application dans Android Studio et je passe des données du serveur au téléphone via JSONS.

Y a-t-il un moyen pour moi de chiffrer les données JSON?

est-il sûr de stocker la clé de cryptage / de déchiffrement dans une variable statique? Si non, où dois-je stocker les clés de Android?

Aucune de ces thèses, les questions ci-dessous m'a aidé:

Puis-je chiffrer mes données JSON?

Encrypypt json Data


1 commentaires

Pourquoi pas https ?


3 Réponses :


0
votes

solution pour votre question est Certificat Pining . Il empêche d'attaques de Mitm (homme au milieu). CERTIFICAT Pining signifie que votre application vérifie que le site de la communication de l'application est le site réel en comparant le certificat présenté par le site à un regroupement dans l'application. Veuillez vous reporter à la suite du lien pour plus d'informations

https://davidtruxall.com/android-certificate-pinning/


0 commentaires

0
votes

Oui, la communication entre Android et Server peut être sécurisée et vous pouvez crypter votre charge utile JSON. Jetez un coup d'œil à ce hub de git repo pour savoir comment chiffrer votre charge utile JSON. chiffrer votre charge utile JSON (Projet Android)

Vous pouvez générer une paire de clé publique-privée et ne partagez que votre clé publique avec le client (Android). Vous pouvez enregistrer la clé publique de la manière dont vous souhaitez sur le périphérique Android. https est également un bon moyen de sécuriser la communication entre client et serveur, mais jetez un coup d'œil à ce question pour vous guider plus.


0 commentaires

2
votes

Il n'est absolument pas sûr de stocker la clé de cryptage / de déchiffrement dans une variable statique.

Pour ce type de communication, plutôt qu'une clé secrète (symétrique) étant partagée entre le serveur et votre application (que vous devez organiser et suivre une trace de), une paire d'asymétrique est utilisée. Une paire de clés est une clé privée et la clé publique correspondante.

Faire semblant que vous n'avez besoin que de chiffrer des données aller à une autre, du serveur à l'application: Votre application génère une paire de clés temporaire aléatoire, dispensable, et envoie la clé publique du serveur. Le serveur peut ensuite utiliser cette clé publique pour chiffrer le message qu'il renvoie à l'application, sans jamais voir la clé privée et que le message ne peut être déchiffré qu'avec la clé privée, qui n'a jamais quitté l'application. La clé publique ne peut pas être utilisée pour déchiffrer, seulement chiffrer.

Si cette paire de clés a été créée juste pour cet échange, elle peut être jetée et une nouvelle paire établie pour la communication à tout moment (ou après une date d'expiration / heure).

Cela dit, tout cela est fait automatiquement, dans les deux directions (deux paires de clés), avec des connexions HTTPS. Donc, je devinerais que cela permettrait de couvrir vos besoins. Vous êtes un peu réinventer la roue, sinon. Sauf si vous voulez ce type de contrôle strict sur la sécurité. Même alors, faites les deux!


0 commentaires