Poradnik bezpieczeństwa
Czym jest Web Crypto API?
Dowiedz się, jak Web Crypto API wspomaga generowanie losowych haseł w przeglądarce i czym różni się od zwykłej losowości JavaScript.
Podsumowanie
Web Crypto API to standard przeglądarkowy dla operacji kryptograficznych. Dla generowania haseł najważniejszą funkcją jest crypto.getRandomValues(), która udostępnia stronom internetowym kryptograficznie silne wartości losowe, odpowiednie do wybierania znaków hasła.
Dlaczego to ma znaczenie dla haseł
Hasła wymagają nieprzewidywalności. Zwykła losowość JavaScript nie została zaprojektowana dla tajemnic. Web Crypto istnieje, aby przeglądarki mogły udostępniać bezpieczniejsze prymitywy kryptograficzne przez standardowe API. PwdGen używa tego API do ograniczonego losowego wyboru i unika Math.random() do generowania haseł.
Granica systemu operacyjnego
Web Crypto nie oznacza, że strona kontroluje bezpośrednio źródło entropii sprzętowej. Przeglądarki zazwyczaj polegają na systemie operacyjnym i platformowym dostawcy kryptograficznym. Staranna metodologia powinna stwierdzać, że Web Crypto dostarcza wyniki CSPRNG, a nie że każde wywołanie odczytuje fizyczny szum z CPU.
Jak PwdGen tego używa
PwdGen pobiera 32-bitowe losowe liczby całkowite, stosuje próbkowanie z odrzucaniem, aby uniknąć błędu modulo, mapuje zaakceptowane wartości na indeksy znaków i tasuje wymagane klasy znaków. Dzięki temu implementacja pozostaje mała i łatwa do audytu.
Szczegółowe wskazówki
Ten przewodnik koncentruje się na zrozumieniu Web Crypto API jako prymitywu bezpieczeństwa przeglądarki. Jest napisany dla użytkowników i programistów, którzy chcą wiedzieć, dlaczego losowość przeglądarki ma znaczenie, więc praktycznym celem nie jest tworzenie dramatycznego twierdzenia o bezpieczeństwie. Celem jest wybór nawyku dotyczącego haseł, który przetrwa codzienne użytkowanie: formularze logowania, menedżery haseł, klawiatury mobilne, odzyskiwanie konta, współdzielone urządzenia i okazjonalne usługi z dziwnymi regułami walidacji. Bezpieczne zalecenie jest użyteczne tylko wtedy, gdy prawdziwa osoba może go konsekwentnie przestrzegać.
Najbezpieczniejszym punktem wyjścia jest losowość plus unikalność. Losowość oznacza, że wartość jest wybrana z dużej przestrzeni przez kryptograficznie odpowiednie źródło losowe, a nie wymyślona z daty urodzenia, imienia zwierzaka, wzoru klawiatury czy ulubionego cytatu. Unikalność oznacza, że to samo hasło nie jest używane nigdzie indziej. Hasło, które jest długie, ale używane wielokrotnie, może szybko zawieść po jednym niezwiązanym wycieku, podczas gdy unikalne losowe hasło ogranicza szkody do pojedynczego konta, na którym zostało użyte.
Dla tego tematu praktycznym ustawieniem jest nowoczesny Chrome, Edge, Safari i Firefox z dostępnym crypto.getRandomValues. Możesz zastosować to ustawienie za pomocą strony wsparcia przeglądarek, a następnie przechować końcową wartość w zaufanym menedżerze haseł. PwdGen generuje wartości lokalnie w przeglądarce z użyciem Web Crypto; wygenerowane hasło nie jest wysyłane na serwer PwdGen. Ta lokalna konstrukcja zmniejsza ekspozycję po stronie serwera, ale nie chroni przed każdym zagrożeniem. Złośliwe rozszerzenie przeglądarki, zainfekowane urządzenie, strona phishingowa lub niebezpieczne zarządzanie schowkiem mogą nadal ujawnić tajemnicę po jej wygenerowaniu.
Najczęstsze problemy, których należy unikać, to stare przeglądarki, niebezpieczne konteksty, polyfill’e, które po cichu używają Math.random, oraz mylenie kodowania z szyfrowaniem. Te problemy mają znaczenie, ponieważ atakujący rzadko muszą brute-force’ować każde możliwe hasło, gdy ludzkie nawyki dają im skrót. Credential stuffing, phishing, wyciekłe listy haseł i nadużycia odzyskiwania konta są często bardziej realistyczne niż czyste matematyczne przeszukiwanie. Dlatego najlepsza rada łączy jakość hasła z kontrolami na poziomie konta, takimi jak MFA, klucze dostępu, przechowywanie kodów odzyskiwania i regularny przegląd ustawień e-maila lub telefonu do odzyskiwania.
Skorzystaj z tej listy kontrolnej podczas stosowania zaleceń:
- Używaj nowoczesnej przeglądarki.
- Unikaj narzędzi, które implementują własne źródło losowe.
- Zrozum, że Web Crypto nie naprawia złośliwego oprogramowania.
- Przeczytaj metodologię przed zaufaniem generatorowi.
Jeśli strona internetowa odrzuca idealne ustawienie, nie zmuszaj hasła ręcznie do słabszego wzorca. Zmieniaj jedną zmienną na raz. Jeśli symbole są odrzucane, pozostaw włączone wielkie litery, małe litery i cyfry oraz zwiększ długość. Jeśli maksymalna długość jest niska, użyj największej akceptowanej długości i upewnij się, że wartość jest unikalna. Jeśli hasło musi być odczytane na głos, wydrukowane lub wpisane na ekranie telewizora lub routera, rozważ wykluczenie mylących znaków i zwiększenie długości, aby zrekompensować mniejszy alfabet.
Na koniec pamiętaj o granicach porad dotyczących haseł. Silne hasło to jedna warstwa obrony, a nie gwarancja. Nie może uczynić strony phishingowej bezpieczną, naprawić złośliwego oprogramowania ani zrekompensować usługi, która źle przechowuje dane uwierzytelniające. Użyteczny nawyk jest nudny, ale trwały: wygeneruj unikalną wartość, przechowaj ją bezpiecznie, chroń ścieżkę odzyskiwania i szybko ją wymień, jeśli podejrzewasz ujawnienie.
Bezpieczny następny krok
Po przeczytaniu tego przewodnika wykonaj jeden mały audyt konta zamiast próbować naprawić wszystko naraz. Wybierz konto, które spowodowałoby najwięcej problemów, gdyby zostało przejęte, potwierdź, że jego hasło jest unikalne, i sprawdź e-mail do odzyskiwania, telefon do odzyskiwania, metodę MFA i przechowywanie kodów zapasowych. Jeśli jakakolwiek część tego łańcucha jest słaba, popraw tę część przed przejściem do kont o niższym ryzyku. Ta kolejność utrzymuje pracę w zarządzalnych ramach i chroni konta, które atakujący najprawdopodobniej wykorzystają jako odskocznię. Dla pytania „czym jest web crypto api?” najlepszym rezultatem jest powtarzalny nawyk: generuj lokalnie, przechowuj ostrożnie i unikaj ponownego użycia.
Często zadawane pytania
Której części Web Crypto używa PwdGen?
PwdGen używa crypto.getRandomValues() do pobierania kryptograficznie silnych wartości losowych z przeglądarki.
Czy Web Crypto oznacza, że każdy bajt pochodzi bezpośrednio ze sprzętu?
Nie. Przeglądarki zazwyczaj używają dostawców kryptograficznych systemu operacyjnego zasilanych wysokiej jakości entropią; przeglądarka i system operacyjny wybierają implementację.
Czy Web Crypto jest dostępne we wszystkich przeglądarkach?
Jest dostępne w nowoczesnych przeglądarkach. Jeśli go brakuje, PwdGen wyłącza generowanie zamiast przechodzić na niebezpieczną losowość.