Polityka haseł – hltv.org

  • nazwa serwisu: hltv.org
  • pozycja na liście alexa rank: 294
  • adres serwisu: https://www.hltv.org/signup
  • minimalna długość hasła: 1 znaków
  • maksymalna długość hasła: brak
  • wymóg złożoności hasła [*]: brak
  • dopuszczalne znaki specjalne: ~!@#$%^&*()_+`-={}|[]\:";'<>?,./
  • dopuszczalna spacja w haśle: tak
  • dopuszczalne polskie ogonki: tak
  • lista złych haseł (blacklista): nie
  • bezpieczne logowanie (https): tak
  • zabezpieczenie captcha [**]: brak
  • wskaźnik siły hasła (graficzny lub tekstowy): nie
  • forma resetowania hasła: link
  • opcja uwierzytelnienia dwustopniowego (2FA): tak
  • edukacja o haśle: brak
  • uwierzytelnianie OAuth2: N
  • uwagi dodatkowe: brak
[*] Legenda dla wymogu złożoności hasła:
      ?l - małe litery, ?u - wielkie litery, ?d - cyfry, ?s - znaki specjalne
[**] Legenda dla zabezpieczenia captcha:
       C - tworzenie konta, Ln - logowanie (n próba), R - przypomnienie hasła

Polityka haseł – shinden.pl

  • nazwa serwisu: shinden.pl
  • pozycja na liście alexa rank: 292
  • adres serwisu: https://shinden.pl/user/0/register
  • minimalna długość hasła: 3 znaków
  • maksymalna długość hasła: 20 znaków
  • wymóg złożoności hasła [*]: brak
  • dopuszczalne znaki specjalne: -_,
  • dopuszczalna spacja w haśle: tak
  • dopuszczalne polskie ogonki: tak
  • lista złych haseł (blacklista): nie
  • bezpieczne logowanie (https): tak
  • zabezpieczenie captcha [**]: C
  • wskaźnik siły hasła (graficzny lub tekstowy): nie
  • forma resetowania hasła: link
  • opcja uwierzytelnienia dwustopniowego (2FA): tak
  • edukacja o haśle: brak
  • uwierzytelnianie OAuth2: facebook
  • uwagi dodatkowe: Przy resetowaniu hasła wymagane jest 6 znaków
[*] Legenda dla wymogu złożoności hasła:
      ?l - małe litery, ?u - wielkie litery, ?d - cyfry, ?s - znaki specjalne
[**] Legenda dla zabezpieczenia captcha:
       C - tworzenie konta, Ln - logowanie (n próba), R - przypomnienie hasła

Hasła maskowane w polskich bankach

Hasło maskowane

Hasło maskowane tym różni się od „zwykłego” pełnego hasła, że podczas logowania użytkownik nie wprowadza całego hasła lecz tylko wybrane jego znaki, tak zwaną maskę hasła. Przykładową maską hasła może być jego pierwszy, trzeci, piąty, siódmy znak, wówczas długość takiej maski wynosi 4.

Najpopularniejszy sposób uwierzytelniania polega na wprowadzeniu loginu i wpisania kompletnego hasła. Uwierzytelnienie jest wówczas jednoetapowe: użytkownik na jednym formularzu podaje zarówno identyfikator jak i hasło.

Uwierzytelnianie w oparciu o hasło maskowane przebiega dwuetapowo. W pierwszym kroku użytkownik podaje swój identyfikator, a system informatyczny na jego podstawie generuje pola hasła maskowanego. W drugim kroku użytkownik podaje tylko wybrane znaki z hasła (np. wspomniane już wcześniej pierwszy, trzeci, piąty, siódmy znak z hasła ośmio-znakowego).

Główna zaletą tej metody są stosunkowo niegroźne konsekwencje w przypadku przechwycenia pojedynczego maskowanego hasła przez nieuprawniona osobę (np. poprzez podpatrzenie wpisywanego hasła, lub przy wykorzystaniu keyloggera na przykład w kafejce internetowej). Poznanie tylko kilku znaków z całego hasła nie umożliwi jeszcze atakującemu włamania się do systemu. Kolejne maski wybierane przez system informatyczny powinny być dobierane tak, aby maksymalnie wydłużyć proces poznania całego hasła. Inną zaletą tej metody może być trudność w poznaniu rzeczywistej długości hasła przez atakującego.

Geneza badań

Zaintrygowany tematyką haseł maskowanych, a dokładniej tym w jaki sposób serwisy (głownie banki) je przechowują postanowiłem zgłębić temat. Założyłem, że hasła (a dokładniej ich maski) nie są przechowywane w postaci jawnej ani zaszyfrowanej, lecz w postaci kryptograficznych funkcji skrótu. Nie mam dostępu do kodów źródłowych systemów bankowych 😉 więc nie mogę stwierdzić czy hasło (a dokładniej jego maska) jest przechowywane z pośród przykładowych rozwiązań:

  • w postaci skrótu
$password = md5($password);
  • w postaci skrótu z solą
$password = md5($password . $salt);
  • w postaci iteracyjnego skrótu
for ( $i = 0; $i < $count; $i++ ) $password = md5($password);
  • w postaci iteracyjnego solonego skrótu
$password .= $salt; 
for ( $i = 0; $i < $count; $i++ ) $password = md5($password);
  • w postaci funkcji adaptacyjnych (np.: bcrypt, PBKDF, …)
$password = password_hash($password, PASSWORD_BCRYPT, ['cost' => 12]);

Istotniejszym zagadnieniem jest liczba koniecznych do przechowania danych.

Próbując oszacować rzeczywistą liczbę przechowywanych rekordów  i zakładając, że:

  • szacunkowa liczba użytkowników: 3000000,
  • minimalna i maksymalna długość hasła: 8 i 16 znaków,
  • maska: ma zawsze długość n/2 dla n-parzystego, ma długość (n-1)/2 lub (n+1)/2 dla n-nieparzystego, gdzie n jest długością hasła

można wyliczyć maksymalną liczbę rekordów przypadającą na pojedynczego użytkownika według wzoru 16! / [ 8! x (16-8)! ] (liczba wszystkich możliwych 8-znakowych masek dla 16-znakowego hasła). Co w rezultacie implikuje konieczność przechowywania ponad 38 miliardów rekordów, co nawet dla funkcji skrótu MD5 (skrót 128-bitowy) powoduje konieczność użycia 575 GB pamięci na przechowanie samych skrótów. Inną wadą tej metody jest konieczność wprowadzenia ograniczenia co do maksymalnej długości hasła, czego nie mamy w żadnej z wcześniej prezentowanych metod.

Jak więc banki sobie radzą z tym problemem?

Wybór banków

Badanie postanowiłem przeprowadzić w dwóch popularnych polskich bankach: Bank Pekao (serwis transakcyjny pekao24.pl) oraz Alior Bank (serwis transakcyjny t-mobilebankowe.pl bliźniaczy z aliorbank.pl). Wybór został podyktowany tym, iż są to banki należące do pierwszej piątki największych banków w Polsce (według raportu >>>) i mam do nich dostęp. Pierwszy na liście bank: PKO BP i Inteligo nie udostępnia funkcjonalności haseł maskowanych w swoim systemie (serwisy transakcyjne ipko.pl oraz inteligo.pl). Podobnie z mBank-iem (serwis transakcyjny online.mbank.pl). Do trzeciego na liście banku ING Bank Śląski nie mam dostępu. Stąd badaniom zostały poddane serwisy transakcyjne czwartego i piątego banku.

Badania

Bank PEKAO

Zgodnie z polityka bezpieczeństwa w dniu przeprowadzenia badań hasło powinno mieć co najmniej 8 znaków i nie więcej niż 16 znaków.

W pierwszym kroku utworzono hasło 8 znakowe i dokonano kolejno 53 logowań. Wyniki zostały wprowadzone do bazy danych w postaci liczbowej (na przykład 1238 gdy taka maska została wybrana) dla wszystkich logowań. Uzyskane wyniki zostały przedstawione w postaci Tabeli pekao_8. Kolejne badania dla kolejno zwiększanych długości haseł i większej liczby prób przedstawiono w tabelach pekao_[długość_hasła]

Tabela pekao_8
mask-^+>12345678
1348404>xxxx
1468431>xxxx
1478431>xxxx
1458431>xxxx
1258431>xxxx
1358431>xxxx
1568431>xxxx
1578431>xxxx
1458431>xxxx
1245431>xxxx
1345431>xxxx
1456431>xxxx
1457431>xxxx
1458431>xxxx
2458431>xxxx
2358431>xxxx
2568431>xxxx
1258431>xxxx
1248431>xxxx
1348431>xxxx
1468431>xxxx
1478431>xxxx
1458431>xxxx
1258431>xxxx
1358431>xxxx
1578431>xxxx
1458431>xxxx
1245431>xxxx
1345431>xxxx
1456431>xxxx
1457431>xxxx
1458431>xxxx
2458431>xxxx
2358431>xxxx
2568431>xxxx
2578431>xxxx
1258431>xxxx
1248431>xxxx
1348431>xxxx
1468431>xxxx
1258422>xxxx
1358431>xxxx
1568431>xxxx
1458431>xxxx
1245431>xxxx
1345431>xxxx
1456431>xxxx
2458422>xxxx
2358431>xxxx
2568431>xxxx
2578431>xxxx
1248422>xxxx
1348431>xxxx
Liczba logowań: 53, liczba unikalnych masek: 17

Jak można zauważyć w powyższej tabeli każde kolejne hasło ma co najmniej 2 i co najwyżej 3 znaki w masce identyczne z poprzednim hasłem.

Tabela pekao_9
mask-^+>123456789
14589505>xxxxx
12459541>xxxxx
1345431>xxxx
14569532>xxxxx
14579541>xxxxx
1458431>xxxx
2458431>xxxx
2358431>xxxx
2568431>xxxx
2578431>xxxx
12589532>xxxxx
12489541>xxxxx
13489541>xxxxx
14689541>xxxxx
14789541>xxxxx
14589541>xxxxx
1258431>xxxx
1358431>xxxx
15689532>xxxxx
15789541>xxxxx
14589541>xxxxx
12459541>xxxxx
1345431>xxxx
14569532>xxxxx
14579541>xxxxx
1458431>xxxx
2458431>xxxx
2358431>xxxx
2568431>xxxx
2578431>xxxx
12589532>xxxxx
12489541>xxxxx
13489541>xxxxx
14689541>xxxxx
14789541>xxxxx
14589541>xxxxx
1258431>xxxx
1358431>xxxx
15689532>xxxxx
15789541>xxxxx
14589541>xxxxx
12459541>xxxxx
1345431>xxxx
14569532>xxxxx
14579541>xxxxx
1458431>xxxx
2458431>xxxx
2358431>xxxx
2568431>xxxx
2578431>xxxx
12589532>xxxxx
12489541>xxxxx
13489541>xxxxx
14689541>xxxxx
14789541>xxxxx
Liczba logowań: 55, liczba unikalnych masek: 19

Jak można zauważyć w powyższej tabeli każde kolejne hasło ma co najmniej 3 i co najwyżej 4 znaki w masce identyczne z poprzednim hasłem.

Tabela pekao_10
mask-^+>12345678910
14689A606>xxxxxx
14789A651>xxxxxx
14589A651>xxxxxx
1258A541>xxxxx
1358A541>xxxxx
15689532>xxxxx
15789541>xxxxx
14589A642>xxxxxx
12459541>xxxxx
1345431>xxxx
14569532>xxxxx
14579541>xxxxx
1458A532>xxxxx
2458A541>xxxxx
2358A541>xxxxx
2568A541>xxxxx
2578A541>xxxxx
12589532>xxxxx
12489541>xxxxx
13489541>xxxxx
14689A642>xxxxxx
14789A651>xxxxxx
14589A651>xxxxxx
1258A541>xxxxx
1358A541>xxxxx
15689532>xxxxx
14589A642>xxxxxx
12459541>xxxxx
1345431>xxxx
14569532>xxxxx
14579541>xxxxx
1458A532>xxxxx
2458A541>xxxxx
2358A541>xxxxx
2568A541>xxxxx
2578A541>xxxxx
12589532>xxxxx
12489541>xxxxx
14689A642>xxxxxx
14789A651>xxxxxx
14589A651>xxxxxx
1258A541>xxxxx
1358A541>xxxxx
15689532>xxxxx
15789541>xxxxx
14589A642>xxxxxx
12459541>xxxxx
1345431>xxxx
14569532>xxxxx
14579541>xxxxx
1458A532>xxxxx
2458A541>xxxxx
2358A541>xxxxx
2578A541>xxxxx
12589532>xxxxx
12489541>xxxxx
13489541>xxxxx
14689A642>xxxxxx
14789A651>xxxxxx
14589A651>xxxxxx
1258A541>xxxxx
Liczba logowań: 61, liczba unikalnych masek: 19

Jak można zauważyć w powyższej tabeli każde kolejne hasło ma co najmniej 3 i co najwyżej 5 znaków w masce identycznych z poprzednim hasłem.

Tabela pekao_11
mask-^+>1234567891011
1258A505>xxxxx
1358A541>xxxxx
15689B633>xxxxxx
15789541>xxxxx
14589A642>xxxxxx
12459B642>xxxxxx
1345B541>xxxxx
14569B642>xxxxxx
14579B651>xxxxxx
1458A532>xxxxx
2458A541>xxxxx
2358A541>xxxxx
2568A541>xxxxx
2578A541>xxxxx
12589B633>xxxxxx
12489541>xxxxx
13489B642>xxxxxx
14689A642>xxxxxx
14789A651>xxxxxx
14589A651>xxxxxx
1258A541>xxxxx
1358A541>xxxxx
15689B633>xxxxxx
15789541>xxxxx
14589A642>xxxxxx
12459B642>xxxxxx
1345B541>xxxxx
14569B642>xxxxxx
14579B651>xxxxxx
1458A532>xxxxx
2458A541>xxxxx
2358A541>xxxxx
2568A541>xxxxx
2578A541>xxxxx
12589B633>xxxxxx
12489541>xxxxx
13489B642>xxxxxx
14689A642>xxxxxx
14789A651>xxxxxx
14589A651>xxxxxx
1258A541>xxxxx
1358A541>xxxxx
15689B633>xxxxxx
15789541>xxxxx
14589A642>xxxxxx
12459B642>xxxxxx
1345B541>xxxxx
14569B642>xxxxxx
14579B651>xxxxxx
1458A532>xxxxx
2458A541>xxxxx
2358A541>xxxxx
2568A541>xxxxx
2578A541>xxxxx
12589B633>xxxxxx
12489541>xxxxx
13489B642>xxxxxx
14689A642>xxxxxx
14789A651>xxxxxx
14589A651>xxxxxx
1258A541>xxxxx
1358A541>xxxxx
15689B633>xxxxxx
15789541>xxxxx
14589A642>xxxxxx
12459B642>xxxxxx
1345B541>xxxxx
14569B642>xxxxxx
14579B651>xxxxxx
1458A532>xxxxx
Liczba logowań: 70, liczba unikalnych masek: 19

Jak można zauważyć w powyższej tabeli każde kolejne hasło ma co najmniej 3 i co najwyżej 5 znaków w masce identycznych z poprzednim hasłem.

Tabela pekao_12
mask-^+>123456789101112
2458A505>xxxxx
2358AC642>xxxxxx
2568AC651>xxxxxx
12489C633>xxxxxx
13489B642>xxxxxx
14689A642>xxxxxx
14789A651>xxxxxx
14589AC752>xxxxxxx
1258AC651>xxxxxx
15689B633>xxxxxx
15789C642>xxxxxx
14589A642>xxxxxx
12459B642>xxxxxx
1345B541>xxxxx
14569B642>xxxxxx
1458AC633>xxxxxx
2458A541>xxxxx
2358AC642>xxxxxx
2568AC651>xxxxxx
2578AC651>xxxxxx
12589BC743>xxxxxxx
12489C651>xxxxxx
13489B642>xxxxxx
14689A642>xxxxxx
14789A651>xxxxxx
14589AC752>xxxxxxx
1258AC651>xxxxxx
1358AC651>xxxxxx
15689B633>xxxxxx
15789C642>xxxxxx
14589A642>xxxxxx
12459B642>xxxxxx
1345B541>xxxxx
14569B642>xxxxxx
14579B651>xxxxxx
1458AC633>xxxxxx
2458A541>xxxxx
2358AC642>xxxxxx
2568AC651>xxxxxx
2578AC651>xxxxxx
12589BC743>xxxxxxx
12489C651>xxxxxx
13489B642>xxxxxx
14689A642>xxxxxx
14789A651>xxxxxx
14589AC752>xxxxxxx
1258AC651>xxxxxx
1358AC651>xxxxxx
15689B633>xxxxxx
15789C642>xxxxxx
14589A642>xxxxxx
12459B642>xxxxxx
1345B541>xxxxx
14569B642>xxxxxx
14579B651>xxxxxx
1458AC633>xxxxxx
2458A541>xxxxx
2358AC642>xxxxxx
2568AC651>xxxxxx
2578AC651>xxxxxx
12589BC743>xxxxxxx
12489C651>xxxxxx
13489B642>xxxxxx
14689A642>xxxxxx
14789A651>xxxxxx
14589AC752>xxxxxxx
1258AC651>xxxxxx
1358AC651>xxxxxx
15689B633>xxxxxx
15789C642>xxxxxx
Liczba logowań: 70, liczba unikalnych masek: 20

Jak można zauważyć w powyższej tabeli każde kolejne hasło ma co najmniej 3 i co najwyżej 5 znaków w masce identycznych z poprzednim hasłem.

Tabela pekao_13
mask-^+>12345678910111213
14589AD707>xxxxxxx
12459B642>xxxxxx
1345BD642>xxxxxx
14569BD752>xxxxxxx
14579BD761>xxxxxxx
1458ACD743>xxxxxxx
2458AD651>xxxxxx
2358AC642>xxxxxx
2568AC651>xxxxxx
2578AC651>xxxxxx
12589BC743>xxxxxxx
12489CD752>xxxxxxx
13489BD752>xxxxxxx
14689AD752>xxxxxxx
14789AD761>xxxxxxx
14589AC752>xxxxxxx
1258AC651>xxxxxx
1358ACD752>xxxxxxx
15689BD743>xxxxxxx
15789CD752>xxxxxxx
14589AD752>xxxxxxx
12459B642>xxxxxx
1345BD642>xxxxxx
14569BD752>xxxxxxx
14579BD761>xxxxxxx
1458ACD743>xxxxxxx
2458AD651>xxxxxx
2358AC642>xxxxxx
2568AC651>xxxxxx
2578AC651>xxxxxx
12589BC743>xxxxxxx
12489CD752>xxxxxxx
13489BD752>xxxxxxx
14689AD752>xxxxxxx
14789AD761>xxxxxxx
14589AC752>xxxxxxx
1258AC651>xxxxxx
1358ACD752>xxxxxxx
15689BD743>xxxxxxx
15789CD752>xxxxxxx
14589AD752>xxxxxxx
12459B642>xxxxxx
1345BD642>xxxxxx
14569BD752>xxxxxxx
14579BD761>xxxxxxx
1458ACD743>xxxxxxx
2458AD651>xxxxxx
2358AC642>xxxxxx
2568AC651>xxxxxx
2578AC651>xxxxxx
12589BC743>xxxxxxx
12489CD752>xxxxxxx
13489BD752>xxxxxxx
14689AD752>xxxxxxx
14789AD761>xxxxxxx
14589AC752>xxxxxxx
1258AC651>xxxxxx
1358ACD752>xxxxxxx
15689BD743>xxxxxxx
15789CD752>xxxxxxx
14589AD752>xxxxxxx
12459B642>xxxxxx
1345BD642>xxxxxx
14569BD752>xxxxxxx
14579BD761>xxxxxxx
1458ACD743>xxxxxxx
2458AD651>xxxxxx
2358AC642>xxxxxx
2568AC651>xxxxxx
2578AC651>xxxxxx
12589BC743>xxxxxxx
12489CD752>xxxxxxx
13489BD752>xxxxxxx
14689AD752>xxxxxxx
14789AD761>xxxxxxx
14589AC752>xxxxxxx
1258AC651>xxxxxx
1358ACD752>xxxxxxx
15689BD743>xxxxxxx
15789CD752>xxxxxxx
Liczba logowań: 80, liczba unikalnych masek: 20

Jak można zauważyć w powyższej tabeli każde kolejne hasło ma co najmniej 4 i co najwyżej 6 znaków w masce identycznych z poprzednim hasłem.

Tabela pekao_14
mask-^+>1234567891011121314
14589ADE808>xxxxxxxx
12459BE752>xxxxxxx
1345BDE752>xxxxxxx
14569BDE862>xxxxxxxx
14579BD761>xxxxxxx
1458ACD743>xxxxxxx
2458AD651>xxxxxx
2358ACE743>xxxxxxx
2568ACE761>xxxxxxx
2578AC651>xxxxxx
12589BCE844>xxxxxxxx
12489CD752>xxxxxxx
13489BD752>xxxxxxx
14689AD752>xxxxxxx
14789ADE862>xxxxxxxx
14589ACE862>xxxxxxxx
1258ACE761>xxxxxxx
1358ACD752>xxxxxxx
15689BDE844>xxxxxxxx
15789CD752>xxxxxxx
14589ADE853>xxxxxxxx
12459BE752>xxxxxxx
1345BDE752>xxxxxxx
14569BDE862>xxxxxxxx
14579BD761>xxxxxxx
1458ACD743>xxxxxxx
2458AD651>xxxxxx
2358ACE743>xxxxxxx
2568ACE761>xxxxxxx
2578AC651>xxxxxx
12589BCE844>xxxxxxxx
12489CD752>xxxxxxx
13489BD752>xxxxxxx
14689AD752>xxxxxxx
14789ADE862>xxxxxxxx
14589ACE862>xxxxxxxx
1258ACE761>xxxxxxx
1358ACD752>xxxxxxx
15689BDE844>xxxxxxxx
15789CD752>xxxxxxx
14589ADE853>xxxxxxxx
12459BE752>xxxxxxx
1345BDE752>xxxxxxx
14569BDE862>xxxxxxxx
14579BD761>xxxxxxx
1458ACD743>xxxxxxx
2458AD651>xxxxxx
2358ACE743>xxxxxxx
2568ACE761>xxxxxxx
2578AC651>xxxxxx
12589BCE844>xxxxxxxx
12489CD752>xxxxxxx
13489BD752>xxxxxxx
14689AD752>xxxxxxx
14789ADE862>xxxxxxxx
14589ACE862>xxxxxxxx
1258ACE761>xxxxxxx
1358ACD752>xxxxxxx
15689BDE844>xxxxxxxx
15789CD752>xxxxxxx
14589ADE853>xxxxxxxx
12459BE752>xxxxxxx
1345BDE752>xxxxxxx
14569BDE862>xxxxxxxx
14579BD761>xxxxxxx
1458ACD743>xxxxxxx
2458AD651>xxxxxx
2358ACE743>xxxxxxx
2568ACE761>xxxxxxx
2578AC651>xxxxxx
12589BCE844>xxxxxxxx
12489CD752>xxxxxxx
13489BD752>xxxxxxx
14689AD752>xxxxxxx
14789ADE862>xxxxxxxx
14589ACE862>xxxxxxxx
1258ACE761>xxxxxxx
1358ACD752>xxxxxxx
15689BDE844>xxxxxxxx
15789CD752>xxxxxxx
14589ADE853>xxxxxxxx
12459BE752>xxxxxxx
1345BDE752>xxxxxxx
14569BDE862>xxxxxxxx
14579BD761>xxxxxxx
1458ACD743>xxxxxxx
2458AD651>xxxxxx
2358ACE743>xxxxxxx
2568ACE761>xxxxxxx
2578AC651>xxxxxx
Liczba logowań: 90, liczba unikalnych masek: 20

Jak można zauważyć w powyższej tabeli każde kolejne hasło ma co najmniej 4 i co najwyżej 6 znaków w masce identycznych z poprzednim hasłem.

Tabela pekao_15
mask-^+>123456789101112131415
12589BCE808>xxxxxxxx
12489CD752>xxxxxxx
14689ADF853>xxxxxxxx
14789ADE862>xxxxxxxx
14589ACEF963>xxxxxxxxx
1258ACE761>xxxxxxx
1358ACDF853>xxxxxxxx
15689BDE844>xxxxxxxx
15789CD752>xxxxxxx
14589ADE853>xxxxxxxx
12459BE752>xxxxxxx
1345BDE752>xxxxxxx
14569BDE862>xxxxxxxx
14579BDF862>xxxxxxxx
1458ACDF853>xxxxxxxx
2458ADF761>xxxxxxx
2358ACEF853>xxxxxxxx
2568ACE761>xxxxxxx
2578ACF752>xxxxxxx
12589BCE844>xxxxxxxx
12489CD752>xxxxxxx
13489BD752>xxxxxxx
14689ADF853>xxxxxxxx
14789ADE862>xxxxxxxx
14589ACEF963>xxxxxxxxx
1258ACE761>xxxxxxx
1358ACDF853>xxxxxxxx
15689BDE844>xxxxxxxx
15789CD752>xxxxxxx
14589ADE853>xxxxxxxx
12459BE752>xxxxxxx
1345BDE752>xxxxxxx
14569BDE862>xxxxxxxx
14579BDF862>xxxxxxxx
1458ACDF853>xxxxxxxx
2458ADF761>xxxxxxx
2358ACEF853>xxxxxxxx
2568ACE761>xxxxxxx
2578ACF752>xxxxxxx
12589BCE844>xxxxxxxx
12489CD752>xxxxxxx
13489BD752>xxxxxxx
14689ADF853>xxxxxxxx
14789ADE862>xxxxxxxx
14589ACEF963>xxxxxxxxx
1258ACE761>xxxxxxx
1358ACDF853>xxxxxxxx
15689BDE844>xxxxxxxx
15789CD752>xxxxxxx
14589ADE853>xxxxxxxx
12459BE752>xxxxxxx
1345BDE752>xxxxxxx
14569BDE862>xxxxxxxx
14579BDF862>xxxxxxxx
1458ACDF853>xxxxxxxx
2458ADF761>xxxxxxx
2358ACEF853>xxxxxxxx
2568ACE761>xxxxxxx
2578ACF752>xxxxxxx
12589BCE844>xxxxxxxx
12489CD752>xxxxxxx
13489BD752>xxxxxxx
14689ADF853>xxxxxxxx
14789ADE862>xxxxxxxx
14589ACEF963>xxxxxxxxx
1258ACE761>xxxxxxx
1358ACDF853>xxxxxxxx
15689BDE844>xxxxxxxx
15789CD752>xxxxxxx
14589ADE853>xxxxxxxx
Liczba logowań: 70, liczba unikalnych masek: 20

Jak można zauważyć w powyższej tabeli każde kolejne hasło ma co najmniej 4 i co najwyżej 6 znaków w masce identycznych z poprzednim hasłem.

Aby sprawdzić czy dla hasła o danej długości zawsze generowane sa te same maski (na tych samych pozycjach) ponownie zmieniono hasło na hasło 8 znakowe.

Tabela pekao_n_8
mask-^+>12345678
1458404>xxxx
2458431>xxxx
2358431>xxxx
2568431>xxxx
2578431>xxxx
1258431>xxxx
1248431>xxxx
1348431>xxxx
1468431>xxxx
1478431>xxxx
1458431>xxxx
1258431>xxxx
1358431>xxxx
1568431>xxxx
1578431>xxxx
1458431>xxxx
1245431>xxxx
1345431>xxxx
1456431>xxxx
1457431>xxxx
1458431>xxxx
2458431>xxxx
2358431>xxxx
2568431>xxxx
2578431>xxxx
1258431>xxxx
1248431>xxxx
1348431>xxxx
1468431>xxxx
1478431>xxxx
1458431>xxxx
1258431>xxxx
1358431>xxxx
1568431>xxxx
1578431>xxxx
1458431>xxxx
1245431>xxxx
1345431>xxxx
1456431>xxxx
1457431>xxxx
1458431>xxxx
2458431>xxxx
2358431>xxxx
2568431>xxxx
2578431>xxxx
1258431>xxxx
1248431>xxxx
1348431>xxxx
1468431>xxxx
1478431>xxxx
1458431>xxxx
1258431>xxxx
1358431>xxxx
1568431>xxxx
1578431>xxxx
1458431>xxxx
1245431>xxxx
1345431>xxxx
1456431>xxxx
1457431>xxxx
Liczba logowań: 60, liczba unikalnych masek: 17

Jak można zauważyć w powyższej tabeli i porównując ją z pierwszą tabelą we wpisie (Tabela pekao_8) zarówno liczność jak i unikalność masek jest jednakowa w obu przypadkach. Co może prowadzić do wniosku że dla hasła o określonej długości w banku tym zawsze wybierane są wcześniej zdefiniowane maski i  ich liczba nie przekracza 20.

Badanie pokazało następujące zależności dla masek:
– dla 8-znakowego hasła maska zawsze 4-znakowa
– dla 9-znakowego hasła maska 4-5 znakowa
– dla 10-znakowego hasła maska 4-6-znakowa
– dla 11-znakowego hasła maska 5-6-znakowa
– dla 12-znakowego hasła maska 5-7-znakowa
– dla 13-znakowego hasła maska 6-7-znakowa
– dla 14-znakowego hasła maska 6-8-znakowa
– dla 15-znakowego hasła maska 7-8-znakowa

Alior Bank

Zgodnie z polityka bezpieczeństwa w dniu przeprowadzenia badań hasło powinno mieć co najmniej 10 znaków i nie więcej niż 15 znaków.

W pierwszym kroku utworzono hasło 10 znakowe i dokonano kolejno 121 logowań. Uzyskane wyniki zostały przedstawione w postaci Tabeli alior_10.

Tabela alior_10
mask-^+>12345678910
146303>xxx
247312>xxx
126A413>xxxx
389303>xxx
3459422>xxxx
126A404>xxxx
2349413>xxxx
347321>xxx
137321>xxx
4589404>xxxx
1679413>xxxx
489312>xxx
269A413>xxxx
1234413>xxxx
16A312>xxx
2348404>xxxx
469312>xxx
479321>xxx
179321>xxx
46A303>xxx
47A321>xxx
359303>xxx
678303>xxx
1478422>xxxx
245A413>xxxx
389303>xxx
369A422>xxxx
2369431>xxxx
34A312>xxx
28A312>xxx
156A413>xxxx
2369413>xxxx
359321>xxx
237312>xxx
3469413>xxxx
1569422>xxxx
357A413>xxxx
1238413>xxxx
156A413>xxxx
124A422>xxxx
4568413>xxxx
579312>xxx
1467413>xxxx
239A404>xxxx
389321>xxx
169A413>xxxx
146A431>xxxx
78A312>xxx
3469404>xxxx
367321>xxx
2369422>xxxx
359321>xxx
457312>xxx
1345422>xxxx
47A312>xxx
1478422>xxxx
36A303>xxx
267A422>xxxx
1679422>xxxx
189321>xxx
578A413>xxxx
589A431>xxxx
2457413>xxxx
89A303>xxx
125303>xxx
3689404>xxxx
578312>xxx
16A303>xxx
1278413>xxxx
246312>xxx
359303>xxx
789312>xxx
28A312>xxx
169303>xxx
138A413>xxxx
2356413>xxxx
489303>xxx
478A422>xxxx
358A422>xxxx
78A321>xxx
124A413>xxxx
246A431>xxxx
16A321>xxx
59A312>xxx
236A413>xxxx
3468422>xxxx
1258413>xxxx
1689422>xxxx
178321>xxx
489A413>xxxx
46A321>xxx
479312>xxx
124A413>xxxx
2356413>xxxx
146A413>xxxx
478A422>xxxx
148A431>xxxx
25A312>xxx
579312>xxx
3689413>xxxx
479312>xxx
589312>xxx
3456413>xxxx
349321>xxx
2467413>xxxx
368A413>xxxx
2359413>xxxx
126A413>xxxx
1257422>xxxx
247321>xxx
126312>xxx
28A312>xxx
2467413>xxxx
358A404>xxxx
1369413>xxxx
345312>xxx
3456431>xxxx
157312>xxx
478312>xxx
2678422>xxxx
4589413>xxxx
Liczba logowań: 121, liczba unikalnych masek: 86

Jak można zauważyć w powyższej tabeli trudno się doszukiwać zależności podobnych do banku PEKAO. Kolejne maski czasami mają, a czasami nie mają wspólnych znaków z poprzednią maską. Także dla powtarzalności masek trudno znaleźć regułę. Na przykład maska 2678 wystąpiła po raz pierwszy przy 120 logowaniu. Powtarzalność masek może wskazywać na fakt że ich liczba także jest zawężona w stosunku do wszystkich możliwych masek 3 i 4 znakowych. Jednak aby udowodnić tę tezę należałoby sprawdzić znacznie większą liczbę logowań.

Polityka haseł – pebx.pl

  • nazwa serwisu: pebx.pl
  • pozycja na liście alexa rank: 290
  • adres serwisu: https://pebx.pl/register/
  • minimalna długość hasła: 1 znaków
  • maksymalna długość hasła: brak
  • wymóg złożoności hasła [*]: brak
  • dopuszczalne znaki specjalne: ~!@#$%^&*()_+`-={}|[]\:";'<>?,./
  • dopuszczalna spacja w haśle: nie
  • dopuszczalne polskie ogonki: tak
  • lista złych haseł (blacklista): nie
  • bezpieczne logowanie (https): tak
  • zabezpieczenie captcha [**]: C,R
  • wskaźnik siły hasła (graficzny lub tekstowy): nie
  • forma resetowania hasła: link
  • opcja uwierzytelnienia dwustopniowego (2FA): tak
  • edukacja o haśle: brak
  • uwierzytelnianie OAuth2: N
  • uwagi dodatkowe: brak
[*] Legenda dla wymogu złożoności hasła:
      ?l - małe litery, ?u - wielkie litery, ?d - cyfry, ?s - znaki specjalne
[**] Legenda dla zabezpieczenia captcha:
       C - tworzenie konta, Ln - logowanie (n próba), R - przypomnienie hasła

Polityka haseł – slack.com

  • nazwa serwisu: slack.com
  • pozycja na liście alexa rank: 280
  • adres serwisu: https://slack.com/create#password
  • minimalna długość hasła: 6 znaków
  • maksymalna długość hasła: brak
  • wymóg złożoności hasła [*]: brak
  • dopuszczalne znaki specjalne: ~!@#$%^&*()_+`-={}|[]\:";'<>?,./
  • dopuszczalna spacja w haśle: nie
  • dopuszczalne polskie ogonki: tak
  • lista złych haseł (blacklista): tak
  • bezpieczne logowanie (https): tak
  • zabezpieczenie captcha [**]: brak
  • wskaźnik siły hasła (graficzny lub tekstowy): tak
  • forma resetowania hasła: link
  • opcja uwierzytelnienia dwustopniowego (2FA): tak
  • edukacja o haśle: http://bit.ly/2uCTqnY
  • uwierzytelnianie OAuth2: N
  • uwagi dodatkowe: brak
[*] Legenda dla wymogu złożoności hasła:
      ?l - małe litery, ?u - wielkie litery, ?d - cyfry, ?s - znaki specjalne
[**] Legenda dla zabezpieczenia captcha:
       C - tworzenie konta, Ln - logowanie (n próba), R - przypomnienie hasła