Les attaques par force brute sont assez simples à comprendre, mais difficiles à protéger. Le chiffrement est mathématique, et à mesure que les ordinateurs deviennent plus rapides en mathématiques, ils deviennent plus rapides pour essayer toutes les solutions et voir celle qui convient.
Ces attaques peuvent être utilisées contre tout type de cryptage, avec des degrés de succès variables. Les attaques par force brute deviennent chaque jour plus rapides et plus efficaces à mesure que du matériel informatique plus récent et plus rapide est disponible.
Principes de base de Brute-Force
Les attaques par force brute sont simples à comprendre. Un attaquant a un fichier crypté – par exemple, votre base de données de mots de passe LastPass ou KeePass. Ils savent que ce fichier contient des données qu’ils veulent voir, et ils savent qu’il existe une clé de cryptage qui le déverrouille. Pour le déchiffrer, ils peuvent commencer à essayer tous les mots de passe possibles et voir si cela aboutit à un fichier déchiffré.
Ils le font automatiquement avec un programme informatique, de sorte que la vitesse à laquelle quelqu’un peut effectuer un cryptage par force brute augmente à mesure que le matériel informatique disponible devient de plus en plus rapide, capable de faire plus de calculs par seconde. L’attaque par force brute commencerait probablement avec des mots de passe à un chiffre avant de passer à des mots de passe à deux chiffres, etc., en essayant toutes les combinaisons possibles jusqu’à ce que l’une d’entre elles fonctionne.
Une «attaque par dictionnaire» est similaire et essaie des mots dans un dictionnaire – ou une liste de mots de passe courants – au lieu de tous les mots de passe possibles. Cela peut être très efficace, car de nombreuses personnes utilisent des mots de passe faibles et communs.
Pourquoi les attaquants ne peuvent pas les services Web Brute-Force
Il y a une différence entre les attaques par force brute en ligne et hors ligne. Par exemple, si un attaquant veut se frayer un chemin dans votre compte Gmail, il peut commencer à essayer tous les mots de passe possibles – mais Google les coupera rapidement. Les services qui fournissent l’accès à ces comptes limiteront les tentatives d’accès et interdiront les adresses IP qui tentent de se connecter tant de fois. Ainsi, une attaque contre un service en ligne ne fonctionnerait pas très bien car très peu de tentatives peuvent être faites avant que l’attaque ne soit stoppée.
Par exemple, après quelques tentatives de connexion infructueuses, Gmail vous montrera une image CATPCHA pour vérifier que vous n’êtes pas un ordinateur essayant automatiquement des mots de passe. Ils arrêteront probablement complètement vos tentatives de connexion si vous parvenez à continuer assez longtemps.
D’un autre côté, disons qu’un attaquant a accroché un fichier crypté sur votre ordinateur ou a réussi à compromettre un service en ligne et à télécharger de tels fichiers cryptés. L’attaquant dispose désormais des données cryptées sur son propre matériel et peut essayer autant de mots de passe qu’il le souhaite. S’ils ont accès aux données chiffrées, il n’y a aucun moyen de les empêcher d’essayer un grand nombre de mots de passe dans un court laps de temps. Même si vous utilisez un cryptage fort, il est dans votre intérêt de protéger vos données et de vous assurer que les autres ne peuvent pas y accéder.
Hashing
Des algorithmes de hachage puissants peuvent ralentir les attaques par force brute. Essentiellement, les algorithmes de hachage effectuent un travail mathématique supplémentaire sur un mot de passe avant de stocker une valeur dérivée du mot de passe sur le disque. Si un algorithme de hachage plus lent est utilisé, il faudra des milliers de fois plus de travail mathématique pour essayer chaque mot de passe et ralentir considérablement les attaques par force brute. Cependant, plus le travail requis est important, plus le serveur ou un autre ordinateur doit effectuer de travail à chaque fois que l’utilisateur se connecte avec son mot de passe. Les logiciels doivent équilibrer la résilience contre les attaques par force brute avec l’utilisation des ressources.
Vitesse Brute-Force
La vitesse dépend du matériel. Les agences de renseignement peuvent construire du matériel spécialisé uniquement pour les attaques par force brute, tout comme les mineurs de Bitcoin construisent leur propre matériel spécialisé optimisé pour l’extraction de Bitcoin. En ce qui concerne le matériel grand public, le type de matériel le plus efficace pour les attaques par force brute est une carte graphique (GPU). Comme il est facile d’essayer plusieurs clés de chiffrement différentes à la fois, de nombreuses cartes graphiques fonctionnant en parallèle sont idéales.
Fin 2012, Ars Technica a rapporté qu’un cluster de 25 GPU pourrait déchiffrer chaque mot de passe Windows de moins de 8 caractères en moins de six heures. L’algorithme NTLM utilisé par Microsoft n’était tout simplement pas assez résilient. Cependant, lorsque NTLM a été créé, il aurait fallu beaucoup plus de temps pour essayer tous ces mots de passe. Cela n’a pas été considéré comme une menace suffisante pour Microsoft pour renforcer le cryptage.
La vitesse augmente et, dans quelques décennies, nous pourrions découvrir que même les algorithmes cryptographiques et les clés de cryptage les plus puissants que nous utilisons aujourd’hui peuvent être rapidement piratés par les ordinateurs quantiques ou tout autre matériel que nous utiliserons à l’avenir.
Protéger vos données contre les attaques Brute-Force
Il n’y a aucun moyen de se protéger complètement. Il est impossible de dire à quelle vitesse le matériel informatique sera rapide et si l’un des algorithmes de cryptage que nous utilisons aujourd’hui présente des faiblesses qui seront découvertes et exploitées à l’avenir. Cependant, voici les bases:
- Protégez vos données cryptées là où les attaquants ne peuvent pas y accéder. Une fois vos données copiées sur leur matériel, ils peuvent tenter des attaques par force brute contre celui-ci à leur guise.
- Si vous exécutez un service qui accepte les connexions sur Internet, assurez-vous qu’il limite les tentatives de connexion et bloque les personnes qui tentent de se connecter avec de nombreux mots de passe différents dans un court laps de temps. Le logiciel serveur est généralement configuré pour le faire immédiatement, car c’est une bonne pratique de sécurité.
- Utilisez des algorithmes de cryptage puissants, tels que SHA-512. Assurez-vous de ne pas utiliser d’anciens algorithmes de chiffrement avec des faiblesses connues et faciles à craquer.
- Utilisez des mots de passe longs et sécurisés. Toute la technologie de cryptage dans le monde n’aidera pas si vous utilisez «mot de passe» ou le toujours populaire «hunter2».
Les attaques par force brute sont un élément dont il faut se préoccuper lors de la protection de vos données, du choix des algorithmes de chiffrement et de la sélection des mots de passe. Ils sont également une raison pour continuer à développer des algorithmes cryptographiques plus puissants – le cryptage doit suivre la vitesse à laquelle il est rendu inefficace par le nouveau matériel.
Crédit d’image: Johan Larsson sur Flickr, Jeremy Gosney