Ta strona jest automatycznie tłumaczona na wiele języków za pomocą oprogramowania stworzonego przez Kohei Koyanagi. Dla najwyższej dokładności zajrzyj do oryginału w angielskim .

Jak chronimy Twoje hasła

Splync nigdy nie przechowuje Twojego hasła w postaci otwartego tekstu

W poprzednich artykułach omówiliśmy, jak HTTPS chroni trasę między Twoją aplikacją a naszym serwerem, a także jak SSH zabezpiecza sam serwer. Teraz czas zajrzeć do wnętrza serwera — jak Splync chroni Twoje hasło, gdy już tam dotrze. Gdyby ktoś uzyskał Twoje hasło, mógłby zalogować się na Twoje konto i uzyskać dostęp do poufnych informacji, w tym do rejestrów wydatków. Dlatego Splync nigdy nie przechowuje haseł w postaci otwartego tekstu. Zamiast tego każde hasło jest przekształcane w jego zhaszowaną wersję przed zapisaniem w bazie danych. Co to dokładnie znaczy? Hashowanie to jednokierunkowa konwersja — po przekształceniu nie można już powrócić do oryginalnego hasła. Ta metoda jest standardem w Internecie, od banków po główne usługi w chmurze, a jednak wiele osób nie wie, jak to faktycznie działa. Zbadajmy to poprzez prostą codzienną analogię.

Podstawy hashowania: blender, który zawsze miesza tak samo

Aby zrozumieć, jak działa ochrona hasła, zacznijmy od prostego sposobu hashowania zwanego SHA-256. Wyobraź sobie blender, który zawsze miesza składniki dokładnie w ten sam sposób. Jeśli włożysz do blendera to samo hasło i naciśniesz przycisk, zawsze otrzymasz ten sam unikalny koktajl — mieszankę liter i cyfr. Kluczowa idea jest taka, że procesu nie da się odwrócić. Tak jak nie możesz wziąć koktajlu i oddzielić go z powrotem na oryginalne banany i mleko, nie możesz wziąć zhaszowanego ciągu i odzyskać oryginalnego hasła.

Przykład SHA-256: jak weryfikować hasła bez ich znajomości

SHA-256 to jeden z najczęściej stosowanych algorytmów hashowania. Na przykład, hasło "splync1234" jest haszowane do “9cdafa20d069ecfb202e5f0bc937c73071cc6cd85634cc2d95d30ddcf2a71d41”. W milisekundach, za każdym razem, gdy istniejący użytkownik wprowadza hasło do logowania, SHA-256 zawsze tworzy to samo zhaszowane hasło. Aplikacja po prostu ponownie haszuje wprowadzone hasło i sprawdza, czy pasuje ono do przechowywanego hasha. System nigdy nie zna oryginalnego hasła użytkownika. Ale co, jeśli atakujący wcześniej przygotuje listę popularnych haseł i ich haszy (znaną jako atak tablicy tęczy), aby szybko odgadnąć hasła użytkowników? To bardzo realny problem. Dlatego nowoczesne systemy, w tym Splync, nie opierają się na zwykłym SHA-256.

Splync haszuje hasła za pomocą bcrypt — silniejszego niż SHA-256

Bcrypt używa losowego solenia dla każdego użytkownika i koduje to solenie (oraz koszt) bezpośrednio w przechowywanym ciągu haszującym. Pomyśl o bcrypt jak o blenderze z tajemniczą przyprawą (solenie) i wolnym silnikiem (współczynnik pracy) — każdy miks jest unikalny i trudniejszy do skopiowania. Ponieważ solenie ma 128 bitów (≈3×10³⁸ możliwości), to samo hasło może być przypisane do astronomicznie dużej liczby różnych przechowywanych haszy. To sprawia, że wcześniej obliczone tablice tęczy są bezużyteczne na dużą skalę. Podczas logowania Splync odczytuje solenie i koszt zapisane w ciągu bcrypt, ponownie uruchamia bcrypt na wprowadzonym haśle z tymi parametrami i porównuje wynik z przechowywanym hashem. Jeśli się zgadzają, hasło jest poprawne – ale ponieważ bcrypt jest celowo wolny, a solenia są unikalne, ataki siłowe stają się znacznie bardziej kosztowne dla atakującego.

Prosty przykład z bcrypt

Zobaczmy, jak to wygląda w praktyce. Jeśli zhaszujesz hasło "splync1234" za pomocą bcrypt (przy koszcie 12), możesz uzyskać ciąg taki jak: `$2b$12$gBeouKYdue9uvvuV0HtGgeVPymnrojMqP/wcRw28HFlGEGIQbyw7O`. W tym ciągu bcrypt, `$2b` oznacza wersję algorytmu, `$12` pokazuje współczynnik kosztu (ile razy hasło jest przetwarzane), `gBeouKYdue9uvvuV0HtGgeV` jest unikalnym losowym soleniem, a `PymnrojMqP/wcRw28HFlGEGIQbyw7O` to ostateczne zhaszowane hasło. Ponieważ hash sam w sobie zawiera solenie i koszt, Splync może odtworzyć ten sam proces hashowania do weryfikacji, wyodrębniając te wartości z przechowywanego ciągu i porównując wynik. Z drugiej strony, jeśli atakujący nie zna solenia i kosztu, nie mogą stworzyć jednej tablicy tęczy, która działa dla każdego użytkownika.

Zhaszowane hasła oferują podwójną ochronę

Podejście to ma jeszcze jedną ważną zaletę. Ponieważ Splync nigdy nie przechowuje otwartych haseł, nawet jeśli baza danych zostanie wyciekła lub skradziona, użytkownicy nie są od razu zagrożeni. Atakujący nie mogą zalogować się bezpośrednio z użyciem skradzionych danych, ponieważ mają tylko zaszyfrowane ciągi. Ten projekt daje użytkownikom dodatkową warstwę ochrony, obok środków bezpieczeństwa już istniejących wokół samego serwera. Hashowanie haseł nie jest unikatowe dla Splync; jest to standard w branży technologicznej, stosowany przez gigantów takich jak Google, Apple i Amazon. Splync został zbudowany bardzo bezpiecznie i będzie coraz bezpieczniejszy, gdy będziemy nadal poprawiać bezpieczeństwo poprzez funkcje takie jak weryfikacja e-mail, ochrona przed atakami siłowymi i stały monitoring.