Comment réinitialiser les mots de passe des comptes Windows. Le nombre de mots de passe possibles

Au début, nous voulions appeler cet article différemment, par exemple, «Piratage mots de passe Windows"Ou quelque chose comme ça, puisqu'un tel nom reflète son essence de la meilleure façon possible. Cependant, le mot «piratage informatique» signifie douloureusement quelque chose de criminel, pour lequel, dans une société décente, ils se frappent les mains (et pas seulement les mains), et dans les pays civilisés, ils peuvent même les mettre en prison. Mais la restauration ou la réinitialisation mot de passe oublié  - Cela s'apparente à une aide humanitaire qui ne peut être que saluée. Certes, l'essence ne change pas. Rompre - c'est en Afrique briser, peu importe comment vous l'appelez. La procédure de récupération ou de réinitialisation d'un mot de passe oublié et le piratage le plus criminel d'un système ne diffèrent que par des aspects moraux, mais en aucune manière par la séquence des actions effectuées.

Générer ce type de table pour un algorithme complexe prend beaucoup plus de temps, mais c'est également possible. La mesure appropriée consiste à ajouter du sel au hasch. Dans ce contexte, sel est une phrase ajoutée à un mot de passe avant la création d'un hachage. En utilisant du sel, vous obtenez beaucoup de terrain contre ces types de planches.

Améliorer les anciennes méthodes de cryptage

Hash hash. . Auparavant, le code suivant était un exemple de bonne protection par mot de passe. Cependant, il peut également être piraté à 46 millions de calculs par seconde. La solution consiste à utiliser des algorithmes encore plus complexes et à les utiliser plusieurs fois. Il est également nécessaire de faciliter l'utilisation de l'algorithme. Les paramètres pris en charge sont sel et coût, ce qui correspond au coût de l'algorithme utilisé.

Nous n'entrerons pas dans les détails, pourquoi l'utilisateur peut avoir besoin de connaître le mot de passe ou de le réinitialiser pour accéder au système. Laissant le côté moral de la question au-delà de la narration, nous verrons comment vous pouvez réinitialiser ou réinitialiser votre mot de passe d'accès à un ordinateur local, ainsi que connaître les mots de passe réseau des utilisateurs du domaine, s'il s'agit de réseau local. Nous ne réinventerons pas la roue et, comme ce sujet n’est pas nouveau, nous ne décrirons que certains utilitaires avec lesquels vous pouvez facilement contourner le système de sécurité informatique.

Le coût indique la complexité de l'algorithme et, par conséquent, la durée du hachage. Le nombre peut être considéré comme le nombre de fois que l'algorithme a un mot de passe. Pour vérifier les mots de passe, nous devons connaître le sel créé. Maintenant, la classe que nous avons créée au début peut être réorganisée beaucoup plus en sécurité.

Changements dans les méthodes de cryptage

Cela signifie que chaque fois que les logarithmes sont mis à jour, l'extension s'adapte. Qu'en est-il des anciens mots de passe? Nous avons déjà créé une base de données de classes personnalisée. Passons maintenant à la modification du mot de passe et à la connexion. De temps en temps, des pages importantes ont volé leurs mots de passe. La chose la plus inquiétante à propos de ces fuites est que vous pouvez facilement supprimer les mots de passe. Un hachage peut être considéré comme une empreinte associée à certaines données.

Afin de comprendre comment les mots de passe sont déchiffrés, les lecteurs doivent d'abord apprendre comment les utilisateurs sont authentifiés, où et sous quelle forme leurs mots de passe sont stockés et comment ils peuvent être reconnus. À l’avenir, nous nous baserons sur le système d’exploitation Windows XP, bien que l’ouverture des mots de passe de systèmes d’exploitation tels que Windows 2000/2003 ne diffère pas du cas considéré et, sous Windows 95/98 / Me, les mêmes étapes sont encore plus simples à réaliser.

Regardez les algorithmes de chiffrement éprouvés qui vous permettront de protéger et de récupérer des informations. Si vous n'êtes pas à l'aise avec les problèmes de sécurité, utilisez d'autres bibliothèques pour simplifier votre travail. Nous vous recommandons: Mot de passe et mot de passe.

  • Utilisez également la technique d'itération!
  • Toutes les données importantes ne sont pas des mots de passe.
  • Qu'en est-il des numéros de carte de crédit?
Faites le moi savoir dans les commentaires!

Pour notre part, en tant qu'utilisateur, nous devrions essayer d'utiliser mots de passe complexes, pour améliorer encore notre sécurité. Enfin, en tant que programmeur doit utiliser des méthodes sûres et efficaces pour stocker des données importantes, stocker des mots de passe sans aucune protection est un manque de respect pour l'utilisateur et le travail que nous faisons.

  Fondements théoriques

  Comprendre la fonction de hachage du mot de passe

Le processus d'authentification d'utilisateur local ou de réseau est assez simple: l'utilisateur entre un mot de passe lui correspondant compteet, si le mot de passe est correct, l’utilisateur est autorisé à accéder au système. La vérification du mot de passe se fait au moyen de système d'exploitation en le comparant avec le mot de passe stocké dans l'ordinateur. Dans le même temps, la différence entre l’authentification locale et l’authentification réseau réside uniquement dans le fait que, lors de l’authentification locale, la base de données des comptes d’utilisateur avec leurs mots de passe est stockée sur l’ordinateur lui-même et lors de l’authentification réseau, sur un serveur spécial appelé contrôleur de domaine.

Comment définir le mot de passe du firmware

Entrez le mot de passe du micrologiciel lorsque vous voyez l'icône de cadenas et le mot de passe. Pour désactiver le mot de passe du micrologiciel, répétez les étapes ci-dessus, mais cliquez sur «Désactiver le mot de passe du micrologiciel» pour cette étape.

Comment définir le mot de passe du firmware pour une utilisation unique

  Le mode perdu fonctionne même lorsqu'il est utilisé.

C'est aussi celui que Pordeda utilisait. Lorsque vous vous enregistrez sur une page Web, certaines données sont stockées sous forme de texte, d'autres non. Le texte brut est ce que vous voyez à l'écran: des mots que vous pouvez lire parfaitement. Par exemple, les mots de passe sont des données qui doivent être stockées dans un hachage, sinon toute personne qui entre dans la base de données où les clés sont stockées peut y accéder.

Il semblerait, quoi de plus facile? Après tout, il vous suffit de savoir exactement où la base de données du compte utilisateur est stockée avec ses mots de passe et d’espionner les informations nécessaires. Mais c’est trop facile d’être vrai. Bien entendu, tous les mots de passe sont stockés sous forme cryptée. Le mot de passe crypté est appelé fonction de hachage ou mot de passe. Et dans ce cas, nous parlons d'une méthode de cryptage plutôt délicate, dont la particularité réside dans le fait que le mot de passe crypté de cette manière ... est fondamentalement impossible à décrypter! Le fait est que l'algorithme de chiffrement (hachage) est à sens unique. En fait, tout algorithme de hachage est un calcul de somme de contrôle à partir du texte source, qui utilise des opérations logiques irréversibles sur le message d'origine, telles que AND, OR, etc.

Si vous êtes détesté, vous trouverez simplement un tas de lettres qui n'ont aucun sens. Le hash, comme on dit, est une collection de lettres dont l’union n’a pas de sens. Il est généré par la formule. Chacun de ces codes de résultat a la même longueur, indépendamment de tout autre élément.

Et comment savoir si le mot de passe correspond au hash?

Ensuite, nous obtenons que le mot de passe lui-même n'est jamais stocké dans des bases de données ou sur des serveurs. Le mot de passe est l'un des aspects les plus importants lors de l'utilisation d'Internet. Par conséquent, il est important d’apprendre à générer mot de passe sécurisé. Pour ce faire, vous devez entrer le mot de passe que nous avons saisi dans le champ de texte du navigateur. S'il correspond exactement à l'une des lignes de la base de données, vous pouvez vous connecter.

Ainsi, par le mot de passe, vous pouvez calculer sa fonction de hachage, mais, connaissant la fonction de hachage, il est fondamentalement impossible de calculer le mot de passe auquel il correspond. La fonction de hachage elle-même est une séquence numérique de 16 octets.

Pour référence: il existe un grand nombre d'algorithmes différents pour calculer les fonctions de hachage et, par conséquent, les fonctions de hachage peuvent être de types différents. À l'avenir, nous ne parlerons que des fonctions de hachage des mots de passe créés par le système d'exploitation Windows lors de l'authentification locale ou réseau des utilisateurs (hachage LM ou NT).

Cela signifie que, bien que nous ne puissions pas déchiffrer le code, nous pouvons le rechercher dans les listes disponibles sur Internet. Comme l'ont indiqué les administrateurs, les mots de passe n'étaient à aucun moment stockés en texte brut. Cependant, ils peuvent circuler en ligne et être vendus en grand nombre. A titre de recommandation, il est préférable de ne pas utiliser les mêmes mots de passe sur plusieurs sites. Ainsi, même si l'un des sites sur lesquels nous enregistrons stocke les clés en texte clair, seul le compte du même site Web en souffrira et le piratage ne s'appliquera pas à d'autres comptes ou sites Web.

Naturellement, la question se pose: si la connaissance de la fonction de hachage ne permet pas de connaître le mot de passe de l'utilisateur, comment se passe le processus d'authentification? Le fait est que lors de l'authentification, ce ne sont pas les mots de passe eux-mêmes qui sont comparés, mais leurs fonctions de hachage. Au cours du processus d’authentification, l’utilisateur entre le mot de passe sous la forme habituelle et le système d’exploitation calcule sa fonction de hachage et la compare à celle stockée dans l’ordinateur. S'ils correspondent, l'authentification est considérée comme réussie.

Afin de faire de la publicité sur les images et de ne pas autoriser le contenu par la faute de la publicité, il est préférable de ne pas le mettre. Mais il y en a beaucoup d'autres à codifier beaucoup plus sûrs et plus difficiles à déchiffrer maintenant. Ainsi, si sur les pages que vous choisissez l'un des 30 dictionnaires par exemple, il est beaucoup plus difficile pour un pirate informatique de déchiffrer les mots de passe. Autrement dit, si les capacités et la quantité de données à analyser augmentent, en créant ces définitions en double, les mots de passe peuvent devenir beaucoup plus sécurisés.

Dans de tels cas, la sécurité sera compromise, puisqu’une attaque par collision cryptographique peut être effectuée en premier, ce qui revient à avoir essentiellement «la moitié des clés», puis à comparer les valeurs rencontrées avec les valeurs réelles finales. Malheureusement, dans de nombreux projets, cela n’est toujours pas pris en compte et le mot de passe a été explicitement enregistré dans la base de données.

  Mot de passe fissure

Le processus de piratage ou de sélection du mot de passe est banal et constitue une force brute ordinaire de mots de passe possibles. Pour ce faire, vous devez connaître la fonction de hachage du mot de passe stocké dans l'ordinateur et être capable de calculer le hachage avec un mot de passe. Ensuite, en passant par diverses options de mot de passe et en comparant les hachages calculés avec ce qui est stocké dans l'ordinateur, vous pouvez choisir mot de passe correct.

De plus, nous n'avons pas besoin de déchiffrer le mot de passe, il suffisait de logiciel  pourrait nous dire que le mot de passe entré est équivalent à celui enregistré, le plugin nous a donc fourni beaucoup plus de fonctionnalités que nécessaire.

Et le fait que le mot de passe puisse être déchiffré rend le système un peu plus vulnérable. L'idéal est de sauvegarder le hachage, donc à partir de la valeur du champ stocké dans la base de données, le mot de passe ne peut plus être récupéré. Sinon, votre licence sera plus ancienne.

Entrez le mot de passe dans la demande

Lorsque vous devez choisir la méthode d’authentification, tenez compte des points suivants. Dans le menu déroulant du projet, veillez à sélectionner le projet créé lors de l'achat du plan Premium. Pour spécifier une clé dans la demande, incluez-la en tant que valeur du paramètre key.

Il semblerait qu'une telle recherche ne se termine jamais - il existe un nombre infini d'options de mot de passe. Cependant, ne vous précipitez pas pour tirer des conclusions. Premièrement, le nombre de mots de passe possibles est, bien sûr, bien entendu, et deuxièmement, les ordinateurs modernes vous permettent de trier des millions de mots de passe par seconde. De plus, il y a diverses méthodes  attaques sur les mots de passe (cela sera discuté plus tard), ce qui dans la plupart des cas conduit à un résultat positif en quelques minutes. Avant de passer de la théorie à la pratique, réfléchissez à la signification du concept de "hachage" et déterminez combien il existe d’options de mot de passe.

Dépannage de l'authentification

L'exemple suivant utilise la bibliothèque système par défaut. Comme nous en avons discuté dans les articles précédents, il existe de nombreux outils ou méthodes pour casser des systèmes. La collaboration d’un développeur-utilisateur binomial est cruciale pour compliquer la tâche des pirates informatiques. De la part des utilisateurs et, de la part des programmeurs utilisent des méthodes de cryptage des mots de passe sécurisés ou l'inclusion de plusieurs niveaux de sécurité.

Je dois dire ça. Avec les dernières avancées technologiques, il est presque impossible de maintenir un système complètement sécurisé pendant une longue période. Dans la grande majorité des attaques le principal objectif est d'attribuer la base de données (s) du système en cas de violation, le vol d'identité, spam, etc. Tout le monde sait que les mots de passe sont les données les plus précieuses du système. Par conséquent, leur stockage sécurisé est vital. Même s'ils reçoivent une base de données, ils ne peuvent pas les déchiffrer.

  Hachage LM et NT

Les systèmes d'exploitation Windows NT / 2000/2003 / XP, il existe deux types de fonctions de hachage des mots de passe: LM-hachage (LanMan-hachage) et NT-hachage. hachage LM dont nous avons hérité des réseaux LAN Manager et est utilisé dans les systèmes d'exploitation Windows 9x. Par conséquent, en dépit du fait que tous les systèmes d'exploitation modernes prennent en charge un nouveau type de hachage (NT-hachage) pour assurer la compatibilité avec les clients Windows 9x, le système d'exploitation doit être stocké en même temps que le nouveau NT-hachage d'un ancien LM-hachage.

L'une des méthodes les plus sûres et les plus courantes pour développer des applications consiste à stocker des mots de passe cryptés. Pour ce faire, des fonctions sont créées pour convertir toute chaîne de données en une chaîne complètement différente. Cette soi-disant fonction de hachage cryptographique, ou plus communément connu sous le nom d'un hachage.

Autrement dit, quelle que soit la longueur saisie, la fonction renvoie une série de la même longueur. Le premier renvoie une chaîne de 32 caractères et le second. Cependant, les algorithmes utilisés dans les sont devenus obsolètes et ne sont plus en sécurité, comme le pouvoir qui ont maintenant des ordinateurs, vous pouvez facilement annuler l'algorithme pour décrypter les données.

Lorsque vous utilisez le hachage LM, la longueur du mot de passe est limitée à 14 caractères. Le principal inconvénient de l'algorithme LM-hash est la séparation du mot de passe en deux parties, chacune composée de sept caractères. Si le mot de passe entré par l'utilisateur contient moins de 14 caractères, aucun caractère n'est ajouté lors de la conversion, c'est-à-dire des caractères avec le code 0, afin d'obtenir une chaîne composée de 14 caractères. Si le mot de passe de l'utilisateur dépasse 14 caractères, LM-hash correspond à un mot de passe vide. Chacune des moitiés de mot de passe de 7 caractères est cryptée indépendamment l'une de l'autre à l'aide de l'algorithme DES (anciennement norme fédérale américaine) et, comme le processus de cryptage est indépendant pour chacune des moitiés de mot de passe de 7 caractères, la sélection de ces moitiés peut être effectuée indépendamment, ce qui simplifie et accélère considérablement le processus d'ouverture. mot de passe Un autre inconvénient majeur du hachage LM est que, pendant le processus de cryptage, tous les caractères alphabétiques du mot de passe sont convertis en majuscules. Et comme le hachage LM contient des informations sur les mots de passe ne respectant pas la casse, les hachages LM pour ALLADIN, alladin, Alladin et aLLadin seront exactement les mêmes. Cela limite considérablement le nombre de combinaisons de mots de passe possibles et, par conséquent, accélère le processus d'ouverture.

Alors, quelle fonction hash à utiliser?

Cependant, à partir de la version 7, il existe une bibliothèque avec les mêmes fonctionnalités. Il est responsable du codage du mot de passe entré par l'algorithme spécifié. Salt: chaîne utilisée dans le processus de hachage pour empêcher le résultat d'être trouvé dans des listes de paires de hachages. Il n'est pas pratique d'utiliser des valeurs fixes. coût: le coût de l'algorithme. La valeur par défaut est 10, mais si vous avez un serveur puissant, vous pouvez augmenter cette valeur.

  • Mot de passe: mot de passe sans encodage. quelque chose: utilisation de l'algorithme.
  • La fonction par défaut génère un sel aléatoire pour chaque mot de passe.
Les algorithmes adoptés pouvant évoluer dans le temps, il est recommandé d'utiliser des champs de longueur supérieure, par exemple 255 caractères.

Le hachage NT n'a pas de défauts inhérents au hachage LM. Premièrement, le hachage NT utilise l'algorithme de chiffrement MD4, dans lequel le mot de passe n'est pas divisé en deux parties de 7 caractères. Deuxièmement, avec le hachage NT, la longueur du mot de passe de 14 caractères n'est pas limitée. Troisièmement, NT-hash est sensible à la casse, c'est-à-dire que NT-hashes pour ALLADIN et les mots de passe alladin seront complètement différents.

Vérifiez si le mot de passe d'origine correspond au hachage enregistré. Les programmeurs doivent être conscients de l’importance de fournir des informations aux utilisateurs, car si les pirates informatiques peuvent déchiffrer leurs mots de passe, cela peut non seulement compromettre notre environnement, mais peut aussi être affecté par de nombreux services qu’ils utilisent. Bien que cela ne soit pas recommandé, il est très courant d’utiliser le même mot de passe pour différents comptes ou services.

Imaginez la situation suivante: un fichier spécifique est divisé en un torrent. Ainsi, toute personne ayant téléchargé ce contenu recevra éventuellement un fichier falsifié, éventuellement corrompu ou même caché. malware. Pour garantir l’intégrité des données partagées, les clients torrent utilisent une astuce très astucieuse: en générant un fichier source, le logiciel calcule une séquence unique de lettres et de chiffres et les assigne à des fichiers ou des dossiers qui seront utilisés ensemble.

Comme nous l’avons déjà noté, la taille des fonctions de hachage (LM et NT), quelle que soit la longueur du mot de passe entré, est de 16 octets. Si la longueur du mot de passe est inférieure à 14 caractères, il existe des hachages LM et NT pour chaque mot de passe. Si la longueur du mot de passe dépasse 14 caractères, il n'y a qu'un hachage NT.

Trouver le bon mot de passe pour un hachage NT bien connu est beaucoup plus difficile que pour un hachage LM. Si les deux hachages LM et NT sont connus, le mot de passe est d'abord sélectionné à l'aide du hachage LM, et après avoir trouvé le mot de passe LM (en majuscules), le hachage NT est utilisé pour déterminer le mot de passe NT en respectant la casse. Cependant, dans ce cas, il y a une subtilité: pour le mot de passe, il n'y a pas toujours de hachage LM, pour lequel il est nécessaire que la longueur du mot de passe soit inférieure ou égale à 14 caractères. Mais même si la longueur du mot de passe est inférieure à 14 caractères, le hachage LM peut être supprimé de la base de données. Nous expliquerons comment procéder, mais pour le moment, nous allons donner des exemples pratiques de hachages LM et NT de différents mots de passe.

Ainsi, avant que quelqu'un commence à télécharger ce contenu, le programme utilise la même séquence de lettres et de chiffres pour la machine qui dessert le fichier: si la séquence est différente, cela signifie que le fichier a été modifié et ne doit pas être téléchargé. Si la conférence est correcte, le transfert commence.

Cette séquence est appelée «Informations de hachage» et peut être facilement vérifiée sur des scanners tels que Pirate Bay, comme indiqué dans la figure ci-dessus. Cependant, l'utilisation de cette technique va bien au-delà des torrents et est connue dans le monde de l'informatique sous le nom de hash ou de hash sum.

Considérons d’abord un mot de passe alladin de 7 caractères, qui correspond à un hachage LM sur 16 octets, écrit en notation hexadécimale. Ensuite, considérons le mot de passe alladinalladin de 14 caractères, pour lequel le hachage LM sera:. Veuillez noter que la première moitié (8 octets: a01fad819c6d001a) de ce hachage coïncide complètement avec la seconde. De plus, la première moitié de ce hachage coïncide avec la première moitié du hachage LM du mot de passe alladin. Une telle coïncidence n’est nullement accidentelle si nous rappelons que tous les sept caractères du mot de passe sont codés indépendamment et définissent 8 octets du hachage LM résultant.

Il est également intéressant de noter que la deuxième moitié du hachage LM du mot de passe (aad3b435b51404ee) doit correspondre à des caractères avec le code 0, car si le mot de passe est inférieur à 14 caractères, des caractères vides lui sont ajoutés. C'est-à-dire que ad3b435b51404ee est le cryptage de sept caractères vides. Par conséquent, nous pouvons supposer que pour tout autre mot de passe de 7 caractères, la seconde moitié du hachage LM sera exactement la même. En effet, pour la tornade de mots de passe, le hachage LM est et, comme il est facile de le constater, la deuxième moitié de ce hachage est identique à celle utilisée pour le mot de passe alladin. Pour le mot de passe ALLADIN, la valeur de hachage LM est la même que pour le mot de passe alladin. Considérant que dans le codage LM, toutes les lettres sont converties en majuscules, le mot ALLADIN est appelé le mot de passe LM.

Si nous considérons les hachages NT pour différentes options de mot de passe (alladin, alladinalladin, tornado), aucune régularité ne sera détectée (tableau 1). En outre, comme indiqué précédemment, le hachage NT est sensible à la casse et le mot de passe NT lui-même correspond au mot de passe vrai.

Tableau 1. Mots de passe et fonctions de hachage correspondantes

  Le nombre de mots de passe possibles

Nous avons donc trouvé l'algorithme utilisé pour déchiffrer le mot de passe. La seule manière implémentée dans tous les programmes conçus pour sélectionner un mot de passe passe par toutes les combinaisons possibles. Naturellement, la question qui se pose est de savoir combien de combinaisons sont possibles et est-il si facile de choisir un mot de passe par force brute?

Eh bien, essayons de compter. Sur les systèmes d'exploitation Windows 2000, 2003 et XP, le mot de passe peut comporter jusqu'à 127 caractères. Dans ce cas, en tant que mot de passe, vous pouvez utiliser l'un des 256 codes ASCII. Dans ce cas, avec une longueur de mot de passe de n caractères, le nombre de combinaisons possibles sera égal à 256n. Le nombre total de mots de passe possibles sera de 2561 + 2562 + ... + 256127 ~~ 21024 = 1.8 · 10308. Ce nombre est astronomiquement énorme, et aucun ordinateur moderne  ne sera pas en mesure de trier toutes les combinaisons possibles dans un délai raisonnable. Supposons qu'il existe un ordinateur capable d'implémenter un algorithme d'itération avec une vitesse de 10 millions de mots de passe par seconde. Il faudra environ 10293 ans pour trier tous les mots de passe! À titre de référence, nous soulignons que l'âge de la planète Terre est estimé à seulement 4,5 milliards d'années (4,5 · 109). En pratique, cela signifie qu'il est impossible de déchiffrer le mot de passe par la force! Eh bien, «l’armure est solide et nos chars sont rapides», mais vous ne devriez pas tirer de conclusions hâtives.

Tout d’abord, nos calculs ne sont pas tout à fait corrects. Le fait est que, même si le nombre de mots de passe possibles est 21024, le nombre de fonctions de hachage possibles est considérablement réduit. En effet, comme nous l'avons déjà noté, quelle que soit la longueur du mot de passe, la longueur de la fonction de hachage est de 16 octets, soit 128 bits. Respectivement quantité options possibles  Les fonctions de hachage sont égales à 2128. Comme ce ne sont pas les mots de passe eux-mêmes qui sont utilisés pour l'authentification, mais leurs fonctions de hachage, vous devez vous concentrer sur exactement ce nombre de combinaisons possibles. En fait, cela signifie qu'une même fonction de hachage peut correspondre à un grand nombre de mots de passe différents et que chacun d'entre eux peut être utilisé pour une authentification réussie. De là, une conclusion importante s'ensuit: quel que soit le mot de passe unique que vous proposiez, il existe un grand nombre d'autres combinaisons de caractères pouvant être utilisées comme mot de passe correct.

La deuxième conclusion importante est qu’il n’est pas logique d’utiliser des mots de passe de plus de 16 caractères. En effet, avec une longueur de mot de passe de 16 caractères, nous avons 2128 combinaisons possibles, c'est-à-dire exactement le même nombre que les combinaisons possibles de fonctions de hachage, et une augmentation supplémentaire de la longueur du mot de passe n'augmentera pas le nombre de fonctions de hachage.

Maintenant, essayons de compter combien de temps il faudra pour parcourir toutes nos 2128 fonctions de hachage. Étant donné que la vitesse de recherche est de 107 mots de passe par seconde, nous constatons qu’il faut 1024 ans pour effectuer toutes les combinaisons! Il semblerait que vous puissiez dormir paisiblement, mais encore une fois, nous ne nous précipiterons pas pour tirer des conclusions.

Comme nous l’avons déjà noté, la principale menace n’est pas NT, mais LM. Dans ce cas, le nombre de caractères disponibles n'est plus 256, mais seulement 197, car tous les caractères alphabétiques du mot de passe sont réduits en majuscules. Par conséquent, 26 caractères latins minuscules et 33 caractères minuscules de l'alphabet russe doivent être exclus des 256 variantes de caractères ASCII. Par conséquent, avec une longueur de mot de passe de 14 caractères, le nombre d'options possibles n'est que de 19 714 = 1,3 · 1032. Cependant, ce chiffre est clairement trop élevé. Rappelez-vous que dans le codage LM, le mot de passe est divisé en deux parties de 7 caractères, chacune codée indépendamment. Par conséquent, en réalité, le nombre de combinaisons possibles est déterminé par les sept symboles entiers et est 1977 = 11,5 · 1016. Avec un taux de force brute de 107 mots de passe par seconde, il faudra 37 ans pour effectuer toutes les combinaisons possibles. Bien entendu, ce chiffre est assez élevé et vous fait douter que quelqu'un voudra se procurer un mot de passe. Cependant, il existe un «mais» - le soi-disant facteur humain. Essayez de trouver un utilisateur qui, lors de la saisie du mot de passe, modifie la disposition du clavier! Cela signifie que le nombre réel de caractères n'est pas 197, mais 64. Dans ce cas, le nombre d'options possibles est réduit à une valeur de 647 (les hachages LM sont pris en compte), et la recherche de tous les mots de passe ne prend que 5 jours!

En outre, dans la plupart des cas, les mots de passe sont des mots ou des expressions significatifs, et pas très longs. Eh bien, compte tenu du fait que le nombre de mots n’est estimé qu’à des centaines de milliers, une recherche dans le dictionnaire ne sera pas trop longue.

Une conclusion très importante en découle: le plus souvent, trouver un mot de passe d'utilisateur n'est pas difficile, c'est une question de temps. Plus loin, avec un exemple concret, nous allons vous montrer comment trouver rapidement des mots de passe pour des fonctions de hachage connues, mais pour l’instant, considérons où les fonctions de hachage sont stockées et comment elles peuvent être acquises.

  L'emplacement du fichier SAM

Jusqu'à présent, nous avons envisagé le processus de récupération des mots de passe à partir de fonctions de hachage connues, mais n'avons pas répondu à la question la plus importante: où ces fonctions de hachage de mots de passe sont-elles stockées et comment pouvez-vous accéder à la base de données du compte d'utilisateur? Tous les comptes d'utilisateur ainsi que les fonctions de hachage de mot de passe correspondantes sont stockés dans la base de données SAM (Security Accounts Manager). C'est un fichier du même nom qui n'a pas d'extension. Le fichier SAM fait partie du registre et est stocké dans le répertoire% systemroot% \\ system32 \\ config (% systemroot% fait référence au répertoire contenant le système d'exploitation - la valeur par défaut est C: \\ WINDOWS). De plus, une copie de sauvegarde de ce fichier est disponible sur le disque de récupération du système, ainsi que dans le répertoire% systemroot% \\ repair. Cependant lors de l'utilisation copie de sauvegarde  Le fichier SAM doit être conscient du fait que les mots de passe peuvent avoir changé depuis la dernière session de sauvegarde. De plus, les comptes d'utilisateur récemment créés dans la sauvegarde peuvent ne pas l'être.

  Exemples pratiques

Parlant de mots de passe et d’accès à un PC, il est nécessaire de considérer deux scénarios fondamentalement différents: le premier est l’accès à un PC séparé qui n’est pas inclus dans le réseau local et le second est l’accès à un PC dans le cadre d’un réseau local, c’est-à-dire un accès réseau. Dans ce cas, sous le réseau local, nous comprendrons davantage un réseau à part entière avec un contrôleur de domaine dédié.

Avec point de logiciel  Pour ce qui est d’accéder aux ordinateurs locaux et réseau, ils ne sont pas différents. La seule différence réside dans la méthode d'obtention du fichier SAM, qui dans le premier cas est stocké sur le PC local et dans le second, sur le contrôleur de domaine du réseau.

De plus, l'accès à un PC peut être obtenu à la fois en réinitialisant le mot de passe et en le sélectionnant. De plus, la procédure étant différente, nous examinons en détail les deux méthodes de réinitialisation.

  Réinitialisation du mot de passe Windows

Comme indiqué dans la première partie de l'article, il existe deux types de mots de passe: local et réseau. Les fonctions de hachage de mot de passe local sont stockées sur le PC et les fonctions de hachage de mot de passe réseau sont stockées sur le contrôleur de domaine. Étant donné que la procédure de réinitialisation du mot de passe implique la modification du fichier SAM, qui est fondamentalement impossible à mettre en œuvre à distance (sur le réseau), et nécessite un redémarrage du PC, la réinitialisation du mot de passe sert principalement à accéder au PC local. S'il est nécessaire de réinitialiser le mot de passe réseau de l'utilisateur et que le mot de passe réseau de l'administrateur est perdu, vous devrez suivre la même procédure pour le contrôleur de domaine réseau, mais vous devez comprendre que pour cela, vous devez disposer d'un accès physique au serveur et que la procédure d'arrêt et de réinitialisation ne passera pas inaperçue.

Pour réinitialiser le mot de passe, vous devez modifier le fichier SAM, qui est stocké dans le répertoire% systemroot% \\ system32 \\ config. Cependant, lorsque le système d'exploitation est chargé, l'accès à ce fichier est bloqué, c'est-à-dire qu'il ne peut être ni copié, ni affiché, ni modifié. Par conséquent, pour accéder au fichier SAM, vous devez tout d’abord démarrer l’ordinateur disque dur, et à partir d’une disquette, d’un CD-ROM ou d’une mémoire flash utilisant un système d’exploitation différent.

De plus, si le disque dur est installé système de fichiers  NTFS, il est nécessaire que le système d'exploitation de démarrage le comprenne. Par exemple, vous pouvez préparer une disquette système DOS et y placer un pilote NTFS appelé NTFSDOS. C utilisant ce pilote tout partitions NTFS  sera monté comme lecteurs logiques  DOS, après quoi leur accès sera possible.

De plus, nous avons besoin d’un utilitaire vous permettant d’apporter des modifications au fichier SAM. Aujourd'hui, les plus populaires de ces utilitaires sont deux: Active Password Changer 3.0 et Offline NT / 2K / XP Password Changer & Registry Editor.

Utilitaire Active Password Changer 3.0

Ce programme peut être téléchargé à l'adresse www.password-changer.com/download.htm. Il existe plusieurs options pour le télécharger: installation sur un ordinateur (Windows Installer) en tant que fichier exécutable sous DOS (exécutable DOS), une disquette amorçable avec une application intégrée (Bootable Floppy Creator) et une image ISO pour créer un CD-ROM amorçable avec une application intégrée.

L'option d'installation de l'utilitaire sur un ordinateur implique l'installation d'un fichier exécutable sous DOS, l'installation d'un assistant de démarrage ou d'un lecteur flash USB avec une application intégrée (Fig. 1), ainsi qu'un utilitaire permettant de graver l'image ISO d'un disque de démarrage avec une application intégrée.


Fig. 1. Assistant pour créer une disquette amorçable ou un lecteur flash USB
avec Active Password Changer 3.0 intégré

L'utilisation de cet utilitaire, qu'un CD, un lecteur flash USB ou une disquette soit utilisé pour le chargement, est très simple. Cela ne nécessitera qu'une connaissance minimale de l'anglais.

L'option que vous préférez (créer une disquette amorçable, un disque flash USB ou un CD) dépend de la situation. Par exemple, si l'ordinateur ne dispose pas d'un lecteur de disquette, ce qui est assez courant, l'option avec une disquette de démarrage disparaît. L'utilisation d'un CD amorçable ne convient pas toujours, par exemple sur les nouveaux. cartes mèresah contrôleur PATA, qui est attaché lecteur optique, peut être implémenté à l’aide d’un contrôleur de type JMicron et, dans ce cas, un CD amorçable avec l’utilitaire intégré Active Password Changer 3.0 ne peut pas être utilisé en raison de l’absence de pilotes de contrôleur. Autrement dit, vous pouvez démarrer à partir d'un tel disque, mais l'application ne fonctionnera pas.

L'option de lecteur flash USB fonctionne presque toujours, mais uniquement si la carte mère prend en charge la possibilité de démarrer à partir du lecteur flash au niveau du BIOS. Tous les nouveaux modèles de cartes mères possèdent cette fonctionnalité, à quelques exceptions près. Ainsi, certains modèles de cartes mères (surtout sur chipsets NVIDIA) bien qu’ils permettent au système de démarrer à partir d’un disque flash USB, ils ne permettent pas le lancement de l’utilitaire.

Par conséquent, il est conseillé de s'assurer que les trois méthodes d'utilisation de l'utilitaire Active Password Changer 3.0 peuvent être utilisées.

Comme nous l'avons déjà noté, travailler avec l'utilitaire lui-même ne pose pas de problème. Au premier stade il faut choisir lecteur logiquequi héberge le système d'exploitation. Le programme trouve ensuite le fichier SAM sur ce disque logique et affiche les comptes d'utilisateurs pouvant être modifiés.

Sous réserve d’éditer les mêmes points que lors de l'édition depuis systèmes Windows utilisateur avec statut d'administrateur. Ainsi, à l'aide de l'utilitaire Active Password Changer 3.0, vous pouvez réinitialiser le mot de passe d'un utilisateur (Effacer le mot de passe de cet utilisateur), bloquer (le compte est désactivé) ou déverrouiller (compte est verrouillé), spécifier la nécessité de modifier le mot de passe lors du prochain chargement de l'utilisateur (utilisateur obligé). changer le mot de passe à la prochaine ouverture de session) ou définir l’option pour un mot de passe (le mot de passe n’expire jamais). En outre, il peut être utilisé pour définir un horaire (par jours de la semaine et par heure), lorsque à cet utilisateur  connexion autorisée.

En général, la modification de comptes d'utilisateurs à l'aide de l'utilitaire Active Password Changer 3.0 prend littéralement quelques secondes. Une seule chose est inquiétante - sur le site officiel www.password-changer.com/download.htm, vous pouvez télécharger gratuitement uniquement une version de démonstration du programme, qui présente des limitations importantes en termes de fonctionnalités et est en fait absolument inutile. Par conséquent, il est logique de trouver la version «correcte» - Active Password Changer 3.0 Professional. Par exemple, une version complète de cet utilitaire fait partie d'un disque d'amorçage assez connu, Hirens Boot CD (version actuelle 8.6), que l'on peut facilement trouver sur Internet. Certes, dans ce cas, il est censé démarrer à partir du CD.

Changeur de mot de passe et éditeur de registre hors ligne NT / 2K / XP

Le changeur de mot de passe et l'éditeur de registre utilitaire hors ligne NT / 2K / XP peuvent être téléchargés gratuitement à l'adresse http://home.eunet.no/pnordahl/ntpasswd. Deux options sont disponibles: une image ISO pour créer un CD-ROM amorçable et un utilitaire pour créer une disquette amorçable.

L'utilisation de cet utilitaire avec un lecteur flash USB amorçable est en principe possible, mais vous devrez créer une telle disquette et l'intégrer vous-même.

L'application hors ligne NT / 2K / XP Password Changer & Registry Editor ne pose aucun problème. Lors de la première étape, nous choisissons un disque logique avec le système d'exploitation installé. Ensuite, vous devez spécifier l'emplacement du fichier SAM (Windows / System32 / Config est suggéré par défaut) et sélectionner la fonction d'édition du fichier SAM. Si le système d'exploitation a été installé par défaut, vous ne pouvez même pas comprendre les questions qui apparaissent dans chaque nouvelle boîte de dialogue et appuyez sur Entrée tout le temps.

Après avoir sélectionné un compte spécifique, vous pouvez réinitialiser le mot de passe, définir nouveau mot de passe, verrouillez ou déverrouillez le compte d'utilisateur, définissez l'option d'un mot de passe illimité, etc.

En conclusion, nous notons que l’utilitaire Offline NT / 2K / XP Password Changer et Éditeur de registre est également inclus dans le CD de démarrage de Hirens.

Autres options

En plus des utilitaires considérés Active Password Changer 3.0 et Offline NT / 2K / XP Password Changer & Registry Editor, il existe des utilitaires similaires pour réinitialiser le mot de passe, qui sont généralement inclus dans les disquettes d'amorçage du Live CD, c'est-à-dire dans les disquettes avec lesquelles vous pouvez démarrer le système d'exploitation sans l'installer. sur disque dur  ordinateur. Il existe de nombreux Live CD différents mais, en règle générale, ils sont tous construits sur la base de différents clones de systèmes Linux. Si nous parlons des disques Live CD basés sur Windows XP avec un outil intégré pour changer le mot de passe, ils sont peu nombreux. Vous pouvez appeler le disque iNFR @ CD PE 6.3, qui est une copie simplifiée de Windows XP, qui ne nécessite pas d’installation sur un disque dur. Le kit comprend également de nombreux utilitaires et packages, y compris le package ERD Commander, qui vous permet de réinitialiser un mot de passe et de créer un nouvel utilisateur. Le disque de démarrage Live CD d'une version simplifiée de Windows XP utilisant le célèbre package PE Builder peut être créé indépendamment, puis intégré dans celui-ci à l'aide de l'utilitaire de changement de mot de passe (ERD Commander). Toutefois, si ces disques sont censés être utilisés exclusivement pour modifier le mot de passe, ce n'est pas la meilleure option. Où il est plus pratique d’utiliser les méthodes décrites ci-dessus. Le fait est que les CD dynamiques basés sur la version réduite de Windows XP OC présentent un inconvénient majeur: le temps de démarrage à partir d’un tel disque dure plus de 5 minutes, ce qui est bien sûr extrêmement gênant.

  Choix du mot de passe

La sélection du mot de passe n’est pas une tâche aisée. Le principal problème est de savoir comment obtenir le fichier SAM. De plus, un seul fichier SAM ne suffit pas pour cela. Le fait est que, pour renforcer la sécurité, Microsoft a ajouté à la fois l’utilitaire de système d’exploitation SYSKEY, initialement inclus dans le Service Pack 3 pour Windows NT 4.0. Cet utilitaire vous permet en outre de chiffrer les hachages de mots de passe des comptes d'utilisateurs à l'aide d'une clé de 128 bits, ce qui rend impossible l'extraction de hachages d'un fichier SAM avec certains programmes, tels que le programme SAMDump. Sous Windows 2000/2003 / XP, l'utilitaire SYSKEY est activé par défaut et un cryptage supplémentaire ne peut pas être bloqué.

Lorsque le mode SYSKEY est activé, la clé de chiffrement du mot de passe, codée avec la clé système, peut être stockée localement (avec une protection par mot de passe supplémentaire possible) ou séparément - sur une disquette, ce qui est extrêmement rare.

Pour la première fois, Todd Sabin a proposé dans son programme pwdump2 un moyen de surmonter la protection SYSKEY. Cette méthode ne peut être implémentée que sur la machine locale. Pour créer un vidage de mot de passe à l'aide de la méthode pwdump2, vous devez disposer de droits d'administrateur. Le fonctionnement de l'utilitaire pwdump2 est basé sur l'implémentation de la bibliothèque samdump.dll, à travers laquelle il écrit son code dans l'espace d'un autre processus (lsass.exe), qui dispose de privilèges plus élevés. Après avoir chargé la bibliothèque samdump.dll dans le processus lsass (service système du sous-système de l'autorité de sécurité locale, LSASS), le programme utilise les mêmes fonctions de l'API interne pour accéder aux hachages de mot de passe. Cela signifie que l'utilitaire obtient l'accès aux mots de passe cryptés sans les décrypter.

Outre la méthode d'injection de la bibliothèque, il existe d'autres moyens de contourner les restrictions de sécurité SYSKEY. Par exemple, si vous avez accès à la clé elle-même, qui peut être stockée sur la machine locale, rien ne vous empêche de décrypter les données du fichier SAM. La clé fait partie du registre et les informations à ce sujet peuvent être extraites du fichier SYSTEM, qui est stocké dans le même répertoire que le fichier SAM. Lorsque le système d'exploitation est chargé Fichier Windows  SYSTEM, comme le fichier SAM, est verrouillé, c'est-à-dire qu'il ne peut pas être copié, renommé ou échangé.

Ensuite, nous allons parler des utilitaires les plus populaires qui vous permettent de choisir un mot de passe par la force brutale à l'aide de ses fonctions de hachage, mais nous allons d'abord examiner les moyens principaux d'obtenir le fichier SAM et la clé de cryptage du système.

Obtention de la clé de chiffrement du fichier SAM et du système

Pour PC local

Si nous parlons d'un PC local, vous devez d'abord obtenir le fichier SAM et le fichier SYSTEM lorsque vous utilisez des utilitaires de correspondance de mot de passe pour leurs fonctions de hachage. En principe, certains utilitaires (en particulier SAMinside), s’ils sont installés sur le même PC où le compte utilisateur est stocké, vous permettent de le faire même lorsque le système d’exploitation est chargé. Cependant, dans ce cas, il existe une grave limitation: cette opération n’est possible que si l’ordinateur est chargé sous un compte utilisateur doté de droits d’administrateur. Mais alors une question raisonnable se pose: si l'ordinateur est chargé sous un compte utilisateur doté de droits d'administrateur, pourquoi se donner la peine de choisir un mot de passe? Par conséquent, la situation la plus typique est lorsqu'un compte avec des droits d'administrateur est inconnu et qu'il vous suffit de rechercher le mot de passe de l'administrateur ou tout utilisateur de ce PC doté de droits d'administrateur.

Dans ce cas, vous devez d'abord copier deux fichiers: SAM et SYSTEM, qui, comme indiqué précédemment, se trouvent dans le répertoire% systemroot% \\ system32 \\ config (il s'agit par défaut du répertoire C \\ Windows \\ system32 \\ config).

Pour effectuer cette procédure, vous devez démarrer votre ordinateur avec un autre système d'exploitation, c'est-à-dire sans utiliser de disque dur. L'option la plus simple est de créer disque de démarrage  Live CD ou même un lecteur flash USB (si votre ordinateur prend en charge le démarrage à partir d'un support USB) avec une version réduite de Windows XP. Cela se fait facilement via l'utilitaire PE Builder (pour plus d'informations sur la création de tels disques, voir un article séparé dans ce numéro du journal). De plus, si un CD est utilisé pour le démarrage, vous devez également insérer un lecteur flash USB avant de démarrer sur l'ordinateur, afin de pouvoir y copier les fichiers nécessaires (si vous insérez le disque flash après le démarrage du système d'exploitation, il n'est pas initialisé).

Ainsi, après avoir démarré l'ordinateur à l'aide d'un autre système d'exploitation, vous devez copier deux fichiers sur le disque flash ou sur une disquette: SAM et SYSTEM. Ensuite, vous pouvez commencer à sélectionner un mot de passe à l'aide de l'utilitaire LCP 5.04 ou de SAMinside. Naturellement cette procédure  déjà produit sur un autre ordinateur.

La méthode considérée pour obtenir les fichiers SAM et SYSTEM est utilisée lorsqu'il existe un accès local à un ordinateur et qu'il est nécessaire d'obtenir une base de comptes d'utilisateurs avec les fonctions de hachage des mots de passe stockés sur l'ordinateur lui-même. S'il s'agit d'obtenir un mot de passe réseau, une procédure légèrement différente est utilisée.

Pour un ordinateur en réseau

Dans le cas d'un réseau local fichiers SAM  et SYSTEM est stocké sur un contrôleur de domaine et l’accès n’est pas si facile. En principe, vous pouvez utiliser la même méthode que pour un PC local, mais avec un serveur jouant le rôle de contrôleur de domaine, bien que cette procédure ne passe pas inaperçue. En outre, certains utilitaires (par exemple, LCP 5.04) prennent en charge la possibilité de récupérer à distance (c'est-à-dire sur le réseau) un fichier SAM à partir d'un contrôleur de domaine. Toutefois, pour implémenter cette méthode, vous devez disposer des droits d'accès d'un administrateur réseau ou d'un contrôleur de domaine. En outre, sur le contrôleur de domaine, vous pouvez facilement bloquer la possibilité d'un accès distant au registre. Dans ce cas, toutes les tentatives d'extraction du fichier SAM sur le réseau seront bloquées.

Utilitaire LCP 5.04

Il est donc temps de passer aux exemples pratiques et d’envisager des programmes permettant de récupérer efficacement les mots de passe des utilisateurs à l’aide de fonctions de hachage connues. Commençons par l'utilitaire LCP 5.04 (www.lcpsoft.com; Fig. 2), un outil très puissant pour la récupération de mots de passe à l'aide de hachages LM et NT. Cet utilitaire est gratuit et possède une interface russe.


Fig. 2. Fenêtre principale de l'utilitaire LCP 5.04

Pour pouvoir utiliser cet utilitaire, vous devez d'abord y importer la base de données du compte d'utilisateur. LCP 5.04 prend en charge l’importation de comptes utilisateurs depuis des ordinateurs locaux et distants, l’importation d’un fichier SAM, l’importation de fichiers sniff, ainsi que l’importation de fichiers créés par d’autres utilitaires (tels que les fichiers LC, LCS et PwDump).

Importer des comptes d'utilisateurs à partir de ordinateur local  implique deux variantes du système d'exploitation: Windows NT / 2000/2003 / XP sans Active Directory et le même, mais avec Active Directory (Fig. 3).

Fig. 3. La fenêtre d'importation des comptes d'utilisateurs
de l'ordinateur local

Toutefois, comme le montre la pratique, si le système d'exploitation est Windows XP SP2, l'importation depuis l'ordinateur local est impossible. Lorsque vous sélectionnez l'une des options, la protection du système d'exploitation est déclenchée et l'ordinateur, après avoir averti l'utilisateur, redémarre.

Importer la base de données de comptes utilisateur depuis un ordinateur distant vous permet de sélectionner un ordinateur sur le réseau local, de spécifier le type d’importation (importation à partir du registre ou de la mémoire) et, si nécessaire, de saisir le nom d’utilisateur et le mot de passe lors de la connexion à un ordinateur distant (Fig. 4). Il est clair que lors de l'utilisation d'une connexion à distance, l'utilisateur doit disposer de droits d'administrateur.


Fig. 4. Fenêtre Paramètres d'importation de compte
utilisateurs depuis un PC distant

Lors de l'importation d'un fichier SAM, vous devez spécifier son chemin ainsi que le fichier SYSTEM (Fig. 5). Il est supposé que les fichiers SAM et SYSTEM sont préalablement copiés de la manière décrite ci-dessus.


Fig. 5. Fenêtre de configuration de l'importation du fichier SAM

Une fois que les comptes d'utilisateur contenant le nom d'utilisateur, les hachages LM et NT ont été importés dans le programme LCP 5.04, vous pouvez passer à la procédure de récupération du mot de passe (Fig. 6). L'utilitaire prend en charge la sélection des hachages LM et NT. Il est clair qu'en présence de LM-hash l'attaque sera dirigée contre lui.


Fig. 6. Fenêtre principale de l’utilitaire LCP 5.04 avec importé
données de compte d'utilisateur

Dans l'utilitaire LCP 5.04, il existe trois types d'attaques pour la sélection de mots de passe en fonction de leurs hachages: une attaque par dictionnaire, une attaque par dictionnaire hybride et une attaque par force brute.

Lors d'une attaque par dictionnaire, les hachages sont calculés séquentiellement pour chaque mot du dictionnaire ou pour sa modification, puis comparés aux hachages du mot de passe de l'utilisateur. Si les hachages correspondent, alors le mot de passe est trouvé. L'avantage de cette méthode est sa vitesse élevée et l'inconvénient est une forte probabilité d'absence de mot de passe dans le dictionnaire. Augmenter l'efficacité de l'utilitaire d'attaque par dictionnaire vous permet de définir des paramètres supplémentaires (Fig. 7). En particulier, des noms d'utilisateur peuvent être ajoutés au dictionnaire, en tenant compte de la possibilité d'utiliser des touches adjacentes (telles que des séquences de qwert, etc.), des mots répétés (par exemple, utilisateur), l'inversion de l'ordre des caractères dans les mots (par exemple, resu), la concaténation avec l'ordre inverse des caractères (en particulier, userresu), l’utilisation de mots tronqués, de mots sans voyelles, de translittération (comme parol). De plus, vous pouvez vérifier le changement de mise en page en latin (le mot "mot de passe" dans la mise en page latine ressemblera à "gfhjkm") ou localisé (le mot "mot de passe" dans la mise en page russe se transformera en "zfyitstschkvv"). En outre, pour les attaques par dictionnaire, vous pouvez connecter différents dictionnaires, même plusieurs à la fois. L’utilitaire LCP 5.04 possède ses propres dictionnaires, mais nous recommandons d’utiliser des dictionnaires plus volumineux que l’on peut trouver sur Internet. Par exemple, une excellente sélection est disponible sur www.insidepro.com.


Fig. 7. Configuration d'une attaque par dictionnaire dans l'utilitaire LCP 5.04

Lors de la récupération de mots de passe en utilisant l'attaque par dictionnaire hybride, des symboles sont ajoutés à chaque mot ou à sa modification à droite et / ou à gauche. Pour chaque combinaison résultante, un hachage est calculé, qui est comparé aux hachages de mot de passe de l'utilisateur. Dans LCP 5.04, vous pouvez spécifier le nombre de caractères ajoutés à gauche ou à droite du mot (ses modifications) (Fig. 8).


Fig. 8. Configuration d’une attaque hybride dans l’utilitaire LCP 5.04

Au cours de l'attaque par force brute, des mots aléatoires sont compilés à partir du jeu de caractères spécifié, puis des fonctions de hachage sont calculées pour eux (plus précisément, pour des séquences de caractères). Lors de l'utilisation de cette méthode, le mot de passe sera déterminé si les caractères contenus dans le mot de passe sont dans le jeu de caractères spécifié. Cependant, cette méthode prend beaucoup de temps et plus il y a de caractères dans le jeu sélectionné, plus la recherche de combinaisons sera longue. Lorsque vous utilisez cette méthode, vous pouvez spécifier le jeu de caractères utilisé pour la sélection de plusieurs jeux prédéfinis (Fig. 9), définissez le jeu de caractères manuellement. En outre, vous pouvez spécifier une longueur de mot de passe et limiter la longueur minimale et maximale. Si vous connaissez des caractères du mot de passe ou même des cas, vous pouvez également indiquer quels caractères doivent figurer dans le mot de passe (et leur emplacement) (Fig. 10), ainsi que déterminer sa casse pour chaque caractère inconnu (supérieur, inférieur, inconnu). Bien entendu, il est judicieux de définir une longueur de mot de passe de plus de sept caractères uniquement lorsqu'une attaque est effectuée sur un hachage NT. Ceci s'applique également au masque de registre de caractères - il est conseillé de l'utiliser uniquement lors de la sélection d'un hachage NT. Naturellement, le masque de caractères et de registres s’applique uniquement dans le cas où vous devez choisir un mot de passe pour un compte spécifique, et non un ensemble de mots de passe pour tous les comptes.

Fig. 9. La méthode d’attaque de la fenêtre de configuration séquentielle
force brute dans l'utilitaire LCP 5.04

Une autre caractéristique intéressante de l'utilitaire LCP 5.04 est la possibilité de scinder une attaque par attaque par force brute en plusieurs parties (avec leur fusion ultérieure). Chaque partie de la tâche peut indépendamment des autres parties s'exécuter sur un ordinateur séparé. En conséquence, plus le nombre d'ordinateurs utilisés pour la panne est élevé, plus la tâche est rapide.


Fig. 10. Définition du masque de caractères connus du mot de passe

L'utilitaire LCP 5.04 prend en charge l'exportation des résultats (mots de passe trouvés) dans un fichier texte et l'ajout de mots de passe au dictionnaire, ce qui vous permet en outre de sélectionner plus efficacement les mots de passe utilisateur.

Utilitaire SAMinside


Fig. 13. Connexion de dictionnaires dans l'utilitaire SAMinside

Lors de la récupération de mots de passe en utilisant l'attaque par dictionnaire hybride, des symboles sont ajoutés à chaque mot du dictionnaire ou à sa modification à droite et / ou à gauche. En utilisant les paramètres du programme, vous pouvez spécifier le nombre de tels symboles (Fig. 14).


Fig. 14. Configuration d’une attaque hybride dans l’utilitaire SAMinside

Lors d'une attaque par itération séquentielle (Fig. 15), il est possible de spécifier le jeu de symboles utilisé pour la sélection parmi plusieurs jeux prédéfinis ou de spécifier le jeu de caractères manuellement. En outre, vous pouvez spécifier une longueur de mot de passe et limiter la longueur minimale et maximale.


Fig. 15. Fenêtre de configuration d'attaque par force brute dans l'utilitaire SAMinside.

En outre, il est possible d’appliquer la méthode de sélection de la force brute séquentielle sur plusieurs ordinateurs.

L'attaque de masque est utilisée s'il existe certaines informations sur le mot de passe. Par exemple, on peut savoir qu'un mot de passe commence par une combinaison de «123» caractères ou que les trois premiers caractères d'un mot de passe sont numériques et les autres sont des lettres latines.

Lors de la configuration d'une attaque par masque (Fig. 16), vous pouvez définir la longueur maximale du mot de passe et ajuster le masque pour chaque caractère. Si vous connaissez le caractère dans le mot de passe et sa position, vous pouvez alors spécifier ce caractère. De plus, pour chaque caractère en tant que masque, vous pouvez utiliser un ensemble prédéfini de caractères.


Fig. 16. Fenêtre de configuration d'attaque de masque dans l'utilitaire SAMinside

Une autre fonctionnalité d'attaque implémentée dans le programme SAMinside est une attaque sur les tables Rainbow (s'applique uniquement aux hachages LM). Le programme prend en charge les tables générées par l’utilitaire Rainbowcrack version 1.2 (www.antsight.com/zsl/rainbowcrack). Pour générer des tables, utilisez le fichier rtgen.exe. L'utilitaire rainbowcrack propose un didacticiel détaillé, sachant que vous pouvez apprendre à créer des tables Rainbow.

L'idée d'une table Rainbow est la suivante: une attaque utilisant l'itération séquentielle prend un temps extrêmement long. Pour accélérer le processus, vous pouvez utiliser des tables préformées, dans lesquelles les jeux de caractères générés et leurs hachages LM correspondants sont sauvegardés.

Notez que le processus de génération de tables Rainbow peut durer de plusieurs jours à plusieurs années, en fonction des paramètres utilisés. Toutefois, si de telles tables sont créées, leur utilisation augmente considérablement la vitesse de récupération du mot de passe, qui prend dans ce cas plusieurs minutes. Peut-être qu'aujourd'hui, les tables Rainbow sont le moyen le plus efficace et le plus rapide de récupérer des mots de passe.

Utilitaire vérificateur de mot de passe proactif

Elcomsoft Proactive Password Auditor (http://www.elcomsoft.com) est un autre utilitaire populaire permettant de récupérer des mots de passe à l'aide de leurs fonctions de hachage. Cependant, contrairement à LCP 5.04, cela coûte beaucoup d'argent et sur le site Web de la société, vous ne pouvez télécharger que sa version de démonstration de 60 jours avec un nombre limité de comptes d'utilisateurs pris en charge dont les mots de passe doivent être récupérés.

La version actuelle du programme Proactive Password Auditor - 1.7, cependant, comme il s’est avéré lors des tests, il était instable et entraînait constamment une erreur, après quoi il était simplement fermé. Nous sommes donc passés à une version 1.5 éprouvée et stable.

Le programme Proactive Password Auditor (Fig. 17) prend en charge l'interface en russe et est très facile à utiliser.


Fig. 17. Fenêtre principale du programme Proactive Password Auditor

Avant de commencer à utiliser cet utilitaire, vous devez y importer une base d’utilisateurs de compte. L'utilitaire Proactive Password Auditor prend en charge l'importation de comptes d'utilisateur à partir de PC locaux et distants. Parallèlement, qu’il s’agisse d’un PC local ou distant, l’importation de comptes d’utilisateur peut être réalisée via l’accès aux fichiers de registre (SAM, SYSTEM), qui doivent être copiés à partir du répertoire approprié en utilisant les méthodes décrites ci-dessus. Il prend également en charge l’importation de comptes d’utilisateur à partir du fichier PwDump.

Pour importer des comptes d'utilisateurs depuis un PC local, vous pouvez accéder à la mémoire de l'ordinateur local ou du registre.

Importer des comptes d'utilisateurs à partir de ordinateur distant  effectuée uniquement en accédant à la mémoire de l'ordinateur distant. Dans ce cas, vous devez d'abord sélectionner ordinateur de réseau  (Fig. 18) à laquelle vous devez vous connecter pour accéder à la mémoire. Naturellement, une telle procédure n'est possible qu'avec des privilèges administratifs.


Fig. 18. Obtenir la base de données de comptes d'utilisateurs depuis un PC distant

Après avoir importé des comptes d’utilisateur, vous pouvez passer directement à la procédure de récupération des mots de passe. L'utilitaire prend en charge la sélection des hachages LM et NT. Mais, comme nous l’avons répété à maintes reprises, si le mot de passe contient un hachage LM, vous devez le récupérer.

L'utilitaire Proactive Password Auditor implémente plusieurs types d'attaques pour la sélection de mots de passe en fonction de leurs hachages: une attaque par dictionnaire, une attaque par masque, une attaque par force brute et une attaque par table Rainbow.

Lorsqu'une attaque par dictionnaire ne fournit aucun paramètre. Seule la connexion simultanée de plusieurs dictionnaires est possible.

Dans le cas d'une attaque par force brute, vous pouvez spécifier le jeu de caractères utilisé pour sélectionner l'un des jeux prédéfinis ou définir manuellement le jeu de caractères. En outre, vous pouvez spécifier une longueur de mot de passe et limiter la longueur minimale et maximale.

Lors de la configuration d'une attaque par masque, vous pouvez définir la longueur maximale du mot de passe et, si vous connaissez le caractère du mot de passe et sa position, spécifiez ce symbole dans le masque. De plus, lors d'une attaque par masque, comme dans le cas d'une attaque par force brute, il est possible de spécifier le jeu de caractères utilisé pour la sélection dans plusieurs jeux prédéfinis ou de définir le jeu de caractères manuellement.


Fig. 19. Réglage du mode de génération des tables Rainbow
  dans le programme auditeur de mot de passe proactif

Comme dans le cas de l'utilitaire SAMinside, le programme Proactive Password Auditor prend en charge les attaques sur les tables Rainbow (pour les hachages LM et NT). De plus, une caractéristique unique de ce programme est la génération de tables Rainbow avec des options de configuration flexibles (Fig. 19 et 20).


Fig. 20. Génération de tables Rainbow dans le programme
  Vérificateur de mot de passe proactif

Comparaison des utilitaires SAMinside, LCP 5.04 et Proactive Password Auditor

En conclusion, nous notons que les utilitaires SAMinside, LCP 5.04 et Proactive Password Auditor sont des outils très efficaces pour la sélection de mots de passe. Chacun d’entre eux a ses avantages, il est donc préférable de disposer de tous les utilitaires. Leurs principales caractéristiques sont données dans le tableau. 2


Tableau 2. Caractéristiques principales des utilitaires SAMinside, LCP 5.04
et vérificateur de mot de passe proactif

Comme le montre la pratique, la vulnérabilité des mots de passe est généralement due à la négligence des utilisateurs. Les systèmes d'exploitation Windows NT / 2000/2003 / XP fournissent aux utilisateurs les ressources suffisantes pour créer un système de sécurité puissant - tout ce dont vous avez besoin ne doit pas être négligé.

Pour empêcher les utilisateurs de recevoir des comptes d’utilisateur de l’ordinateur local, il est recommandé de désactiver paramètres du BIOS  la possibilité de démarrer à partir d'une disquette et d'un autre support autre qu'un disque dur, et de protéger le BIOS avec un mot de passe.

Si nous parlons d'un contrôleur de domaine, il est en outre recommandé d'effectuer les réglages suivants:

  • empêcher la gestion de registre à distance en arrêtant le service correspondant;
  • interdire l'utilisation du droit de déboguer des programmes pour lesquels, dans le composant logiciel enfichable de sécurité, sélectionnez Configuration ordinateur \\ Paramètres de sécurité \\ Stratégies locales \\ Attribution des droits utilisateur et supprimez tous les utilisateurs et tous les groupes de la liste dans les propriétés de stratégie des programmes Débogage;
  • annuler la possibilité d'appliquer spéciale dossiers partagés  ADMIN $, C $, etc., destinés aux besoins du système d'exploitation, mais permettant également à un utilisateur disposant de droits d'administration de s'y connecter via le réseau. Pour bloquer ces ressources partagées, dans la clé de registre HKEY_LOCAL_MACHINE \\ SYSTEM \\ Current-ControlSet \\ Services \\ LanmanServer \\ Parame-ters, ajoutez le paramètre AutoShareWks (pour versions Windows  NT, 2000 Professional et XP) ou AutoShareServer (pour les versions de serveur) de type DWORD et définissez sa valeur sur 0;
  • bloquez l'accès réseau anonyme, ce qui vous permet d'obtenir des informations sur les utilisateurs, les stratégies de sécurité et les ressources partagées. Pour ce faire, vous devez ajouter le paramètre Restrict-Anonymous du type DWORD à la clé de registre HKEY_LOCAL_MACHINE \\ SYSTEM \\ Current-ControlSet \\ Control \\ Lsa, en le définissant sur 2;
  • empêchez les utilisateurs indésirables d’accéder en ligne à vos PC. Pour ce faire, dans le composant logiciel enfichable de sécurité de la section Configuration de l'ordinateur \\ Paramètres de sécurité \\ Stratégies locales \\ Attribution des droits d'utilisateur, dans les propriétés de la stratégie Accéder à cet ordinateur à partir du réseau, corrigez la liste des utilisateurs autorisés à accéder au réseau. En outre, dans la stratégie Refuser l'accès à l'ordinateur à partir du réseau, vous pouvez spécifier une liste d'utilisateurs à qui l'accès à distance à cet ordinateur est refusé.
  • Pour compliquer le processus de récupération des mots de passe par leurs fonctions de hachage, il est recommandé:
  • empêche le stockage des hachages LM vulnérables, pour lesquels le type NoLMHash de type DWORD doit être ajouté à la clé de registre HKEY_LOCAL_MACHINE \\ SYSTEM \\ Current-ControlSet \\ Control \\ Lsa. Avec sa valeur égale à 1, les hachages LM ne sont pas stockés. Exactement cette méthode  est le moyen le plus efficace de protéger les mots de passe, car leur sélection par hachage NT est une tâche sans espoir;
  • choisissez des mots de passe d'au moins 10 caractères;
  • n'utilisez pas de caractères numériques pour les mots de passe. Il est conseillé de choisir les caractères du plus grand jeu de caractères possible. Comme le montre la pratique, il est difficile de reproduire les mots et les phrases en russe tapés dans la disposition du clavier latin. Un moyen encore plus efficace consiste à utiliser un mot de passe, dont une partie est saisie avec la disposition du clavier anglais et l'autre avec le russe. En règle générale, ces mots de passe ne peuvent pas être récupérés.

Parmi les méthodes qui augmentent la force cryptographique du système dans son ensemble, passons au bloc de hachage du mot de passe - une méthode qui permet aux utilisateurs de se souvenir non pas de 128 octets, c'est-à-dire de 256 chiffres hexadécimaux de la clé, mais d'une expression, d'un mot ou d'une séquence de caractères significative, appelée mot de passe. En effet, lors du développement d’un algorithme de cryptage, il faut tenir compte du fait que dans la moitié des cas, l’utilisateur final du système est une personne et non une personne. système automatique. Cela soulève la question de savoir s'il est commode et généralement possible pour une personne de se souvenir d'une clé de 128 bits (32 chiffres hexadécimaux). En fait, la limite de mémorisation se situe à la limite de 8 à 12 caractères de ce type et, par conséquent, si nous obligeons l'utilisateur à utiliser la clé, nous l'obligerons pratiquement à écrire la clé sur tout support papier ou électronique, par exemple, fichier texte. Ceci, bien sûr, réduit considérablement la sécurité du système.

Pour résoudre ce problème, des méthodes ont été développées pour transformer une chaîne de longueur arbitraire prononcée et significative - un mot de passe, en une clé spécifiée d'une longueur prédéterminée. Dans la très grande majorité des cas, des fonctions dites de hachage sont utilisées pour cette opération (en anglais. Hashing - petite découpe et mélange). Une fonction de hachage est une transformation mathématique ou algorithmique d'un bloc de données donné ayant les propriétés suivantes:

  1. la fonction de hachage a un domaine infini de définition,
  2. la fonction de hachage a une plage finie de valeurs,
  3. c'est irréversible
  4. changer le flux d'informations d'entrée d'un bit modifie environ la moitié de tous les bits du flux de sortie, c'est-à-dire le résultat de la fonction de hachage.

Ces propriétés permettent aux mots de passe de la fonction de hachage, c'est-à-dire des chaînes de texte de longueur arbitraire dans n'importe quelle langue nationale, et en limitant la plage de la fonction à une plage de 0..2 N -1, où N est la longueur de la clé en bits, pour obtenir une sortie répartie de manière à peu près uniforme dans le domaine de la valeur, les blocs d'informations sont des clés.

Il est facile de voir que des exigences telles que 3 et 4 points des exigences pour la fonction de hachage sont exécutées par des chiffrements par blocs. Ceci indique l’un des moyens possibles pour implémenter des fonctions de hachage persistantes - pour effectuer des crypto-transformations de bloc sur le matériau de la chaîne de mot de passe. Cette méthode est utilisée dans diverses variantes de presque tous les systèmes cryptographiques modernes. Le matériau de la chaîne de mot de passe est utilisé à plusieurs reprises de manière séquentielle en tant que clé pour chiffrer un bloc de données précédemment connu. Le résultat obtenu est un bloc d'informations chiffré qui dépend uniquement du mot de passe et présente simultanément des caractéristiques statistiques assez bonnes. Un tel bloc ou plusieurs de ces blocs sont utilisés comme clé pour d'autres transformations cryptographiques.

La nature de l'utilisation du chiffrement de bloc pour le hachage est déterminée par le rapport entre la taille de bloc du cryptoalgorithme utilisé et la profondeur de bits du résultat de hachage souhaité.

Si les valeurs ci-dessus sont identiques, un schéma de chiffrement par bloc à chaîne unique est utilisé. La valeur initiale du résultat de hachage H 0 est définie sur 0, la chaîne de chaîne entière est divisée en blocs d'octets de longueur égale à la clé utilisée pour le hachage du chiffrement de bloc, puis la conversion est effectuée à l'aide de la formule récurrente:
  H j = H j-1 XOR EnCrypt (H j-1, PSW j),
  où EnCrypt (X, Key) est le chiffre de bloc utilisé (Fig. 1).
  La dernière valeur de H k est utilisée comme résultat souhaité.

Dans le cas où la longueur de la clé est exactement le double de la longueur du bloc et que cette dépendance est assez fréquente dans les chiffrements de blocs, un schéma ressemblant à un réseau de Feistel est utilisé. Un inconvénient caractéristique de la formule ci-dessus et de la fonction de hachage, basée sur le réseau Feystel, est la consommation élevée de ressources pour le mot de passe. Par exemple, pour une seule conversion, un chiffrement de bloc avec une longueur de clé de 128 bits utilise 16 octets du mot de passe chaîne et la longueur du mot de passe lui-même dépasse rarement 32 caractères. Par conséquent, lors du calcul de la fonction de hachage sur un mot de passe, un maximum de 2 crypto-transformations "complètes" sera produit.

La solution à ce problème peut être obtenue de deux manières: 1) «dupliquer» préalablement une chaîne de mot de passe, par exemple en l'écrivant plusieurs fois de suite jusqu'à atteindre une longueur de, disons, 256 caractères; 2) modifier le schéma d'utilisation d'un algorithme cryptographique de manière à ce que le matériau de la chaîne mot de passe soit "plus lent" dans le calcul de la clé.

Les chercheurs Davis et Meyer, qui ont également proposé l'algorithme sur la base du chiffrement par blocs, mais qui ont utilisé le matériau de la chaîne de mots de passe de manière répétée et par petites portions, ont suivi la seconde voie. Il examine les éléments des deux schémas ci-dessus, mais la force cryptographique de cet algorithme est confirmée par de nombreuses implémentations dans différents cryptosystèmes. L’algorithme s’appelle "Tandem DM" (Fig. 2):

G 0 = 0; H 0 = 0; POUR J = 1 À N NE COMMENCE TMP = EnCrypt (H,); H "= H XOR TMP; TMP = EnCrypt (G,); G" = G XOR TMP; FIN; clé =

Les crochets (X16 =) désignent ici une simple combinaison (collage) de deux blocs d'informations de taille égale en un - deux fois la largeur. Et en tant que procédure EnCrypt (X, Key), tout chiffrement par bloc fort peut être sélectionné à nouveau. Comme le montrent les formules, cet algorithme est axé sur le fait que la longueur de la clé est deux fois supérieure à celle du bloc cryptoalgorithme. Une caractéristique du schéma est le fait que la chaîne de mot de passe est lue par blocs de la moitié de la longueur de la clé et que chaque bloc est utilisé pour créer deux fois le résultat de hachage. Ainsi, avec une longueur de mot de passe de 20 caractères et la nécessité de créer une clé de 128 bits, le cycle de fonction de hachage interne se répète 3 fois.

Codage de transport

Étant donné que les systèmes de chiffrement de données sont souvent utilisés pour chiffrer des informations textuelles: correspondance, factures, paiements en ligne et système cryptographique doivent être complètement transparents pour l'utilisateur, le codage de transport est souvent effectué sur le flux de sortie du cryptosystème, c'est-à-dire un codage supplémentaire (et non crypté!) D'informations uniquement pour la compatibilité avec les protocoles de transfert de données.

Le fait est qu’à la sortie d’un cryptosystème, les octets peuvent prendre les 256 valeurs possibles, que le flux d’entrée soit une information textuelle ou non. Et lors de l'envoi de messages électroniques, de nombreux systèmes se concentrent sur le fait que les valeurs valides des octets de texte se situent dans une plage plus étroite: tous les chiffres, les signes de ponctuation, l'alphabet latin plus éventuellement la langue nationale. Les 32 premiers caractères du jeu ASCII sont à des fins spéciales. Le codage de transport est utilisé pour garantir qu’ils et certains autres caractères de service ne figurent jamais dans le flux de sortie.

La méthode la plus simple consiste à écrire chaque octet en deux caractères numériques hexadécimaux. Donc, l'octet 252 sera écrit en deux caractères "FC"; Le code d'octet 26, qui tombe sur un caractère spécial CTRL-Z, sera écrit avec deux caractères valides "1A". Mais ce schéma est très redondant: seuls 4 bits d’information sont transmis dans un octet.

En fait, dans presque tous les systèmes de communication, vous pouvez transférer environ 68 caractères sans problème (l'alphabet latin est en minuscule et en majuscule, avec des chiffres et des signes de ponctuation). Il s’ensuit qu’il est tout à fait réaliste de créer un système permettant le transfert de 6 bits dans un octet (2 6<68), то есть кодировать 3 байта произвольного содержания 4-мя байтами из исключительно разрешенных (так называемых печатных) символов. Подобная система была разработана и стандартизирована на уровне протоколов сети Интернет – это система Base64 (стандарт RFC1251).

Le processus de codage convertit 4 symboles d'entrée sous la forme d'un groupe de 24 bits, en les traitant de gauche à droite. Ces groupes sont ensuite traités comme 4 groupes de 6 bits connectés, chacun d'eux étant traduit en un seul chiffre de l'alphabet base64. Lorsque base64 est codé, le flux d'octets d'entrée doit être ordonné par bits de poids fort à l'avance.

Chaque groupe de 6 bits est utilisé comme index pour un tableau de 64 caractères imprimables. Le caractère pointé par la valeur d'index est placé sur la chaîne de sortie. Ces caractères sont choisis pour être universellement représentables et excluent les caractères ayant une signification spéciale (".", CR, LF).

Alphabet Base64 Valeur Code Valeur Code Valeur Code Valeur Code 0 A 17 R 34 i 51 z 1 B 18 S 35 j 52 0 2 C 19 T 36 k 53 1 3 D 20 U 37 l 54 2 4 E 21 V 38 m 55 3 5 F 22 W 39 n 56 4 6 G 23 X 40 o 57 5 7 H 24 O 41 p 58 6 8 I 25 Z 42 q 59 7 9 J 26 a 43 r 60 8 10 K 27 b 44 s 61 9 11 L 28 c 45 t 62 + 12 M 29 j 46 u 63/13 N 30 e 47 v agrégat = 14 O 31 f 48 w 15 P 32 g 49 x 16 Q 33 h 50 a

Le flux de sortie (octets codés) doit avoir une longueur maximale de 76 caractères. Tous les caractères de fin de ligne et autres caractères manquants dans la table 1 doivent être ignorés par le décodeur base64. Parmi les données de Base64 figurent des caractères non répertoriés dans le tableau. 1, sauts de ligne, etc. devrait parler de l'erreur de transmission de données et, en conséquence, le décodeur de programme devrait en informer l'utilisateur.

S'il reste moins de 24 bits dans la queue du flux de données codées, zéro bit est ajouté à droite pour former un nombre entier de groupes de 6 bits. Jusqu'à la fin du groupe de 24 bits, il ne peut rester que 0 à 3 groupes de 6 bits manquants, à la place desquels un espace réservé "=" est placé. Puisque le flux d’entrée entier est un entier de groupes de 8 bits (c’est-à-dire juste des valeurs d’octets), seuls les cas suivants sont possibles:

  1. Le flux d'entrée se termine par un groupe de 24 bits (la longueur du fichier est un multiple de 3). Dans ce cas, le flux de sortie se terminera par quatre caractères Base64 sans aucun caractère supplémentaire.
  2. La "queue" du flux d'entrée a une longueur de 8 bits. Ensuite, à la fin du code de sortie, il y aura deux caractères Base64, avec l'ajout de deux caractères "=".
  3. La "queue" du flux d'entrée a une longueur de 16 bits. Ensuite, à la fin de la sortie, il y aura trois symboles Base64 et un symbole "=".

Puisque le caractère "=" est une fin, son apparence dans le corps de la lettre ne peut signifier que la fin des données a été atteinte. Mais il est faux de s’appuyer sur la recherche du caractère "=" pour détecter la fin du fichier, car si le nombre de bits transmis est un multiple de 24, aucun caractère "=" ne figure dans le fichier de sortie.

Vous aimez cet article? Partager avec des amis: