Qu'est-ce que le cryptage SHA ? SHA-1 vs SHA-2
Les sites web malveillants sont conçus pour exploiter les utilisateurs et voler des informations personnelles ou financières. Les pirates utilisent des techniques telles que les téléchargements « drive-by », les logiciels malveillants JavaScript, la publicité malveillante et l'hameçonnage pour compromettre votre système, souvent à votre insu. Ces menaces soulignent l'importance d'habitudes de navigation sûres et de mesures de sécurité robustes pour les sites web. Des outils tels que SiteLock Website Security peuvent protéger les utilisateurs et les propriétaires de sites contre les cyberattaques.
Table des Matières
Qu'est-ce que le cryptage SHA ?
Les algorithmes de hachage sécurisés (SHA) sont une famille de fonctions de hachage cryptographiques publiées par le National Institute of Standards and Technology (NIST) en tant que norme fédérale américaine de traitement de l'information (FIPS). Les cryptages SHA sont utilisés pour diverses méthodes, notamment pour hacher des données, des fichiers de certificats et à d'autres fins cryptographiques, y compris dans les crypto-monnaies comme le bitcoin. Ces algorithmes de hachage contribuent à sécuriser l'épine dorsale de l'infrastructure internet moderne.
Les familles de fonctions SHA les plus courantes sont SHA-1 et SHA-2 :
SHA-1 est une fonction de hachage de 160 bits issue des travaux réalisés sur l'algorithme MD5. À l'origine, le hachage SHA-1 a été créé par la National Security Agency (NSA) pour faire partie de son algorithme de signature numérique. Cependant, des faiblesses cryptographiques ont été découvertes dans SHA-1, et la norme n'a plus été approuvée pour la plupart des utilisations cryptographiques après 2010. SHA-1 ne répondant plus aux normes de cybersécurité actuelles, SHA-2 est devenu la fonction SHA la plus utilisée.
SHA-2 a été développé peu de temps après la découverte d'attaques par force brute rentables contre SHA-1. Il s'agit d'une famille de deux fonctions de hachage similaires, avec des tailles de bloc différentes, connues sous le nom de SHA-256 et SHA-512. La principale différence entre SHA-256 et SHA-512 est la taille des mots : SHA-256 utilise des mots de 32 octets, tandis que SHA-512 utilise des mots de 64 octets. Il existe également des versions modifiées de chaque norme, connues sous les noms de SHA-224, SHA-384, SHA-512/224 et SHA-512/256. La fonction SHA la plus couramment utilisée aujourd'hui est SHA-256, qui offre une protection suffisante aux niveaux de traitement informatique actuels. SHA-2 a une structure Merkle-Damgård avec une fonction de compression Davies-Meyer.
Outre ces options plus connues, il existe deux autres familles de variantes SHA que vous pouvez rencontrer, SHA-0 et SHA-3 :
SHA-0 est ce que nous appelons aujourd'hui la version de base de la fonction de hachage de 160 bits ou 20 octets de long, qui a été publiée en 1993 sous le nom d'algorithme SHA. L'utilisation de cette fonction de hachage a été interrompue très peu de temps après sa publication en raison de la découverte d'une faille majeure, et après un développement plus poussé de la théorie sous-jacente, l'algorithme SHA-1 a vu le jour.
SHA-3 est la technique de cryptage SHA qui connaît actuellement la croissance la plus rapide. Il se distingue des autres SHA par l'utilisation de Keccak, une fonction de hachage récemment développée. La longueur prise en charge est la même que celle de SHA-2, mais des différences significatives subsistent. Ce qui différencie le SHA-3, c'est sa structure globale, car il est basé sur un large éventail de fonctions aléatoires, qui prennent généralement en charge toutes les permutations aléatoires, ce qui permet d'entrer ou d'absorber, comme on l'appelle, n'importe quelle quantité de données présentées et de sortir ou d'écraser les données présentées. On obtient ainsi un résultat qui est effectivement pseudo-aléatoire et, en théorie, plus sûr.
SHA-1 vs SHA-2 : quelle est la différence ?
La différence entre SHA-1 et SHA-2 réside dans la « longueur » ou le « nombre de bits » que le condensé du message (contenu haché) contient pour toute entrée donnée. Ainsi, plus le nombre de bits du condensé est élevé, plus il est difficile de le casser en utilisant la tactique de la force brute qui a forcé l'évolution au-delà de SHA-1. SHA-2 produit un condensé de 256 bits alors que la fonction SHA-1 produit un condensé de 160 bits pour la même entrée. En raison de cette différence, SHA-1 offre une sécurité plus faible car il donne parfois le même condensé pour deux valeurs de données différentes, alors que SHA-2 produit un condensé unique pour chaque valeur de données car un grand nombre de combinaisons sont possibles (2^256 combinaisons possibles pour une fonction de 256 bits).
Comment le cryptage SHA est-il utilisé ?
Les SHA sont largement utilisés dans les protocoles et applications de sécurité, notamment la sécurité de la couche transport (TLS), la couche socket sécurisée (SSL), les signatures numériques, les certificats de messagerie S/MIME, PGP et IPsec. Ce type de cryptage est souvent exigé par la loi pour des applications spécifiques du gouvernement américain, comme la protection de données sensibles. Les éditeurs de navigateurs, tels que Google, Microsoft ou Mozilla, ont commencé à recommander l'utilisation de l'algorithme SHA-3 et ont cessé d'utiliser l'algorithme SHA-1.
L'une des utilisations les plus importantes des SHA est le protocole SSL/TLS, où ils sont utilisés comme algorithme de hachage pour les signatures numériques.
SSL et TLS sont des protocoles cryptographiques conçus pour fournir un canal de communication sécurisé entre les clients et les serveurs sur l'internet. Les certificats TLS/SSL sont un type de certificat X.509 utilisé pour valider l'identité d'un serveur auprès d'un navigateur.
L'objectif de ce type de certificat n'est pas seulement de fournir une authentification, mais aussi d'établir l'identité du serveur distant avec lequel le navigateur du client communique. Il contient les détails du serveur web et les fichiers clés qui lui sont associés. Les certificats doivent contenir les informations DNS et ne pas avoir expiré pour être correctement acceptés et créer une session SSL/TLS sans aucune erreur de sécurité.
Comment fonctionne le cryptage SHA ?
SHA, comme son nom l'indique, est un algorithme de hachage. Chaque donnée passée par l'algorithme produit un hachage unique qui ne peut être dupliqué par aucune autre donnée. La signature numérique qui en résulte est également unique puisqu'elle dépend du hachage généré à partir des données. Dans le cas de la communication proprement dite, on utilise la cryptographie symétrique, où la même clé qui hachure ou chiffre les données est utilisée pour les décrypter. Cela permet de révéler la clé publique sans compromettre la clé privée.
La plupart des algorithmes de hachage sont basés sur l'algorithme de hachage MD4 original et partagent donc une méthode de fonctionnement similaire.
Le processus de base du hachage, quel qu'il soit, consiste à convertir l'entrée, ou le message original, en binaire, puis à exécuter un ensemble de fonctions simples qui fonctionnent par l'intermédiaire de transistors et de bus standard de base, tels que AND, XOR, NOT, Rotate et OR. La valeur de hachage qui en résulte est une valeur hexadécimale unique mais dépourvue de sens. Le fait de devoir exécuter ces fonctions simples pour hacher correctement une entrée de données explique en partie pourquoi les puces à application spécifique (ASICS) peuvent être conçues pour optimiser le hachage.
Dans le cas du hachage SHA-256, des puces nouvellement créées ont été spécialement conçues pour augmenter la vitesse de création d'un hachage à partir d'une entrée. Dans le cas du minage de bitcoins, cela signifie que vous pouvez calculer plus de hachages par seconde, ce qui augmente les chances d'obtenir la récompense minée.
Le SHA est-il sûr ?
Le SHA-1 (Secure Hash Algorithm 1) date de 1995 et est connu pour être vulnérable aux attaques théoriques depuis 2005. Le National Institute of Standards and Technology des États-Unis a interdit l'utilisation de SHA-1 par les agences fédérales américaines depuis 2010, et les autorités de certification numérique ne sont plus autorisées à émettre des certificats signés SHA-1 depuis le 1er janvier 2016, bien que certaines exemptions aient été accordées.
Cependant, malgré ces efforts pour éliminer progressivement l'utilisation de SHA-1 dans certains domaines, l'algorithme est toujours utilisé assez largement dans une variété de domaines, y compris la validation de :
- des transactions par carte de crédit
- documents électroniques
- des signatures PGP/GPG des courriers électroniques
- des dépôts de logiciels libres
- sauvegardes
- les mises à jour de logiciels.
Ces exemptions présentent un risque accru d'exposition, c'est pourquoi des pressions importantes ont été exercées pour qu'elles passent à une norme plus sûre. De nombreux navigateurs, comme Google Chrome, ont commencé à marquer les certificats signés SHA-1 comme dangereux pour les visiteurs.
Les SHA sont, par définition, sécurisés. Toutefois, le niveau de sécurité associé à chaque type a augmenté au fil du temps, à mesure qu'une nouvelle itération était développée. Comme nous l'avons vu, le SHA-0 présente plus de vulnérabilités que le SHA-1, lequel présente plus de vulnérabilités que le SHA-2. Cette tendance se poursuivra à l'avenir, car la course aux armements entre les attaquants et les défenseurs des données sensibles continue.
Quel SHA dois-je utiliser ?
Afin de protéger le chiffrement de vos utilisateurs, vous devez toujours utiliser le SHA le mieux adapté au projet sur lequel vous travaillez. De nos jours, il s'agit le plus souvent de la famille SHA-2, mais il existe des cas d'utilisation pour la plupart des types de certificats. Tous les certificats SHA ne sont pas compatibles avec tous les serveurs. Il est donc essentiel, pour créer un environnement sécurisé, de comprendre non seulement les besoins de votre cas d'utilisation, mais aussi ceux de votre équipement.
Vous trouverez ci-dessous la version de différents serveurs courants nécessaire pour être compatible avec les certificats numériques SHA-2 :
- Serveur Apache : 2.0.63+
- IBM HTTP Server : 8.5 (intégré à Domino 9)
- Produits basés sur Java : Java 1.4.2+
- Mozilla : Produits basés sur NSS 3.8+
- Oracle WebLogic : 10.3.1+
Comme indiqué précédemment, SHA-256 est la fonction SHA la plus couramment utilisée actuellement. Toutefois, à mesure que le traitement informatique progresse, SHA-256 deviendra plus vulnérable aux attaques, à l'instar de ses incarnations précédentes. S'assurer de connaître les dernières mises à jour des algorithmes de hachage sécurisés est le meilleur moyen de crypter correctement les données sans courir de risque.
Maintenant que vous connaissez mieux le cryptage SHA, contactez-nous dès aujourd'hui pour en savoir plus sur la façon dont nos produits peuvent protéger votre site web contre les menaces de sécurité.