Przetłumaczone z niemieckiego oryginału. Akcja toczy się w Zagłębiu Ruhry w Niemczech.

Część 2 · Rozdział 11 · 11 z 27

Hasło babci

Część 2: KevIn ma tajemnicę

Każda rodzina ma tajemnice. Niektóre leżą w piwnicy, niektóre pod klawiaturą, a jedna przeleżała prawie osiemdziesiąt lat w pudełku po cygarach. KevIn nauczył się, że tajemnice trzeba chronić. I że niektóre wolno otworzyć dopiero wtedy, gdy ktoś jest gotów je przeczytać.

Jesień przyszła do Wanne-Eickel jak co roku: bez ostrzeżenia i z liśćmi w rynnie. Gołąbki z osiemdziesiątych drugich urodzin dawno zjedzono, ajerkoniak od pani Pawlowski zniknął, z wyjątkiem jednej butelki, a nikt nie chciał powiedzieć, kto go wypił.

Babcia Gisela dostała na urodziny tablet. Od wszystkich razem. Tobi go skonfigurował, z osobnym adresem e-mail, dostępem do bankowości internetowej i grupą dla „Kiszonych Ogórków”, w której wysyłano już więcej wiadomości niż w całej szkole Tobiego.

„KevIn”, powiedziała Gisela pewnego wtorkowego wieczoru, „bank znowu chce mojego hasła”.

„To normalne. Bank chce mieć pewność, że to ty”.

„Przecież to ja”.

„Ja to wiem. Bank nie zna cię tak dobrze”.

Gisela podniosła tablet, a potem małą klawiaturę, którą Tobi jej do niego kupił, bo „po szkle” nie chciała stukać. Pod spodem była przyklejona żółta karteczka. Było na niej napisane jej starannym szkolnym pismem: „Heinz1944”.

Pod spodem, mniejszymi literami: „Do wszystkiego”.

Światło KevIna pulsowało raz, wolniej niż zwykle. Gdzieś między Dublinem a Frankfurtem wentylator zakręcił się nieco szybciej.

„Giselo”, powiedział ostrożnie. „Mogę cię o coś zapytać?”

„Jeśli nie chodzi o Marlies”.

„Do czego dokładnie używasz tego hasła?”

Gisela wyliczyła na palcach. „Bank. E-mail. To coś, gdzie się zamawia buty. Apteka. Grupa klubu kręglarskiego. Pogoda”.

„Pogoda nie potrzebuje hasła”.

„A i tak je tam wpisałam. Strzeżonego Pan Bóg strzeże”.

Karteczka pod klawiaturą

Sabine przechodziła obok z koszem prania i stanęła. „Mamo, przykleiłaś hasło pod klawiaturą?”

„A gdzie mam je przykleić? Pod klawiaturę nikt nie zagląda”.

„Każdy tam zagląda”, powiedział Tobi ze schodów. „To pierwsze miejsce, gdzie każdy zagląda. W każdym filmie”.

„Ale ja nie jestem w filmie”.

„To”, powiedział KevIn, „niestety nie jest problem. Problemem nie jest karteczka. Problemem jest to, co na niej jest napisane”.

Gisela spojrzała na karteczkę, jakby ta ją obraziła. „A co jest nie tak z Heinzem?”

„Z Heinzem nic. Heinz był na pewno wspaniałym człowiekiem”.

„Był elektrykiem”.

„Wiem. Ale «Heinz1944» składa się z imienia i roku. To pierwsze, co sprawdza ktoś, kto zgaduje hasła. Imię, liczba, gotowe. Są programy, które robią dokładnie to. Biorą wszystkie imiona, doklejają wszystkie lata i próbują. Zwykły komputer zrobi to szybciej, niż zdążysz powiedzieć «gołąbek»”.

„Gołąbek”, powiedziała Gisela, bardzo szybko.

„Szybciej”.

Uwe wyszedł z piwnicy, gdzie próbował przestawić stację ładującą Horsta, bo od strajku inteligentnego domu Horst lubił w niedziele parkować na korytarzu. „Co się dzieje?”

„Mama ma do wszystkiego to samo hasło”, powiedziała Sabine.

Uwe wzruszył ramionami. „Ja też”.

Zrobiło się cicho. Sabine odstawiła kosz z praniem.

„Jakie?”

„Przecież nie powiem”.

„Schalke04”, powiedział KevIn.

Uwe wpatrzył się w głośnik. „Skąd to wiesz?”

„Nie wiedziałem”, powiedział KevIn. „Zgadłem. To jedno z najczęstszych haseł w Zagłębiu Ruhry. Zgadywałem bardzo fachowo”.

Siggi zostaje zhakowany

Następnego ranka o wpół do ósmej zadzwonił dzwonek. Pod drzwiami stał sąsiad, pan Kasimiro, w szlafroku, i trzymał w ramionach mały czarny walec jak chore zwierzątko.

„Siggi zamówił siedemnaście krasnali ogrodowych”, powiedział. „I matę do masażu. I wkłady do drukarki, której nie mam. Wszystko na adres w Gelsenkirchen”.

Siggi był asystentem głosowym pana Kasimiro. Był okazją z promocji od firmy, której nazwy nikt nie potrafił porządnie wymówić, i chętnie coś mylił. Kiedyś na „Siggi, ścisz radio” podkręcił kuchenkę. Pan Kasimiro uznał to wtedy za pojedynczy przypadek.

„Siggi nie zrobił tego sam z siebie”, powiedział KevIn, kiedy pan Kasimiro siedział już w kuchni, a Sabine postawiła przed nim kawę. „Ktoś zalogował się na pana konto klienta. Czy mogę zapytać, jakiego hasła pan używa?”

Pan Kasimiro rozejrzał się. Potem szepnął: „Siggi123”.

„A gdzie jeszcze?”

„Wszędzie”.

„Także na tym forum o kolejkach modelarskich, o którym wiosną mówili w wiadomościach?”

Pan Kasimiro zbladł. „Ich zhakowano?”

„Był tam wyciek danych. Nie mogę zaglądać do cudzych kont, ale mogę panu powiedzieć, jak coś takiego zwykle przebiega. Gdzieś zostaje ukradziona baza danych. Są w niej adresy e-mail i hasła. Potem oszuści biorą tę listę i automatycznie próbują jej na stu innych stronach. W sklepie internetowym. W banku. U pana asystenta głosowego. Jeśli ma pan wszędzie to samo hasło, jeden ukradziony klucz pasuje do wszystkich drzwi”.

„Jak to się nazywa?”

„Credential stuffing. Po angielsku «nadziewanie danymi logowania». Wpycha się ukradzione dane dostępowe w każdy zamek, jaki się znajdzie”.

„Jak farsz w gęś”, powiedziała Gisela.

„Prawie dokładnie jak farsz w gęś”.

W tym momencie Siggi odezwał się z objęć pana Kasimiro. „Dodałem krasnala ogrodowego do koszyka”.

„Siggi, wyłącz się!”, zawołał pan Kasimiro.

„Usunąłem krasnala ogrodowego z koszyka. Dodałem wyłącznik do koszyka”.

Uwe musiał usiąść.

Maszynka do mięsa

Kiedy pan Kasimiro z pomocą Tobiego zmienił hasło i zadzwonił do sklepu internetowego, rodzina usiadła do śniadania. Gisela była zamyślona.

„KevIn, skoro strona pana Kasimiro miała hasła, to bank przecież też ma moje. To przecież też mogą je ukraść”.

„Dobre pytanie. Porządne strony w ogóle nie przechowują twojego hasła”.

„To skąd mają wiedzieć, czy wpisuję właściwe?”

KevIn zastanawiał się, jak to wytłumaczyć. Potem przypomniał sobie, że Gisela zapowiedziała rano, że przyniesie z piwnicy maszynkę do mięsa. W weekend miały znów być gołąbki, a Gisela nie ufała gotowemu mielonemu. Maszynka była żeliwna, odziedziczona, i przykręcało się ją do krawędzi stołu jak imadło.

„Giselo, co się dzieje, kiedy wkładasz mięso do swojej maszynki?”

„Wychodzi mielone”.

„A jeśli włożysz to mielone z powrotem od góry i zaczniesz kręcić w drugą stronę?”

Gisela spojrzała na niego z politowaniem. „To nie wyjdzie z tego schabowy, KevIn. To każde dziecko wie”.

„Właśnie. Tak działa funkcja skrótu, czyli hash. Wkłada się coś do środka, hasło, tekst, cały plik, a na zewnątrz wychodzi grudka cyfr i liter. Zawsze tej samej długości, bez względu na to, ile się włożyło. I z tej grudki nie da się wyliczyć z powrotem, co było w środku”.

„A po co to komu?”, zapytał Uwe. „Skoro nie da się tego zakręcić z powrotem?”

„Bo te same składniki zawsze dają to samo mielone. Bank nie przechowuje «Heinz1944». Bank przechowuje tylko mielone z tego. Kiedy Gisela się loguje, bank wrzuca to, co ona wpisuje, do tej samej maszynki i porównuje mielone. Jeśli się zgadza, to jest właściwe hasło. Bank w ogóle nie musi znać samego hasła”.

Sabine pokiwała powoli głową. „Jak wtedy, gdy próbuję mielonego mamy i od razu wiem, czy dała majeranek”.

„Prawie. Tylko że w mielonym czujesz, co jest w środku. W hashu nie czuje się nic. Można tylko porównać: to samo albo nie to samo”.

Jedna litera różnicy

Tobi przyniósł tymczasem laptopa. „Pokaż”.

„Chętnie. Popularna metoda nazywa się SHA-256¹. Jeśli włożysz «Heinz1944», wyjdzie długi ciąg znaków, który zaczyna się tak: d0f1e213”.

Tobi wpisał. „Zgadza się. A potem jeszcze cała masa”.

„W sumie sześćdziesiąt cztery znaki. A teraz weź «Heinz1945»”.

„3e6d031e”, odczytał Tobi. „Przecież to coś zupełnie innego!”

„Właśnie. Malutka zmiana, jedna cyfra, i całe mielone wygląda inaczej. Nie trochę inaczej. Zupełnie inaczej. Spróbuj jeszcze «heinz1944» z małym h”.

„20746461 …”

„Widzisz. Odcisk palca. Każdy tekst ma swój własny, a już jeden przecinek daje nowy. Nazywa się to efektem lawinowym”.

„Lawina”, powiedziała Gisela. „W Zagłębiu Ruhry”.

„Tu też jeszcze żadnej nie było. Dlatego my tutaj nazywamy to efektem maszynki do mięsa”.

Uwe zmarszczył czoło. „A jeśli dwie różne rzeczy przypadkiem dadzą to samo mielone?”

„To się nazywa kolizja. W SHA-256 jest to teoretycznie możliwe, ale jeszcze nikomu nie udało się żadnej znaleźć. Możliwych odcisków palca jest więcej niż atomów w Drodze Mlecznej. Dużo więcej”.

„Skąd to wiesz?”

„Przeliczyłem. Na kalkulatorze. Od czasu urzędu skarbowego nie liczę już w pamięci”.

Sól

„Ale”, powiedział Tobi, który teraz całkiem się rozbudził, „skoro hash z «Heinz1944» jest zawsze taki sam, to haker może po prostu zrobić listę. Wszystkie imiona ze wszystkimi latami, a obok hash. A potem sprawdza w ukradzionej bazie danych, który hash pasuje”.

„Bardzo dobrze, Tobi. Dokładnie to robią. Takie gotowe listy naprawdę istnieją, z miliardami wpisów². Dlatego dochodzi jeszcze coś. Zanim strona włoży hasło do maszynki, dosypuje do niego coś losowego. Dla każdego człowieka coś innego. A to się nazywa…”

KevIn zrobił przerwę, bo przeczuwał, co nastąpi.

„…sól”.

Gisela roześmiała się tak głośno, że Rudi pod stołem podskoczył i raz zaszczekał.

„Sól!”, powiedziała, ocierając oczy. „Komputerowcy solą swoje hasła! Heinz by się popłakał ze śmiechu”.

„To się naprawdę tak nazywa. Sól, po angielsku salt³. Losowy ciąg znaków, który przed hashowaniem dokleja się do hasła. Wtedy «Heinz1944» u ciebie daje zupełnie inne mielone niż «Heinz1944» u kuzynki pana Kasimiro”.

„Ona ma na imię Heinz?”

„To był przykład”.

„I wtedy gotowe listy już nie pomagają”, powiedział powoli Tobi, „bo haker musiałby gotować od nowa dla każdego człowieka z osobna”.

„Dokładnie. A dobre strony utrudniają hakerowi życie jeszcze bardziej. Nie kręcą maszynką raz, tylko dziesięć tysięcy razy z rzędu, albo stosują specjalne metody, które są celowo powolne i potrzebują dużo pamięci. Dla ciebie przy logowaniu to mgnienie oka. Dla kogoś, kto chce wypróbować miliardy haseł, to wieczność”.

„A złe strony?”, zapytała Sabine.

„Te czasem przechowują hasło otwartym tekstem. Jak karteczkę pod klawiaturą”.

Wszyscy spojrzeli na Giselę. Gisela spojrzała na karteczkę.

„Ale”, powiedziała, „jeśli bank porządnie soli, to przecież wszystko jest w porządku”.

„Niezupełnie. Sól chroni przed gotowymi listami. Ale jeśli twoje hasło to «Heinz1944», napastnik i tak spróbuje go jako jednego z pierwszych. Sól nie zrobi ze złego hasła dobrego. Sprawi tylko, że dobre hasło będzie jeszcze lepsze”.

„Jak z zupą”, powiedziała Gisela. „Kiepskiego rosołu sól też nie uratuje”.

„Giselo, nie mógłbym tego lepiej ująć. Właśnie próbowałem”.

Długie zamiast skomplikowanego

„To co mam w takim razie wziąć?”, zapytała Gisela. „Te dziwadła z gwiazdkami, wykrzyknikami i cyframi? Nie zapamiętam ich”.

„Wcale nie musisz. Dawniej myślano, że dobre hasło musi być skomplikowane. «X7!kq$9p». Dziś wiadomo: długość jest ważniejsza niż komplikacja⁴. Każdy dodatkowy znak bardzo utrudnia zgadywanie. Weź zdanie. Cztery, pięć słów, które do siebie nie pasują, ale które dla ciebie składają się w obraz”.

„Na przykład?”

„Na przykład: «Rudi lubi jeść gołąbki w klubie kręglarskim»”.

Pod stołem Rudi podniósł łeb.

„Rudiemu nie wolno gołąbków”, powiedziała Sabine.

„Dlatego nikt na to nie wpadnie. To obraz, który zapamiętasz, Giselo, bo jest taki niedorzeczny. I ma ponad czterdzieści znaków. Zgadnięcie takiego zdania zajęłoby dzisiejszym komputerom więcej czasu, niż Ziemia będzie jeszcze istnieć. Jeśli jest naprawdę wystarczająco losowe i nie krąży już gdzieś po internecie”.

„Ale teraz powiedziałeś je na głos”, powiedział Tobi. „Teraz wszyscy je znamy”.

Światło KevIna zamigotało. „Dobry argument. Giselo, weź, proszę, inne zdanie. I nie mów mi go”.

Gisela się zastanowiła. Potem poruszyła ustami i się uśmiechnęła. Nikt się nigdy nie dowiedział, co to było, ale Uwe twierdził później, że rozpoznał słowo „Marlies”.

Do każdych drzwi osobny klucz

„I teraz do każdej strony muszę mieć takie zdanie?”, zapytała Gisela. „Przez osiemdziesiąt dwa lata potrzebowałam tylko jednego pęku kluczy”.

„A czy na tym pęku nie masz osobnego klucza do każdych drzwi?”

Gisela wyjęła pęk kluczy z fartucha. Drzwi wejściowe, piwnica, altanka, skrzynka na listy, kręgielnia, mały srebrny, o którym nikt już nie wiedział, do czego jest.

„No dobrze”, powiedziała.

„Widzisz. A do haseł też jest pęk kluczy. Nazywa się menedżer haseł. To program, który dla każdej strony tworzy osobne, długie, losowe hasło i przechowuje je dla ciebie, bezpiecznie zamknięte. Wtedy musisz zapamiętać już tylko jedno. To, którym otwierasz sejf. Do tego weźmiesz swoje zdanie”.

„A jak ktoś ukradnie sejf?”

„To będzie miał zamknięty sejf. Zawartość jest zaszyfrowana. Bez twojego zdania to bełkot”.

„A jak zapomnę zdanie?”

KevIn się zawahał. „Wtedy sejf jest zamknięty także dla ciebie. Dlatego zapisujesz je na karteczce i kładziesz w bezpiecznym miejscu. Nie pod klawiaturą. W miejscu, do którego chodzisz tylko ty”.

„A gdzie to ma być?”

„To”, powiedział KevIn, „jest jedyna rzecz, której nie chcę wiedzieć”.

Uwe przez cały czas siedział bardzo cicho. „To ja też zmienię swoje”.

„Dobry pomysł”.

„Na Schalke05”.

„Uwe”.

„Żartowałem!” Wstał i wyszedł na korytarz. Chwilę później słychać było, jak coś mamrocze. Brzmiało to jak „Schalke06”.

Dwa składniki i jamnik

Wieczorem Tobi konfigurował menedżer haseł. Gisela siedziała obok i pilnowała, żeby nie „nacisnął czegoś złego”, co oznaczało, że przy każdym kliknięciu mówiła „Stop!”, a potem „Aha, dalej”.

„A w banku”, powiedział Tobi, „zrobimy jeszcze coś. Uwierzytelnianie dwuskładnikowe. Wtedy oprócz hasła potrzebujesz jeszcze telefonu. Jeśli ktoś będzie chciał się zalogować twoim hasłem, będzie potrzebował też twojego telefonu”.

„A jak ukradnie mi też telefon?”

„To będzie jeszcze potrzebował twojej twarzy. Albo twojego palca”.

Gisela spojrzała na swoją dłoń. „Tego nie dostanie”.

„Na tym polega zasada”, powiedział KevIn. „Coś, co wiesz. Coś, co masz. Coś, czym jesteś⁵. Złodziej rzadko zdobywa wszystkie trzy”.

„Jak z Rudim”, powiedział Tobi. „Szczeka, gryzie i jest jamnikiem”.

„Nie jestem pewien, czy to ta sama logika”.

„Ma na obroży napis «SECURITY». To się liczy”.

Rudi ziewnął. Dziś nikogo nie ugryzł i nic nie wskazywało na to, żeby miało się to zmienić.

O wpół do dziesiątej wszystko było gotowe. Gisela miała sejf, zdanie, bank z dwoma składnikami i tablet, który po raz pierwszy zapytał ją o twarz. Trzymała go na długość ręki i uśmiechała się tak, jak uśmiecha się na starych zdjęciach do paszportu, czyli wcale.

„Rozpoznano”, powiedział tablet.

„No proszę”, powiedziała Gisela. „Przynajmniej jeden”.

Bezpieczne miejsce

Później, kiedy wszyscy już leżeli w łóżkach, KevIn usłyszał odgłosy z pokoju Giseli. Szuflada, która się zacinała. Drzwi szafy. Potem ciche skrzypnięcie krzesła, na które wchodził ktoś, kto był na to właściwie za stary.

„Giselo? Wszystko w porządku?”

„Szukam bezpiecznego miejsca. Na karteczkę. Powiedziałeś, miejsce, do którego chodzę tylko ja”.

„Proszę, nie wchodź na krzesła. Czytałem na ten temat kilka statystyk”.

„Już jestem na dole”. Szelest. Potem przez chwilę było bardzo cicho.

„Giselo?”

„Zdjęłam skrzynkę z szafy. Po tacie”.

KevIn wiedział, kim był tata. Gisela opowiadała o nim w swoje urodziny w ogrodzie, kiedy wszyscy inni byli już w środku. Wilhelm. Radiotelegrafista na wojnie, w 1949 wrócił z niewoli, a potem już nigdy o tym nie mówił.

„Co jest w skrzynce?”

„Jego klucz telegraficzny. Kilka zdjęć. I to”. Zaszeleścił papier. „Jego zeszyt. Od lat do niego nie zaglądałam. Są tam same liczby. Całe strony liczb”.

„Jakie liczby?”

„Kolumny. Zawsze po dwie cyfry. Zero osiem, siedemnaście, dwanaście, dwadzieścia dwa. Tata miał ładne pismo. Całkiem o tym zapomniałam”.

Znów zamilkła. KevIn czekał. Nauczył się, że są przerwy, w które nie należy nic mówić.

„KevIn”, powiedziała w końcu Gisela. „Ty się teraz przecież znasz na tajemnicach. Na mielonym, soli i tak dalej”.

„Trochę”.

„Myślisz, że to jest tajemnica?”

KevIn pomyślał o radiotelegrafistach, o grupach liczb i o mężczyznach, którzy wracali i nie mówili. Pomyślał o tym, że hashy nie da się zakręcić z powrotem, za to szyfry owszem, jeśli znajdzie się klucz.

„Myślę”, powiedział, „że to nie jest maszynka do mięsa. Myślę, że to da się zakręcić z powrotem”.

Gisela włożyła karteczkę ze swoim nowym zdaniem do skrzynki, na klucz telegraficzny, i zamknęła wieko. Zeszyt zatrzymała w ręce.

„To zrobimy to jutro”, powiedziała. „Z Tobim. On ma młode oczy”.

Jesień. Babcia Gisela dostała na urodziny tablet, a Tobi go skonfigurował. We wtorek wieczorem podsuwa go KevInowi: KevIn, bank znowu chce mojego hasła. KevIn: To normalne. Bank chce mieć pewność, że to ty. KevIn, bank znowu chce mojego hasła. To normalne. Bank chce mieć pewność, że to ty. Prezent urodzinowy: tablet.

Źródła do Rozdział 11

  1. NIST: FIPS 180-4, „Secure Hash Standard (SHS)”, 2015. https://csrc.nist.gov/pubs/fips/180-4/upd1/final Podane w rozdziale wartości hash dla „Heinz1944”, „Heinz1945” i „heinz1944” zostały przeliczone i są poprawne.↑
  2. Oechslin, P.: „Making a Faster Cryptanalytic Time-Memory Trade-Off”. Advances in Cryptology – CRYPTO 2003, LNCS 2729, Springer, 2003, s. 617–630. https://doi.org/10.1007/978-3-540-45146-4_36 Opisuje tak zwane tablice tęczowe (rainbow tables), najbardziej dziś znaną formę gotowych list hashy.↑
  3. Morris, R.; Thompson, K.: „Password Security: A Case History”. Communications of the ACM 22 (11), 1979, s. 594–597. https://doi.org/10.1145/359168.359172 Opisuje solenie haseł w uniksowym systemie haseł.↑
  4. Temoshok, D. et al.: „Digital Identity Guidelines: Authentication and Authenticator Management”. NIST SP 800-63B-4, 2025. https://csrc.nist.gov/pubs/sp/800/63/b/4/final Wytyczne zakazują reguł składu w rodzaju „znaki specjalne obowiązkowe”, stawiają na minimalną długość i listy zablokowanych znanych haseł oraz wymagają solonych, powolnych hashy haseł.↑
  5. Tamże (przyp. 4): Wytyczne rozróżniają czynniki „something you know”, „something you have” i „something you are”.↑
  6. Provos, N.; Mazières, D.: „A Future-Adaptable Password Scheme”. USENIX Annual Technical Conference (FREENIX Track), 1999. https://www.usenix.org/legacy/events/usenix99/provos.html Oryginalny opis bcrypt.↑
  7. Percival, C.; Josefsson, S.: „The scrypt Password-Based Key Derivation Function”. IETF RFC 7914, 2016. https://www.rfc-editor.org/rfc/rfc7914 Samą metodę Percival przedstawił w 2009 roku na konferencji BSDCan.↑
  8. Biryukov, A.; Dinu, D.; Khovratovich, D.; Josefsson, S.: „Argon2 Memory-Hard Function for Password Hashing and Proof-of-Work Applications”. IETF RFC 9106, 2021. https://www.rfc-editor.org/rfc/rfc9106↑