IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Cryptage simple des données d'une application


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2011
    Messages : 41
    Par défaut Cryptage simple des données d'une application
    Bonjour,

    Je suis en train de faire un jeu sur Android, assez basique, et j'aimerais éviter qu'on ne puisse trop facilement aller décompiler mon apk pour pouvoir voir tous les secrets, lire les dialogues sans les avoir débloqués, etc.

    Je sais bien sûr qu'une sécurité absolue n'est pas possible sans utiliser internet, mais je me demandais s'il existait un moyen simple de complexifier au maximum la tâche aux personnes qui voudraient tenter de le faire.

    Il s'agirait donc principalement d'une Activity, et de données enregistrées par SharedPreferences.

    Une solution exploitable ?

    Merci d'avance,

    7804j

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Un truc qui fout bien la merde, c'est de forcer la présence d'une connexion Internet, et que les textes ne soient pas fournis avec l'appli, mais uniquement obtenus auprès du serveur après avoir réuni les bonnes conditions.
    Par contre, moi, à la place de tes utilisateurs, je n'accepterais pas.

    Sinon, si quelqu'un est suffisamment motivé pour contourner un chiffrage simple de tes données, il n'aura pas beaucoup plus de mal à contourner tout ce que tu peux faire d'autre. Une fois les premières sécurités passées, les applis sont faciles à désassembler. Il n'y a rien à y faire.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2011
    Messages : 41
    Par défaut
    Je sais que, quand j'avais souhaité chiffrer mon code javascript, ce n'était évidemment pas possible mais j'avais malgré tout trouvé un obfuscator qui le rendait quasiment incompréhensible par les humains. Si je décompile mon apk, par exemple, le code sera-t-il toujours indenté ? Il me suffirait peut-être de trouver un moyen de désordonner totalement les textes pour qu'ils deviennent illisibles.

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Sachant que l'indentation est assez stricte dans java... la réponse est oui... un décompilateur .class => .java va correctement indenter le code.
    Par contre il existe des obsfuscator qui le rendent vraiment illisible, mais pas incompréhensible pour qui veut vraiment.
    D'autant que seul le code de l'application est obsfusqué, tous les appels aux librairies gardent obligatoirement leur nom.... Donc cela ne marche vraiment que pour un programme complexe.

    Regarde les cours et tutoriels Android : http://android.developpez.com/cours/

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    En théorie, on peut tout à fait imaginer l'existence d'un obfuscateur de code et bytecode d'une appli Android. Mais encore faut-il que cet obfuscateur existe, qu'il soit efficace, et qu'il ne soit pas trop invasif. Même si toutes ces conditions sont réunies, on peut penser qu'il existera un décompilateur tout aussi efficace pour le contrer.

    Mais il y a plus important : la personne dont tu essaies de te protéger, se contrefiche de comprendre ton code. Qu'il soit obfusqué ou pas, ce n'est pas son problème.
    Son but, c'est de déchiffrer tes données, exactement de la même manière que ton appli déchiffre ces données. Il n'a pas besoin de comprendre comment ça marche. Il doit juste isoler le code de déchiffrage, et l'appeler. Aucune obfuscation d'appli Android ne rendra cela bien compliqué.

    Tu pourrais à la rigueur essayer d'intermêler le déchiffrage de chaque petite partie des données, avec le code qui a besoin de ces données-là et pas des autres. Puis d'obfusquer le tout.
    Ça compliquerait la tâche de l'attaquant, mais ton code serait une horreur à maintenir.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    Pour obfusquer le code Java il existe déjà un outil intégré au SDK, il s'agit de ProGuard.
    Pour obfusquer tes valeurs (je pense particulièrement aux Strings) tu peux jeter un oeil à cette classe par exemple https://svn.apache.org/repos/asf/inc...pleCrypto.java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/03/2011, 09h01
  2. Réponses: 0
    Dernier message: 24/06/2010, 12h11
  3. Liaison des données dans une application multi-couche
    Par Epitt dans le forum Accès aux données
    Réponses: 12
    Dernier message: 09/10/2009, 13h15
  4. Réponses: 4
    Dernier message: 15/05/2009, 13h29
  5. Réponses: 9
    Dernier message: 21/02/2006, 09h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo