Coś co wiem i coś co mam

Wiesz już jakich haseł należy się wystrzegać (Hasła, hasła, hasła), podpowiedziałem też jak poradzić sobie z „zapamiętaniem” różnych haseł do różnych serwisów internetowych (Menadżer haseł).  Czy wiesz, że istnieją jeszcze dodatkowe sposoby na podniesienie bezpieczeństwa twoich kont i informacji tam zgromadzonych? Mam tutaj na myśli dwuetapowe uwierzytelnianie (Second Factor Authentication, 2FA). Zasada działania jest prosta: strona www, która została skonfigurowana do obsługi 2FA w pierwszym etapie logowanie poprosi Cię o login i hasło aby chwilę później wyświetlić monit o dodatkowy unikalny i jednorazowy kod, który powinien zostać wygenerowany na urządzeniu jakie posiadasz. To właśnie ren drugi składnik bazujący na czyś fizycznym do czego masz dostęp w danej chwili tylko Ty.

Jeśli posiadasz konto poczty gmail to możesz wypróbować działanie tego mechanizmu właśnie w  tym serwisie. Szczegółowe informacje o sposobie działania 2FA w ekosystemie Google znajdziesz w tym miejscu: https://www.google.com/intl/pl/landing/2step/

W A Ż N E!!!

Po uruchomieniu uwierzytelniania dwuetapowego aplikacja generująca kody jednorazowe na Twoim telefonie musi być na nim cały czas zainstalowana. Jeśli planujesz wymienić telefon albo przywrócić go do ustawień fabrycznych musisz wyłączyć uwierzytelnianie dwuskładnikowe lub skonfigurować aplikację 2FA na innym urządzeniu. Pamiętaj, to bardzo ważne: samo zainstalowanie aplikacji ze sklepu (Google Play, Apple App Store etc) nie przywróci jej działania czyli generowania kodów jednorazowych. Nowo zainstalowana aplikacja musi zostać skonfigurowana w systemie, do którego chcesz się logować. Żeby to zrobić musisz mieć do niego dostęp, czyli musisz wcześniej się zalogować podając kod wygenerowany w aplikacji. Różne serwisy oferują alternatywne metody logowania w przypadku utraty urządzenia/aplikacji generującej kody jednorazowe, warto jednak znać zasadę działania tego mechanizmu aby uniknąć niepotrzebnych komplikacji.

 

Menadżer haseł

Podsumowują wpis Hasła, hasła, hasła wspomniałem o menadżerach haseł, których użycie pozwala między innymi na generowanie unikalnych haseł do każdego z serwisów, w którym się rejestrujemy. Długie i unikalne hasło dla każdego konta to doskonały sposób na uniknięcie przykrych konsekwencji ujawnienia baz użytkowników, o czym pisałem w Czy Twoje hasło też wyciekło? Zasada działania menedżera haseł jest prosta i dla większości dostępnych tego typu narzędzi sprowadza się do stworzenia zaszyfrowanej bazy danych przechowującej hasła do stron www lub dowolnych innych informacji, które zdecydujemy się w niej zapisać. Baza ta zabezpieczona jest hasłem, które musimy zapamiętać. Warto zadbać o to aby było skomplikowane, bo strzeże ono dostępu do pozostałych. Dobrze zaprojektowana aplikacja przechowująca hasła nie powinna dawać możliwości odzyskania /zresetowania głównego hasła, gdyż taki mechanizm znacząco obniża bezpieczeństwo przechowywanych w bazie danych informacji.

Istnieją dwa rodzaje tego typu aplikacji: działające offline, tylko na komputerze oraz takie, które wykorzystują zalety chmury. Te pierwsze są z natury bezpieczniejsze, bo wszystkie poufne dane znajdują się tylko na naszym komputerze. Ta cecha sprawia jednak, że dostęp do bazy haseł ograniczony jest tylko do naszego komputera. Oczywiście, można umieścić plik bazy danych na serwerze czy przenieść go do chmury i współdzielić na wielu urządzeniach, ale są wygodniejsze rozwiązania. Mam tu na myśli usługi typowo chmurowe pozwalające na przechowywanie zaszyfrowanych haseł w zasobach dostawcy usługi i umożliwiające dostęp do nich z dowolnego urządzenia z odpowiednią aplikacją. Wiodący dostawcy szyfrują Twoje dane 256 bitowym algorytmem AES (takim samym jak szyfrowane są bazy haseł programów działających offline) i tak zaszyfrowaną bazę danych przechowują na swoich serwerach. Oczywiście takie rozwiązanie ma swoje wady: powierzamy cenne dane obcym ufając, że zastosowane przez nich mechanizmy są wystarczająco skuteczne, aby zapewnić im bezpieczeństwo. Z drugiej strony zyskujemy olbrzymią wygodę w dostępie do naszych danych zarówno na komputerze, tablecie, smartfonie czy też możliwość współdzielenia haseł z bliskim lub współpracownikami.

Sam używam obu rozwiązań: offline, w programie KeePass przechowuję wykonywaną co pewien czas kopię bazy danych z systemu chmurowego LastPass.

Czy Twoje hasło też wyciekło?

Media, nie tylko branżowe, wielokrotnie informowały o sytuacjach, w których bazy danych zawierające hasła użytkowników serwisów internetowych trafiały w ręce osób niepowołanych. Takie przypadki zdarzały się w przeszłości i będą zdarzały nadal, przynajmniej do momentu kiedy spopularyzują się inne sposoby autoryzacji. Jeśli posiadasz konto Dropbox dłużej niż od 2012 roku, Twoje dane logowania z tamtego okresu krążą w sieci razem z danymi innych 62 milionów subskrybentów tej usługi. Podobnie zresztą jak kompletne dane logowania ponad 160 milionów właścicieli profili w systemie LinkedIn. Można w prosty sposób przekonać się czy hasło którego wtedy używaliśmy zostało upublicznione. Wystarczy skorzystać z informacji, które opracował Troy Hunt. Troy zebrał krążące w sieci zbiory wykradzionych haseł i zbudował ogólnodostępną bazę, w której każdy może sprawdzić czy jego hasło jest jednym z ponad 500 000 jakie do tej pory zostały wykradzione i ujawnione. Kompletną listę można pobrać z serwisu https://haveibeenpwned.com. Zawiera ona zestawienie skrótów SHA-1 dla każdego z haseł wraz z informacją w ilu różnych źródłach zostało ono znalezione. Wcześniej musisz wygenerować skrót SHA-1 swojego hasła i porównać go z listą. Ta metoda jest w 100% bezpieczna, hasło sprawdzasz lokalnie, na swoim komputerze.

Na tej samej stronie znajdziesz także narzędzie pozwalające sprawdzić czy wprowadzone hasło znajduje się w tej bazie danych. Troy postarał się, żeby przeszukiwanie bazy danych było jak najbardziej anonimowe jednak sam sugeruje rozwagę i niepodawanie aktualnie używanych haseł w serwisach innych niż te, gdzie chcemy się zalogować. Metoda, którą zastosował polega na wygenerowaniu przez przeglądarkę skrótu SHA-1 wpisanego hasła, a następnie porównaniem go z bazą danych. W ten sposób można się przekonać że przykładowe „hasło”, o którym pisałem tutaj Hasła, hasła, hasła zostało użyte ponad 8112 razy, a jest to tylko ilość wystąpień tego hasła w opublikowanych bazach danych.

Hasła, hasła, hasła


Sponsorem mojego pierwszego wpisu jest literka ‚h’, h jak „hasło”. Hasło trudne do odgadnięcia przez innych to podstawowy element pozwalający zabezpieczyć dostęp do naszych zasobów.  Nieważne  czy chodzi o skrzynkę pocztową, serwis bankowości elektronicznej czy portfel blockchain, utrata dostępu do powyższych będzie zawsze dotkliwą stratą.

Jest wiele teorii mówiących o tym jak długie i skomplikowane powinnny być hasła. Ja na początek skupię się na tym jakich haseł nie powinno się używać. Na pewno nie mogą to być hasła będące wyrazami, które można znaleźć w słowniku. Nie jest też dobrym pomysłem użycie informacji, które są łatwe do powiązania z naszą osobą; data czy miejsce urodzenia nas samych lub bliskiej nam osoby zdecydowanie nie są dobrym wyborem. Dodatkowo należy pamiętać, że o sile hasła stanowi nie tylko jego długość i unikalność, ale również  zbiór znaków spośród których wybrano te składające się na hasło.

Przyjrzyjmy się temu prostemu przykładowi:

Hasło Słownik Kombinacje
haslo 26  12 356 630
Haslo 52  387 559 012
H@sl0 96  7 820 126 495

Słowo „haslo” składa się z pięciu znaków spośród 26 znaków w alfabecie łacińskim (bez narodowych znaków diakrytycznych). Istnieje  12 356 629 innych kombinacji pięcioznakowych fraz, czyli w najmniej sprzyjającym scenariuszu nasze proste hasło zostanie odgadnięte po tylu właśnie próbach. Dodając wielką literę „Haslo” zwiększamy słownik do 52 znaków, a ilość możliwych kombinacji do 387 milionów, rozbudowując hasło o znak specjalny i cyfrę (w przykładzie na końcu jest zero) rozmiar słownika zwiększa się do 96, a liczba kombinacji do prawie 8 miliardów. Czy to oznacza że ”H@sl0″ z zerem na końcu jest bezpiecznym wyborem? Zdecydowanie nie. Dlaczego?

Po pierwsze jest zbyt krótkie; już teraz większość systemów wymaga hasła o długości co najmniej 8 znaków. Moim zdaniem hasło składające się z 12 znaków z 96 znakowego słownika to optymalny kompromis między jego „siłą” i kłopotem jaki sprawi nam jego zapamiętanie. Po drugie, wiele ataków na hasła użytkowników wykorzystuje metody słownikowe, w których w pierwszej kolejności wykorzystywana jest lista znanych haseł. Osoby przeprowadzające takie ataki doskonale sobie zdają sprawę z istnienia metod ‚wzmacniania’ haseł podmianą znaków a=@, s=$ czy o=0 i takie wersje popularnych słów już znajdują się w używanych przez nich słownikach. Dlatego odgadnięcie hasła „H@sl0” wcale nie musi wymagać prawie 8 miliardów prób.

No dobrze, wymyśliliśmy już nasze trudne hasło składające się z małych i wielkich liter, cyfr i znaków specjalnych, ba, nawet je zapamiętaliśmy. Teraz większość z nas, ja sam jeszcze kilka lat temu nie byłem w tym względzie wyjątkiem, postanawia je wykorzystać we wszystkich usługach i serwisach internetowych, w których zarejestrowaliśmy konta. To wygodne, ale czy na pewno bezpieczne? Zdecydowanie nie. Anglosasi ukuli poręczny termin, TNO, TrustNoOne – nie ufaj nikomu.  W tym konkretnym przypadku nie ufaj żadnemu serwisowi w Internecie i nie zakładaj, że podane w czasie rejestracji nasze z takim trudem wymyślone i zapamiętane hasło nie zostanie upublicznione.  Wcale nie tak odległa historia zna przypadki wycieków danych w tym haseł wielu setek tysięcy, a nawet setek milionów użytkowników. Jest duża szansa, że Twoje hasło było jednym z nich (moje też było), a jeśli to samo hasło  było użyte w kilku miejscach to wyobraźnia może podsunąć kilka scenariuszy.

Jeden serwis, jedno hasło; brzmi rozsądnie, prawda? Tylko jak to wszystko zapamiętać? Z pomocą przyjdzie manager haseł, o tym w kolejnym wpisie.