WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Conception, Implémentation d'une Base de Données pour la Gestion d'un Organisme et Administration Réseau à distance sur base des outils libres "Cas de Projet Limete Université Cardinal Malula"

( Télécharger le fichier original )
par Blaise LUSIKILA LUAMBASU
Ecole supérieure des métiers de l'informatique et du commerce (ESMICOM) - Licence 2007
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

2. chiffrement et hash en php contre l'attaque man in the middle

2.1. Protection contre le vol de mot de passe

Pour éviter le vol du mot de passe, il faut limiter, voire proscrire, sa transmission et son stockage en clair. À la place, on va manipuler un hash, beaucoup sécurisé car il est (théoriquement) impossible à inverser. En pratique, c'est "réversible". Le hacker utilisera par exemple des dictionnaires pour obtenir le mot de passe en clair. Nous verrons comment lui compliquer la vie avec la technique du grain de sel.

2.1.1. Utilité du hash

Le hash est un procédé de chiffrement irréversible. Ceci implique qu'on ne peut appliquer la transformation inverse, et qu'on ne peut donc que comparer les hashs entre eux. L'avantage est que personne, y compris le webmaster, n'a accès aux mots de passe des membres.

Il existe deux principaux algorithmes de hash, le MD5 et le SHA1
Le MD5 est déprécié et NE DOIT PLUS ETRE UTILISE. En effet, une faille dans l'algorithme a été trouvée, permettant de diminuer considérablement le nombre d'opérations nécessaires à un inversement par rapport à une attaque force brute. De plus, et c'est le plus inquiétant, il a été montré qu'il était possible de créer volontairement des collisions avec un document donné. En effet, les hashs MD5 sont constitués de 32 caractères alphanumériques, soit 3632= 6.3349 combinaisons possibles. Ainsi, le nombre de hashs possibles est limité. Or, nous réalisons des hashs de chaîne de caractères (strings, fichiers...) de taille indeterminée et pour la plupart bien plus grandes que 32 caractères. Par exemple, nous pouvons constituer 21556 chaînes de 1000 caractères alphanumériques.

Nous avons donc une infinité de chaîne de caractères pouvant donner un hash précis et il est maintenant possible de déterminer instantanément les autres chaînes de caractères à partir d'une des chaînes et du hash.

Il est donc recommandé d'utiliser des algorithmes plus robustes, comme le SHA1 ou le SHA-256. Mais il faut bien garder en tête qu'un algorithme est reconnu comme fiable uniquement car il n'a pas encore été craqué. Ainsi, le SHA1 est déjà sur la pente descendante.

Maintenant que nous avons présenté le principe du hash et les principaux algorithmes, nous allons voir un exemple pratique de mise en place côté serveur et côté client.

 

nous pouvons tester un code de ce type sur notre serveur pour avoir la liste des hashs supportés par notre installation de PHP.

Afficher la liste des hashs supportés

print_r(hash_algos());

Résultat

Array

(

[0] => md4

[1] => md5

[2] => sha1

[3] => sha256

[4] => sha384

[5] => sha512

[6] => ripemd128

[7] => ripemd160

...

);


précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Je ne pense pas qu'un écrivain puisse avoir de profondes assises s'il n'a pas ressenti avec amertume les injustices de la société ou il vit"   Thomas Lanier dit Tennessie Williams