Główna » jak » Dlaczego powinieneś się martwić Za każdym razem, gdy baza danych haseł usługi zostanie przecieka

    Dlaczego powinieneś się martwić Za każdym razem, gdy baza danych haseł usługi zostanie przecieka

    "Nasza baza danych haseł została skradziona wczoraj. Ale nie martw się: twoje hasła zostały zaszyfrowane. "Regularnie widzimy takie oświadczenia, takie jak ten, online, w tym wczoraj, z Yahoo. Ale czy naprawdę powinniśmy wziąć te zapewnienia w wartości nominalnej??

    W rzeczywistości kompromituje bazę danych haseł niepokój, niezależnie od tego, jak firma może próbować go obrócić. Ale jest kilka rzeczy, które możesz zrobić, aby się odizolować, bez względu na to, jak złe są praktyki bezpieczeństwa firmy.

    Jak powinny być przechowywane hasła

    Oto, jak firmy powinny przechowywać hasła w idealnym świecie: Tworzysz konto i podajesz hasło. Zamiast zapisywać hasło, usługa generuje "hash" z hasła. Jest to unikalny odcisk palca, którego nie można cofnąć. Na przykład hasło "hasło" może zmienić się w coś, co bardziej przypomina "4jfh75to4sud7gh93247g ...". Po wprowadzeniu hasła do logowania usługa generuje skrót i sprawdza, czy wartość skrótu jest zgodna z wartością przechowywaną w bazie danych. W żadnym momencie usługa nigdy nie zapisuje hasła na dysku.

    Aby ustalić rzeczywiste hasło, osoba atakująca, która ma dostęp do bazy danych, musiałaby wstępnie wyliczyć skróty dla zwykłych haseł, a następnie sprawdzić, czy istnieją w bazie danych. Atakujący robią to przy pomocy tablic odnośników - ogromnych list skrótów pasujących do haseł. Skorupy można następnie porównać z bazą danych. Na przykład osoba atakująca będzie znała skrót hasła "hasło1", a następnie sprawdzi, czy konta w bazie danych używają tego skrótu. Jeśli tak, atakujący wie, że ich hasło to "password1".

    Aby temu zapobiec, usługi powinny "solić" swoje skróty. Zamiast tworzenia skrótu z samego hasła, dodają losowy ciąg do przodu lub do końca hasła przed wprowadzeniem skrótu. Innymi słowy, użytkownik wprowadziłby hasło "hasło", a usługa dodałaby sól i hash hasło, które wygląda bardziej jak "password35s2dg". Każde konto użytkownika powinno mieć własną unikalną sól, co zapewniłoby, że każde konto użytkownika miałaby inną wartość hash dla swojego hasła w bazie danych. Nawet jeśli wiele kont użyje hasła "password1", będą one miały różne hashe ze względu na różne wartości soli. To pokonałoby atakującego, który próbowałby wstępnie obliczyć hashe dla haseł. Zamiast generowania skrótów stosowanych do każdego konta użytkownika w całej bazie danych naraz, będą musiały wygenerować unikalne hashe dla każdego konta użytkownika i jego unikalnej soli. Zajmie to znacznie więcej czasu obliczeniowego i pamięci.

    Dlatego usługi często mówią, że się nie martwią. Usługa korzystająca z odpowiednich procedur bezpieczeństwa powinna powiedzieć, że używała solonych skrótów haseł. Jeśli po prostu mówią, że hasła są "haszowane", to jest bardziej niepokojące. Na przykład LinkedIn hakował swoje hasła, ale ich nie solili - więc było to wielka sprawa, gdy LinkedIn stracił 6,5 miliona zaszyfrowanych haseł w 2012 roku.

    Złe praktyki dotyczące haseł

    Nie jest to najtrudniejsza rzecz do wdrożenia, ale wiele stron internetowych wciąż potrafi to zepsuć na wiele sposobów:

    • Przechowywanie haseł w zwykłym tekście: Zamiast kłopotać się hashowaniem, niektórzy z najgorszych przestępców mogą po prostu zrzucić hasła w postaci zwykłego tekstu do bazy danych. Jeśli taka baza danych zostanie naruszona, twoje hasła są oczywiście zagrożone. Nie ma znaczenia, jak silni byli.
    • Hashowanie haseł bez solenia ich: Niektóre usługi mogą mieszać hasła i rezygnować z nich, rezygnując z używania soli. Takie bazy danych haseł będą bardzo podatne na tablice przeglądowe. Osoba atakująca może wygenerować hashe dla wielu haseł, a następnie sprawdzić, czy istniały w bazie danych - mogą to zrobić dla każdego konta naraz, jeśli nie użyto żadnej soli.
    • Ponowne użycie soli: Niektóre usługi mogą korzystać z soli, ale mogą ponownie użyć tej samej soli dla każdego hasła konta użytkownika. Nie ma to sensu - gdyby dla każdego użytkownika była używana ta sama sól, dwaj użytkownicy o tym samym haśle mieliby ten sam skrót.
    • Używanie krótkich soli: Jeśli użyto soli o zaledwie kilku cyfrach, możliwe byłoby wygenerowanie tablic przeglądowych, które obejmowałyby każdą możliwą sól. Na przykład, jeśli jedna cyfra została użyta jako sól, atakujący mógłby łatwo wygenerować listę skrótów, które zawierałyby każdą możliwą sól.

    Firmy nie zawsze powiedzą ci całą historię, więc nawet jeśli powiedzą, że hasło zostało zaszyfrowane (lub zahartowane i zasolone), mogą nie używać najlepszych praktyk. Zawsze bój się zachować ostrożność.

    Inne obawy

    Prawdopodobnie wartość soli jest również obecna w bazie danych haseł. To nie jest takie złe - jeśli dla każdego użytkownika zastosowano unikalną wartość soli, napastnicy będą musieli wydać ogromne ilości mocy CPU łamiąc wszystkie te hasła.

    W praktyce tak wiele osób używa oczywistych haseł, że łatwo byłoby określić wiele haseł kont użytkowników. Na przykład, jeśli atakujący zna twój hasz i zna twoją sól, może łatwo sprawdzić, czy używasz najpowszechniejszych haseł.

    Jeśli atakujący ma dla ciebie i chce złamać twoje hasło, może to zrobić z brutalną siłą, o ile zna wartość soli - co prawdopodobnie robią. Dzięki lokalnemu i offline dostępowi do baz danych haseł, atakujący mogą wykorzystywać wszystkie ataki z użyciem siły fizycznej.

    Inne dane osobowe prawdopodobnie wyciekają również po kradzieży bazy danych haseł: nazwy użytkowników, adresy e-mail i inne. W przypadku wycieku Yahoo, wyciekły również pytania i odpowiedzi bezpieczeństwa, które, jak wszyscy wiemy, ułatwiają kradzież dostępu do czyjegoś konta.

    Pomoc, co powinienem zrobić?

    Bez względu na to, jaką usługę mówi się, gdy kradziona jest jej baza haseł, najlepiej jest założyć, że każda usługa jest całkowicie niekompetentna i odpowiednio działać.

    Po pierwsze, nie używaj ponownie haseł w wielu witrynach. Użyj menedżera haseł, który generuje unikalne hasła dla każdej witryny. Jeśli atakującemu udaje się odkryć, że twoje hasło do usługi to "43 ^ tSd% 7uho2 # 3" i używasz tego hasła tylko na tej konkretnej stronie internetowej, nie nauczyły się niczego użytecznego. Jeśli użyjesz tego samego hasła wszędzie, mogą uzyskać dostęp do innych kont. W ten sposób konta wielu osób stają się "zhackowane".

    Jeśli usługa zostanie naruszona, pamiętaj, aby zmienić hasło, którego tam używasz. Powinieneś również zmienić hasło w innych witrynach, jeśli będziesz tam ponownie używał - ale nie powinieneś tego robić w pierwszej kolejności.

    Powinieneś także rozważyć zastosowanie uwierzytelniania dwuskładnikowego, które ochroni Cię, nawet jeśli atakujący dowie się o Twoim haśle.

    Najważniejszą rzeczą nie jest ponowne używanie haseł. Skompromowane bazy haseł nie mogą cię skrzywdzić, jeśli użyjesz unikatowego hasła wszędzie - o ile nie przechowują w bazie danych czegoś innego ważnego, np. Numeru karty kredytowej.

    Image Credit: Marc Falardeau na Flickr, Wikimedia Commons