Le premier jour de l'année 2016, Mozilla a arrêté le support d'une technologie de sécurité affaiblie appelée SHA-1 dans le navigateur Web de Firefox. Presque immédiatement, ils ont renversé leur décision, car elle couperait l'accès à certains sites Web plus anciens. Mais en février 2017, leurs craintes se sont enfin concrétisées: les chercheurs ont brisé SHA-1 en créant la première attaque de collision du monde réel. Voici ce que tout cela signifie.
Le SHA dans SHA-1 signifie Secure Hash Algorithm , et, tout simplement, vous pouvez le considérer comme une sorte de problème mathématique ou méthode qui brouille les données qui y sont placées . Développé par la NSA des États-Unis, il s'agit d'une composante essentielle de nombreuses technologies utilisées pour crypter les transmissions importantes sur Internet. Méthodes de chiffrement courantes SSL et TLS, dont vous avez probablement entendu parler, peuvent utiliser une fonction de hachage comme SHA-1 pour créer les certificats signés que vous voyez dans la barre d'outils de votre navigateur.
Nous n'irons pas dans les mathématiques et l'informatique de l'une des fonctions SHA, mais voici l'idée de base. Un "hachage" est un code unique basé sur l'entrée de n'importe quelles données. Même de petites chaînes de caractères aléatoires entrées dans une fonction de hachage comme SHA-1 renverront un nombre de caractères long et fixe, rendant (potentiellement) impossible le retour de la chaîne de caractères aux données d'origine. C'est ainsi que le stockage de mot de passe fonctionne habituellement. Lorsque vous créez un mot de passe, votre entrée de mot de passe est hachée et stockée par le serveur. À votre retour, lorsque vous tapez votre mot de passe, il est à nouveau haché. Si elle correspond au hash d'origine, l'entrée peut être supposée être la même, et vous aurez accès à vos données.
Les fonctions de hachage sont utiles principalement parce qu'elles permettent de savoir si l'entrée, par exemple, un fichier ou un mot de passe, a changé. Lorsque les données d'entrée sont secrètes, comme un mot de passe, le hachage est presque impossible à inverser et récupérer les données d'origine (également connu sous le nom de «clé»). C'est un peu différent de "cryptage", dont le but est de brouiller les données dans le but de le désembrouiller plus tard, en utilisant des chiffrements et des clés secrètes. Les hachages sont simplement destinés à assurer l'intégrité des données - pour s'assurer que tout est identique. Git, le logiciel de contrôle de version et de distribution pour le code open source, utilise les hachages SHA-1 pour cette raison.
C'est beaucoup d'informations techniques, mais pour simplifier: un hachage n'est pas la même chose que le cryptage il est utilisé pour identifier si un fichier a changé
Disons que vous devez visiter un site Web en privé. Votre banque, votre adresse e-mail et même votre compte Facebook utilisent tous le cryptage pour conserver les données que vous leur envoyez en privé. Un site Web professionnel fournira le cryptage en obtenant un certificat d'une autorité de confiance - un tiers, de confiance pour s'assurer que le cryptage est au niveau, privé entre le site et l'utilisateur, et ne pas être espionné par une autre partie. Cette relation avec le tiers, appelée Autorités de certification , ou CA , est cruciale, car tout utilisateur peut créer un certificat «auto-signé» - vous pouvez même le faire vous-même sur un machine fonctionnant sous Linux avec Open SSL. Par exemple, Symantec et Digicert sont deux sociétés de CA très connues.
Parcourons un scénario théorique: How-To Geek veut rester connecté aux sessions des utilisateurs privées avec le cryptage, donc il demande à une CA comme Symantec avec un Demande de signature de certificat ou CSR . Ils créent une clé publique et clé privée pour crypter et décrypter les données envoyées sur Internet. La requête CSR envoie la clé publique à Symantec avec des informations sur le site Web. Symantec vérifie la clé par rapport à son enregistrement pour vérifier que les données ne sont pas modifiées par toutes les parties, car toute petite modification dans les données rend le hachage radicalement différent.
Ces clés publiques et certificats numériques sont signés par des fonctions de hachage. ces fonctions sont faciles à voir. Une clé publique et un certificat avec un hachage vérifié de Symantec (dans notre exemple), une autorité, assure à un utilisateur de How-To Geek que la clé est inchangée, et non envoyée par quelqu'un de malveillant.
Parce que le hachage est facile à surveiller et impossible (certains diront "difficile") à inverser, la signature de hachage correcte et vérifiée signifie que le certificat et la connexion peuvent être approuvés, et que les données peuvent être envoyées cryptées de bout en bout. . Mais que faire si le hachage n'était pas réellement unique ?
Vous avez peut-être entendu parler du "problème d'anniversaire" en mathématiques , bien que vous n'ayez peut-être pas su comment il s'appelait. L'idée de base est la suivante: si vous réunissez un groupe de personnes suffisamment important, il y a de fortes chances que deux personnes ou plus aient le même anniversaire. Plus haut que ce à quoi on s'attend, en fait, assez pour que cela ressemble à une étrange coïncidence. Dans un groupe aussi petit que 23 personnes, il y a 50% de chance que deux partagent un anniversaire.
C'est la faiblesse inhérente à tous les hashs, y compris SHA-1. Théoriquement, la fonction SHA doit créer un hachage unique pour toutes les données qui y sont entrées, mais à mesure que le nombre de hachages augmente, il devient plus probable que différentes paires de données puissent créer le même hachage. Donc, on pourrait créer un certificat non approuvé avec un hachage identique à un certificat de confiance. S'ils vous ont amené à installer ce certificat non approuvé, il pourrait se faire passer pour de confiance et distribuer des données malveillantes.
Trouver des hachages correspondants dans deux fichiers est appelé une attaque de collision . Au moins une attaque de collision à grande échelle est déjà connue pour les hachages MD5. Mais le 27 février 2017, Google a annoncé SHAttered, la toute première collision artisanale pour SHA-1. Google a pu créer un fichier PDF contenant le même hachage SHA-1 qu'un autre fichier PDF, malgré un contenu différent.
SHAttered a été effectué sur un fichier PDF. Les fichiers PDF sont un format de fichier relativement lâche; Beaucoup de petits changements au niveau des bits peuvent être effectués sans empêcher les lecteurs de l'ouvrir ou de provoquer des différences visibles. Les fichiers PDF sont également souvent utilisés pour diffuser des logiciels malveillants. Bien que SHAttered puisse fonctionner sur d'autres types de fichiers, comme les ISO, les certificats sont spécifiés de manière rigide, rendant une telle attaque improbable.
Alors, quelle est la facilité de cette attaque? SHAttered était basé sur une méthode découverte par Marc Stevens en 2012 qui nécessitait plus de 2 ^ 60.3 (9.223 quintillions) d'opérations SHA-1 - un nombre stupéfiant. Cependant, cette méthode est toujours 100 000 fois moins d'opérations que ce qui serait nécessaire pour obtenir le même résultat avec une force brute. Google a constaté qu'avec 110 cartes graphiques haut de gamme fonctionnant en parallèle, il faudrait environ un an pour produire une collision. La location de ce temps de calcul à partir d'Amazon AWS coûterait environ 110 000 $. Gardez à l'esprit que lorsque les prix baissent pour les pièces d'ordinateur et que vous pouvez obtenir plus de puissance pour moins, les attaques comme SHAttered deviennent plus faciles à déclencher.
110 000 $ peut sembler beaucoup, mais c'est une question d'abordabilité pour certaines organisations. Cela signifie que les cybervilliens réels pourraient forger des signatures de documents numériques, interférer avec les systèmes de sauvegarde et de contrôle de version comme Git et SVN, ou rendre une ISO Linux malveillante légitime.
Heureusement, il existe des facteurs atténuants. SHA-1 est rarement utilisé pour les signatures numériques. Les autorités de certification ne fournissent plus de certificats signés avec SHA-1, et Chrome et Firefox ont cessé de les prendre en charge. Les distributions Linux se déclenchent généralement plus d'une fois par an, ce qui rend impossible la création d'une version malveillante par un attaquant, puis la génération d'un hachage avec le même hachage SHA-1.
D'autre part, certaines attaques basées sur SHAttered se passe déjà dans le monde réel. Le système de contrôle de version SVN utilise SHA-1 pour différencier les fichiers. Le téléchargement des deux fichiers PDF avec des hachages SHA-1 identiques vers un référentiel SVN le corrompra.
L'utilisateur type n'a pas grand chose à faire. Si vous utilisez des sommes de contrôle pour comparer des fichiers, vous devez utiliser SHA-2 (SHA-256) ou SHA-3 plutôt que SHA-1 ou MD5. De même, si vous êtes un développeur, veillez à utiliser des algorithmes de hachage plus modernes comme SHA-2, SHA-3 ou bcrypt. Si vous craignez que SHAttered ait été utilisé pour donner le même hachage à deux fichiers distincts, Google a publié un outil sur le site SHAttered qui peut vérifier pour vous.
Crédits image: Lego Firefox, beaucoup de hachage, s'il vous plaît ne pas blesser l'auteur Web inconnu, Google.
Comment supprimer une photo de votre histoire Instagram
L'histoire d'Instagram est géniale, mais comme avec toutes les fonctionnalités de Story, il est facile de laisser la mémoire musculaire prendre le dessus et partager accidentellement une photo avec tous vous suit plutôt que la personne à qui vous vouliez l'envoyer. J'ai fait cette erreur plus d'une fois.
Les entreprises PC se désintoxiquent avec la sécurité
Rien n'est parfaitement sûr, et nous n'éliminerons jamais toutes les vulnérabilités. Mais nous ne devrions pas voir autant d'erreurs bâclées que celles de HP, Apple, Intel et Microsoft en 2017. S'il vous plaît, fabricants de PC: Passez du temps sur le travail ennuyeux pour sécuriser nos PC. Nous avons besoin de sécurité plus que nous avons besoin de nouvelles fonctionnalités.