Liens rapides
Il y a des années, les mots de passe aléatoires à huit caractères composés de lettres majuscules et minuscules, de symboles et de chiffres étaient vraiment difficiles à déchiffrer. Dans certains cas, il a fallu des années pour casser un mot de passe comme celui-ci.
Grâce à l'évolution de la technologie et du matériel de location d'aujourd'hui, ce temps a été réduit à quelques heures. Mais comment ces mots de passe sont-ils stockés en premier lieu ? Vérifier Les mots de passe appartiennent au passé : pourquoi sont-ils supprimés cette année ?.
Comment les mots de passe sont-ils stockés sur Internet ?
Les systèmes ne stockent pas les mots de passe des utilisateurs directement dans des fichiers ou des bases de données, car un attaquant peut contrôler la base de données dans laquelle les systèmes conservent les mots de passe. Au lieu de cela, les systèmes cryptent les détails de l'utilisateur, laissant l'attaquant face à une version cryptée de chaque mot de passe.
Il existe des algorithmes avancés que les systèmes utilisent pour chiffrer les mots de passe. L'un de ces algorithmes est l'algorithme de chiffrement symétrique. C'est un type de chiffrement où vous pouvez utiliser la même clé pour le chiffrement et le déchiffrement. La sécurité des algorithmes de chiffrement symétrique comporte certains risques car il n'y a qu'une seule clé désignée pour le déchiffrement. Pour cette raison, les systèmes n'utilisent généralement pas d'algorithmes de chiffrement symétriques.
En général, la méthode utilisée par les systèmes pour le chiffrement est celle des algorithmes de hachage. Ils sont destinés à la vérification et à la représentation de l'intégrité des données, et non au chiffrement des données. Les algorithmes de hachage convertissent les données en un hachage de taille fixe. Il représente généralement un hachage unique de données. Ce que la fonction de hachage doit faire, c'est générer des données de longueur fixe d'une quantité arbitraire de données comme carte.
Grâce à l'algorithme de hachage, si un attaquant prend le contrôle de la base de données contenant le mot de passe, il ne pourra pas accéder au mot de passe à partir d'ici. Il y a une nuance très importante à laquelle vous devriez prêter attention ici. Théoriquement, un attaquant qui s'introduit dans un système en utilisant le même algorithme de hachage pour toutes les combinaisons de mots de passe peut comparer les résultats obtenus. Si l'attaquant obtient la même valeur à la suite de ces comparaisons, alors il a détecté la version ouverte du mot de passe. Cette méthode repose sur des essais et des erreurs, et ce type d'attaque est généralement appelé une attaque par force brute.
Au début des années 8, il fallait des centaines d'années pour essayer toutes les combinaisons de mots de passe à 123456 caractères chiffrés avec des algorithmes de hachage populaires. Bien sûr, des combinaisons très simples comme "XNUMX" ou "mypassword" ne sont pas incluses dans cette combinaison. Avec le développement des technologies logicielles et matérielles aujourd'hui, la façon de déchiffrer les mots de passe a également beaucoup changé. Vérifier Pouvez-vous faire confiance à la sécurité des gestionnaires de mots de passe ?
L'effet de l'apparition des cartes graphiques
Les capacités de traitement parallèle des données des processeurs graphiques (GPU) se sont améliorées au fil du temps. Les cartes graphiques ne sont pas capables d'effectuer des opérations polyvalentes comme les processeurs à usage général. Ainsi, même s'il existe de nombreux cœurs et une puissance de traitement parallèle, il n'est pas logique de l'utiliser pour presque tous les problèmes comme un processeur.
Cependant, il est possible d'implémenter très efficacement certains algorithmes de hachage utilisés pour les mots de passe sur un GPU. Le nombre de hachages par seconde que vous pouvez obtenir avec les processeurs traditionnels a augmenté de façon exponentielle avec les nouvelles cartes graphiques.
Pour avoir une idée, examinez le nombre de hachages par seconde (le terme taux de hachage fait référence à la vitesse à laquelle un ordinateur est capable d'effectuer des calculs de hachage) pour les algorithmes de hachage tels que NTLM, MD5 et SHA1 dans le tableau ci-dessous. Il suffit, pour l'instant, de savoir que ces algorithmes ne sont qu'un algorithme de hachage. Pour créer ce tableau, j'ai utilisé un cluster de 25 GPU AMD Radeon.
algorithme | Le nombre de hachages par seconde |
NTLM | 350.000.000.000 |
MD5 | 180.000.000.000 |
SHA1 | 63.000.000.000 |
SHA512Crypte | 364.000 |
Bcrypt | 71.000 |
Scrypt | 33.000 |
Vous voyez, avec un tel système, vous pouvez générer un hachage NTLM de 350 milliards de fois par seconde. Cela signifie que vous pouvez essayer toutes les combinaisons de mots de passe à 8 caractères en moins de 6 heures. De plus, le matériel de cet exemple date des années passées. Imaginez la puissance du craquage de mot de passe aujourd'hui.
Que doivent faire les développeurs de logiciels ?
La voie à suivre par les programmeurs est très simple : ils doivent préférer les algorithmes qui prennent plus de temps à calculer les valeurs de hachage lors du chiffrement des mots de passe. Les développeurs doivent savoir non seulement comment l'algorithme qu'ils utilisent fonctionne sur un processeur, mais aussi à quel point il est résistant au domaine des cartes graphiques.
Si les développeurs travaillent avec un framework logiciel qui gère également la cryptographie des mots de passe comme Django, Ruby on Rails et Spring Security, ils doivent vérifier si les bonnes décisions ont été prises dans le framework en termes de sécurité.
Par exemple, utilisé Concevoir , qui est l'une des bibliothèques les plus utilisées pour les opérations utilisateur dans Ruby on Rails, utilise Bcrypt comme algorithme de hachage par défaut. Il vous permet également d'utiliser une autre méthode comme algorithme de hachage. L'algorithme Bcrypt est fiable car il faut encore beaucoup de temps à la carte graphique pour arriver au bon point.
En bref, plus vous calculez la valeur de hachage longtemps, plus vous êtes en sécurité.
Combien de caractères votre mot de passe doit-il contenir ?
Chaque caractère supplémentaire que vous utilisez augmentera géométriquement le nombre d'essais et d'erreurs nécessaires pour déchiffrer le mot de passe et le rendre plus sûr.
Considérons cette situation sous deux scénarios différents. Considérez les valeurs données dans le tableau ci-dessus pour l'algorithme de hachage NTLM et imaginez que vous allez essayer de déchiffrer le mot de passe. Imaginez cibler des mots de passe de huit caractères ou plus.
nombre de caractères | Chiffres et lettres majuscules/minuscules | Lettres majuscules/minuscules, chiffres et symboles spéciaux |
8 | moins d'une minute | Deux minutes |
9 | Deux minutes | Deux heures |
10 | Deux heures | une semaine |
11 | Six jours | سنتين |
12 | une seule année | 200 سنة |
13 | Plus de 100 ans | Plus de 1000 ans |
En examinant le tableau, vous pouvez voir qu'un mot de passe d'au moins 12 caractères est sûr lorsque toutes les combinaisons de lettres majuscules/minuscules, de chiffres et de symboles spéciaux sont utilisées. Si vous n'utilisez pas de symboles spéciaux, il s'avère que vous devez utiliser 13 caractères pour obtenir la longueur d'un mot de passe sécurisé. Si vous utilisez la méthode de hachage Bcrypt au lieu du hachage NTLM dans ce système, 8 caractères suffiront. Cependant, vous n'avez pas la possibilité de voir quelle méthode de hachage est utilisée par le système auquel vous entrez via le Web qui contient votre mot de passe. C'est pourquoi vous devriez envisager toutes les possibilités.
Le principal problème pour les développeurs de logiciels est qu'il est presque impossible de convaincre les utilisateurs d'avoir un mot de passe d'au moins 12 caractères. Aujourd'hui, on peut dire que le taux d'utilisation d'un mot de passe de cette longueur est faible. Par conséquent, selon le scénario d'utilisation du système développé, il sera nécessaire de trouver un compromis que les utilisateurs accepteront pour améliorer la sécurité de leur mot de passe.
Une dernière suggestion pour les développeurs est de vérifier non seulement la longueur minimale mais aussi la longueur maximale des entrées reçues par les formulaires que vous avez fournis à l'utilisateur. En particulier lorsque vous activez l'utilisation d'un algorithme de hachage lent en calcul tel que Bcrypt à des fins de sécurité, vous pouvez courir certains risques si vous ne contrôlez pas la longueur maximale du mot de passe saisi par l'utilisateur. Par exemple, les attaquants peuvent effectuer des attaques en essayant simultanément des dizaines de mots de passe de 100 XNUMX caractères avec des requêtes spécialement conçues. Dans une telle situation, il est très probable que votre système ne réponde plus aux autres utilisateurs. Vérifier Comment savoir si vos mots de passe sont vendus en ligne.
Conseils aux utilisateurs finaux
Gardez votre mot de passe d'au moins 12 caractères et assurez-vous d'inclure des combinaisons de lettres majuscules et minuscules, de chiffres et de symboles spéciaux. N'oubliez jamais que les systèmes qui stockent votre mot de passe peuvent être piratés et que vos informations peuvent être utilisées à mauvais escient. Vous ne pouvez pas savoir quels algorithmes le système utilise pour crypter le mot de passe, il vous appartient donc entièrement de prendre des précautions et de créer des mots de passe forts. Vous pouvez voir maintenant Comment générer des mots de passe en ligne forts est difficile à briser.