Password managers have a feature that generates random passwords to make it easier for users to create strong, unique passwords for all of their accounts. Unfortunately for users of the Kaspersky Password Manager, that feature was making it very easy for hackers to brute force those passwords.
The problem was resolved by Kaspersky in October 2019 with a Kaspersky Password Manager update and users were sent an alert telling them that they should regenerate their passwords. The reason for the update and alert is now clear.
Jean-Baptiste Bédrune of the French cybersecurity firm Ledger Donjon has published a technical write-up about several security flaws he discovered in the Kaspersky Password Manager, with one of the most serious in the pseudo random number generator used by the solution.
Kaspersky used a complex process to generate passwords, which was intended to make it difficult for hackers to guess passwords; however, the method used actually made it easier. Much easier.
To make it harder to guess the randomly generated passwords, Kaspersky made certainly commonly used letters appear less frequently and less frequently used letters appear more often, as well as increasing infrequently used letter combinations. When an attempt is made to crack a password, it would likely take much longer due to these atypical letter combinations. While this is a good idea, it does mean that if it can be determined that an individual is using Kaspersky Password Manager, it would be possible to deduce the bias and crack passwords more quickly.
The main issue with the suggested passwords is the single source of entropy used. Kaspersky used the current time to the second as the seed in a Mersenne Twister pseudorandom number generator. The problem with this approach is a password generated anywhere in the world by a user of the Kaspersky Password Manager would be the same as the password of all other users who generated a password that same second.
“There are 315,619,200 seconds between 2010 and 2021, so KPM could generate at most 315,619,200 passwords for a given charset. Brute forcing them takes a few minutes,” said Bédrune. He also explained that sites often show the time that an account is created and, if the time is known, brute forcing passwords would be even easier. If the time of account creation is known, there would only be around 100 possible passwords.
Kaspersky published a security advisory about the issue on April 27, 2021 and, after waiting a few months for users to update the Kaspersky Password Manager, Bédrune published his report.