Salut,
je pense que m�me avec un offuscateur ton client (avec plus de mal) 
arrivera encore � acc�der � l'application.
Les codes offusqu�s peuvent �tre d�compiler surtout si c'est juste une 
classe qui est en cause et au pire il peut remplacer la classe par une 
autre.

Je pense que tu as plus un probl�me de conception de ta securit� pour le 
d�marrage. Si j'ai bien compris tu rentres un mot de passe au d�marrage 
qui est valid� par ta base et l'appli se lance.
Ton client a fait sauter cette validation et l'appli c'est lanc�.  Ce 
qui m'�tonne c'est que la connection � la base se r�alise sans 
authentification ou si elle a lieu cette authentification est en dur 
dans le code.
Le mieux est de prot�ger toutes les donn�es de connection � la base dans 
un fichier encrypt� prot�g� par un mot de passe qui est founit au 
d�marrage. Ainsi si le mot de passe n'est pas fourni aucune connexion � 
la base ne peut �tre r�alis�e. Pour cela regarde JCE et JSSE. Il te 
permette de cr�er des espaces de stokage de cl� et de certificat qui 
seront utilis�s pour encrypter et d�crypter. Si tu utilises des 
certificats regarde OpenSSL pour g�n�rer tes certificats sans passer par 
un fournisseur qui est payant.
La d�marche a suivre en g�n�ral est de r�aliser un certificat/cl�e 
priv�e qui fait autorit�, de g�n�rer un certificat/cl� priv� sign� par 
l'authori�.
De g�n�rer un cl� temporaire utilisant un algo s�re (utilisant des cl�s 
tr�s tr�s longue) et rapide comme Blowfish par exemple. D'encrypter ton 
ficher de donn�es secr�te avec cette cl�e, d'encrypter la cl� avec la 
cl� public du dernier certificat et d'ecrire cette cl�e encrypt�e dans 
le fichier contenant les donn�es encrypt�e.
Pour la lecture tu demande le mot de passe de la cl� priv�e, tu utilise 
la cl� priv� pour d�cript� la cl� Blowfish (par exemple), tu utilise la 
cl� blowfish pour d�cripter les donn�es que tu utilises
 pour r�aliser la connexion � la base de donn�es. Ainsi sans mot de 
passe de la cl� priv� tu ne peux pas te connecter � la base.
De temps en temps tu peux reg�n�rer la cl� blowfish et r�encripter tes 
donn�es.

Tu n'est pas oblig� de passer par des certificats et juste utilis� un 
algo d'encryptage comme Blowfish mais la proc�dure normal pour prot�ger 
des donn�es par mot de passe est de les utiliser.

De plus de temps en temps il est bon de changer les mots de passe de la 
connexion � la base de donn�es

Philippe Delrieu
Cybernomade

Damien Lecan wrote:

>Bonjour,
>
>Ce matin, notre client nous a montr� le manque de s�curit� de notre
>application.
>
>En effet, notre application ne peut se lancer sans d�verouillage par
>login/mdp. Les �changes avec la base de donn�es sont m�mes crypt�s pour
>�viter de voler le mot de passe sur le r�seau. J'�tais m�me assez fier du
>boulot effectu�.
>
>Mais le client � pu rentrer sans m�me decouvrir le mot de passe. A notre
>grande surprise, il a juste "d�compil�" notre code et modifi� l'application
>pour que l'authentification soit toujours bonne ... Simple, cela ne lui a
>pris plus de 5 min (surement moins encore s'il y avait encore eu les
>commentaires).
>
>Je sais qu'il existe des outils "d'obfuscation" de code, mais est-ce
>vraiment valable ? Est-ce la solution � mon probl�me ?
>Alors alors, l'application est peut-�tre mal con�ue ...
>
>S'il faut que j'utilise un tel outil, � quel moment du processus de
>d�veloppement faut-il l'appliquer ?
>
>Merci de votre aide.
>
>Damien Lecan
>



Répondre à