Kaspersky a-t-il un générateur de mots de passe?
Kaspersky a-t-il un générateur de mots de passe?
Le mot de passe construit est converti en minuscules. Les non-lettres sont supprimées. Ensuite, il y a une itération sur le mot de passe au lieu du mot de passe minuscule. Cela conduit à un mauvais calcul de la variable d’index (la position d’une lettre dans l’alphabet). Cet index est utilisé pour récupérer un élément d’un tableau. Cela conduit à une lecture hors limites de ce tableau.
Manager de mot de passe Kaspersky: tous vos mots de passe nous appartiennent
Le générateur de mots de passe inclus dans Kaspersky Password Manager a eu plusieurs problèmes. Le plus critique est qu’il a utilisé un PRNG non adapté à des fins cryptographiques. Sa seule source d’entropie était l’heure actuelle. Tous les mots de passe qu’il a créés pourrait être brutcé en quelques secondes. Cet article explique comment générer des mots de passe en toute sécurité, pourquoi le gestionnaire de mots de passe Kaspersky a échoué et comment exploiter ce défaut. Il fournit également une preuve de concept à tester si votre version est vulnérable.
Le produit a été mis à jour et ses dernières versions sont’t affecté par ce problème.
Introduction
Il y a deux ans, nous avons examiné Kaspersky Password Manager (KPM), un gestionnaire de mots de passe développé par Kaspersky. Kaspersky Password Manager est un produit qui stocke en toute sécurité les mots de passe et les documents dans un coffre-fort crypté, protégé par un mot de passe. Ce coffre-fort est protégé par un mot de passe maître, donc, comme avec d’autres gestionnaires de mot de passe, les utilisateurs doivent se souvenir d’un seul mot de passe pour utiliser et gérer tous leurs mots de passe. Le produit est disponible pour divers systèmes d’exploitation (Windows, MacOS, Android, iOS, Web…) Les données cryptées peuvent ensuite être automatiquement synchronisées entre tous vos appareils, toujours protégés par votre mot de passe maître.
La principale fonctionnalité de KPM est la gestion du mot de passe. Un point clé avec les gestionnaires de mots de passe est que, contrairement aux humains, ces outils sont bons pour générer des mots de passe aléatoires et forts. Pour générer des mots de passe sécurisés, Kaspersky Password Manager doit s’appuyer sur un mécanisme de génération de mots de passe sécurisé. Nous verrons d’abord un exemple d’une bonne méthode de génération de mots de passe, pour expliquer pourquoi la méthode utilisée par Kaspersky a été imparfaite et comment nous l’avons exploitée. Comme nous le verrons, les mots de passe générés par cet outil peuvent être brutés en quelques secondes.
Après un peu moins de deux ans, cette vulnérabilité a été corrigée sur toutes les versions de KPM. La vulnérabilité a été attribuée CVE-2020-27020.
Générer des mots de passe robustes à partir d’un charme
Par souci de simplicité, laissez’S Étudiez comment les mots de passe sont générés dans Keepass, un projet open source. La génération de mots de passe est implémentée dans diverses classes dans le keepasslib.Cryptographie.Espace de noms de mot de passe. Keepass fournit 3 méthodes pour générer un mot de passe: une méthode de génération basée sur le charse, basée sur des modèles et une génération personnalisée.
La méthode plus simple est le générateur de base de charmet, qui crée un mot de passe à partir d’un charme donné. Laissez voir comment ça marche. Voici la boucle principale responsable de la génération de mots de passe:
PwCharset pcs = new pwcharset (pwprofile.Charbon.ToString ());
si(!PWGenerator.PrepareChareset (PCS, PWPROFILE))
Retour Pwgerror.InvalidCharset;
char [] v = nouveau char [pwprofile.Longueur];
essayer
{
pour (int i = 0; i < v.Length; ++i)
{
char ch = PwGenerator.GenerateCharacter(pcs, crsRandomSource);
if(ch == char.MinValue)
return PwgError.TooFewCharacters;
v[i] = ch;
if(pwProfile.NoRepeatingCharacters)
pcs.Remove(ch);
}
} La méthode GenerateCharacter est appelée pour générer chaque caractère à partir du mot de passe. Il prend un charme et une source aléatoire, et publie un caractère aléatoire du charset. Son implémentation est plutôt simple:
CHAR statique interne GenerateCharacter (PWCharset PWCharset, cryptorandomstream crsrandomsource)
{
uint cc = pwcharset.Taille;
if (cc == 0)
retour charl.Minvalue;
uint i = (uint) crsrandomsource.GetrandomUint64 (CC);
return pwCharset [i];
} 1. Comment le générateur de mots de passe du gestionnaire de mot de passe Kaspersky a-t-il échoué?
Le générateur de mots de passe dans Kaspersky Password Manager a échoué car il a utilisé un PRNG (générateur de nombres pseudo-aléatoires) qui ne convenait pas à des fins cryptographiques. Il s'appuyait uniquement sur l'heure actuelle comme source d'entropie, ce qui facilite la force brute les mots de passe générés.
2. Pourquoi est-il important de générer des mots de passe sécurisés?
La génération de mots de passe sécurisés est important car les mots de passe faibles sont facilement supposables et peuvent être compromis par les attaquants. Des mots de passe solides et aléatoires offrent une meilleure sécurité pour les comptes en ligne et aident à protéger les informations sensibles contre l'accès non autorisé.
3. Comment la méthode de génération de mots de passe imparfaite dans Kaspersky Password Manager a-t-elle exploité?
La méthode de génération de mots de passe imparfaite dans le gestionnaire de mots de passe Kaspersky a permis une force brute facile des mots de passe générés en raison du manque d'entropie appropriée. En utilisant un PRNG basé uniquement sur l'heure actuelle, il est devenu possible de prédire et de deviner avec précision les mots de passe, en les rendant vulnérables à l'attaque.
4. Quel est le numéro CVE attribué à la vulnérabilité dans Kaspersky Password Manager?
La vulnérabilité dans Kaspersky Password Manager a été affectée au numéro CVE-2020-27020.
5. Comment les mots de passe sont-ils générés dans Keepass?
Les mots de passe sont générés dans Keepass en utilisant diverses méthodes, y compris un générateur basé sur le charme. Cette méthode crée des mots de passe basés sur un charme donné, garantissant que les mots de passe générés contiennent un mélange de caractères à partir de l'ensemble spécifié.
6. Quel est le but de la classe PWCharset dans Keepass?
La classe PWCharset dans Keepass est utilisée pour définir et gérer des ensembles de caractères qui peuvent être utilisés dans la génération de mots de passe. Il permet la personnalisation et le contrôle des caractères inclus dans les mots de passe générés.
7. Comment fonctionne la méthode GenerateCaracter dans Keepass?
La méthode GenerateCharacter dans Keepass prend un charset et une source aléatoire comme paramètres d'entrée et renvoie un caractère aléatoire du charset spécifié. Il garantit que le caractère généré est sélectionné au hasard parmi l'ensemble de caractères fournis.
8. Que se passe-t-il si le jeu de caractères est vide dans Keepass?
Si le jeu de caractères est vide dans Keepass, la méthode GenerateCharacter renvoie la valeur char.Mine. Cela indique qu'il n'y a pas de caractères disponibles dans le charset spécifié, et cela peut entraîner une erreur dans le processus de génération de mots de passe.
9. Comment le générateur de mots de passe dans le gestionnaire de mot de passe Kaspersky a-t-il géré les caractères non-lettres?
Le générateur de mots de passe dans Kaspersky Password Manager a converti le mot de passe en minuscules et supprimé les caractères non-lettres. Ce processus faisait partie de la méthodologie défectueuse utilisée par le générateur, ce qui a finalement conduit à la vulnérabilité qui a permis une force brute facile des mots de passe.
dix. La vulnérabilité dans Kaspersky Password Manager a-t-elle été corrigée?
Oui, la vulnérabilité dans Kaspersky Password Manager a été corrigée dans toutes les versions. Les dernières versions du produit ne sont pas affectées par ce problème.
Kaspersky a-t-il un générateur de mots de passe?
Le mot de passe construit est converti en minuscules. Les non-lettres sont supprimées. Ensuite, il y a une itération sur le mot de passe au lieu du mot de passe minuscule. Cela conduit à un mauvais calcul de la variable d'index (la position d'une lettre dans l'alphabet). Cet index est utilisé pour récupérer un élément d'un tableau. Cela conduit à une lecture hors limites de ce tableau.
Manager de mot de passe Kaspersky: tous vos mots de passe nous appartiennent
Le générateur de mots de passe inclus dans Kaspersky Password Manager a eu plusieurs problèmes. Le plus critique est qu'il a utilisé un PRNG non adapté à des fins cryptographiques. Sa seule source d'entropie était l'heure actuelle. Tous les mots de passe qu'il a créés pourrait être brutcé en quelques secondes. Cet article explique comment générer des mots de passe en toute sécurité, pourquoi le gestionnaire de mots de passe Kaspersky a échoué et comment exploiter ce défaut. Il fournit également une preuve de concept à tester si votre version est vulnérable.
Le produit a été mis à jour et ses dernières versions sont’t affecté par ce problème.
Introduction
Il y a deux ans, nous avons examiné Kaspersky Password Manager (KPM), un gestionnaire de mots de passe développé par Kaspersky. Kaspersky Password Manager est un produit qui stocke en toute sécurité les mots de passe et les documents dans un coffre-fort crypté, protégé par un mot de passe. Ce coffre-fort est protégé par un mot de passe maître, donc, comme avec d'autres gestionnaires de mot de passe, les utilisateurs doivent se souvenir d'un seul mot de passe pour utiliser et gérer tous leurs mots de passe. Le produit est disponible pour divers systèmes d'exploitation (Windows, MacOS, Android, iOS, Web…) Les données cryptées peuvent ensuite être automatiquement synchronisées entre tous vos appareils, toujours protégés par votre mot de passe maître.
La principale fonctionnalité de KPM est la gestion du mot de passe. Un point clé avec les gestionnaires de mots de passe est que, contrairement aux humains, ces outils sont bons pour générer des mots de passe aléatoires et forts. Pour générer des mots de passe sécurisés, Kaspersky Password Manager doit s'appuyer sur un mécanisme de génération de mots de passe sécurisé. Nous verrons d'abord un exemple d'une bonne méthode de génération de mots de passe, pour expliquer pourquoi la méthode utilisée par Kaspersky a été imparfaite et comment nous l'avons exploitée. Comme nous le verrons, les mots de passe générés par cet outil peuvent être brutés en quelques secondes.
Après un peu moins de deux ans, cette vulnérabilité a été corrigée sur toutes les versions de KPM. La vulnérabilité a été attribuée CVE-2020-27020.
Générer des mots de passe robustes à partir d'un charme
Par souci de simplicité, laissez’S Étudiez comment les mots de passe sont générés dans Keepass, un projet open source. La génération de mots de passe est implémentée dans diverses classes dans le keepasslib.Cryptographie.Espace de noms de mot de passe. Keepass fournit 3 méthodes pour générer un mot de passe: une méthode de génération basée sur le charse, basée sur des modèles et une génération personnalisée.
La méthode plus simple est le générateur de base de charmet, qui crée un mot de passe à partir d'un charme donné. Laissez voir comment ça marche. Voici la boucle principale responsable de la génération de mots de passe:
Pwcharse PCS = nouveau Pwcharse(pwprofile.Charbon.Tostring()); si(!PWGenerator.Préparative de préparation(PCS, pwprofile)) retour Pwgerror.Invalidcharset; carboniser[] V = nouveau carboniser[pwprofile.Longueur]] essayer pour(int je = 0; je V.Longueur; ++je) carboniser ch = PWGenerator.Générationcharacter(PCS, crsRandomsource)); si(ch == carboniser.Mine) retour Pwgerror.Toofewcharacters; V[je]] = ch; si(pwprofile.NORÉAGE) PCS.Retirer(ch)); > . > La méthode GenerateCharacter est appelée pour générer chaque caractère à partir du mot de passe. Il prend un charme et une source aléatoire, et publie un caractère aléatoire du charset. Son implémentation est plutôt simple:
interne statique carboniser Générationcharacter(Pwcharse pwcharse, Cryptorandomstream crsRandomsource) uint CC = pwcharse.Taille; si(CC == 0) retour carboniser.Mine; uint je = (uint)crsRandomsource.Getrandomuint64(CC)); retour pwcharse[je]] > Enfin, GetrandoMuint64 est un générateur de nombres aléatoires uniforme qui produit des valeurs entre 0 et CC - 1:
interne ulong Getrandomuint64(ulong umaxexcl) si(umaxexcl == 0) Déboguer.Affirmer(FAUX)); lancer nouveau ArgumentoutofRangeException("UmaxExcl")); > ulong Ugen, urem; faire Ugen = Getrandomuint64(); urem = Ugen % umaxexcl; > alors que((Ugen - urem) > (ulong.Valeur max - (umaxexcl - 1UL))); // Cela garantit que le dernier numéro du bloc (i.e. // (UGEN - UREM) + (UmaxExcl - 1)) est générateur; // pour les longs signés, débordez à un nombre négatif: // while ((Ugen - urem) + (umaxExcl - 1) < 0);retour urem; > Ce qui est important ici, c'est que chaque personnage est généré indépendamment des autres: Chaque personnage est aléatoire, et savoir quel personnage a été généré auparavant ne nous donne pas des informations sur le prochain char qui sera généré.
Enfin, laissez’S supposons que getrandomuint64 est cryptographiquement fort et génère un numéro de 64 bits aléatoire. Pourquoi y a-t-il une boucle ici, et pourquoi cette fonction n'est-elle pas simplement implémentée en tant que retour getrandomuint64 ()% UmaxExcl; ?
Génération de nombres aléatoires uniformes
Cette boucle est essentielle pour uniformément générer des nombres dans une plage.
Imaginez que vous vouliez obtenir un char aléatoire à partir d'un charset de 10 caractères possibles, et vous avez une méthode de générateur de nombres aléatoires GetRandom32 qui produit un nombre entre 0 et 32 (32 exclues). Le moyen simple de produire un tel char serait:
const chaîne charbon = "0123456789"; retour charbon[Getrandom32() % dix]] Laisser’S Voir comment les caractères sont générés:
- “4” est renvoyé si getrandom32 () renvoie 4, 14 ou 24 (3 valeurs possibles)
- “5” est renvoyé si getrandom32 () renvoie 5, 15 ou 25 (3 valeurs possibles)
- Mais “1” est retourné si getrandom32 () renvoie 1, 11, 21 et 31 (4 valeurs possibles!)
La distribution est donnée ci-dessous:
Il y a donc un biais avec cette méthode: comme on peut le voir sur les sorties, les chiffres 0 et 1 seront sortis plus fréquemment que les autres. Il est communément appelé le “biais modulo”. Vous devriez vérifier l'excellent guide définitif de “biais modulaire” Et comment l'éviter, par Kudelski Security, pour plus d'informations.
Pour supprimer ceci “biais modulo”, Une méthode courante consiste à éliminer tous les nombres supérieurs ou égaux à 30 (le plus grand multiple de 10 inférieur à 32):
const chaîne charbon = "0123456789"; faire Ugen = Getrandom32(); > alors que (Ugen > = 30)); retour charbon[Ugen % dix]] C'est exactement ce que fait Keepass, bien que le biais dans Keepass serait beaucoup moins significatif que dans l'exemple actuel, car le getrandomuint64 génère des valeurs beaucoup plus grandes que la taille du jeu de caractères de mot de passe.
Nous avons vu comment sélectionner uniformément un caractère dans une gamme donnée de caractères, en supposant que notre source aléatoire est uniforme. Laisser’S Voir maintenant quel type de source convient pour générer des nombres aléatoires cryptographiquement forts.
PRNG cryptographiquement sécurisé
Les nombres générés doivent être aléatoire. Mais qu'est-ce que cela signifie exactement? Un bon PRNG ordinaire passera une série de tests, principalement des tests d'aléatoire statistique tels que.
Un PRNG cryptographiquement sécurisé (CSPRNG) passera également ces tests, mais il a également deux autres exigences:
- Il doit satisfaire le test du prochain bit. Connaissant tous les bits déjà générés par un CSPRNG, il n'y a pas de méthode de temps polynomial qui prédira le bit suivant avec une probabilité plus élevée que 0.5.
- Si, à tout moment, tout l'état du CSPRNG est compromis, il n'y a aucun moyen de récupérer les bits précédemment renvoyés par le CSPRNG.
Ces points sont essentiels pour la génération de mots de passe. Par exemple, si un mot de passe a été compromis pour une raison quelconque, et si un non-CSPRNG a été utilisé pour générer ce mot de passe, un attaquant pourrait alors récupérer l'autre mot de passe généré à l'aide de ce PRNG. La plupart des systèmes d'exploitation fournissent des implémentations CSPRNG: CryptGenrandom sur Windows, ou / dev / aléatoire sur les systèmes d'exploitation de type UNIX.
Certains logiciels préfèrent utiliser leur propre mise en œuvre, souvent ensemencé, entièrement ou partiellement, par le système d'exploitation PRNG. Keepass utilise deux PRNG, basés sur Salsa20 et Chacha20, et un héritage basé sur une variante d'Arcfour. Laisser’s Supposons que les deux premiers PRNG sont cryptographiquement sécurisés: nous avons maintenant tous les éléments pour générer des mots de passe sécurisés aléatoires à partir d'un charset donné.
Kaspersky’S Méthode de génération de mot de passe
Kaspersky Password Manager a un générateur de mots de passe intégré, qui crée un mot de passe à partir d'un “politique”. Les paramètres de la politique sont simples: longueur de mot de passe, lettres majuscules, lettres minuscules, chiffres et un ensemble personnalisé de caractères spéciaux. Tous ces paramètres peuvent être configurés dans l'interface du générateur de mot de passe, comme indiqué ici (c'est le paramètre standard):
Par défaut, KPM génère des mots de passe de 12 caractères avec un charse étendu.
Tromper la fréquence de l'apparence
La procédure de génération est beaucoup plus complexe que la méthode Keepass. KPM choisit d'abord deux flotteurs aléatoires $ r_1 $ et $ r_2 $ entre 0 et 1, et les multiplie avec la longueur du charme de mot de passe pour choisir une valeur dans la table de charme:
charbon = . # Set de caractère à utiliser R1 = aléatoire.aléatoire() R2 = aléatoire.aléatoire() point de point = R1 * R2 * Len(charbon) retour charbon[point de point]] La distribution de $ R_1 \ Times R_2 $ est (grâce à Mathworld):
\ [\ begin p [r_1 r_2 = a] & = & \ int_0 ^ 1 \ int_0 ^ 1 \ delta (xy - a) dy dx \\ & = & \ int_0 ^ 1 \ int_ ^ \ delta (z) \ frac dz dx \\ & = & \ int_0 ^ 1 1 (x \ geq a) \ frac dx \\ & = & \ a \]
La distribution de cette fonction n'est pas uniforme: les positions inférieures ont plus de chances de se produire que des valeurs proches de 1. Une telle méthode est assez déroutante, mais il semble que c'est exactement ce que KPM voulait implémenter.
Comment est créé le charme? Est-il entièrement commandé, comme “abcdefghij…”? Non…
- Pour les trois premiers caractères, Charset est entièrement commandé (presque… nous le verrons plus tard).
- Ensuite, pour les caractères suivants, KPM s'appuie sur la fréquence des lettres: il suppose que les lettres les moins fréquentes (dans une langue) devraient apparaître plus souvent dans le mot de passe généré. La fréquence supposée d'apparition de chaque lettre, telle qu'elle est utilisée dans KPM, est indiquée dans le graphique ci-dessous:
Ensuite, Charset est ordonné en fonction de la fréquence inverse de l'apparence de chaque lettre: q, x, z, w… n, a, e.
Comme des valeurs plus faibles sont plus susceptibles d'apparaître compte tenu de la fonction de distribution, nous pouvons supposer certains caractères comme “q” et “X” sont beaucoup plus susceptibles d'apparaître dans les mots de passe générés par KPM.
Si ces statistiques étaient prises indépendamment pour générer tous les caractères d'un mot de passe, nous pouvions voir souvent plusieurs “q”, “X” ou “z” dans les mots de passe. Cependant, les choses sont plus complexes: les caractères générés sont pris en compte dans le calcul des fréquences d'apparence. Si un “z” est généré, puis la probabilité d'apparence de “z” dans le tableau des fréquences sera fortement augmenté. Une fois le charmét commandé selon ce tableau, “z” sera à la fin de la table et aura beaucoup moins de changements à prendre.
Ces changements affectent également d'autres lettres: après “z” a été choisi, la probabilité de “un”, “e”, “m”, “q”, “s” et “X” a également augmenté. Au contraire, “H” a diminué. Mais après “H” est choisi, sa probabilité d'apparence augmentera alors beaucoup.
Notre hypothèse est que la méthode a été implémentée pour tromper les outils de craquage de mot de passe standard. Les crackers de mot de passe tels que Hashcat ou John the Ripper essaient de se casser en premier probable mot de passe, e.g. Mots de passe générés par les humains. Leur méthode de fissuration de mot de passe repose sur le fait qu'il y a probablement “e” et “un” dans un mot de passe créé par un humain que “X” ou “J”, ou que les bigrams “e” et “il” apparaîtra beaucoup plus souvent que “qx” ou “zr”.
Des techniques dédiées telles que Markov Generator, qui supposent qu'il existe un modèle de Markov caché dans la façon dont les mots de passe sont générés par les humains, peuvent directement briser cette méthode de génération (voir les attaques du dictionnaire rapide sur les mots de passe en utilisant le compromis de l'espace de temps pour plus de détails).
Par conséquent, les mots de passe générés par KPM seront, en moyenne, loin dans la liste des mots de passe candidats testés par ces outils. Si un attaquant essaie de recruter une liste de mots de passe générés par KPM, il attendra probablement assez longtemps jusqu'à ce que le premier soit trouvé. C'est assez intelligent.
Cependant, si un attaquant connu qu'un mot de passe a été généré par KPM, il peut adapter son outil pour prendre en compte le modèle suivi de KPM. Comme ces mots de passe sont, dans un certain sens, biaisés (pour lutter contre les biscuits de mot de passe), ce biais peut être utilisé pour générer les mots de passe les plus probables générés par cet outil et les tester en premier. Une façon simple de le faire pourrait être d'utiliser un générateur de Markov, comme celui fourni par John the Ripper (cette méthode n'a pas été testée).
Nous pouvons conclure que l'algorithme de génération en soi n'est pas si mal: il résistera aux outils standard. Cependant, si un attaquant sait qu'une personne utilise KPM, il pourra briser son mot de passe beaucoup plus facilement qu'un mot de passe entièrement aléatoire. Notre recommandation est cependant de générer des mots de passe aléatoires assez longtemps pour être trop forts pour être brisés par un outil.
Nous avons précédemment vu que KPM avait choisi deux valeurs aléatoires $ r_1 $ et $ r_2 $ pour calculer un index dans la table de charme. Laisser’s Voir maintenant comment ces valeurs sont calculées.
Kpm’s générateur de nombres aléatoires
Ces deux valeurs proviennent directement du KPM PRNG. Cette sortie PRNG flotte uniformément entre 0 et 1, 1 exclu.
Le PRNG utilisé diffère dans le bureau et la version Web:
- La version Web a utilisé les mathématiques.aléatoire() . Cette fonction ne convient pas pour générer des nombres aléatoires sécurisés cryptographiquement (qui comprend l'entropie requise pour générer des mots de passe), comme expliqué dans https: // développeur.mozilla.org / en-us / docs / web / javascript / référence / global_objects / math / aléatoire. Le PRNG sous-jacent utilisé par Chrome, Firefox et Safari pour les mathématiques.Random () est xORSHIFT128+. Il est très rapide, mais ne convient pas pour générer du matériel cryptographique. Les conséquences de la sécurité dans KPM n'ont pas été étudiées, mais nous avons conseillé à Kaspersky de le remplacer par la fenêtre.crypto.getrandomValues (), comme recommandé par la page de documentation de Mozilla mentionnée précédemment.
- La version de bureau a utilisé un PRNG fourni par Boost: le MT19937 Mersenne Twister. Mersenne Twister est très bonne et largement utilisée PRNG, et MT 19937 est le Mersenne Twister le plus populaire. Il est uniformément distribué, a une très longue période et est rapide par rapport à l'autre “bien” Prngs.
Cependant, utilise un Mersenne Twister une bonne idée pour créer des mots de passe? Définitivement pas.
Le problème avec ce générateur est qu'il ne s'agit pas d'un CSPRNG. Connaître quelques-uns de ses ouput (624 dans ce cas) permet de récupérer son état complet et de prédire toutes les valeurs qu'elle générera, ainsi que toutes les valeurs qu'il a déjà générées (voir Berlekamp-Massey ou Algorithmes de roseau)).
Des outils standard comme Randcrack sont disponibles pour casser Python’s Module aléatoire, qui utilise une implémentation très similaire (sinon la même) de MT 19937. Seules des adaptations très mineures devraient être nécessaires pour rompre la mise en œuvre de stimulation.
En pratique, exploiter un tel défaut dans le contexte de Kaspersky’S Le gestionnaire de mot de passe est difficile:
- Les mots de passe sont courts: 12 chars par défaut. Récupération de 624 Mot de mot de passe nécessite de saisir 52 mots de passe.
- La valeur de sortie brute n'est pas connue: la valeur de sortie est la position dans le chargé de chaque lettre du mot de passe. Plus de valeurs pourraient être nécessaires.
- Et nous avons vu que cette position dans le charset est le produit de deux valeurs produites par le PRNG.
Nous ne voyons pas un moyen simple d'attaquer ce PRNG dans le contexte de KPM.
Se dans le Mersenne Twister
Nous avons vu que le PRNG génère uniformément des flotteurs dans [0, 1 [. Le code responsable de son initialisation devrait ressembler:
MT19937::result_type graine = . ; auto mtrand = MST::lier(MST::uniforme_real_distributionflotter>(0,1), MT19937(graine)); D'où vient la graine? La fonction de génération de mots de passe est appelée ceci:
MST::chaîne pwlib::créer un mot de passe(pwdlib::Politique politique, int graine) si (graine == 0) Temps file ft; GetSystemtimeasfileTime(&ft)); graine = ft.dwlowdatetime + ft.dwhighdatetime; > auto mtrand = MST::lier(MST::uniforme_real_distributionflotter>(0,1), MT19937(graine)); retour GeneraterandPassword(politique, mtrand)); > C'est super intéressant pour deux raisons:
- La graine ne fait que 32 bits. Cela signifie qu'il peut être brutcé facilement.
- Une instance du PRNG est créée chaque fois qu'un mot de passe est généré. Cela signifie que le gestionnaire de mots de passe Kaspersky peut générer au plus 2 $ de mots de passe pour un stand donné.
GetSystemtimeasFileTime n'est utilisé comme graine que si une graine n'est pas fournie à la méthode GeneratePassword. Comment s'appelle cette méthode lorsqu'un utilisateur demande un nouveau mot de passe? La réponse est:
MST::chaîne pwlib::créer un mot de passe(pwdlib::Politique politique) retour créer un mot de passe(politique, temps(0)); > Ainsi, la graine utilisée pour générer chaque mot de passe est le temps du système actuel, en quelques secondes. Cela signifie que chaque instance du gestionnaire de mot de passe Kaspersky dans le monde générera exactement le même mot de passe à une seconde donnée. Cela serait évident à repérer si chaque clic sur le “Générer” Le bouton, dans l'interface du générateur de mots de passe, a produit le même mot de passe. Cependant, pour une raison quelconque, la génération de mots de passe est animée: des dizaines de caractères aléatoires sont affichés tandis que le véritable mot de passe a déjà été calculé:
Cette animation prend plus de 1 seconde, il n'est donc pas possible de cliquer plusieurs fois sur le “Générer” bouton dans une seconde. C'est certainement pourquoi la faiblesse n'avait pas été découverte auparavant.
Les conséquences sont évidemment mauvaises: Chaque mot de passe peut être bruté. Par exemple, il y a 315619200 secondes entre 2010 et 2021, afin que KPM puisse générer au plus 315619200 mots de passe pour un marbre donné. Lesforcers les prennent quelques minutes.
Il est assez courant que les sites Web ou les forums affichent le temps de création des comptes. Connaissant la date de création d'un compte, un attaquant peut essayer de brutter le mot de passe du compte avec une petite gamme de mots de passe (~ 100) et y avoir accès.
De plus, les mots de passe des bases de données divulguées contenant des mots de passe hachés, des mots de passe pour les archives cryptées, des volumes TrueCrypt / Veracrypt, etc. Peut également être facilement récupéré s'ils avaient été générés à l'aide de Kaspersky Password Manager.
Une source d'entropie inattendue: Lire hors limites
Nous avons écrit une preuve de concept pour nous assurer que nous ne manquons pas quelque chose. Il génère une liste de 1000 mots de passe possibles à partir de l'heure actuelle. Pour tester le POC:
Compiler le POC fourni (PWLIB.cpp). Le fichier doit être compilé avec Visual C ++ (les valeurs flottantes dans le code source n'ont pas exactement les mêmes valeurs lorsqu'elles sont compilées avec Clang ou GCC). J'ai utilisé Visual C ++ 2017 pour mes tests. En utilisant une commande invite pour les bits visuels C ++ 32, entrez:
CMake -BBuild -H. msbuild build \ pwbrute.vcxproj Débogage \ pwbrute.exe> passer.SMS - Minuscules uniquement
- 12 caractères
Il n'est pas complètement fonctionnel, mais nous a permis de découvrir un bug dans le processus de génération de mots de passe, dans la fonction qui calcule la probabilité d'apparence d'une lettre donnée connaissant les caractères générés précédemment. Voici le code pseudo pour la méthode GetContextProbabilities:
const flotter *GetContextProbabilities(const MST::chaîne &mot de passe) MST::chaîne LowerCasepassword; // Convertir en minuscules, ne gardez que les minuscules pour (carboniser c : mot de passe) si (est plus bas(c)) LowerCasepassword += c; > autre si (isupper(c)) LowerCasepassword += carboniser(c - 'UN' + 'un')); > > . int n = 0; pour (int je = LowerCasepassword.longueur() - 1; je > = 0; je--) int indice = mot de passe[je]] - 'un'; // FixMe: remplacer par LowerCasepassword Le mot de passe construit est converti en minuscules. Les non-lettres sont supprimées. Ensuite, il y a une itération sur le mot de passe au lieu du mot de passe minuscule. Cela conduit à un mauvais calcul de la variable d'index (la position d'une lettre dans l'alphabet). Cet index est utilisé pour récupérer un élément d'un tableau. Cela conduit à une lecture hors limites de ce tableau.
La fréquence des apparences est ensuite calculée à partir de données non initialisées ou arbitraires dans certains cas. Bien que l'algorithme soit mauvais, il rend les mots de passe plus difficiles à bruter dans certains cas.
Le POC attaqué génère des candidats pour les mots de passe minuscules uniquement pour que l'index soit toujours correctement calculé (sinon le POC doit être adapté).
Remédiation
Kaspersky a attribué le CVE-2020-27020 à cette vulnérabilité et a publié un avis de sécurité sur leur page Web: https: //.Kaspersky.com / général / vulnérabilité.aspx?El = 12430 # 270421.
Toutes les versions antérieures sont affectées:
- Gestionnaire de mot de passe Kaspersky pour Windows 9.0.2 Patch F
- Manager de mot de passe Kaspersky pour Android 9.2.14.872
- Manager de mot de passe Kaspersky pour iOS 9.2.14.31
Sur Windows, le Mersenne Twister PRNG a été remplacé par la fonction BcryptGenrandom:
flotter Aléatoire(Bcrypt_alg_handle *halgorithme) uint32_t l; Bcryptgenrandom(*halgorithme, (uint8_t *)&l, taille de(l), 0)); retour (flotter)l * (1.0F / / 0x100000000)); > La valeur de retour de cette fonction n'a pas été vérifiée dans les versions bêta fournies par Kaspersky, mais nous supposons que cela a été corrigé maintenant.
Mathématiques.Random () dans la version Web a été remplacé par la fenêtre sécurisée.crypto.Méthode getrandomvalues ().
Les versions Android et iOS ont également été corrigées, mais nous n'avons pas examiné les correctifs.
Conclusion
Kaspersky Password Manager a utilisé une méthode complexe pour générer ses mots de passe. Cette méthode visait à créer des mots de passe difficiles à casser pour les crackers de mot de passe standard. Cependant, une telle méthode réduit la force des mots de passe générés par rapport aux outils dédiés. Nous avons montré comment générer des mots de passe sécurisés en prenant Keepass comme exemple: des méthodes simples comme les tirages aléatoires sont sécurisées, dès que vous vous débarrassez de la “biais modulo” Tout en jetant un coup d'œil à une gamme de caractères donnés.
Nous avons également étudié le Kaspersky’s prng, et a montré que c'était très faible. Sa structure interne, un Mersenne Twister tiré de la bibliothèque Boost, n'est pas adapté pour générer du matériel cryptographique. Mais le défaut majeur est que ce PRNG a été ensemencé avec l'heure actuelle, en quelques secondes. Cela signifie que chaque mot de passe généré par les versions vulnérables de KPM peut être brutée en quelques minutes (ou dans une seconde si vous connaissez environ le temps de génération).
Enfin, nous avons fourni une preuve de concept qui détaille la méthode de génération complète utilisée par KPM. Il peut être utilisé pour vérifier que la faille est en effet présente dans les versions Windows de Kaspersky Password Manager < 9.0.2 Patch F. Incidentally, writing this PoC allowed us to spot an out of bounds read during the computation of the frequency of appearance of password chars, which makes passwords a bit stronger that they should have been.
Calendrier
- 15 juin 2019: Rapport et preuve de concept envoyé à Kasperky via Hackerone.
- 17 juin 2019: Kaspersky reconnaît qu'il a reçu le rapport.
- 25 juin 2019: Kaspersky confirme la vulnérabilité.
- 4 octobre 2019: Kaspersky envoie une construction de fenêtres privées afin que nous puissions vérifier que les bogues ont été corrigés et nous informer qu'ils déploieront une solution pour gérer les mots de passe précédemment générés avant la fin de l'année.
- 8 octobre 2019: Nous confirmons que les vulnérabilités ont été corrigées, mais nous avons signalé un nouveau petit défaut dans le correctif.
- 10 octobre 2019: Kaspersky Password Manager pour Windows 9.0.2 Patch D est libéré, fixant les vulnérabilités, mais sans le correctif pour le défaut signalé. La version Web est également mise à jour.
- 9 octobre 2019: Kaspersky Password Manager pour Android version 9.2.14.872 avec le correctif est publié.
- 10 octobre 2019: Kaspersky Password Manager pour iOS version 9.2.14.31 avec le correctif est libéré.
- 10 décembre 2019: Kaspersky Password Manager pour Windows 9.0.2 Patch F est libéré fermant le défaut du patch D.
- 9 avril 2020: Kaspersky nous informe qu'ils publieront un patch en octobre pour gérer les mots de passe précédemment générés.
- 13 octobre 2020: Kaspersky Password Manager 9.0.2 Patch M est publié, avec une notification aux utilisateurs pour les informer, un mot de passe doit être régénéré. Kaspersky nous informe que la même notification sera également présente dans les versions mobiles au cours du premier trimestre de 2021. Le CVE-2020-27020 a également été réservé.
- 28 décembre 2020: Kaspersky convient qu'un rapport sur la vulnérabilité peut être divulgué après la publication du CVE.
- 27 avril 2021: Kaspersky Security Advisory est publié.
- 14 mai 2021: Les informations du CVE-2020-27020 sont publiées.

Jean-Baptiste Bédrune
Chef de la recherche en matière de sécurité
Kaspersky a-t-il un générateur de mots de passe?
La sécurité de vos données dépend en grande partie de la force de votre mot de passe. Un mot de passe est considéré comme fort s'il contient au moins 16 caractères, notamment des lettres latines, des chiffres et des caractères spéciaux en majuscules et en minuscules. Kaspersky Password Manager génère des mots de passe uniques et solides. Vous pouvez spécifier la longueur du mot de passe et choisir si vous devez inclure des chiffres, des lettres et des caractères spéciaux. Vous pouvez utiliser un générateur de mots de passe lorsque vous créez un nouveau compte de site Web ou modifiez votre mot de passe pour un compte existant.
- Ouvrez la fenêtre du générateur de mot de passe de l'une des manières suivantes:
- Dans la fenêtre d'application principale, cliquez sur Générateur de mots de passe .
- Dans une fenêtre de navigateur, cliquez sur l'icône de l'application
→ L'icône du générateur de mots de passe
. - Dans un champ de mot de passe sur un site Web, survolez le champ ou cliquez sur l'icône clé
Pour invoquer la fenêtre du générateur de mots de passe.
La fenêtre du générateur de mot de passe s'ouvre et l'application génère un mot de passe en utilisant les paramètres par défaut.
.L'application copie le mot de passe généré au presse-papiers. Vous pouvez coller manuellement le mot de passe dans le champ requis. Si vous utilisez un générateur de mots de passe pour créer un nouveau compte de site Web ou modifier votre mot de passe pour un compte existant, l'application colle automatiquement le mot de passe dans le champ requis.
Vous pouvez également générer un mot de passe fort et unique tout en ajoutant un nouveau site Web, une nouvelle application ou autre .

- Dans la fenêtre principale de l'application, cliquez sur Ajouter, cliquez sur Compte et choisissez le site Web, l'application ou autre . La fenêtre d'entrée s'ouvre.
- Dans le champ Mot de passe, cliquez sur Générer . La fenêtre du générateur de mot de passe s'ouvre et l'application génère un mot de passe en utilisant les paramètres par défaut.
- Spécifiez les paramètres de génération de mot de passe si nécessaire.
- Cliquez sur . L'application colle automatiquement le mot de passe dans le champ requis.
Le gestionnaire de mot de passe Kaspersky enregistre les 5 derniers mots de passe générés copiés dans le presse-papiers, au cas où vous les perdriez. Vous pouvez afficher vos mots de passe copiés dans l'historique du générateur de mots de passe. Les magasins d'applications ont copié les mots de passe sur votre ordinateur et ne les synchronisent pas sur les appareils.
Si votre saut est déverrouillé, le générateur de mots de passe est disponible.
![]()
- Ouvrez la fenêtre du générateur de mots de passe.
- Cliquez sur l'onglet Historique du mot de passe. Une liste de vos mots de passe les plus récemment copiés s'ouvre.
- Si vous souhaitez copier un mot de passe dans le presse-papiers, cliquez sur le bouton Copier à côté du mot de passe. Le mot de passe est copié dans le presse-papiers.
- Si vous souhaitez effacer l'historique du générateur de mots de passe, cliquez sur Term . Vos mots de passe copiés sont supprimés de l'histoire.
Kaspersky a-t-il un générateur de mots de passe?
La sécurité de vos données dépend en grande partie de la force de votre mot de passe. Un mot de passe est considéré comme fort s'il contient au moins huit caractères, y compris les lettres latines, les chiffres et les caractères spéciaux en majuscules et en minuscules. Kaspersky Password Manager génère des mots de passe uniques et solides. Vous pouvez spécifier la longueur du mot de passe et choisir si vous devez inclure des chiffres et des caractères spéciaux. Vous pouvez utiliser un générateur de mots de passe lorsque vous créez un nouveau compte de site Web ou modifiez votre mot de passe pour un compte existant.
- Déverrouiller le coffre-fort en entrant le mot de passe principal et en tapant le déverrouillage . Si votre appareil prend en charge l'identification de l'identification / le visage Touch / Face et l'identifiant de touche / id de face est activé dans les paramètres de l'application, vous pouvez l'utiliser pour déverrouiller votre coffre-fort au lieu de saisir le mot de passe principal.
- Sur la barre d'onglet inférieure, appuyez sur Profil . Sur les iPads, la barre d'accès rapide est toujours affichée dans la partie gauche de l'écran.
- Sur la barre d'accès rapide, appuyez sur Générateur de mots de passe . La fenêtre du générateur de mot de passe s'ouvre et l'application génère un mot de passe en utilisant les paramètres par défaut.
- Modifiez les paramètres du mot de passe si nécessaire:
- Appuyez sur la longueur du mot de passe pour spécifier le nombre de caractères à utiliser lors de la génération de mots de passe.
- Allumez / désactivez les lettres majuscules (A - Z) pour utiliser / ne pas utiliser les lettres majuscules pendant la génération de mots de passe. Par défaut, cet interrupteur à bascule est activé.
- Allumez / désactivez les lettres minuscules (A - Z) pour utiliser / ne pas utiliser les lettres minuscules pendant la génération de mots de passe. Par défaut, cet interrupteur à bascule est activé.
- Activer / désactiver les chiffres (0–9) pour utiliser / ne pas utiliser des chiffres pendant la génération de mots de passe. Par défaut, cet interrupteur à bascule est activé.
- Allumez / désactivez les caractères spéciaux pour utiliser / ne pas utiliser des caractères spéciaux pendant la génération de mots de passe. Par défaut, cet interrupteur à bascule est activé. Vous pouvez ajouter ou supprimer des caractères spéciaux utilisés pendant la génération de mots de passe dans le champ sous le commutateur à bascule.
Pour votre commodité, nous avons exclu les symboles similaires suivants de la génération de mots de passe: 0 (zéro), O (Capital O), I (Capital I) et L (Small L).

L'application génère automatiquement un nouveau mot de passe lorsque les paramètres sont modifiés. Si la force du mot de passe généré est moyenne ou faible, le gestionnaire de mot de passe Kaspersky vous avise sous le mot de passe. Appuyez à nouveau pour générer un mot de passe en utilisant les paramètres sélectionnés.
L'application copie le mot de passe généré pour le presse-papiers. Vous pouvez coller manuellement le mot de passe dans le champ requis. Lorsque vous fermez la fenêtre du générateur de mots de passe, l'application enregistre les paramètres de mot de passe sélectionnés jusqu'à ce que le coffre-fort soit déverrouillé.
Pour générer rapidement des mots de passe et les copier dans le presse-papiers, vous pouvez également utiliser le widget de mots de passe sur l'écran d'accueil de votre appareil. Trouvez plus d'informations sur l'ajout de widgets sur le site Web d'assistance Apple.
Gestionnaire de mots de passe
Kaspersky Password Manager est un outil indispensable pour l'internet actif. Il automatise entièrement le processus de saisie de mots de passe et d'autres données dans les sites Web et enregistre l'utilisateur à la peine de créer et de se souvenir de plusieurs mots de passe.
Lorsque vous utilisez Kaspersky Password Manager pour vous connecter, vous pouvez être assuré que vos données sont sûres. Le logiciel crée des mots de passe exceptionnellement forts et empêche le vol de vos informations de connexion. Toutes les données confidentielles sont cryptées et conservées dans une base de données dédiée sur votre ordinateur.
Kaspersky Password Manager rend votre expérience Web plus sûre, plus rapide et plus pratique.
Dernières versions

Avantages
Vous permet d'accéder aux sites Web et aux applications en un seul clic de la souris
Stocke vos mots de passe dans une base de données cryptée sur votre ordinateur crée un mot de passe solide et unique pour chaque compte
Comprend une version mobile qui peut être chargée à partir d'un lecteur flash et exécuter sur un autre ordinateur
Remplit les formes longues pour vous automatiquement
Principales caractéristiques
- Connexion en un seul clic de la souris
Kaspersky Motway Manager se souvient de vos noms d'utilisateur et de leurs mots de passe associés afin que lorsque vous revenez sur un site, il fournira automatiquement vos données de connexion. Kaspersky Password Manager travaille également avec des applications qui nécessitent une authentification. - Protection fiable pour vos mots de passe
Kaspersky Motway Manager stocke en toute sécurité vos mots de passe et vos données personnelles dans une base de données cryptée dédiée sur votre ordinateur. Les mots de passe stockés ne peuvent être déchiffrés que par l'utilisation d'un mot de passe maître ou d'une autre méthode d'authentification définie par l'utilisateur. Cela garantit que vos mots de passe sont sécurisés et empêche les criminels de les voler. - Prend en charge diverses méthodes d'authentification
Kaspersky Password Manager vous aide à contrôler l'accès à votre base de données de mot de passe avec un mot de passe maître ou en utilisant un périphérique USB ou Bluetooth. Vous pouvez même utiliser votre téléphone mobile: vos mots de passe peuvent être configurés afin qu'ils ne soient disponibles que lorsque votre téléphone mobile est connecté à votre ordinateur via Bluetooth. Si vous quittez votre ordinateur et emmenez votre téléphone avec vous, la base de données se verrouille automatiquement. - Génération de mots de passe forts
La sécurité de vos données dépend directement de la force de vos mots de passe. Les utilisateurs ont souvent des mots de passe similaires ou identiques pour plusieurs comptes. En craquant un seul mot de passe, un cybercriminal peut facilement accéder à de nombreux comptes. Le générateur de mots de passe intégré dans le gestionnaire de mots de passe Kaspersky créera des mots de passe solides pour vous qui sont extrêmement difficiles à casser. - Importer des mots de passe à partir d'autres systèmes d'exploitation et applications
Avec Internet Explorer ou Mozilla Firefox, les mots de passe sont stockés dans un format non protégé et peuvent facilement être accessibles par les cybercriminels. Kaspersky Password Manager vous aide à localiser ces mots de passe non protégés et à les importer dans la base de données de mot de passe cryptée. - Version mobile
Gestionnaire de mot de passe Kaspersky’S La version mobile donne accès à vos mots de passe tout en travaillant sur n'importe quel ordinateur, sans avoir à installer une chose. La version mobile peut être lancée à partir de différents types d'appareils mobiles, y compris des lecteurs flash. Si l'appareil est ensuite supprimé, Kaspersky Password Manager verrouille automatiquement la base de données de mot de passe et supprime toute trace des données de votre mot de passe de la machine hôte. - Remplit automatiquement les formulaires longs
Les formulaires de site Web nécessitent souvent la saisie d'informations personnelles en plus de celles du nom d'utilisateur et du mot de passe. Ces données supplémentaires peuvent inclure: votre nom complet, la date de naissance, le sexe, l'adresse e-mail, le numéro de téléphone, le pays de résidence, etc. Kaspersky Password Manager peut automatiquement remplir ce type de formulaires pour vous, en utilisant des informations que vous fournissez au préalable. Plusieurs cartes d'identité peuvent être utilisées pour stocker séparément les informations liées aux entreprises et personnelles. - Plusieurs noms d'utilisateur pour un seul fournisseur de compte
Parfois, plusieurs mots de passe doivent être stockés pour un seul site Web. Par exemple, vous pouvez avoir plusieurs boîtes aux lettres, chacune avec un objectif différent, enregistré avec un seul fournisseur de services de messagerie. Kaspersky Password Manager peut stocker plusieurs noms d'utilisateur pour un seul fournisseur et vérifier celui que vous souhaitez utiliser lorsque vous vous connectez. - Sauvegarde automatique
Kaspersky Password Manager crée automatiquement une copie de sauvegarde de votre base de données de mot de passe sur votre ordinateur à chaque fois qu'il est modifié. Vous pouvez facilement restaurer vos mots de passe si la base de données actuelle est accidentellement endommagée, ou si vous souhaitez revenir à une version précédente. - Protection efficace contre les keyloggers
Un Keylogger est un programme malveillant qui suit les touches sur la victime’S ordinateur pour capturer illégalement l'utilisateur’s données personnelles, telles que les mots de passe. Kaspersky Motway Manager entre les mots de passe sans utiliser le clavier et protège donc efficacement vos données personnelles des keyloggers. - Protection contre les attaques de phishing
Le phishing est un type d'activité hostile par laquelle un cybercriminal invite l'utilisateur à visiter un site Web afin de inciter l'utilisateur à divulguer les informations de son compte. Le faux site semble identique au site d'origine et un utilisateur involontaire fournit par conséquent ses données personnelles. Kaspersky Motway Manager contrecarre efficacement les attaques de phishing en vérifiant si l'URL est authentique et si votre logiciel est à jour.
Configuration requise
Veuillez noter que nous n'offrons pas de prise en charge des versions bêta ou des aperçus de nouveaux systèmes d'exploitation E.g. Windows 8.1 aperçu. Seules les versions officielles finales seront soutenues.
- Microsoft Windows XP Home Edition
- Microsoft Windows XP Professional
- Microsoft Windows XP Professional X64 Edition
- Microsoft Windows Vista Home Basic (32/64 bits)
- Microsoft Windows Vista Home Premium (32/64 bits)
- Microsoft Windows Vista Business (32/64 bits)
- Microsoft Windows Vista Enterprise (32/64 bits)
- Microsoft Windows Vista Ultimate (32/64 bits)
- Microsoft Windows 7 Home Premium (32/64 bits)
- Microsoft Windows 7 Professional (32/64 bits)
- Microsoft Windows 7 Ultimate (32/64 bits)
- Windows 8 (bit 32/64)
- Windows 8 Pro (bit 32/64)
- Windows 8 Enterprise (32/64 bits)
- Au moins 512 Mo de la RAM disponible
10 Mo d'espace libre sur le disque dur
souris d'ordinateur
- Microsoft Internet Explorer 6.0 - 10.0
- Mozilla Firefox 2.x - 25.X
- Google Chrome 6.0 - 30.0
- Maxthon 2.5.X
- Troupeau 2.х
- Seamonke 2.0.8 - 2.22
- Yandex 1.5
Kaspersky Password Manager a généré de mauvais mots de passe
Le générateur de nombres aléatoires du gestionnaire de mot de passe Kaspersky n'était pas assez aléatoire. Voici pourquoi.

Écrit par Adam Rowe
Publié le 7 juillet 2021

Vous pourriez être pardonné de supposer qu'un mot de passe généré de manière aléatoire a été généré au hasard. Cela n'a pas exactement été le cas pour Kaspersky Password Manager depuis un peu moins de deux ans.
Le gestionnaire de mots de passe de la société de cybersécurité avait utilisé un générateur automatique intégré avec un défaut particulièrement flagrant. Ils l'ont corrigé, mais tous les utilisateurs du gestionnaire de mots de passe de Kaspersky devraient modifier leurs mots de passe précédemment générés dès que possible.
Voici ce qui n'a pas fonctionné.
La faille
Le générateur de mots de passe s'efforce de créer des mots de passe en suivant un ensemble “politique,” avec des paramètres qui incluent la longueur du mot de passe, les lettres majuscules, les lettres minuscules, les chiffres et un ensemble personnalisé de caractères spéciaux. Ils peuvent être personnalisés, mais la stratégie par défaut est un mot de passe à 12 caractères.

Utilisez-vous déjà un gestionnaire de mots de passe?

Donc quel est le problème? Eh bien, tout générateur de nombres aléatoires a besoin d'une ou plusieurs sources d'entropie - l'élément d'incertitude qui garantit que le résultat reste aléatoire. Mais la graine que Kaspersky commençait était le temps actuel du système actuel, en quelques secondes. Oui, le temps, l'une des mesures les plus prévisibles et non aléatoires.
Voici comment Ledger Donjon, responsable de la recherche sur la sécurité à Jean-Baptiste Bédrune, l'a expliqué dans un article de blog:
“Ainsi, la graine utilisée pour générer chaque mot de passe est le temps du système actuel, en quelques secondes. Cela signifie que chaque instance du gestionnaire de mot de passe Kaspersky dans le monde générera exactement le même mot de passe à une seconde donnée. Cela serait évident à repérer si chaque clic sur le ‘Générer le bouton, dans l'interface du générateur de mots de passe, a produit le même mot de passe.”
La raison pour laquelle les gens n'ont pas remarqué que chaque mot de passe généré dans la même seconde était exactement le même que l'interface a une animation d'une seconde qu'elle joue, garantissant que personne ne peut générer deux mots de passe dans la même seconde.
Mais c'est un gros défaut. Tout pirate qui connaît l'astuce peut forcer brute tout mot de passe: le nombre de secondes dans la journée est fini, et un pirate peut passer par les 315 619 200 mots de passe liés aux secondes de la décennie entre 2010 et 2021 en quelques minutes seulement quelques minutes.
Et, si un compte en ligne affiche publiquement la date à laquelle il a été créé, un pirate devra exécuter encore moins de mots de passe potentiels avant de casser un mot de passe Kaspersky.
Les mots de passe sécurisés sont essentiels
Kaspersky a été alerté du problème et a déployé un correctif. Mais chaque mot de passe qui a déjà été généré par une version vulnérable du logiciel est toujours facilement fissable - un peu un cauchemar pour tous ceux qui utilisent le service spécifiquement pour s'assurer que leurs mots de passe ne peuvent pas être fissurés.
Si vous utilisez le gestionnaire de mots de passe de Kaspersky, modifiez vos mots de passe maintenant. Et si vous êtes sur le marché pour un gestionnaire de mots de passe qui maintiendra votre activité en ligne privée, nous avons examiné toutes les principales options en profondeur ici - aucune d'entre elles n'a eu des problèmes à lier leurs générateurs de nombres aléatoires à un algorithme facilement fissuré.
