J'utilise un FPS incroyable et je dois stocker la clé secrète dans le code java. Cependant, j'ai peur que quelqu'un décompile mon apk et trouve la clé. J'ai décompilé l'apk moi-même et n'ai pas pu trouver la clé, mais je ne suis pas un expert VM. De l'aide?Clé de stockage Android, décompilation de la peur
Répondre
Vous ne pouvez pas mettre votre clé de chiffrement dans votre application et espérer qu'elle reste secrète. Tout ce qu'il faut, c'est qu'un programmeur déterminé le décompile et trouve la clé, et ils peuvent le partager avec le monde.
La cryptographie asymétrique/clé publique est exactement la solution que vous voulez. Créez une paire de clés publique/privée, puis placez la clé publique dans votre application et conservez la clé privée vous-même. Ensuite, vous pouvez faire deux choses:
- Votre application peut Crypter un message en utilisant la clé publique, qui ne peut être déchiffré avec la clé privée.
- Ou, vous pouvez signer un message en utilisant la clé privée, qui peut être authentifié en utilisant la clé publique dans votre application.
vrai. mais si vous mettez la clé privée ou la clé publique dans l'application, ils peuvent également l'utiliser pour déchiffrer la clé. –
@Patrick Boos: C'est tout à fait le point de crypto asymétrique: vous ne pouvez pas calculer la clé privée à partir de la clé publique. La façon dont cela fonctionne est que vous * crypter * sur votre serveur, en utilisant la clé privée (que vous ne partagez avec personne, ce n'est que sur le serveur), et l'application sur le client a la clé * public * avec laquelle peut déchiffrer; En outre, l'application sur le client signe avec la clé * public * et le serveur vérifie à l'aide de la clé privée. Les clés publiques * sont destinées à être partagées librement. – Piskvor
@Piskvor Afin d'être sécurisé, la cryptographie à clé publique nécessite que les clés privées soient gardées secrètes. Mais que se passe-t-il si quelqu'un a une clé privée stockée dans l'application (par exemple en la décompilant)? Ensuite, il ou elle peut toujours lire toutes les données secrètes encodées avec la clé publique (exactement comme l'application originale). Est-ce qu'il y a un moyen d'éviter cela? – Piotr
Un individu assez déterminé sera en mesure d'extraire votre clé, et il n'y a vraiment pas grand-chose à faire à ce sujet. Vous pouvez essayer d'obscurcir les clés en quelque sorte (en élevant la barre sur la façon dont ils doivent être déterminés), mais vous ne pouvez pas les empêcher d'obtenir la clé. Toutefois, selon la raison pour laquelle vous devez stocker la clé secrète, vous pouvez utiliser Asymmetric Key Cryptography. Vous serez en mesure de stocker une clé publique qui peut être limitée au chiffrement (et non au décryptage) ou à des fins d'authentification, tout en conservant la sécurité de la clé privée.
La clé publique n'est utile que pour le cryptage et la vérification de signature. –
- 1. Android - Stockage de données?
- 2. Ressources pour la décompilation x86
- 3. Aide à la décompilation SWF!
- 4. JSF SSL fais-moi peur
- 5. Comment protéger la clé API dans Flex/AIR contre la décompilation?
- 6. Android et espace de stockage de données?
- 7. android interne de stockage de téléphone
- 8. Décompilation des fichiers .apk
- 9. Comment empêcher la décompilation du code ActionScript
- 10. Stockage de données Android - Fichier vs SQLite
- 11. Aide à la décompilation d'un fichier SWF
- 12. Stockage de chaîne et récupération sous Android
- 13. Questions sur le stockage de données android
- 14. Conseils sur le stockage de fichiers Android
- 15. Android App Widget: Stockage de données
- 16. ActionScript Protéger les fichiers .swf/.swc de la décompilation?
- 17. Capture de clé dans android
- 18. service de stockage simple valeur de clé en ligne
- 19. Java: résultat étrange après décompilation
- 20. Stockage interne et externe Android
- 21. Stockage d'une clé partagée pour l'application Rails
- 22. Stockage interne android -Dispositif mémoire
- 23. clé/valeur Open Source capable de [stockage] haute capacité
- 24. Stockage API Clé/Secret de l'API sur le serveur
- 25. stockage intégrable open-source clé-valeur avec la licence libérale
- 26. Stockage de clé privée et publique dans MySQL-DB
- 27. problème de stockage de données de tableau android
- 28. Android Stockage des fichiers AV
- 29. Accès au stockage Azure sans fournir de clé ni de nom de compte dans la configuration
- 30. Android v1.5 w/stockage de données de navigateur
Vous ne pouvez pas "vraiment" empêcher les gens de décompiler un programme. Votre modèle de sécurité devrait mieux en tenir compte. :-) –
Si je le charge à partir du serveur web (la clé), comment puis-je m'assurer que la requête ne peut pas être faite par quelqu'un d'autre (en supposant que la décompilation) –
http://en.wikipedia.org/wiki/Public-key_cryptography pourrait être utile pour authentifier les demandes. –