Een intussen verholpen designprobleem in de wachtwoordmanager van Kaspersky genereerde wachtwoorden op basis van de actuele tijd, waardoor ze eenvoudig te kraken waren.
Kaspersky ronde vorig jaar een update uit voor zijn wachtwoordmanager waarin gebruikers gevraagd werd om bepaalde wachtwoorden te updaten. Een beveiligingsonderzoeker ontdekte nu de oorzaak van dat probleem: de software genereerde de wachtwoorden niet op een willekeurige manier, waardoor ze eenvoudig te kraken waren.
Willekeurig
Om een veilig wachtwoord te genereren, moet een wachtwoordmanager willekeurigheid introduceren. Dat is niet eenvoudig, aangezien een computer per definitie op een logische en voorspelbare manier werkt. Ontwikkelaars kunnen willekeurigheid op tal van manieren introduceren en hoewel de meeste implementaties in theorie niet honderd procent random zijn, komen ze in de praktijk dicht genoeg.
Niet zo in het geval van de wachtwoordmanager van Kaspersky. Die gebruikte tussen 2019 en het einde van 2020 maar één ‘willekeurige’ input om een wachtwoord te genereren: de actuele tijd op het moment dat een gebruiker op de knop drukt, tot op slechts één seconde nauwkeurig. Met andere woorden: twee mensen die op 5 maart 2019 om 12u15 en 10 seconden een wachtwoord aanmaakten, kregen hetzelfde resultaat toegewezen.
In minuten gekraakt
Dat is nefast voor de veiligheid. en vooral kan een hacker aan de hand van een tijdstip achterhalen welk wachtwoord eraan gekoppeld is. Omdat Kaspersky genoegen nam met een nauwkeurigheid van een enkele seconde, kon de software per jaar maar 31.536.000 verschillende wachtwoorden genereren. Dat lijkt misschien veel, maar is het niet. Een moderne computer heeft amper enkele minuten nodig om alle combinaties uit te proberen in een brute force-aanval.
Erger wordt het wanneer je weet dat een hacker in veel gevallen kan achterhalen wanneer iemand een account heeft aangemaakt. In dat geval daalt het aantal mogelijke combinaties drastisch, en duurt het slechts seconden om een wachtwoord te kraken.
Die realiteit is niet nieuw. Het is onbegrijpelijk dat de ingenieurs van Kaspersky dachten dat het tijdstip een waardig alternatief is voor een echte random number-generator. De kwetsbaarheid stond dan ook in de sterren geschreven. Gelukkig heeft het beveiligingsbedrijf het probleem intussen verholpen. In oktober 2020 publiceerde Kaspersky de laatste patch en in april van dit jaar kreeg het probleem uiteindelijk nog een eigen CVE-noemer: CVE-2020-27020.