Protection d'une application J2EE :
---- Objectif: développer un système de contrôle de licence
La solution que je veux développez est la suivante :
Lutilisateur doit posséder une licence valide pour pouvoir lancer l'application
L'utilisation de l'application pendant une période donnée
----- Méthode de cryptologie choisie (asymétrique) :
Logiciel utilsé:
Keytool de sun (gratuit)
openSSL (opensources)
----- Stratagème étudié
On dispose dune clé privée qui signe le fichier de licence.
La clé publique de vérification du fichier de licence est contenue dans un JAR
ou dans un repértoire de l'application.
LAPI de vérification de licence vérifie la signature du fichier de licence fourni.
----- API pour licence
verifierLicence()
lireProprietes()
----- Code Launcher
lireFichierLicence()
If (verifierLicence() == true){
}
les failles de cette solution :
1. Le pirate dé-jarre l'application, remplace la clé publique par la
sienne, et signe la licence avec sa clé privée
2. Le pirate dé-jarre l'application, décompile les classes, repère lappel
au contrôle de licence et le met en commentaires !
3.Si on chiffre la licence, alors il faut fournir une clé secrète. Le
pirate peut alors déchiffrer la licence et la modifier
Quant à chiffrer/déchiffrer à la volée cela consommerait trop de temps.
Quelqu'un peut me proposer une autre solution ou améliorer la mienne ? Merci