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_8Liczba logowań: 53, liczba unikalnych masek: 17
mask - ^ + > 1 2 3 4 5 6 7 8 1348 4 0 4 > x x x x 1468 4 3 1 > x x x x 1478 4 3 1 > x x x x 1458 4 3 1 > x x x x 1258 4 3 1 > x x x x 1358 4 3 1 > x x x x 1568 4 3 1 > x x x x 1578 4 3 1 > x x x x 1458 4 3 1 > x x x x 1245 4 3 1 > x x x x 1345 4 3 1 > x x x x 1456 4 3 1 > x x x x 1457 4 3 1 > x x x x 1458 4 3 1 > x x x x 2458 4 3 1 > x x x x 2358 4 3 1 > x x x x 2568 4 3 1 > x x x x 1258 4 3 1 > x x x x 1248 4 3 1 > x x x x 1348 4 3 1 > x x x x 1468 4 3 1 > x x x x 1478 4 3 1 > x x x x 1458 4 3 1 > x x x x 1258 4 3 1 > x x x x 1358 4 3 1 > x x x x 1578 4 3 1 > x x x x 1458 4 3 1 > x x x x 1245 4 3 1 > x x x x 1345 4 3 1 > x x x x 1456 4 3 1 > x x x x 1457 4 3 1 > x x x x 1458 4 3 1 > x x x x 2458 4 3 1 > x x x x 2358 4 3 1 > x x x x 2568 4 3 1 > x x x x 2578 4 3 1 > x x x x 1258 4 3 1 > x x x x 1248 4 3 1 > x x x x 1348 4 3 1 > x x x x 1468 4 3 1 > x x x x 1258 4 2 2 > x x x x 1358 4 3 1 > x x x x 1568 4 3 1 > x x x x 1458 4 3 1 > x x x x 1245 4 3 1 > x x x x 1345 4 3 1 > x x x x 1456 4 3 1 > x x x x 2458 4 2 2 > x x x x 2358 4 3 1 > x x x x 2568 4 3 1 > x x x x 2578 4 3 1 > x x x x 1248 4 2 2 > x x x x 1348 4 3 1 > x x x x
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_9Liczba logowań: 55, liczba unikalnych masek: 19
mask - ^ + > 1 2 3 4 5 6 7 8 9 14589 5 0 5 > x x x x x 12459 5 4 1 > x x x x x 1345 4 3 1 > x x x x 14569 5 3 2 > x x x x x 14579 5 4 1 > x x x x x 1458 4 3 1 > x x x x 2458 4 3 1 > x x x x 2358 4 3 1 > x x x x 2568 4 3 1 > x x x x 2578 4 3 1 > x x x x 12589 5 3 2 > x x x x x 12489 5 4 1 > x x x x x 13489 5 4 1 > x x x x x 14689 5 4 1 > x x x x x 14789 5 4 1 > x x x x x 14589 5 4 1 > x x x x x 1258 4 3 1 > x x x x 1358 4 3 1 > x x x x 15689 5 3 2 > x x x x x 15789 5 4 1 > x x x x x 14589 5 4 1 > x x x x x 12459 5 4 1 > x x x x x 1345 4 3 1 > x x x x 14569 5 3 2 > x x x x x 14579 5 4 1 > x x x x x 1458 4 3 1 > x x x x 2458 4 3 1 > x x x x 2358 4 3 1 > x x x x 2568 4 3 1 > x x x x 2578 4 3 1 > x x x x 12589 5 3 2 > x x x x x 12489 5 4 1 > x x x x x 13489 5 4 1 > x x x x x 14689 5 4 1 > x x x x x 14789 5 4 1 > x x x x x 14589 5 4 1 > x x x x x 1258 4 3 1 > x x x x 1358 4 3 1 > x x x x 15689 5 3 2 > x x x x x 15789 5 4 1 > x x x x x 14589 5 4 1 > x x x x x 12459 5 4 1 > x x x x x 1345 4 3 1 > x x x x 14569 5 3 2 > x x x x x 14579 5 4 1 > x x x x x 1458 4 3 1 > x x x x 2458 4 3 1 > x x x x 2358 4 3 1 > x x x x 2568 4 3 1 > x x x x 2578 4 3 1 > x x x x 12589 5 3 2 > x x x x x 12489 5 4 1 > x x x x x 13489 5 4 1 > x x x x x 14689 5 4 1 > x x x x x 14789 5 4 1 > x x x x x
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_10Liczba logowań: 61, liczba unikalnych masek: 19
mask - ^ + > 1 2 3 4 5 6 7 8 9 10 14689A 6 0 6 > x x x x x x 14789A 6 5 1 > x x x x x x 14589A 6 5 1 > x x x x x x 1258A 5 4 1 > x x x x x 1358A 5 4 1 > x x x x x 15689 5 3 2 > x x x x x 15789 5 4 1 > x x x x x 14589A 6 4 2 > x x x x x x 12459 5 4 1 > x x x x x 1345 4 3 1 > x x x x 14569 5 3 2 > x x x x x 14579 5 4 1 > x x x x x 1458A 5 3 2 > x x x x x 2458A 5 4 1 > x x x x x 2358A 5 4 1 > x x x x x 2568A 5 4 1 > x x x x x 2578A 5 4 1 > x x x x x 12589 5 3 2 > x x x x x 12489 5 4 1 > x x x x x 13489 5 4 1 > x x x x x 14689A 6 4 2 > x x x x x x 14789A 6 5 1 > x x x x x x 14589A 6 5 1 > x x x x x x 1258A 5 4 1 > x x x x x 1358A 5 4 1 > x x x x x 15689 5 3 2 > x x x x x 14589A 6 4 2 > x x x x x x 12459 5 4 1 > x x x x x 1345 4 3 1 > x x x x 14569 5 3 2 > x x x x x 14579 5 4 1 > x x x x x 1458A 5 3 2 > x x x x x 2458A 5 4 1 > x x x x x 2358A 5 4 1 > x x x x x 2568A 5 4 1 > x x x x x 2578A 5 4 1 > x x x x x 12589 5 3 2 > x x x x x 12489 5 4 1 > x x x x x 14689A 6 4 2 > x x x x x x 14789A 6 5 1 > x x x x x x 14589A 6 5 1 > x x x x x x 1258A 5 4 1 > x x x x x 1358A 5 4 1 > x x x x x 15689 5 3 2 > x x x x x 15789 5 4 1 > x x x x x 14589A 6 4 2 > x x x x x x 12459 5 4 1 > x x x x x 1345 4 3 1 > x x x x 14569 5 3 2 > x x x x x 14579 5 4 1 > x x x x x 1458A 5 3 2 > x x x x x 2458A 5 4 1 > x x x x x 2358A 5 4 1 > x x x x x 2578A 5 4 1 > x x x x x 12589 5 3 2 > x x x x x 12489 5 4 1 > x x x x x 13489 5 4 1 > x x x x x 14689A 6 4 2 > x x x x x x 14789A 6 5 1 > x x x x x x 14589A 6 5 1 > x x x x x x 1258A 5 4 1 > x x x x x
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_11Liczba logowań: 70, liczba unikalnych masek: 19
mask - ^ + > 1 2 3 4 5 6 7 8 9 10 11 1258A 5 0 5 > x x x x x 1358A 5 4 1 > x x x x x 15689B 6 3 3 > x x x x x x 15789 5 4 1 > x x x x x 14589A 6 4 2 > x x x x x x 12459B 6 4 2 > x x x x x x 1345B 5 4 1 > x x x x x 14569B 6 4 2 > x x x x x x 14579B 6 5 1 > x x x x x x 1458A 5 3 2 > x x x x x 2458A 5 4 1 > x x x x x 2358A 5 4 1 > x x x x x 2568A 5 4 1 > x x x x x 2578A 5 4 1 > x x x x x 12589B 6 3 3 > x x x x x x 12489 5 4 1 > x x x x x 13489B 6 4 2 > x x x x x x 14689A 6 4 2 > x x x x x x 14789A 6 5 1 > x x x x x x 14589A 6 5 1 > x x x x x x 1258A 5 4 1 > x x x x x 1358A 5 4 1 > x x x x x 15689B 6 3 3 > x x x x x x 15789 5 4 1 > x x x x x 14589A 6 4 2 > x x x x x x 12459B 6 4 2 > x x x x x x 1345B 5 4 1 > x x x x x 14569B 6 4 2 > x x x x x x 14579B 6 5 1 > x x x x x x 1458A 5 3 2 > x x x x x 2458A 5 4 1 > x x x x x 2358A 5 4 1 > x x x x x 2568A 5 4 1 > x x x x x 2578A 5 4 1 > x x x x x 12589B 6 3 3 > x x x x x x 12489 5 4 1 > x x x x x 13489B 6 4 2 > x x x x x x 14689A 6 4 2 > x x x x x x 14789A 6 5 1 > x x x x x x 14589A 6 5 1 > x x x x x x 1258A 5 4 1 > x x x x x 1358A 5 4 1 > x x x x x 15689B 6 3 3 > x x x x x x 15789 5 4 1 > x x x x x 14589A 6 4 2 > x x x x x x 12459B 6 4 2 > x x x x x x 1345B 5 4 1 > x x x x x 14569B 6 4 2 > x x x x x x 14579B 6 5 1 > x x x x x x 1458A 5 3 2 > x x x x x 2458A 5 4 1 > x x x x x 2358A 5 4 1 > x x x x x 2568A 5 4 1 > x x x x x 2578A 5 4 1 > x x x x x 12589B 6 3 3 > x x x x x x 12489 5 4 1 > x x x x x 13489B 6 4 2 > x x x x x x 14689A 6 4 2 > x x x x x x 14789A 6 5 1 > x x x x x x 14589A 6 5 1 > x x x x x x 1258A 5 4 1 > x x x x x 1358A 5 4 1 > x x x x x 15689B 6 3 3 > x x x x x x 15789 5 4 1 > x x x x x 14589A 6 4 2 > x x x x x x 12459B 6 4 2 > x x x x x x 1345B 5 4 1 > x x x x x 14569B 6 4 2 > x x x x x x 14579B 6 5 1 > x x x x x x 1458A 5 3 2 > x x x x x
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_12Liczba logowań: 70, liczba unikalnych masek: 20
mask - ^ + > 1 2 3 4 5 6 7 8 9 10 11 12 2458A 5 0 5 > x x x x x 2358AC 6 4 2 > x x x x x x 2568AC 6 5 1 > x x x x x x 12489C 6 3 3 > x x x x x x 13489B 6 4 2 > x x x x x x 14689A 6 4 2 > x x x x x x 14789A 6 5 1 > x x x x x x 14589AC 7 5 2 > x x x x x x x 1258AC 6 5 1 > x x x x x x 15689B 6 3 3 > x x x x x x 15789C 6 4 2 > x x x x x x 14589A 6 4 2 > x x x x x x 12459B 6 4 2 > x x x x x x 1345B 5 4 1 > x x x x x 14569B 6 4 2 > x x x x x x 1458AC 6 3 3 > x x x x x x 2458A 5 4 1 > x x x x x 2358AC 6 4 2 > x x x x x x 2568AC 6 5 1 > x x x x x x 2578AC 6 5 1 > x x x x x x 12589BC 7 4 3 > x x x x x x x 12489C 6 5 1 > x x x x x x 13489B 6 4 2 > x x x x x x 14689A 6 4 2 > x x x x x x 14789A 6 5 1 > x x x x x x 14589AC 7 5 2 > x x x x x x x 1258AC 6 5 1 > x x x x x x 1358AC 6 5 1 > x x x x x x 15689B 6 3 3 > x x x x x x 15789C 6 4 2 > x x x x x x 14589A 6 4 2 > x x x x x x 12459B 6 4 2 > x x x x x x 1345B 5 4 1 > x x x x x 14569B 6 4 2 > x x x x x x 14579B 6 5 1 > x x x x x x 1458AC 6 3 3 > x x x x x x 2458A 5 4 1 > x x x x x 2358AC 6 4 2 > x x x x x x 2568AC 6 5 1 > x x x x x x 2578AC 6 5 1 > x x x x x x 12589BC 7 4 3 > x x x x x x x 12489C 6 5 1 > x x x x x x 13489B 6 4 2 > x x x x x x 14689A 6 4 2 > x x x x x x 14789A 6 5 1 > x x x x x x 14589AC 7 5 2 > x x x x x x x 1258AC 6 5 1 > x x x x x x 1358AC 6 5 1 > x x x x x x 15689B 6 3 3 > x x x x x x 15789C 6 4 2 > x x x x x x 14589A 6 4 2 > x x x x x x 12459B 6 4 2 > x x x x x x 1345B 5 4 1 > x x x x x 14569B 6 4 2 > x x x x x x 14579B 6 5 1 > x x x x x x 1458AC 6 3 3 > x x x x x x 2458A 5 4 1 > x x x x x 2358AC 6 4 2 > x x x x x x 2568AC 6 5 1 > x x x x x x 2578AC 6 5 1 > x x x x x x 12589BC 7 4 3 > x x x x x x x 12489C 6 5 1 > x x x x x x 13489B 6 4 2 > x x x x x x 14689A 6 4 2 > x x x x x x 14789A 6 5 1 > x x x x x x 14589AC 7 5 2 > x x x x x x x 1258AC 6 5 1 > x x x x x x 1358AC 6 5 1 > x x x x x x 15689B 6 3 3 > x x x x x x 15789C 6 4 2 > x x x x x x
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_13Liczba logowań: 80, liczba unikalnych masek: 20
mask - ^ + > 1 2 3 4 5 6 7 8 9 10 11 12 13 14589AD 7 0 7 > x x x x x x x 12459B 6 4 2 > x x x x x x 1345BD 6 4 2 > x x x x x x 14569BD 7 5 2 > x x x x x x x 14579BD 7 6 1 > x x x x x x x 1458ACD 7 4 3 > x x x x x x x 2458AD 6 5 1 > x x x x x x 2358AC 6 4 2 > x x x x x x 2568AC 6 5 1 > x x x x x x 2578AC 6 5 1 > x x x x x x 12589BC 7 4 3 > x x x x x x x 12489CD 7 5 2 > x x x x x x x 13489BD 7 5 2 > x x x x x x x 14689AD 7 5 2 > x x x x x x x 14789AD 7 6 1 > x x x x x x x 14589AC 7 5 2 > x x x x x x x 1258AC 6 5 1 > x x x x x x 1358ACD 7 5 2 > x x x x x x x 15689BD 7 4 3 > x x x x x x x 15789CD 7 5 2 > x x x x x x x 14589AD 7 5 2 > x x x x x x x 12459B 6 4 2 > x x x x x x 1345BD 6 4 2 > x x x x x x 14569BD 7 5 2 > x x x x x x x 14579BD 7 6 1 > x x x x x x x 1458ACD 7 4 3 > x x x x x x x 2458AD 6 5 1 > x x x x x x 2358AC 6 4 2 > x x x x x x 2568AC 6 5 1 > x x x x x x 2578AC 6 5 1 > x x x x x x 12589BC 7 4 3 > x x x x x x x 12489CD 7 5 2 > x x x x x x x 13489BD 7 5 2 > x x x x x x x 14689AD 7 5 2 > x x x x x x x 14789AD 7 6 1 > x x x x x x x 14589AC 7 5 2 > x x x x x x x 1258AC 6 5 1 > x x x x x x 1358ACD 7 5 2 > x x x x x x x 15689BD 7 4 3 > x x x x x x x 15789CD 7 5 2 > x x x x x x x 14589AD 7 5 2 > x x x x x x x 12459B 6 4 2 > x x x x x x 1345BD 6 4 2 > x x x x x x 14569BD 7 5 2 > x x x x x x x 14579BD 7 6 1 > x x x x x x x 1458ACD 7 4 3 > x x x x x x x 2458AD 6 5 1 > x x x x x x 2358AC 6 4 2 > x x x x x x 2568AC 6 5 1 > x x x x x x 2578AC 6 5 1 > x x x x x x 12589BC 7 4 3 > x x x x x x x 12489CD 7 5 2 > x x x x x x x 13489BD 7 5 2 > x x x x x x x 14689AD 7 5 2 > x x x x x x x 14789AD 7 6 1 > x x x x x x x 14589AC 7 5 2 > x x x x x x x 1258AC 6 5 1 > x x x x x x 1358ACD 7 5 2 > x x x x x x x 15689BD 7 4 3 > x x x x x x x 15789CD 7 5 2 > x x x x x x x 14589AD 7 5 2 > x x x x x x x 12459B 6 4 2 > x x x x x x 1345BD 6 4 2 > x x x x x x 14569BD 7 5 2 > x x x x x x x 14579BD 7 6 1 > x x x x x x x 1458ACD 7 4 3 > x x x x x x x 2458AD 6 5 1 > x x x x x x 2358AC 6 4 2 > x x x x x x 2568AC 6 5 1 > x x x x x x 2578AC 6 5 1 > x x x x x x 12589BC 7 4 3 > x x x x x x x 12489CD 7 5 2 > x x x x x x x 13489BD 7 5 2 > x x x x x x x 14689AD 7 5 2 > x x x x x x x 14789AD 7 6 1 > x x x x x x x 14589AC 7 5 2 > x x x x x x x 1258AC 6 5 1 > x x x x x x 1358ACD 7 5 2 > x x x x x x x 15689BD 7 4 3 > x x x x x x x 15789CD 7 5 2 > x x x x x x x
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_14Liczba logowań: 90, liczba unikalnych masek: 20
mask - ^ + > 1 2 3 4 5 6 7 8 9 10 11 12 13 14 14589ADE 8 0 8 > x x x x x x x x 12459BE 7 5 2 > x x x x x x x 1345BDE 7 5 2 > x x x x x x x 14569BDE 8 6 2 > x x x x x x x x 14579BD 7 6 1 > x x x x x x x 1458ACD 7 4 3 > x x x x x x x 2458AD 6 5 1 > x x x x x x 2358ACE 7 4 3 > x x x x x x x 2568ACE 7 6 1 > x x x x x x x 2578AC 6 5 1 > x x x x x x 12589BCE 8 4 4 > x x x x x x x x 12489CD 7 5 2 > x x x x x x x 13489BD 7 5 2 > x x x x x x x 14689AD 7 5 2 > x x x x x x x 14789ADE 8 6 2 > x x x x x x x x 14589ACE 8 6 2 > x x x x x x x x 1258ACE 7 6 1 > x x x x x x x 1358ACD 7 5 2 > x x x x x x x 15689BDE 8 4 4 > x x x x x x x x 15789CD 7 5 2 > x x x x x x x 14589ADE 8 5 3 > x x x x x x x x 12459BE 7 5 2 > x x x x x x x 1345BDE 7 5 2 > x x x x x x x 14569BDE 8 6 2 > x x x x x x x x 14579BD 7 6 1 > x x x x x x x 1458ACD 7 4 3 > x x x x x x x 2458AD 6 5 1 > x x x x x x 2358ACE 7 4 3 > x x x x x x x 2568ACE 7 6 1 > x x x x x x x 2578AC 6 5 1 > x x x x x x 12589BCE 8 4 4 > x x x x x x x x 12489CD 7 5 2 > x x x x x x x 13489BD 7 5 2 > x x x x x x x 14689AD 7 5 2 > x x x x x x x 14789ADE 8 6 2 > x x x x x x x x 14589ACE 8 6 2 > x x x x x x x x 1258ACE 7 6 1 > x x x x x x x 1358ACD 7 5 2 > x x x x x x x 15689BDE 8 4 4 > x x x x x x x x 15789CD 7 5 2 > x x x x x x x 14589ADE 8 5 3 > x x x x x x x x 12459BE 7 5 2 > x x x x x x x 1345BDE 7 5 2 > x x x x x x x 14569BDE 8 6 2 > x x x x x x x x 14579BD 7 6 1 > x x x x x x x 1458ACD 7 4 3 > x x x x x x x 2458AD 6 5 1 > x x x x x x 2358ACE 7 4 3 > x x x x x x x 2568ACE 7 6 1 > x x x x x x x 2578AC 6 5 1 > x x x x x x 12589BCE 8 4 4 > x x x x x x x x 12489CD 7 5 2 > x x x x x x x 13489BD 7 5 2 > x x x x x x x 14689AD 7 5 2 > x x x x x x x 14789ADE 8 6 2 > x x x x x x x x 14589ACE 8 6 2 > x x x x x x x x 1258ACE 7 6 1 > x x x x x x x 1358ACD 7 5 2 > x x x x x x x 15689BDE 8 4 4 > x x x x x x x x 15789CD 7 5 2 > x x x x x x x 14589ADE 8 5 3 > x x x x x x x x 12459BE 7 5 2 > x x x x x x x 1345BDE 7 5 2 > x x x x x x x 14569BDE 8 6 2 > x x x x x x x x 14579BD 7 6 1 > x x x x x x x 1458ACD 7 4 3 > x x x x x x x 2458AD 6 5 1 > x x x x x x 2358ACE 7 4 3 > x x x x x x x 2568ACE 7 6 1 > x x x x x x x 2578AC 6 5 1 > x x x x x x 12589BCE 8 4 4 > x x x x x x x x 12489CD 7 5 2 > x x x x x x x 13489BD 7 5 2 > x x x x x x x 14689AD 7 5 2 > x x x x x x x 14789ADE 8 6 2 > x x x x x x x x 14589ACE 8 6 2 > x x x x x x x x 1258ACE 7 6 1 > x x x x x x x 1358ACD 7 5 2 > x x x x x x x 15689BDE 8 4 4 > x x x x x x x x 15789CD 7 5 2 > x x x x x x x 14589ADE 8 5 3 > x x x x x x x x 12459BE 7 5 2 > x x x x x x x 1345BDE 7 5 2 > x x x x x x x 14569BDE 8 6 2 > x x x x x x x x 14579BD 7 6 1 > x x x x x x x 1458ACD 7 4 3 > x x x x x x x 2458AD 6 5 1 > x x x x x x 2358ACE 7 4 3 > x x x x x x x 2568ACE 7 6 1 > x x x x x x x 2578AC 6 5 1 > x x x x x x
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_15Liczba logowań: 70, liczba unikalnych masek: 20
mask - ^ + > 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 12589BCE 8 0 8 > x x x x x x x x 12489CD 7 5 2 > x x x x x x x 14689ADF 8 5 3 > x x x x x x x x 14789ADE 8 6 2 > x x x x x x x x 14589ACEF 9 6 3 > x x x x x x x x x 1258ACE 7 6 1 > x x x x x x x 1358ACDF 8 5 3 > x x x x x x x x 15689BDE 8 4 4 > x x x x x x x x 15789CD 7 5 2 > x x x x x x x 14589ADE 8 5 3 > x x x x x x x x 12459BE 7 5 2 > x x x x x x x 1345BDE 7 5 2 > x x x x x x x 14569BDE 8 6 2 > x x x x x x x x 14579BDF 8 6 2 > x x x x x x x x 1458ACDF 8 5 3 > x x x x x x x x 2458ADF 7 6 1 > x x x x x x x 2358ACEF 8 5 3 > x x x x x x x x 2568ACE 7 6 1 > x x x x x x x 2578ACF 7 5 2 > x x x x x x x 12589BCE 8 4 4 > x x x x x x x x 12489CD 7 5 2 > x x x x x x x 13489BD 7 5 2 > x x x x x x x 14689ADF 8 5 3 > x x x x x x x x 14789ADE 8 6 2 > x x x x x x x x 14589ACEF 9 6 3 > x x x x x x x x x 1258ACE 7 6 1 > x x x x x x x 1358ACDF 8 5 3 > x x x x x x x x 15689BDE 8 4 4 > x x x x x x x x 15789CD 7 5 2 > x x x x x x x 14589ADE 8 5 3 > x x x x x x x x 12459BE 7 5 2 > x x x x x x x 1345BDE 7 5 2 > x x x x x x x 14569BDE 8 6 2 > x x x x x x x x 14579BDF 8 6 2 > x x x x x x x x 1458ACDF 8 5 3 > x x x x x x x x 2458ADF 7 6 1 > x x x x x x x 2358ACEF 8 5 3 > x x x x x x x x 2568ACE 7 6 1 > x x x x x x x 2578ACF 7 5 2 > x x x x x x x 12589BCE 8 4 4 > x x x x x x x x 12489CD 7 5 2 > x x x x x x x 13489BD 7 5 2 > x x x x x x x 14689ADF 8 5 3 > x x x x x x x x 14789ADE 8 6 2 > x x x x x x x x 14589ACEF 9 6 3 > x x x x x x x x x 1258ACE 7 6 1 > x x x x x x x 1358ACDF 8 5 3 > x x x x x x x x 15689BDE 8 4 4 > x x x x x x x x 15789CD 7 5 2 > x x x x x x x 14589ADE 8 5 3 > x x x x x x x x 12459BE 7 5 2 > x x x x x x x 1345BDE 7 5 2 > x x x x x x x 14569BDE 8 6 2 > x x x x x x x x 14579BDF 8 6 2 > x x x x x x x x 1458ACDF 8 5 3 > x x x x x x x x 2458ADF 7 6 1 > x x x x x x x 2358ACEF 8 5 3 > x x x x x x x x 2568ACE 7 6 1 > x x x x x x x 2578ACF 7 5 2 > x x x x x x x 12589BCE 8 4 4 > x x x x x x x x 12489CD 7 5 2 > x x x x x x x 13489BD 7 5 2 > x x x x x x x 14689ADF 8 5 3 > x x x x x x x x 14789ADE 8 6 2 > x x x x x x x x 14589ACEF 9 6 3 > x x x x x x x x x 1258ACE 7 6 1 > x x x x x x x 1358ACDF 8 5 3 > x x x x x x x x 15689BDE 8 4 4 > x x x x x x x x 15789CD 7 5 2 > x x x x x x x 14589ADE 8 5 3 > x x x x x x x x
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_8Liczba logowań: 60, liczba unikalnych masek: 17
mask - ^ + > 1 2 3 4 5 6 7 8 1458 4 0 4 > x x x x 2458 4 3 1 > x x x x 2358 4 3 1 > x x x x 2568 4 3 1 > x x x x 2578 4 3 1 > x x x x 1258 4 3 1 > x x x x 1248 4 3 1 > x x x x 1348 4 3 1 > x x x x 1468 4 3 1 > x x x x 1478 4 3 1 > x x x x 1458 4 3 1 > x x x x 1258 4 3 1 > x x x x 1358 4 3 1 > x x x x 1568 4 3 1 > x x x x 1578 4 3 1 > x x x x 1458 4 3 1 > x x x x 1245 4 3 1 > x x x x 1345 4 3 1 > x x x x 1456 4 3 1 > x x x x 1457 4 3 1 > x x x x 1458 4 3 1 > x x x x 2458 4 3 1 > x x x x 2358 4 3 1 > x x x x 2568 4 3 1 > x x x x 2578 4 3 1 > x x x x 1258 4 3 1 > x x x x 1248 4 3 1 > x x x x 1348 4 3 1 > x x x x 1468 4 3 1 > x x x x 1478 4 3 1 > x x x x 1458 4 3 1 > x x x x 1258 4 3 1 > x x x x 1358 4 3 1 > x x x x 1568 4 3 1 > x x x x 1578 4 3 1 > x x x x 1458 4 3 1 > x x x x 1245 4 3 1 > x x x x 1345 4 3 1 > x x x x 1456 4 3 1 > x x x x 1457 4 3 1 > x x x x 1458 4 3 1 > x x x x 2458 4 3 1 > x x x x 2358 4 3 1 > x x x x 2568 4 3 1 > x x x x 2578 4 3 1 > x x x x 1258 4 3 1 > x x x x 1248 4 3 1 > x x x x 1348 4 3 1 > x x x x 1468 4 3 1 > x x x x 1478 4 3 1 > x x x x 1458 4 3 1 > x x x x 1258 4 3 1 > x x x x 1358 4 3 1 > x x x x 1568 4 3 1 > x x x x 1578 4 3 1 > x x x x 1458 4 3 1 > x x x x 1245 4 3 1 > x x x x 1345 4 3 1 > x x x x 1456 4 3 1 > x x x x 1457 4 3 1 > x x x x
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_10Liczba logowań: 121, liczba unikalnych masek: 86
mask - ^ + > 1 2 3 4 5 6 7 8 9 10 146 3 0 3 > x x x 247 3 1 2 > x x x 126A 4 1 3 > x x x x 389 3 0 3 > x x x 3459 4 2 2 > x x x x 126A 4 0 4 > x x x x 2349 4 1 3 > x x x x 347 3 2 1 > x x x 137 3 2 1 > x x x 4589 4 0 4 > x x x x 1679 4 1 3 > x x x x 489 3 1 2 > x x x 269A 4 1 3 > x x x x 1234 4 1 3 > x x x x 16A 3 1 2 > x x x 2348 4 0 4 > x x x x 469 3 1 2 > x x x 479 3 2 1 > x x x 179 3 2 1 > x x x 46A 3 0 3 > x x x 47A 3 2 1 > x x x 359 3 0 3 > x x x 678 3 0 3 > x x x 1478 4 2 2 > x x x x 245A 4 1 3 > x x x x 389 3 0 3 > x x x 369A 4 2 2 > x x x x 2369 4 3 1 > x x x x 34A 3 1 2 > x x x 28A 3 1 2 > x x x 156A 4 1 3 > x x x x 2369 4 1 3 > x x x x 359 3 2 1 > x x x 237 3 1 2 > x x x 3469 4 1 3 > x x x x 1569 4 2 2 > x x x x 357A 4 1 3 > x x x x 1238 4 1 3 > x x x x 156A 4 1 3 > x x x x 124A 4 2 2 > x x x x 4568 4 1 3 > x x x x 579 3 1 2 > x x x 1467 4 1 3 > x x x x 239A 4 0 4 > x x x x 389 3 2 1 > x x x 169A 4 1 3 > x x x x 146A 4 3 1 > x x x x 78A 3 1 2 > x x x 3469 4 0 4 > x x x x 367 3 2 1 > x x x 2369 4 2 2 > x x x x 359 3 2 1 > x x x 457 3 1 2 > x x x 1345 4 2 2 > x x x x 47A 3 1 2 > x x x 1478 4 2 2 > x x x x 36A 3 0 3 > x x x 267A 4 2 2 > x x x x 1679 4 2 2 > x x x x 189 3 2 1 > x x x 578A 4 1 3 > x x x x 589A 4 3 1 > x x x x 2457 4 1 3 > x x x x 89A 3 0 3 > x x x 125 3 0 3 > x x x 3689 4 0 4 > x x x x 578 3 1 2 > x x x 16A 3 0 3 > x x x 1278 4 1 3 > x x x x 246 3 1 2 > x x x 359 3 0 3 > x x x 789 3 1 2 > x x x 28A 3 1 2 > x x x 169 3 0 3 > x x x 138A 4 1 3 > x x x x 2356 4 1 3 > x x x x 489 3 0 3 > x x x 478A 4 2 2 > x x x x 358A 4 2 2 > x x x x 78A 3 2 1 > x x x 124A 4 1 3 > x x x x 246A 4 3 1 > x x x x 16A 3 2 1 > x x x 59A 3 1 2 > x x x 236A 4 1 3 > x x x x 3468 4 2 2 > x x x x 1258 4 1 3 > x x x x 1689 4 2 2 > x x x x 178 3 2 1 > x x x 489A 4 1 3 > x x x x 46A 3 2 1 > x x x 479 3 1 2 > x x x 124A 4 1 3 > x x x x 2356 4 1 3 > x x x x 146A 4 1 3 > x x x x 478A 4 2 2 > x x x x 148A 4 3 1 > x x x x 25A 3 1 2 > x x x 579 3 1 2 > x x x 3689 4 1 3 > x x x x 479 3 1 2 > x x x 589 3 1 2 > x x x 3456 4 1 3 > x x x x 349 3 2 1 > x x x 2467 4 1 3 > x x x x 368A 4 1 3 > x x x x 2359 4 1 3 > x x x x 126A 4 1 3 > x x x x 1257 4 2 2 > x x x x 247 3 2 1 > x x x 126 3 1 2 > x x x 28A 3 1 2 > x x x 2467 4 1 3 > x x x x 358A 4 0 4 > x x x x 1369 4 1 3 > x x x x 345 3 1 2 > x x x 3456 4 3 1 > x x x x 157 3 1 2 > x x x 478 3 1 2 > x x x 2678 4 2 2 > x x x x 4589 4 1 3 > x x x x
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ń.