Czy Kaspersky ma generator haseł?
Budowane hasło jest konwertowane na małe litery. Nieplezyjne są usuwane. Następnie jest iteracja hasło Zamiast właśnie utworzono małe hasło. Prowadzi to do niewłaściwego obliczenia zmiennej indeksu (pozycja litery w alfabecie). Ten indeks służy do pobrania elementu tablicy. To prowadzi do odczytania tej tablicy.
Kaspersky Password Manager: Wszystkie Twoje hasła należą do nas
Generator haseł zawarty w Kaspersky Password Manager miał kilka problemów. Najbardziej krytyczne jest to, że używał PRNG, który nie jest odpowiedni do celów kryptograficznych. Jego pojedynczym źródłem entropii był aktualny czas. Wszystkie utworzone hasła mogą być brutalne w ciągu kilku sekund. W tym artykule wyjaśniono, jak bezpiecznie generować hasła, dlaczego Kaspersky Password Manager nie powiódł się i jak wykorzystać tę wadę. Zapewnia również dowód koncepcji, aby sprawdzić, czy Twoja wersja jest wrażliwa.
Produkt został zaktualizowany, a jego najnowsze wersje istnieją’t, dotknięty tym problemem.
Wstęp
Dwa lata temu spojrzeliśmy na Kaspersky Password Manager (KPM), menedżer haseł opracowany przez Kaspersky. Kaspersky Password Manager to produkt, który bezpiecznie przechowuje hasła i dokumenty w zaszyfrowanym sklepieniu, chronionym hasłem. Ten sklepienie jest chronione hasłem głównym, więc podobnie jak w przypadku innych menedżerów haseł, użytkownicy muszą zapamiętać jedno hasło, aby używać i zarządzać wszystkimi hasłami. Produkt jest dostępny dla różnych systemów operacyjnych (Windows, MacOS, Android, iOS, Web…) Dane zaszyfrowane można następnie automatycznie zsynchronizować między wszystkimi urządzeniami, zawsze chronione przez hasło główne.
Główną funkcją KPM jest zarządzanie hasłem. Jednym z kluczowych punktów dla menedżerów haseł jest to, że w przeciwieństwie do ludzi, te narzędzia są dobre do generowania przypadkowych, silnych haseł. Aby wygenerować bezpieczne hasła, Kaspersky Password Manager musi polegać na bezpiecznym mechanizmie generowania haseł. Najpierw zobaczymy przykład dobrej metody generowania hasła, aby wyjaśnić, dlaczego metoda używana przez Kaspersky była wadliwa i jak ją wykorzystaliśmy. Jak zobaczymy, hasła wygenerowane przez to narzędzie mogą być brutalne w ciągu sekund.
Po nieco mniej niż dwóch latach ta podatność ta została łatwa we wszystkich wersjach KPM. Podatność przypisano CVE-2020-27020.
Generowanie solidnych haseł z koloru
Ze względu na prostotę, niech’S BADANIE, w jaki sposób hasła są generowane w Keepass, projekcie open source. Generowanie hasła jest zaimplementowane w różnych klasach w Keepasslib.Kryptografia.Przestrzeń nazwy hasłaGeneratora. Keepass zapewnia 3 metody generowania hasła: metoda generowania opartego na schematach, oparta na wzorach i niestandardowa generowanie.
Prostszą metodą jest generator bazy charset, który tworzy hasło z danego znaku koloru. Zobaczmy, jak to działa. Oto główna pętla odpowiedzialna za generowanie hasła:
Pwcharset pcs = nowy PWCarset (PWProfile.Znak.ToString ());
Jeśli(!PWGenerator.PrepaReCharset (PCS, PWPlofile))
zwróć pwgerror.InvalidCarset;
Char [] v = nowy Char [PWPlofile.Długość];
próbować
{
dla (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);
}
}
Metoda generateCharacter jest wywoływana w celu wygenerowania każdego znaku z hasła. Wymaga charakterystycznych i losowych źródeł i wysyła losowy znak z koloru. Jego wdrożenie jest dość proste:
Wewnętrzne statyczne Char GenerateCharacter (PWCharset PWCarset, CryptorandomStream Crsrandomsource)
{
uint cc = pwCarset.Rozmiar;
if (cc == 0)
zwróć char.MinValue;
uint i = (uint) crsrandomsource.GetRandomuint64 (CC);
zwróć pwCarset [i];
}
1. Jak uległo awarii generator haseł Kaspersky Manager?
Generator haseł w Kaspersky Password Manager nie powiódł się, ponieważ używał PRNG (pseudo-lampy generator numerów), który nie był odpowiedni do celów kryptograficznych. Opierał się wyłącznie na bieżącym czasie jako źródło entropii, co ułatwia brutalną wymuszenie wygenerowanych haseł.
2. Dlaczego ważne jest generowanie bezpiecznych haseł?
Generowanie bezpiecznych haseł jest ważne, ponieważ słabe hasła są łatwe do zgadywania i mogą być narażone przez atakujących. Silne, losowe hasła zapewniają lepsze bezpieczeństwo kont internetowych i pomagają chronić poufne informacje przed nieautoryzowanym dostępem.
3. Jak wykorzystała wadowa metoda generowania hasła w Kaspersky Manager Manager?
Metoda generowania wadliwych haseł w Kaspersky Manager Manager pozwoliła na łatwą brutalną sformułowanie wygenerowanych haseł z powodu braku odpowiedniego entropii. Korzystając z PRNG opartego wyłącznie na bieżącym czasie, możliwe stało się dokładne przewidywanie i odgadnięcie haseł, powodując, że są podatne na atak.
4. Jaki jest numer CVE przypisany do podatności w Kaspersky Manager?
Podatność na menedżera haseł Kaspersky przypisano numer CVE-2020-27020.
5. Jak generowane są hasła w Keepass?
Hasła są generowane w Keepass przy użyciu różnych metod, w tym generatora opartego na ciekawości. Ta metoda tworzy hasła na podstawie danego charakterystyki, zapewniając, że wygenerowane hasła zawierają mieszankę znaków z określonego zestawu.
6. Jaki jest cel klasy PWCarset w Keepass?
Klasa PWCarset w Keepass służy do definiowania i zarządzania zestawami znaków, które mogą być używane w generowaniu haseł. Umożliwia dostosowywanie i kontrolę nad znakami zawartymi w wygenerowanych hasłach.
7. Jak działa metoda generateCharacter w utrzymywaniu?
Metoda generateCharacter w Keepass wymaga znaku i losowego źródła jako parametry wejściowe i zwraca losowy znak z określonego znaku koloru. Zapewnia, że wygenerowany znak jest losowo wybierany z dostarczonego zestawu znaków.
8. Co się stanie, jeśli zestaw znaków jest pusty w Keepass?
Jeśli zestaw znaków jest pusty w Keepass, metoda generateCharacter zwróci wartość char.MinValue. Wskazuje to, że w określonym złożeniu nie ma żadnych znaków i może spowodować błąd w procesie generowania hasła.
9. W jaki sposób generator haseł w Kaspersky Password Manager obsługiwał znaki inne niż?
Generator haseł w Kaspersky Password Manager przekonwertował hasło zbudowane na małe litery i usunięte znaki inne niż. Proces ten był częścią wadliwej metodologii stosowanej przez generator, co ostatecznie doprowadziło do podatności, która pozwoliła na łatwą brutalną rozwój haseł.
10. Czy podatność na menedżer haseł Kaspersky został załatany?
Tak, podatność na menedżera haseł Kaspersky została załatana we wszystkich wersjach. Na najnowsze wersje produktu nie ma wpływu na ten problem.
Czy Kaspersky ma generator haseł?
Budowane hasło jest konwertowane na małe litery. Nieplezyjne są usuwane. Następnie jest iteracja hasło Zamiast właśnie utworzono małe hasło. Prowadzi to do niewłaściwego obliczenia zmiennej indeksu (pozycja litery w alfabecie). Ten indeks służy do pobrania elementu tablicy. To prowadzi do odczytania tej tablicy.
Kaspersky Password Manager: Wszystkie Twoje hasła należą do nas
Generator haseł zawarty w Kaspersky Password Manager miał kilka problemów. Najbardziej krytyczne jest to, że używał PRNG, który nie jest odpowiedni do celów kryptograficznych. Jego pojedynczym źródłem entropii był aktualny czas. Wszystkie utworzone hasła mogą być brutalne w ciągu kilku sekund. W tym artykule wyjaśniono, jak bezpiecznie generować hasła, dlaczego Kaspersky Password Manager nie powiódł się i jak wykorzystać tę wadę. Zapewnia również dowód koncepcji, aby sprawdzić, czy Twoja wersja jest wrażliwa.
Produkt został zaktualizowany, a jego najnowsze wersje istnieją’t, dotknięty tym problemem.
Wstęp
Dwa lata temu spojrzeliśmy na Kaspersky Password Manager (KPM), menedżer haseł opracowany przez Kaspersky. Kaspersky Password Manager to produkt, który bezpiecznie przechowuje hasła i dokumenty w zaszyfrowanym sklepieniu, chronionym hasłem. Ten sklepienie jest chronione hasłem głównym, więc podobnie jak w przypadku innych menedżerów haseł, użytkownicy muszą zapamiętać jedno hasło, aby używać i zarządzać wszystkimi hasłami. Produkt jest dostępny dla różnych systemów operacyjnych (Windows, MacOS, Android, iOS, Web…) Dane zaszyfrowane można następnie automatycznie zsynchronizować między wszystkimi urządzeniami, zawsze chronione przez hasło główne.
Główną funkcją KPM jest zarządzanie hasłem. Jednym z kluczowych punktów dla menedżerów haseł jest to, że w przeciwieństwie do ludzi, te narzędzia są dobre do generowania przypadkowych, silnych haseł. Aby wygenerować bezpieczne hasła, Kaspersky Password Manager musi polegać na bezpiecznym mechanizmie generowania haseł. Najpierw zobaczymy przykład dobrej metody generowania hasła, aby wyjaśnić, dlaczego metoda używana przez Kaspersky była wadliwa i jak ją wykorzystaliśmy. Jak zobaczymy, hasła wygenerowane przez to narzędzie mogą być brutalne w ciągu sekund.
Po nieco mniej niż dwóch latach ta podatność ta została łatwa we wszystkich wersjach KPM. Podatność przypisano CVE-2020-27020.
Generowanie solidnych haseł z koloru
Ze względu na prostotę, niech’S BADANIE, w jaki sposób hasła są generowane w Keepass, projekcie open source. Generowanie hasła jest zaimplementowane w różnych klasach w Keepasslib.Kryptografia.Przestrzeń nazwy hasłaGeneratora. Keepass zapewnia 3 metody generowania hasła: metoda generowania opartego na schematach, oparta na wzorach i niestandardowa generowanie.
Prostszą metodą jest generator bazy charset, który tworzy hasło z danego znaku koloru. Zobaczmy, jak to działa. Oto główna pętla odpowiedzialna za generowanie hasła:
PWCarset PC = nowy PWCarset(PWProfile.Znak.Toostring()); Jeśli(!PWGenerator.Preparecharset(PC, PWProfile)) powrót Pwgerror.InvalidCarset; zwęglać[] [] v = nowy zwęglać[[[PWProfile.Długość]; próbować Do(int I = 0; I v.Długość; ++I) zwęglać Ch = PWGenerator.GenerateCharacter(PC, crsrandomsource); Jeśli(Ch == zwęglać.MinValue) powrót Pwgerror.Toofewaracters; v[[[I] = Ch; Jeśli(PWProfile.Norepeatinging Characters) PC.Usunąć(Ch); > . >
Metoda generateCharacter jest wywoływana w celu wygenerowania każdego znaku z hasła. Wymaga charakterystycznych i losowych źródeł i wysyła losowy znak z koloru. Jego wdrożenie jest dość proste:
wewnętrzny statyczny zwęglać GenerateCharacter(PWCarset PWCarset, Cryptorandomstream crsrandomsource) Uint CC = PWCarset.Rozmiar; Jeśli(CC == 0) powrót zwęglać.MinValue; Uint I = (Uint)crsrandomsource.GetRandomuint64(CC); powrót PWCarset[[[I]; >
Wreszcie, getRandomuint64 to jednolity generator liczb losowych, który wyświetla wartości między 0 a cc - 1:
wewnętrzny ULONG GetRandomuint64(ULONG UmaxExcl) Jeśli(UmaxExcl == 0) Odpluskwić.Zapewniać(FAŁSZ); rzucić nowy ArgumentoutofrangeException(„UmaxExcl”); > ULONG Ugen, mocz; Do Ugen = GetRandomuint64(); mocz = Ugen % UmaxExcl; > chwila((Ugen - mocz) > (ULONG.Maksymalna wartość - (UmaxExcl - 1UL))); // zapewnia to ostatnią liczbę bloku (i.mi. // (URG - UREM) + (UMAXExcl - 1)) jest generalny; // W przypadku podpisanych długich przepełnienie liczby ujemnej: // while ((ugen - ureM) + (UMAXExcl - 1) < 0);powrót mocz; >
Ważne jest tutaj to, że każda postać jest generowana niezależnie od innych: Każda postać jest losowa, a wiedza, która postać została wcześniej wygenerowana, nie podaje nam informacji o następnym charakterze, który zostanie wygenerowany.
Wreszcie, niech’s Załóż, że getRandomuint64 jest silny kryptograficznie i generuje losową 64-bitową liczbę. Dlaczego jest tutaj pętla i dlaczego ta funkcja nie jest po prostu wdrażana jako return getRandomuint64 () % UmaxExcl; ?
Jednolite losowe generowanie liczb
Ta pętla jest niezbędna jednolicie Generuj liczby w zakresie.
Wyobraź sobie, że chcesz uzyskać losowy charakter ze znaku 10 możliwych znaków i masz metodę generatora liczb losowych getRandom32, która wyświetla liczbę od 0 do 32 (32 wykluczone). Prostym sposobem na wyprowadzenie takiego charby:
const strunowy znak = „0123456789”; powrót znak[[[GetRandom32() % 10];
Pozwalać’S zobacz, jak generowane są znaki:
- “4” jest zwracany, jeśli getRandom32 () zwraca 4, 14 lub 24 (3 możliwe wartości)
- “5” jest zwracany, jeśli getRandom32 () zwraca 5, 15 lub 25 (3 możliwe wartości)
- Ale “1” jest zwracany, jeśli getRandom32 () zwraca 1, 11, 21 i 31 (4 możliwe wartości!)
Rozkład podano poniżej:
Tak więc jest uprzedzenie z tą metodą: jak można zobaczyć z wyjść, cyfry 0 i 1 będą wysyłane częściej niż inne. Jest powszechnie nazywany “Modulo Truas”. Powinieneś sprawdzić doskonały ostateczny przewodnik “Modułowe nastawienie” i jak tego uniknąć, przez Kudelski Security, aby uzyskać więcej informacji.
Aby to usunąć “Modulo Truas”, Wspólną metodą jest odrzucenie wszystkich liczb większych lub równych 30 (największa wielokrotność 10 niższa niż 32):
const strunowy znak = „0123456789”; Do Ugen = GetRandom32(); > chwila (Ugen > = 30); powrót znak[[[Ugen % 10];
Właśnie to robi Keepass, chociaż uprzedzenie w Keepass byłoby znacznie mniej znaczące niż w obecnym przykładzie, ponieważ getRandomuint64 generuje wartości znacznie większe niż rozmiar zestawu znaków hasła.
Widzieliśmy, jak jednolicie wybrać postać z danego zakresu znaków, zakładając, że nasze losowe źródło jest jednolite. Pozwalać’S zobacz teraz, jakie źródło jest odpowiednie do generowania silnych liczb losowych kryptograficznie.
PRIPTograficznie bezpieczny prng
Wygenerowane liczby muszą być losowy. Ale co to dokładnie oznacza? Zwykłe dobre PRNG zda serię testów, głównie statystyczne testy losowości, takie jak testy zagorzałe lub zagorzałe.
Bezpieczny kryptograficznie PRNG (CSPRNG) również zda te testy, ale ma również dwa inne wymagania:
- Musi spełniać następny test. Znając wszystkie bity wygenerowane przez CSPRNG, nie ma metody czasu wielomianowego, która przewiduje następny bit z prawdopodobieństwem wyższym niż 0.5.
- Jeśli w dowolnym momencie cały stan CSPRNG jest zagrożony, nie ma sposobu na odzyskanie bitów wcześniej zwracanych przez CSPRNG.
Te punkty są niezbędne do generowania haseł. Na przykład, jeśli hasło zostało naruszone z jakiegoś powodu, a jeśli do wygenerowania tego hasła użyto bez CSPRNG, atakujący może być w stanie odzyskać inne hasło wygenerowane za pomocą tego PRNG. Większość systemów operacyjnych zapewnia implementacje CSPRNG: CryptGenRandom w systemie Windows lub /Dev /Random w systemach operacyjnych podobnych do UNIX.
Niektóre oprogramowanie wolą korzystać z własnej implementacji, często wysiana, w pełni lub częściowo, przez system operacyjny PRNG. Keepass używa dwóch PRNG, opartych na Salsa20 i Chacha20, oraz dziedzictwu opartej na wariancie Arcfour. Pozwalać’s Załóż, że pierwsze dwa PRNG są bezpieczne kryptograficznie: mamy teraz wszystkie elementy do generowania losowych, bezpiecznych haseł z danego charakterystyki.
Kaspersky’S Metoda generowania hasła
Kaspersky Password Manager ma wbudowany generator haseł, który tworzy hasło z danego “polityka”. Ustawienia zasad są proste: długość hasła, wielkie litery, małe litery, cyfry i niestandardowy zestaw specjalnych znaków. Wszystkie te ustawienia można skonfigurować w interfejsie generatora haseł, jak pokazano tutaj (to jest ustawienie standardowe):
Domyślnie KPM generuje 12-charakterystyczne hasła z rozszerzonym znakiem koloru.
Oszukanie częstotliwości wyglądu
Procedura generowania jest znacznie bardziej złożona niż metoda Keepass. KPM najpierw wybiera dwa losowe pływaki $ r_1 $ i $ r_2 $ między 0 a 1 i mnoży je długością charakterystyki hasła, aby wybrać wartość w tabeli znaków:
znak = . # Ustawianie znaków do użycia R1 = losowy.losowy() R2 = losowy.losowy() poz = R1 * R2 * Len(znak) powrót znak[[[poz]
Rozkład $ R_1 \ Times R_2 $ jest (dzięki MathWorld):
\ [\ start 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 \\ & i \ int_0^1 (x \ \ geq) \ fraca 1 \ frac dx \\ & = & -ln (a) \ end \]
Rozkład tej funkcji nie jest jednolity: niższe pozycje mają większe szanse niż wartości w pobliżu 1. Taka metoda jest dość zagadkowa, ale wydaje się, że właśnie to KPM chciał wdrożyć.
Jak powstaje znakomicie? Czy jest w pełni uporządkowany, jak “ABCDEFGHIJ…”? NIE…
- W przypadku pierwszych trzech znaków Charset jest w pełni zamówiony (prawie… zobaczymy to później).
- Następnie, w przypadku następnych znaków, KPM opiera się na częstotliwości liter: zakłada, że najmniej częste litery (w pewnym języku) powinny pojawiać się częściej w wygenerowanym hasła. Domniemana częstotliwość objawienia każdej litery, stosowana w KPM, pokazano na poniższym wykresie:
Następnie zaznacza się cewki zgodnie z odwrotną częstotliwością pojawienia się każdej litery: Q, X, Z, W… N, A, E.
Ponieważ niższe wartości są bardziej prawdopodobne, biorąc pod uwagę funkcję rozkładu, możemy założyć, że niektóre znaki takie jak “Q” I “X” znacznie bardziej prawdopodobne, że pojawią się w hasłach generowanych przez KPM.
Gdyby te statystyki zostały niezależnie przyjęte w celu wygenerowania każdego rodzaju hasła, moglibyśmy często widzieć kilka “Q”, “X” Lub “z” w hasłach. Jednak rzeczy są bardziej złożone: wygenerowane znane są brane pod uwagę w obliczeniach częstotliwości wyglądu. Jeśli “z” jest generowany, a następnie prawdopodobieństwo pojawienia się “z” W tabeli częstotliwości będzie silnie zwiększone. Po zamówieniu koloru zgodnie z tą tabelą, “z” będzie na końcu stołu i będzie miało znacznie mniej zmian do podjęcia.
Zmiany te wpływają również na inne litery: po “z” został wybrany, prawdopodobieństwo “A”, “mi”, “M”, “Q”, “S” I “X” wzrosło również. Przeciwnie, “H” zmniejszył się. Ale potem “H” jest zbierany, jego prawdopodobieństwo wyglądu znacznie wzrośnie.
Nasza hipoteza jest taka, że metoda została zaimplementowana w celu oszukania standardowych narzędzi do pękania haseł. Krakersy haseł, takie jak Hashcat lub John the Ripper, próbują najpierw złamać prawdopodobny Hasło, e.G. hasła generowane przez ludzi. Ich metoda pękania haseł opiera się na tym, że prawdopodobnie istnieje “mi” I “A” w hasło utworzonym przez człowieka niż “X” Lub “J”, lub że bigramy “th” I “On” pojawi się znacznie częściej niż “QX” Lub “Zr”.
Dedykowane techniki, takie jak Markov Generator, które zakładają, że istnieje ukryty model Markowa w sposobie generowania haseł przez ludzi, mogą bezpośrednio złamać tę metodę generowania (patrz ataki szybkiego słownika na hasła za pomocą kompromisu czasowego, aby uzyskać więcej informacji).
Dlatego hasła wygenerowane przez KPM będą średnio daleko na liście haseł kandydujących testowane przez te narzędzia. Jeśli napastnik próbuje złamać listę haseł generowanych przez KPM, prawdopodobnie będzie długo czekać, aż pierwszy. To jest całkiem sprytne.
Jeśli jednak napastnik wie że hasło zostało wygenerowane przez KPM, może dostosować swoje narzędzie do wzięcia pod uwagę modelu, a następnie KPM. Ponieważ hasła te są w pewnym sensie stronnicze (w celu rozwiązania krakererów haseł), ten stronniczość można użyć do generowania najbardziej prawdopodobnych haseł generowanych przez to narzędzie i najpierw je przetestować. Stawnym sposobem na zrobienie tego może być użycie generatora Markowa, ponieważ dostarczony przez Johna Rippera (ta metoda nie została przetestowana).
Możemy stwierdzić, że algorytm generacji sam w sobie nie jest taki zły: będzie odporny na standardowe narzędzia. Jeśli jednak atakujący zna, że osoba używa KPM, będzie w stanie złamać hasło znacznie łatwiej niż w pełni losowe hasło. Naszym zaleceniem jest jednak generowanie losowych haseł wystarczająco długo, aby były zbyt silne, aby je złamać przez narzędzie.
Wcześniej widzieliśmy, że KPM wybrał dwie losowe wartości $ r_1 $ i $ r_2 $, aby obliczyć indeks w tabeli body. Pozwalać’S zobacz teraz, w jaki sposób te wartości są obliczane.
KPM’s losowy generator liczb
Te dwie wartości pochodzą bezpośrednio z KPM PRNG. Ten PRNG wyświetla równomiernie unosi się między 0 a 1, 1.
Zastosowany PRNG różni się w pulpicie i wersji internetowej:
- Wersja internetowa używała matematyki.losowy() . Ta funkcja nie nadaje się do generowania bezpiecznych liczb losowych kryptograficznie (które obejmują entropię wymaganą do generowania haseł), jak wyjaśniono w https: // deweloper.Mozilla.org/en-us/docs/web/javascript/reference/global_Objects/Math/Random. Podstawowy PRNG używany przez Chrome, Firefox i Safari do matematyki.Random () to xorShift128+. Jest bardzo szybki, ale nie nadaje się do generowania materiałów kryptograficznych. Konsekwencje bezpieczeństwa w KPM nie zostały zbadane, ale doradziliśmy Kaspersky, aby zastąpił go oknem.Krypto.getRandomValues (), zgodnie z zaleceniami wcześniej wspomnianej strony dokumentacji Mozilla.
- Wersja komputerowa wykorzystała prng dostarczoną przez Boost: MT19937 Mersenne Twister. Mersenne Twistister jest bardzo dobry i szeroko stosowany PRNG, a MT 19937 jest najpopularniejszym Mersenne Twister. Jest równomiernie rozmieszczony, ma bardzo długi okres i jest szybki w porównaniu z drugim “Dobry” Prngs.
Jednak używa Mersenne Twister dobry pomysł na tworzenie haseł? Absolutnie nie.
Problem z tym generatorem polega na tym, że nie jest to CSPRNG. Znajomość kilku jego OUPUT (624 W takim przypadku) pozwala odzyskać pełny stan i przewidzieć wszystkie wartości, które wygeneruje, a także wszystkie wartości, które już wygenerował (patrz algorytmy Berlekamp-Massey lub Reeds-Sloane).
Dostępne są narzędzia, takie jak Randcrack, są dostępne do złamania Pythona’S moduł losowy, który wykorzystuje bardzo podobną (jeśli nie taką samą) implementację MT 19937. Konieczne powinny być tylko bardzo niewielkie adaptacje, aby przełamać wdrożenie doładowania.
W praktyce wykorzystanie takiej wady w kontekście Kaspersky’S Manager hasło jest trudny:
- Hasła są krótkie: domyślnie 12 znaków. Pobranie 624 Hasła Zarady wymaga pobrania 52 haseł.
- Surowa wartość wyjściowa nie jest znana: Wartość wyjściowa to pozycja w kolorze każdej litery hasła. Może być konieczne więcej wartości.
- I widzieliśmy, że ta pozycja w złożeniu jest produktem dwóch wartości wytworzonych przez PRNG.
Nie widzimy prostego sposobu ataku na ten PRNG w kontekście KPM.
Sieci Mersenne Twister
Widzieliśmy, że PRNG jednolicie generuje pływaki w [0, 1 [. Kod odpowiedzialny za jego inicjalizację powinien wyglądać:
MT19937::Result_Type nasionko = . ; automatyczny MTRAND = Std::wiązać(Std::mundliform_real_distributionplatforma>(0,1), MT19937(nasionko));
Skąd pochodzi nasiona? Funkcja generowania hasła nazywa się tak:
Std::strunowy PWLIB::GeneratePassword(Pwdlib::Polityka polityka, int nasionko) Jeśli (nasionko == 0) Filetime ft; GetSystemTimeAsFileTime(Ift); nasionko = ft.dwlowDateTime + ft.DwhighDateTime; > automatyczny MTRAND = Std::wiązać(Std::mundliform_real_distributionplatforma>(0,1), MT19937(nasionko)); powrót GeneraterAndompassword(polityka, MTRAND); >
Jest to bardzo interesujące z dwóch powodów:
- Nasiona ma zaledwie 32 bity. Oznacza to, że można go łatwo brutalnie wzmocnić.
- Instancja PRNG jest tworzona za każdym razem, gdy generowane jest hasło. Oznacza to, że menedżer haseł Kaspersky może wygenerować najwyżej 2 $ hasła dla danego charakterystyki.
GetSystemTimeAsfileTime jest używany jako ziarno tylko wtedy, gdy nasiona nie jest dostarczone do metody genedasPassword. Jak nazywa się tę metodę, gdy użytkownik poprosi o nowe hasło? Odpowiedź to:
Std::strunowy PWLIB::GeneratePassword(Pwdlib::Polityka polityka) powrót GeneratePassword(polityka, czas(0)); >
Tak więc ziarno używane do generowania każdego hasła to aktualny czas systemu, w sekund. Oznacza to, że każda instancja menedżera haseł Kaspersky na świecie wygeneruje dokładnie to samo hasło w danej sekundzie. Byłoby to oczywiste, gdyby każde kliknięcie “Generować” przycisk, w interfejsie generatora haseł, stworzył to samo hasło. Jednak z jakiegoś powodu generowanie haseł jest animowane: wyświetlane są dziesiątki losowych znanych, podczas gdy prawdziwe hasło zostało już obliczone:
Ta animacja zajmuje więcej niż 1 sekundę, więc nie można kliknąć kilkakrotnie na “Generować” przycisk w ciągu sekundy. Zdecydowanie nie odkryto wcześniej słabości.
Konsekwencje są oczywiście złe: Każde hasło może być brutalne. Na przykład istnieje 315619200 sekund w latach 2010–2021, więc KPM może wygenerować co najwyżej 315619200 haseł dla danego charakterystyki. Butowanie ich zajmuje kilka minut.
Dość często witryny lub fora wyświetlają czas tworzenia kont. Znając datę utworzenia konta, atakujący może spróbować brutalnie wzmocnić hasło konta z niewielkim zakresem haseł (~ 100) i uzyskać dostęp do niego.
Ponadto hasła z wyciekających baz danych zawierających hasła, hasła do zaszyfrowanych archiwów, trueCrypt/Veracrypt Volumes itp. Można również łatwo odzyskać, jeśli zostały wygenerowane za pomocą Kaspersky Password Manager.
Nieoczekiwane źródło entropii: odczytanie poza zbiorami
Napisaliśmy dowód koncepcji, aby upewnić się, że czegoś nie brakuje. Generuje listę 1000 możliwych haseł z bieżącego czasu. Aby przetestować POC:
Skompiluj dostarczony POC (PWLIB.CPP). Plik należy skompilować z wizualnym C ++ (pływające wartości w kodzie źródłowym nie mają dokładnie takich samych wartości, gdy opracowano z Clang lub GCC). Do moich testów użyłem Visual C ++ 2017. Używając polecenia zaproszonych do wizualnych C ++ 32 bity, wpisz:
cmake -bbuild -h. MSBuild Build \ Pwbrute.VCXPROJ
Debug \ Pwbrute.EXE> PASS.tekst
- Tylko małe litery
- 12 Chars
Nie jest to całkowicie funkcjonalne, ale pozwoliło nam odkryć błąd w procesie generowania hasła, w funkcji, która oblicza prawdopodobieństwo pojawienia się danej litery, znając wcześniej wygenerowane znaki. Oto pseudo kod dla metody getContextProbiles:
const platforma *getContextProbiles(const Std::strunowy Ihasło) Std::strunowy LowerCasepassword; // przekonwertuj na małe litery, zachowaj tylko małe litery Do (zwęglać C : hasło) Jeśli (Islower(C)) LowerCasepassword += C; > w przeciwnym razie Jeśli (Isupper(C)) LowerCasepassword += zwęglać(C - 'A' + 'A'); > > . int N = 0; Do (int I = LowerCasepassword.długość() - 1; I > = 0; I--) int indeks = hasło[[[I] - 'A'; // fixme: Wymień na dolnecasepassword
Budowane hasło jest konwertowane na małe litery. Nieplezyjne są usuwane. Następnie jest iteracja hasło Zamiast właśnie utworzono małe hasło. Prowadzi to do niewłaściwego obliczenia zmiennej indeksu (pozycja litery w alfabecie). Ten indeks służy do pobrania elementu tablicy. To prowadzi do odczytania tej tablicy.
Częstotliwość wyglądów jest następnie obliczana na podstawie danych niezainicjowanych lub dowolnych. Chociaż algorytm jest błędny, w niektórych przypadkach utrudnia brutal.
Zaatakowany POC generuje kandydatów tylko na małe hasła, aby indeks był zawsze poprawnie obliczany (w przeciwnym razie POC należy dostosować).
Naprawa
Kaspersky przypisał CVE-2020-27020 do tej podatności i opublikował poradę bezpieczeństwa na swojej stronie internetowej: https: // wsparcie.Kaspersky.COM/Ogólna/podatność.ASPX?EL = 12430#270421.
Wpływ na wszystkie wersje przed tymi:
- Kaspersky Password Manager dla systemu Windows 9.0.2 Patch f
- Kaspersky Password Manager na Android 9.2.14.872
- Kaspersky Password Manager na iOS 9.2.14.31
W systemie Windows Mersenne Twister PRNG został zastąpiony funkcją BcryptGenRandom:
platforma Losowy Float(Bcrypt_alg_handle *Halgorytm) uint32_t L; Bcryptgenrandom(*Halgorytm, (uint8_t *)IL, rozmiar(L), 0); powrót (platforma)L * (1.0F / 0x100000000); >
Wartość zwracania tej funkcji nie została sprawdzona w wersjach beta dostarczonych przez Kaspersky, ale sądzimy, że zostało to naprawione.
Matematyka.Random () w wersji internetowej została zastąpiona bezpiecznym oknem.Krypto.metoda getRandomValues ().
Wersje Androida i iOS również zostały załatane, ale nie spojrzeliśmy na poprawki.
Wniosek
Kaspersky Password Manager użył złożonej metody do generowania swoich haseł. Ta metoda miała na celu tworzenie haseł trudnych do złamania dla standardowych krakersów haseł. Jednak taka metoda obniża siłę wygenerowanych haseł w stosunku do dedykowanych narzędzi. Pokazaliśmy, jak generować bezpieczne hasła, biorąc pod uwagę przykład: proste metody, takie jak losowe losowania, gdy tylko pozbędziesz się “Modulo Truas” Podczas zerkania listu z danego zakresu zwariów.
Studiowaliśmy także Kaspersky’s prng i pokazał, że był bardzo słaby. Jego wewnętrzna struktura, twister mersenne pobrany z biblioteki Boost, nie nadaje się do generowania materiałów kryptograficznych. Ale główną wadą jest to, że ten PRNG został zaszczepiony w bieżącym czasie, w sekund. Oznacza to, że każde hasło generowane przez wrażliwe wersje KPM może być brutalne w ciągu kilku minut (lub za drugie, jeśli znasz w przybliżeniu czas generowania).
Na koniec przedstawiliśmy dowód koncepcji, który opisuje metodę pełnej generacji stosowaną przez KPM. Można go użyć do weryfikacji wady jest rzeczywiście obecna w wersjach Windows 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.
Oś czasu
- 15 czerwca 2019 r.: Raport i dowód koncepcji wysłany do Kasperky przez Hackerone.
- 17 czerwca 2019: Kaspersky przyznaje, że otrzymał raport.
- 25 czerwca 2019: Kaspersky potwierdza podatność.
- 4 października 2019: Kaspersky wysyła prywatną kompilację systemu Windows, abyśmy mogli sprawdzić, czy błędy zostały naprawione, i poinformuje nas, że wdroży rozwiązanie do obsługi wcześniej wygenerowanych haseł przed końcem roku.
- 8 października 2019: Potwierdzamy, że luki zostały naprawione, ale zgłosili nową małą wadę w poprawce.
- 10 października 2019: Menedżer haseł Kaspersky dla systemu Windows 9.0.2 Patch D zostaje wydany, naprawiając luki, ale bez poprawki dla zgłoszonej wady. Wersja internetowa jest również aktualizowana.
- 9 października 2019: Kaspersky Hassel Manager dla Androida w wersji 9.2.14.872 z poprawką zostaje wydany.
- 10 października 2019: Menedżer haseł Kaspersky na iOS w wersji 9.2.14.31 z poprawką jest wydawana.
- 10 grudnia 2019: Kaspersky Password Manager dla systemu Windows 9.0.2 Patch F jest uwalniane zamykając wadę w łatce D.
- 9 kwietnia 2020: Kaspersky informuje nas, że w październiku wyda łatkę, aby obsłużyć wcześniej wygenerowane hasła.
- 13 października 2020: Kaspersky Password Manager 9.0.2 Patch M jest wydany, z powiadomieniem dla użytkowników, aby poinformować ich o tym, że niektóre hasło należy ponownie wygenerować. Kaspersky informuje nas, że to samo powiadomienie będzie również obecne w wersjach mobilnych w pierwszym kwartale 2021. CVE-2020-27020 również zostało zarezerwowane.
- 28 grudnia 2020: Kaspersky zgadza się, że raport o podatności można ujawnić po opublikowaniu CVE.
- 27 kwietnia 2021: Kaspersky Security Advisory został opublikowany.
- 14 maja 2021: Opublikowano informacje o CVE-2020-27020.
Jean-Baptiste Bédrune
Szef badań bezpieczeństwa
Czy Kaspersky ma generator haseł?
Bezpieczeństwo danych w dużej mierze zależy od siły hasła. Hasło jest uważane za silne, jeśli zawiera co najmniej 16 znaków, w tym wielkie i małe litery łacińskie, cyfry i znaki specjalne. Kaspersky Hassower Manager generuje unikalne i silne hasła. Możesz określić długość hasła i wybrać, czy dołączyć cyfry, litery i znaki specjalne. Możesz użyć generatora haseł podczas utworzenia nowego konta witryny lub zmiany hasła dla istniejącego konta.
- Otwórz okno generatora haseł na jeden z następujących sposobów:
- W głównym oknie aplikacji kliknij generator haseł .
- W oknie przeglądarki kliknij ikonę aplikacji
→ Ikona generatora haseł
.
- W polu hasła na stronie internetowej, unosisz się nad polem lub kliknij ikonę kluczową
Aby wywołać okno generatora haseł.
Otworzy się okno generatora hasła, a aplikacja generuje hasło za pomocą ustawień domyślnych.


Aplikacja kopiuje wygenerowane hasło do schowka. Możesz ręcznie wkleić hasło do wymaganego pola. Jeśli używasz generatora haseł, aby utworzyć nowe konto witryny lub zmienić hasło dla istniejącego konta, aplikacja automatycznie wkleja hasło do wymaganego pola.
Możesz także wygenerować silne i unikalne hasło, dodając nową stronę internetową, aplikację lub inną .
- W głównym oknie aplikacji kliknij Dodaj, kliknij Konto i wybierz stronę internetową, aplikację lub inną . Otwiera się okno wejścia.
- W polu hasła kliknij Generuj . Otworzy się okno generatora hasła, a aplikacja generuje hasło za pomocą ustawień domyślnych.
- W razie potrzeby określ parametry generowania hasła.
- Kliknij . Aplikacja automatycznie wkleja hasło do wymaganego pola.
Kaspersky Password Manager zapisuje ostatnie 5 wygenerowanych haseł skopiowanych do schowka, na wypadek, gdybyś je zgubił. Możesz wyświetlić skopiowane hasła w historii generatora haseł. Aplikacja przechowuje kopiowane hasła na komputerze i nie synchronizują ich między urządzeniami.
Jeśli Twój sklepienie jest odblokowane, generator haseł jest dostępny.
- Otwórz okno generatora haseł.
- Kliknij kartę Historia hasła. Otwiera się lista twoich ostatnio skopiowanych haseł.
- Jeśli chcesz skopiować hasło do schowka, kliknij przycisk Kopiuj obok hasła. Hasło jest kopiowane do schowka.
- Jeśli chcesz wyczyścić historię generatora hasła, kliknij Wyczyść wszystko . Twoje skopiowane hasła są usuwane z historii.
Czy Kaspersky ma generator haseł?
Bezpieczeństwo danych w dużej mierze zależy od siły hasła. Hasło jest uważane za silne, jeśli zawiera co najmniej osiem znaków, w tym wielkie i małe litery łacińskie, cyfry i znaki specjalne. Kaspersky Hassower Manager generuje unikalne i silne hasła. Możesz określić długość hasła i wybrać, czy dołączyć cyfry i znaki specjalne. Możesz użyć generatora haseł podczas utworzenia nowego konta witryny lub zmiany hasła dla istniejącego konta.
- Odblokuj sklepienie, wprowadzając główne hasło i stukając odblokowanie . Jeśli urządzenie obsługuje identyfikator dotykowy/identyfikator dotykowy i identyfikator dotykowy/identyfikator twarzy jest włączony w ustawieniach aplikacji, możesz go użyć do odblokowania sklepienia zamiast wprowadzania głównego hasła.
- Na dolnym pasku zakładki dotknij profilu . Na iPadach pasek szybkiego dostępu jest zawsze wyświetlany w lewej części ekranu.
- Na pasku szybkiego dostępu dotknij generatora haseł . Otwiera się okno generatora hasła, a aplikacja generuje hasło za pomocą domyślnych parametrów.
- W razie potrzeby zmień parametry hasła:
- Stuknij długość hasła, aby określić liczbę znaków, które należy użyć podczas generowania haseł.
- Włącz/wyłącz wielkie litery (A - Z), aby używać/nie używać wielkich liter podczas generowania haseł. Domyślnie ten przełącznik jest włączony.
- Włącz/wyłącz małe litery (A - Z), aby używać/nie używać małych liter podczas generowania haseł. Domyślnie ten przełącznik jest włączony.
- Włącz/wyłącz cyfry (0–9), aby używać/nie używać cyfr podczas generowania haseł. Domyślnie ten przełącznik jest włączony.
- Włącz/wyłącz znaki specjalne, aby używać/nie używać znaków specjalnych podczas generowania haseł. Domyślnie ten przełącznik jest włączony. Możesz dodać lub usunąć znaki specjalne używane podczas generowania haseł w polu poniżej przełącznika przełączania.
Dla Twojej wygody wykluczyliśmy następujące podobne symbole z generowania haseł: 0 (zero), O (Capital O), I (Capital I) i L (mały L).
Aplikacja automatycznie generuje nowe hasło po zmianie parametrów. Jeśli siła wygenerowanego hasła jest średnia lub niska, menedżer hasła Kaspersky powiadomi Cię poniżej hasła. Stuknij, aby ponownie wygenerować hasło za pomocą wybranych parametrów.
Aplikacja kopiuje wygenerowane hasło do schowka. Możesz ręcznie wkleić hasło do wymaganego pola. Po zamknięciu okna generatora haseł aplikacja zapisuje wybrane parametry hasła, aż sklepienie zostanie odblokowane.
Aby szybko wygenerować hasła i skopiować je do schowka, możesz również użyć widżetu haseł na ekranie głównym urządzenia. Znajdź więcej informacji na temat dodawania widżetów na stronie Apple Support.
Menedżer haseł
Kaspersky Password Manager to niezbędne narzędzie dla aktywnego użytkownika Internetu. W pełni automatyzuje proces wprowadzania haseł i innych danych na stronach internetowych i zapisuje użytkownika, który ma problem z tworzeniem i zapamiętaniem wielu haseł.
Kiedy używasz menedżera haseł Kaspersky do zalogowania się, możesz mieć pewność, że Twoje dane są bezpieczne. Oprogramowanie tworzy wyjątkowo silne hasła i zapobiega kradzieży informacji logowania. Wszystkie poufne dane są szyfrowane i przechowywane w dedykowanej bazie danych na komputerze.
Kaspersky Password Manager sprawia, że Twoja sieć jest bezpieczniejsza, szybsza i wygodniejsza.
Najnowsze wersje
Korzyści
Umożliwia dostęp do stron internetowych i aplikacji za pomocą jednego kliknięcia myszy
Przechowuje hasła w zaszyfrowanej bazie danych na komputerze, tworzy silne, unikalne hasło dla każdego konta
Zawiera wersję mobilną, którą można załadować z dysku flash i uruchamiać na innym komputerze
Wypełnia długie formularze automatycznie
Kluczowe cechy
- Zaloguj się jednym kliknięciem myszy
Kaspersky Password Manager pamięta Twoje nazwy użytkowników i powiązane hasła, aby po powrocie do witryny automatycznie dostarczył dane logowania. Kaspersky Password Manager współpracuje również z aplikacjami wymagającymi uwierzytelnienia. - Niezawodna ochrona haseł
Kaspersky Mase Manager bezpiecznie przechowuje hasła i dane osobowe w dedykowanej, zaszyfrowanej bazie danych na komputerze. Przechowywane hasła można rozszyfrować tylko za pomocą hasła głównego lub innej metody uwierzytelniania zdefiniowanej przez użytkownika. Zapewnia to, że twoje hasła są bezpieczne i uniemożliwia przestępcom kradzież. - Obsługuje różne metody uwierzytelnienia
Kaspersky Password Manager pomaga kontrolować dostęp do bazy danych hasła za pomocą hasła głównego lub za pomocą urządzenia USB lub Bluetooth. Możesz nawet użyć telefonu komórkowego: Twoje hasła można skonfigurować, aby były dostępne tylko wtedy, gdy telefon komórkowy jest podłączony do komputera przez Bluetooth. Jeśli opuścisz komputer i zabierzesz ze sobą telefon, baza danych automatycznie się zablokuje. - Generowanie silnych haseł
Bezpieczeństwo danych zależy bezpośrednio od tego, jak silne są twoje hasła. Użytkownicy często mają podobne lub identyczne hasła dla wielu kont. Złamując pojedyncze hasło, cyberprzestępstwo może łatwo uzyskać dostęp do wielu kont. Generator haseł zintegrowany z Kaspersky Password Manager utworzy dla Ciebie silne hasła, które są niezwykle trudne do złamania. - Importować hasła z innych systemów operacyjnych i aplikacji
Dzięki Internet Explorer lub Mozilla Firefox, hasła są przechowywane w formacie niezabezpieczonym i mogą uzyskać dostęp do cyberprzestępców. Kaspersky Password Manager pomaga zlokalizować te niechronione hasła i zaimportować je do bazy danych zaszyfrowanych haseł. - Wersja mobilna
Kaspersky Password Manager’S wersja mobilna zapewnia dostęp do twoich haseł podczas pracy na dowolnym komputerze, bez konieczności instalowania rzeczy. Wersję mobilną można uruchomić z różnych rodzajów urządzeń mobilnych, w tym dysków flash. Jeśli urządzenie zostanie następnie usunięte, Kaspersky Password Manager automatycznie blokuje bazę danych haseł i usuwa dowolne śledzenie danych hasła z komputera hosta. - Automatycznie wypełnia długie formularze
Formularze strony internetowej często wymagają wprowadzania danych osobowych ponad informacje o nazwie użytkownika i hasła. Takie dodatkowe dane mogą obejmować: Twoje pełne imię i nazwisko, data urodzenia, seks, adres e -mail, numer telefonu, kraj zamieszkania itp. Kaspersky Password Manager może automatycznie wypełniać dla Ciebie tego rodzaju formularze, używając wcześniej podanych informacji. Kilka dowodów osobistych można użyć do przechowywania danych związanych z biznesem i osobistością. - Kilka nazw użytkowników dla jednego dostawcy kont
Czasami kilka haseł musi być przechowywane na jedną stronę internetową. Na przykład możesz mieć kilka skrzynek pocztowych, każda z innym celem, zarejestrowanych u dostawcy usług pojedynczych pocztowych. Kaspersky Password Manager może przechowywać kilka nazw użytkowników dla jednego dostawcy i sprawdzić, z jakiej z nich chcesz użyć po zalogowaniu. - Automatyczna kopia zapasowa
Kaspersky Password Manager automatycznie tworzy kopię kopii zapasowej bazy danych haseł na komputerze za każdym razem, gdy jest modyfikowana. Możesz łatwo przywrócić hasła, jeśli bieżąca baza danych zostanie przypadkowo uszkodzona lub jeśli chcesz wrócić do poprzedniej wersji. - Skuteczna ochrona przed Keyloggerami
Keylogger to złośliwy program, który śledzi klawisze na ofiary’S komputer, aby nielegalnie uchwycić użytkownika’S dane osobowe, takie jak hasła. Kaspersky Password Manager wprowadza hasła bez faktycznego korzystania z klawiatury, a zatem skutecznie chroni Twoje dane osobowe przed Keyloggers. - Ochrona przed atakami phishingowymi
Phishing jest rodzajem wrogiej działalności, w której cyberprzestępca zaprasza użytkownika do odwiedzenia strony internetowej, aby oszukać użytkownika, aby ujawnili informacje o koncie. Fałszywa strona wygląda identycznie z oryginalną witryną, a nieświadomy użytkownik w konsekwencji dostarcza swoje dane osobowe. Kaspersky Password Manager skutecznie przeciwdziała atakom phishingowym, sprawdzając, czy adres URL jest autentyczny i czy Twoje oprogramowanie jest aktualne.
wymagania systemowe
Należy pamiętać, że nie oferujemy obsługi wersji beta ani podglądu nowych systemów operacyjnych e.G. Windows 8.1 podgląd. Poparte zostaną tylko ostatnie oficjalne wydania.
- Microsoft Windows XP Home Edition
- Microsoft Windows XP Professional
- Microsoft Windows XP Professional X64 Edition
- Microsoft Windows Vista Home Basic (32/64 bit)
- Microsoft Windows Vista Home Premium (32/64 bit)
- Microsoft Windows Vista Business (32/64 bit)
- Microsoft Windows Vista Enterprise (32/64 bit)
- Microsoft Windows Vista Ultimate (32/64 bit)
- Microsoft Windows 7 Home Premium (32/64 bit)
- Microsoft Windows 7 Professional (32/64 bit)
- Microsoft Windows 7 Ultimate (32/64 bit)
- Windows 8 (32/64 bit)
- Windows 8 Pro (32/64 bit)
- Windows 8 Enterprise (32/64 bit)
- Dostępne RAM co najmniej 512 MB
10 MB Wolna przestrzeń na dysku twardym
mysz komputerowa
- Microsoft Internet Explorer 6.0 - 10.0
- Mozilla Firefox 2.X - 25.X
- Google Chrome 6.0 - 30.0
- Maxthon 2.5.X
- Stado 2.х
- Seamonkey 2.0.8 - 2.22
- Yandex 1.5
Kaspersky Password Manager generuje złe hasła
Generator liczb losowych w menedżerze haseł Kaspersky nie był wystarczająco losowy. Dlatego.
Napisane przez Adama Rowe
Opublikowane 7 lipca 2021
Można ci wybaczyć, że przyjęcie losowo wygenerowanego hasła zostało losowo wygenerowane. Tak nie było w przypadku Kaspersky Password Manager od nieco poniżej dwóch lat.
Menedżer haseł firmy cyberbezpieczeństwa używał wbudowanego automatycznego generatora ze szczególnie rażącą wadą. Zatchnęli to, ale każdy użytkownik Kaspersky Hasselder Manager powinien jak najszybciej zmienić wcześniej wygenerowane hasła.
Oto, co poszło nie tak.
Wada
Generator haseł działa na tworzenie haseł, postępując zgodnie z zestawem “polityka,” z ustawieniami, które obejmują długość hasła, wielkie litery, małe litery, cyfry i niestandardowy zestaw znaków specjalnych. Można je dostosować, ale domyślną zasadą jest hasło 12-znakowe.
Czy używasz już menedżera haseł?
Więc w czym problem? Cóż, każdy generator liczb losowych potrzebuje jednego lub więcej źródeł entropii - elementu niepewności, który zapewnia wynik, pozostaje losowy. Ale ziarno, od którego zaczynał Kaspersky, było obecnym czasem systemu, w sekund. Tak, czas, jedna z najbardziej przewidywalnych i nie Randomowych wskaźników.
Oto jak Ledger Donjon, szef badań bezpieczeństwa w Jean-Baptiste Bédrune, wyjaśnił to w poście na blogu:
“Tak więc ziarno używane do generowania każdego hasła to aktualny czas systemu, w sekund. Oznacza to, że każda instancja menedżera haseł Kaspersky na świecie wygeneruje dokładnie to samo hasło w danej sekundzie. Byłoby to oczywiste, gdyby każde kliknięcie ‘Wygeneruj przycisk „W interfejsie generatora hasła stworzył to samo hasło.”
Powodem, dla którego ludzie nie zauważyli, że każde hasło wygenerowane w tej samej sekundzie było dokładnie takie samo, ponieważ interfejs ma jednosekundową animację, którą gra, upewniając się, że nikt nie może wygenerować dwóch haseł w tej samej sekundzie.
Ale to duża wada. Każdy haker, który zna, że sztuczka może brutalnie wymusić każde hasło: liczba sekund w ciągu dnia jest skończona, a haker może przebiegać przez wszystkie 315 619 200 haseł powiązanych z sekundami dekady w latach 2010–2021 w ciągu zaledwie kilku minut.
A jeśli konto online publicznie wyświetli datę utworzenia, haker będzie musiał uruchomić jeszcze mniej potencjalnych haseł przed złamaniem hasła Kaspersky.
Bezpieczne hasła są niezbędne
Kaspersky został powiadomiony o tym problemie i wprowadził poprawkę. Ale każde hasło, które zostało już wygenerowane przez wrażliwą wersję oprogramowania, jest nadal łatwe do zatarcia - trochę koszmaru dla wszystkich, którzy korzystają z usługi specjalnie, aby upewnić się, że ich hasła nie mogą zostać złamane.
Jeśli korzystasz z menedżera haseł Kaspersky, zmień swoje hasła teraz. A jeśli jesteś na rynku menedżera haseł, który zapewni prywatne działanie online, dokonaliśmy szczegółowych informacji na temat wszystkich najlepszych opcji - żaden z nich nie ma problemu z powiązaniem generatorów liczb losowych z łatwym pękniętym algorytmem.