If-Koubou

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

Dlaczego powinieneś się martwić Za każdym razem, gdy baza danych haseł serwisu zostanie przecieka (Jak)

"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 bazy 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 w celu zalogowania 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 mająca dostęp do bazy danych będzie musiała wstępnie obliczyć hasze dla popularnych haseł, a następnie sprawdzić, czy istnieją w bazie danych. Atakujący robią to za pomocą 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 któreś 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 na początku lub na końcu 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 wartości skrótu ze względu na różne wartości soli. To pokonałoby atakującego, który próbował wstępnie obliczać hashe dla haseł. Zamiast generować skróty, które były stosowane do każdego konta użytkownika w całej bazie danych jednocześnie, musiałyby generować unikalne skróty 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 hasła. Jeśli po prostu mówią, że hasła są "haszowane", to jest bardziej niepokojące. LinkedIn ma na przykład 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.

Praktyki złych 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: 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 ta sama sól była używana dla każdego użytkownika, dwóch użytkowników o tym samym haśle miałoby 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 zawierających 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 opowiedzą 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 to dla ciebie i chce złamać twoje hasło, może to zrobić z brutalną siłą, o ile znają wartość soli - co prawdopodobnie robią. Dzięki lokalnemu i offline dostępowi do baz danych haseł, napastnicy 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ć?

Niezależnie od tego, co mówi serwis, gdy kradziona jest jego baza haseł, najlepiej jest założyć, że każda usługa jest całkowicie niekompetentna i działać zgodnie z nią.

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, 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ś również rozważyć zastosowanie uwierzytelniania dwuskładnikowego, które ochroni Cię, nawet jeśli atakujący dowie się o Twoim haśle.

Najważniejszą rzeczą jest nie używanie haseł. Skompromowane bazy danych 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, jak numer karty kredytowej.

Image Credit: Marc Falardeau na Flickr, Wikimedia Commons