L’aug­men­ta­tion phé­no­mé­nale des quantités de données traitées dans les réseaux mondiaux et locaux ne cesse de soulever des questions comme : avec quelle rapidité peut-on accéder à ces grands volumes de données et dans quelle mesure la sécurité de ce transfert de données est-elle garantie ? C’est ici qu’in­ter­vient la fonction de hachage, avec d’autres tech­no­lo­gies de sécurité. Découvrez ses ca­rac­té­ris­tiques et son utilité.

Le terme anglais « hash » signifie « hacher ». Dans le cadre de ce processus, les données sont donc « hachées » par la fonction de hachage avant d’être ramenées à une longueur uniforme, quelle que soit la taille de la valeur initiale. Cette fonction est utilisée dans de très nombreux domaines des tech­no­lo­gies de l’in­for­ma­tion tels que :

  • La com­mu­ni­ca­tion chiffrée entre le serveur web et le na­vi­ga­teur ainsi que la gé­né­ra­tion d’iden­ti­fiants de session pour les ap­pli­ca­tions web et la mise en cache de données (caching) 
  • La pro­tec­tion des données sensibles comme les mots de passe, les analyses web, les moyens de paiement 
  • La signature des messages 
  • La détection d’ensembles de données si­mi­laires ou iden­tiques par les fonc­tion­na­li­tés de recherche
Dé­fi­ni­tion

Fonction de hachage : la fonction de hachage convertit des séquences de ca­rac­tères de dif­fé­rentes longueurs en séquences de même longueur. Par exemple, la fonction de hachage confère à des mots de passe dif­fé­rents une quantité définie de ca­rac­tères autorisés. Une con­ver­sion de la valeur de hachage dans le sens inverse, c’est-à-dire vers la séquence de ca­rac­tères initiale, est exclue.

Quelles sont les ca­rac­té­ris­tiques d’une fonction de hachage ?

Des exigences définies sont imposées à une fonction de hachage pour qu’elle présente des ca­rac­té­ris­tiques données. Ces exigences sont les suivantes :

Sens unique de la fonction de hachage

Une valeur de hachage générée ne doit pas permettre de générer à nouveau le contenu des données initial. Dans l’exemple ci-dessus, il doit donc être im­pos­sible de retrouver le mot de passe « susi_562#alone » à partir de la valeur de hachage générée « $P$Hv8rpLanT­SYSA/2bP1xN.S6Mdk32.Z3 ».

Absence de col­li­sions

En aucun cas, une valeur de hachage identique ne doit être attribuée à des données initiales dif­fé­rentes. Chaque saisie doit générer une autre valeur de hachage. Lorsque cet objectif est atteint, on parle de fonction de hachage cryp­to­gra­phique. Dans l’exemple ci-dessus, on ne constate aucune valeur de hachage identique et donc aucune collision entre les données générées. D’autres tech­no­lo­gies per­met­tent d’éviter les col­li­sions de ce type.

Célérité de la fonction de hachage

Si la con­ver­sion des données en valeur de hachage prenait trop de temps, ce processus n’aurait pas d’utilité. La fonction de hachage doit donc tra­vail­ler avec une extrême rapidité. Dans les bases de données, les valeurs de hachage sont stockées dans ce qu'on appelle des tables de hachage pour garantir un accès rapide.

Quelle est la valeur de hachage générée ?

La valeur de hachage générée à l’aide de la fonction de hachage dispose d’une longueur fixe définie par la tech­no­lo­gie de hachage utilisée. La quantité de ca­rac­tères saisis n’a ici aucune incidence ; le résultat com­por­tera toujours le même nombre de ca­rac­tères. Les ca­rac­tères autorisés sont définis dans la fonction de hachage.

La valeur de hachage est donc le résultat calculé avec la fonction de hachage et un al­go­rithme de hachage. On utilise également le terme d’« empreinte numérique » pour désigner la valeur de hachage. L’uti­li­sa­tion de ce terme renvoie au caractère unique de chaque valeur de hachage qui est com­pa­rable avec le caractère unique des em­preintes de l’être humain. En utilisant les mi­nus­cules de « a » à « f » et les chiffres de « 0 » à « 9 » pour une longueur de hachage de 64 ca­rac­tères, on obtient 1.1579209e+77 pos­si­bi­li­tés, c’est-à-dire 70, suivi par 24 zéros ! Vous pouvez constater que même les séquences de ca­rac­tères d’une faible longueur et/ou com­por­tant davantage de ca­rac­tères uti­li­sables génèrent une empreinte numérique ex­ploi­table.

Les valeurs de hachage pré­sen­tées dans l’exemple plus haut sont générées en toute sim­pli­cité avec quelques lignes de code PHP :

<?php
echo hash(‘sha256’, ‘apple’); 
?>

donne toujours la valeur de hachage ou l’empreinte numérique « 3a42c503953909637f78dd8c99b3b85ddde362415585afc11901bdefe8349102 ».

Pour le mot « apple », la commande « hash » s’est vu attribuer l’al­go­rithme de chif­fre­ment « sha256 ».

Fonction de hachage et sites internet

Lors d’un transfert de données chiffré en SSL, le cer­ti­fi­cat de serveur est envoyé au na­vi­ga­teur de l’uti­li­sa­teur lors de la requête auprès du serveur web. Une clé de session générée avec une fonction de hachage est alors envoyée au serveur sur lequel elle est chiffrée et vérifiée. Lorsque le serveur confirme la clé de session reçue, le trafic de données HTTPS chiffré peut alors commencer. Les paquets de données échangés dans ce cadre sont également chiffrés, ce qui rend pra­ti­que­ment im­pos­sible toute attaque sur le trafic de données.

Les clés de session (ID de Session) sont générées à partir de données variables con­cer­nant la visite d’un site internet, telles que l’adresse IP et l’ho­ro­da­tage, et sont trans­mises avec l’URL. De tels ID de session sont par exemple né­ces­saires pour iden­ti­fier for­mel­le­ment l’uti­li­sa­teur d’un panier. La trans­mis­sion via une URL (www.domain.tld/index?sid=d4ccaf2627557c756a0762419a4b6695) n’est plus guère utilisée. L’iden­ti­fi­ca­tion dans l’en-tête du site internet via un cookie s’est de plus en plus imposée.

Le stockage tem­po­raire des in­for­ma­tions dans des caches est également chiffré à l’aide de valeurs de hachage afin que les uti­li­sa­teurs non autorisés ne puissent pas dé­ter­mi­ner les sites internet visités et les données d’accès de paiement utilisées lors de la con­sul­ta­tion du cache.

Lorsque le protocole SFTP est utilisé, la com­mu­ni­ca­tion entre le serveur FTP et le client se déroule de manière similaire.

Cer­ti­fi­cats SSL
Faites le choix de la sécurité
  • Sécurisez vos trans­ferts de données
  • Renforcez la confiance de vos clients
  • Améliorez votre po­si­tion­ne­ment sur Google

Pro­tec­tion des données con­fi­den­tielles

Les données d’accès pour les comptes web sont des cibles ap­pré­ciées des cy­ber­cri­mi­nels. Leur objectif est soit de perturber le fonc­tion­ne­ment d’un site internet afin par exemple de diminuer les revenus issus de la publicité basée sur le trafic ou d’accéder à des in­for­ma­tions sur les moyens de paiement en­re­gis­trés.

Si on prend pour exemple un site WordPress, on constate qu’un mot de passe est toujours en­re­gis­tré sous une forme chiffrée. Combinée avec les clés de sécurité générées dans le système, cette méthode offre un haut niveau de sécurité. Ce niveau de sécurité est essentiel, notamment pour se prémunir contre les attaques par force brute. Dans ces attaques, le hacker essaie des com­bi­nai­sons à l’aide d’une fonction de hachage qu’il a per­son­nel­le­ment pro­gram­mée, jusqu’à ce qu’il trouve un résultat au­to­ri­sant l’accès. Les mots de passe longs dotés d’un haut niveau de sécurité com­pli­quent ces attaques puisque la puissance de calcul né­ces­saire du côté du hacker peut augmenter sans commune mesure. Nous ne le dirons jamais assez : évitez les mots de passe simples et conservez vos données d’accès, quelles qu’elles soient, à l’abri des tiers !

Signer des e-mails

Le trafic e-mail passe via des serveurs prévus spé­ci­fi­que­ment pour cette forme de trans­mis­sion de messages. Des clés générées à l’aide d’une fonction de hachage sont également utilisées pour le transfert des données afin de signer les messages nu­mé­ri­que­ment.

Voici comment se déroule l’envoi de messages avec une signature numérique :

  • L’ex­pé­di­teur calcule une valeur de hachage à partir de son message et le chiffre avec sa propre clé (la signature numérique).
  • Le message est envoyé au des­ti­na­taire avec la valeur de hachage chiffrée.
  • Le des­ti­na­taire génère une valeur de hachage à partir du message reçu en utilisant la même fonction de hachage. Par ailleurs, il déchiffre la valeur de hachage reçue avec la clé of­fi­cielle et compare les deux.
  • Si les deux valeurs cor­res­pon­dent, le des­ti­na­taire peut partir du principe que le message n’a pas été manipulé lors de la trans­mis­sion.

Veuillez noter qu’une signature numérique ne chiffre pas le message, mais apporte uni­que­ment la preuve de son intégrité. Les contenus con­fi­den­tiels doivent faire l’objet d’un chif­fre­ment sup­plé­men­taire.

Quelle est l’utilité de la fonction de hachage dans les fonc­tion­na­li­tés de recherche ?

Effectuer des re­cherches dans de grands volumes de données est une tâche qui demande certaines res­sources. Imaginez que vous deviez re­cher­cher un terme dans un tableau contenant tous les habitants d’une métropole avec de nom­breuses cellules (nom, prénom, numéro de rue, etc.), vous y passeriez un temps mo­nu­men­tal et auriez besoin d’une puissance de calcul con­si­dé­rable. Pour sim­pli­fier cette recherche, il est possible de calculer pour chaque objet de données une valeur de hachage qui iden­ti­fiera for­mel­le­ment l’entrée. Pour re­cher­cher dans le tableau, on calcule une nouvelle valeur de hachage à partir du mot-clé et on le compare avec les valeurs de hachage du tableau. Un nombre limité de lettres, de chiffres et de ca­rac­tères est donc comparé aux lettres, chiffres et ca­rac­tères du tableau. Cela demande nettement moins de temps que de re­cher­cher tous les prénoms com­men­çant par « Ann » dans toutes les cellules exis­tantes du tableau.

En résumé

Les fonctions de hachage sont utilisées pour améliorer la sécurité dans la com­mu­ni­ca­tion élec­tro­nique. Des normes très élaborées ont aujourd’hui été établies dans ce domaine. Mais les hackers ne sont pas tournés les pouces et on doit aujourd’hui faire face à des tech­no­lo­gies d’attaque de plus en plus so­phis­ti­quées.

Aller au menu principal