lundi 24 août 2009

Pourquoi il ne faut plus utiliser le MD5?

Beacoup d'applications Web et de logiciels en général, utilisent le MD5 pour entre autre stocker les mots de passe des utilisateurs.

Créé en 1991 par Ronald Riverst (RSA security), le MD5 est une fonction de hashage qui à partir d'un fichier numérique calcule une empreinte (ou hash) unique de 128 bits.

Les fonctions de hashage sont à sens unique, c'est à dire, qu'on ne peut pas reconstituer un document à partir de son empreinte. C'est ce qu'on appelle la propriété de "1° préimage".

Une fonction de hashage doit satisfaire deux autres propriétés:

- 2° préimage: si on a un message m1, il est difficile de trouver un autre message m2 tel que h(m1)=h(m2).

- résistance aux collisions: il est difficile de trouver deux messages distincts m1 et m2 tel que h(m1)=h(m2).

Mise à part l'insuffisance de la taille de l'empreinte (128bits) pour garantir une sécurité à long terme, le MD5 a été l'objet de diverses attaques qui ont prouvé sa faiblesse d'un point de vue cryptographique.

Parmi ces attaques citons:

- 1993: découverte d'une "pseudo-collison" dans la fonction de compression du MD5.

- 1996: découverte d'une faille permettant de créer des collisions à la demande sur une version modifiée (affaiblie) du MD5 (faille jugées non critique).

- 2005: une équipe chinoise annonce avoir créé une collison complète en à peine 1 heure (avec un IBM p690 cluster).

- 2007: un groupe de chercher annonce la découverte d'un méthode de création de deux fichiers produisant le même chucksum MD5.

- Décembre 2008: création d'un faux certificat SSL valide.

Dans son «Guide de la gestion des mots de passe à l'usage des entreprise», le NIST qui est l'organisme américain de standardisation, rappelle que l'utilisation des algorithmes de la famille MD5 n'a jamais était approuvée par ses services et recommande aux entreprises américaines d'utiliser des algorithmes de la famille SHA (Secure Hash Algorithm).

Le NIST recommande aussi l'utilisation de HMAC (Hash Message Authentication Code) pour améliorer la robustesse de l'empreinte générée. Le HMAC est une fonction mathématique qui a comme entrée le mot de passe en clair et un grain de sel (une valeur aléatoire) et en sortie l'empreinte du mot de passe. l'utilisation de cette fonction rend difficile les attaque par rainbow tables.

lundi 17 août 2009

WebGoat: un outil didactique pour la sécurité des applications Web




WebGoat est une plateforme éditée par l'OWASP (Open Web Application Security Project) destinée à la formation aux attaques contre les applications Web.
Délibérément vulnérable à diverses attaques, WebGoat se présente sous la forme de leçons avec des explications et des défis à relever.
À travers les différentes leçons, l'utilisateur doit montrer sa compréhension d'une notion de sécurité en exploitant une vulnérabilité. Chaque leçon couvre une thématique (Sql injection , XSS, vol de session, etc) et des aides sous la forme d'astuces sont disponibles.
WebGoat permet aux utilisateurs d'apprendre les bases de la sécurité des applications Web de manières pratique, sécurisée et légale.

WebGoat est disponible au téléchargement ici

Des vidéos des solutions des différents leçons sont disponibles ici

3,2,1,0.... et c'est parti

Donc voila je viens de créer mon premier blog, faut dire que je ne suis pas un adepte du "broadcast yourself" mais je trouve qu'un blog est un bon moyen de communication et de diffusion.

Ce blog sera consacré aux problématiques liées à l'informatique en général et la sécurité en particulier.

je vais essayer de faire des retours d'expérience sur mes travaux en cours (projets, outils ou simple reflexion).