17Aug

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

Wprowadź hasło

"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?

Rzeczywistość jest taka, że ​​baza danych narusza bazę danych , niezależnie od tego, jak firma może próbować ją 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 należy przechowywać 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.

funkcja kryptograficzno-hash

Aby ustalić rzeczywiste hasło, osoba atakująca, która ma dostęp do bazy danych, musiałaby wstępnie wyliczyć hashy dla wspólnych 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żytkownikamiał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.

Bad Password Practice

baza danych tekstowych z hasłami

To nie jest najtrudniejsza rzecz do wdrożenia, ale wiele stron internetowychnadal udaje mu się 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, decydując się nie używać 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.
  • Korzystanie z 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 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 występuje również 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 korzysta z 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 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 również prawdopodobnie wyciekają 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 kradnie się jej bazę 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ę "zhakowane".

generuj losowe hasło

Jeśli usługa zostanie naruszona, pamiętaj, aby zmienić hasło, którego tam używasz. Powinieneś także 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 nauczy się Twojego hasła.

ARTYKUŁY ZWIĄZANE Z
Dlaczego warto używać Menedżera haseł i jak rozpocząć
Co to jest uwierzytelnianie dwufunkcyjne i dlaczego go potrzebuję?

Najważniejszą rzeczą nie jest ponowne 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