Cher journal,
Jusqu'a présent je ne mettais jamais posé la question de comment empecher l'acces aux fichiers .class de mes applets java, car de toute facon je m'en fichais pas mal.
Mais supposons que mon site heberge une applet qui doit rester accessible via la page web, mais pas par son lien direct, afin d'empecher les eventuels download et décompilage (oui car si c'est un module d'administration ce serait embetant que la source soit visible...)
Quelqu'un peut il m'eclairer ??
# Re: Proteger ses .class
Posté par Jérôme (site web personnel) . Évalué à 3.
[^] # Re: Proteger ses .class
Posté par cho7 . Évalué à -2.
Mais vu la facilité déconcertant avec laquelle on peut décompiler un binaire java, l'espoir de voir un site sécurisé via une applet java est donc nul ?
[^] # Re: Proteger ses .class
Posté par Jylam / jylam.lnxsce (site web personnel) . Évalué à 4.
Il ne faut pas penser securité par "cacher les infos", mais par "securiser les infos".
[^] # Re: Proteger ses .class
Posté par cho7 . Évalué à -1.
Si mon applet dispose d'un code genre
if (password.getValue.equals("blabla"))
//mettre a jour la base, avec les mot de passes de connexion en dur dans le code
else
//vous netes pas autorisé a modifier la base
Bah le décompilage du .class rend l'acces de ma base totalement libre, les chaines de connexions etant dedans.
L'acces aux fichiers par un applet est très restreint, une solution possible magrès tout a base de fichier locaux contenant les mots de passes est elle envisageable ?
Comment y remedier ?
[^] # Re: Proteger ses .class
Posté par Jylam / jylam.lnxsce (site web personnel) . Évalué à 2.
C'est crypté, donc ca va etre tres dur de retrouver le pass originel. (Tu est root de ta machine, mais meme en ayant acces au /etc/shadow ou passwd, tu mettras un temps ENORME avant de retrouver le moindre pass)
[^] # Re: Proteger ses .class
Posté par cho7 . Évalué à 0.
[^] # Re: Proteger ses .class
Posté par Larry Cow . Évalué à 2.
[^] # Re: Proteger ses .class
Posté par JMVF . Évalué à 1.
Un jour un copain est venu me dire de changer de mot de passe alors que je le trouvais super bien à l'époque.
# Re: Proteger ses .class
Posté par Franck . Évalué à 1.
A vérifier.
[^] # Re: Proteger ses .class
Posté par Axel R. (site web personnel) . Évalué à 1.
L'utilisation de cryptage me semble la meilleure solution pour les données sensibles.
Axel
# Re: Proteger ses .class
Posté par heltem (site web personnel) . Évalué à 1.
[^] # Re: Proteger ses .class
Posté par cho7 . Évalué à -1.
Mais bon comme j'ai dit au début de ce journal, je n'ai pas de code, c'etait juste une idée qui me passait par la tete, a savoir comment on sécurise une applet java
[^] # Re: Proteger ses .class
Posté par Pascal . Évalué à 2.
[^] # Re: Proteger ses .class
Posté par Black Fox . Évalué à 4.
# Re: Proteger ses .class
Posté par Obsidian . Évalué à 2.
Ben si ton hébergeur le permet (cela consomme beaucoup de ressources), tu peux peut-être envisager d'écrire une servlet plutôt qu'une applet ...
Sinon, effectivement, ton navigateur suit un lien exactement de la même façon que l'utilisateur le fait lorsqu'il clique sur un lien. D'ailleurs, le serveur web n'aura aucun moyen de faire la différence. Pour aller même un peu plus loin, il n'y a aucune raison valable pour que l'utilisateur ne puisse pas voir ce qui fonctionne sur sa propre machine. Si tu en arrives à buter sur ce genre de problème, il est problable que ton projet entier souffre d'une erreur de conception ...
D'ailleurs, moi personnellement, les sites dynamiques, je les développe toujours à l'ancienne mode: CGI, en langage C, voire C++ à la limite. Mon application a l'avantage de tenir entièrement dans un seul tout petit fichier exécutable, et très rapide de surcroît (appréciable dans ce domaine où un programme qui s'exécute doit être éphémère). Bon c'est difficile à mettre en place chez un hébergeur, mais sur un Apache perso, en en milieu professionnel, cela remplit parfaitement ses fonctions.
[^] # Re: Proteger ses .class
Posté par Là Yop . Évalué à 1.
[^] # Re: Proteger ses .class
Posté par Obsidian . Évalué à 3.
Et justement, sauf à vouloir faire du closed source, je ne vois pas pourquoi une routine qui doit rester confidentielle devrait s'exécuter coté client. C'est plutôt au serveur de calculer le résultat, puis de le livrer tout fait avec l'applet qui l'exploite au client.
# Re: Proteger ses .class
Posté par Damien Lespiau (site web personnel) . Évalué à -1.
Bon alors le monde est-il aussi mauvais ?
NON !
comme suggéré plut haut, les obfuscateurs de code débarquent à la rescousse
http://www.acm.org/crossroads/xrds4-3/codeob.html(...)
apres le choix de l'obfuscateur est délicat, que est le mieux ? où trouver des "benchmark" d'obfuscateurs ? existe-t-il un dé-obfuscateur pour tel ou tel obfuscateur ? est-ce vraiment impossible de comprendre qqch avec le passage de tel obfuscateur et après décompilation avec JaD ?
bref, après, c'est quand même un peu de boulot :)
bonne chance
[^] # Re: Proteger ses .class
Posté par account . Évalué à 1.
* Enhanced readability of the generated source code.
* Ability to comment Java source code with JVM bytecodes. Useful for verification and educational purposes.
* Full support for inner and anonymous classes.
* Fast decompilation and simple setup.
* Automatic conversion of identifiers garbled by Java obfuscators into valid ones.
* Free for non-commercial use. If you would like to use Jad for commercial purposes, please contact me for conditions.
[^] # Re: Proteger ses .class
Posté par Damien Lespiau (site web personnel) . Évalué à 1.
c'est pas parce que tu trouves le mot "obfuscators" dans les caractéristiques de Jad que tout de suites les obfuscateurs, c'est mort. Comme d'hab c'est plus facile de faire chier (écrire un obfuscateur) qui de trouver les parades (ce que fait Jad sur un léger détail)
enfin, bref
# Histoires de loi de la jungle. Tarzan viens me sauver !!!
Posté par Samaty Tramo . Évalué à 2.
Alors on parle de décompilation de swg, de fla ...
Puis de director leur joujou favorie, puis de lingo.
Là, ils me sorte que cela serait bien de laissé tombé le actionScript pour tout faire en lingo ...
Et puis je leur demande s'ils ont essayer Java.
2 mots sur Java.
Et là surprise, ils me disent Java est "OpenSource" car tu peux décompilé tes prog en en ByteCode.
Je leur répond que un java n'est pas construit en source ouverte, mais c'est vrai qu'il y a bouquin très complet qui explique ce que Java est, et d'autres pour expliquer le ByteCode.
Et que décompiler des applications ne peut etre fait que pour besoin d'interopérabilité surtout si l'auteur est pas en accord avec cette acte.
Et là, ils m'invoquent la loi de la jungle "on peut donc on fait".
Et là, j'ai pensé à ma bonne vieille GPL.
Quel impact peut avoir la GPL avec ce genre d'utilisateurs de "base".
Disons aussi que j'ai été mis au courant chez un grand opérateur historique de violation de copyright. En gros, utilisation de menu dynamique d'un chinois en javascript qui le vendait pour des solutions commercial. Je dois dire que j'étais assez mal a l'aise et que j'ai protesté dans le vide.
C'était toujours la même hatitude "on peut donc on fait".
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.