Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'lwest'@'172.20.245.59' (using password: YES) in /mnt/115/sda/7/1/lwest/include/adm/stat.php3 on line 16
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /mnt/115/sda/7/1/lwest/include/adm/stat.php3 on line 18
Cryptage MD5 Client
Téléchargement
securepass.zip
Contenu
- securepass.js, la librairie javascript assurant le cryptage
- userlogon.html, exemple de mise en oeuvre sur un formulaire d'authentication
- userauthent.php, squelette de code PHP de vérification
- index_fr.html, documentation en français
- index_en.html, documentation en anglais
Présentation
Ce script propose une solution simple de cryptage de champs de formulaire côté client.
Il permet d'encrypter un champ de formulaire HTML, afin qu'il soit transmis encrypté sur le réseau.
L'utilisation privilégié est l'encryptage de mot de passe.
On peut cependant l'appliquer à n'importe quelle donnée ne nécessitant pas d'être décrypter coté serveur, MD5 etant non réversible.
Pour sécuriser le transfert des données, un développeur web doit utiliser HTTPS (HTTP + SSL).
Or HTTPS n'est pas toujours disponible, et possède quelques inconvénients : charge du serveur, traffic et temps de reponse plus importants que le simple HTTP.
Netscape 4 interdit l'écriture via javascript des champs password.
Par conséquent le mot de passe non crypté clair est donc egalement transmis...
Work-around: utiliser un champ texte pour le mot de passe.
Limitations
Brute force
Un quidam écoutant le réseau peut utiliser des outils type crack sur le mot de passe crypté pour
retrouver le mot de passe en clair. Workaround: utiliser des mots de passe résistants.
Sequence Replay
Ce système n'empêche en rien la technique dite "de sequence replay": Un hacker à l'écoute du
traffic récupère le couple login,password crypté) et rejoue la requête HTTP "telle quelle".
Note: Il existe des techniques pour empecher le replay. Je ne les esposent pas ici car
elles sont assez complexes pour faire l'objet d'une doc a part entière.
Documentation
encrypt()
Fonction javascript assurant :
- le cryptage d'un champ
- le stockage de la valeur crypté dans un deuxième champ
- l'effacement du champ en clair
Syntaxe
encrypt( widClear, widCrypted )
widClear est le champ contenant la donnée à crypter.
widCrypted est le champ receptacle de la donnée encrypté, généralement un champ caché.
Note: Ces paramètres ne sont pas les valeurs des champs, mais les champs eux-mêmes.