Po ostatnich kilku mega wyciekach zachodzi jeszcze większa potrzeba kontrolowania loginów i haseł. Zazwyczaj przy wyciekach mamy do czynienia z bazą danych zawierającą m.in. rekordy z hasłami — i jeśli serwis internetowy poważa swoich klientów, to przynajmniej przechowuje hasła w formie „posolonej funkcji skrótu” (np. SHA512 + sól), dzięki czemu zcrackowanie hashy haseł będzie znacznie utrudnione lub nawet niemożliwe. Drupal 7 robi to tak:
"pass" : "$S$Dxl65W9p07LfQU7jvy5CnsyDpMoLujiAgzy123khcg1OJi/P9pKS" The characters 0-2 are the type ( $S$ is Drupal 7 ) The character 3 is the number of log2 rounds (X) based on the position of the char in this list: './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' So in our example 'D' would map to 15 The characters 4-11 are the SALT The rest is a SHA512 hash using 2^X rounds. The binary result is then converted to a string using base64. $count = 1 << $count_log2; $hash = hash($algo, $salt . $password, TRUE); do { $hash = hash($algo, $hash . $password, TRUE); } while (--$count); The whole process can be found in: mydrupalsite\includes\password.inc
Rozsądny użytkownik używa menadżerów haseł np. KeePass. Oprogramowanie ma kilka forków na różne systemy operacyjne i umożliwia szybkie uzupełnianie dowolnego pola np. z loginem i hasłem, ale potrafi też w taki sam sposób logować się do klienta FTP np. FileZilla i wypełnić pola z adresem IP hosta, hasłem, loginem i „kliknąć” w „połącz”.
Problem powstaje, kiedy trzeba zweryfikować, które hasło z bazy haseł KeePass zostało ujawnione i opublikowane w bazie PWNED w wyniku jakiegoś wycieku. Można zrobić to ręcznie, czyli K A Ż D E H A S Ł O K R O K P O K R O K U kopiować i wklejać w to pole:
Można to też zrobić automatycznie za pomocą tego skryptu napisanego w Pytonie. A więc instalujemy środowisko Python:
sudo apt install python3.5
Instalujemy instalator pakietów Pythona PIP:
sudo apt install python3-pip
Instalujemy z repozytorium Pythona nasz programik:
pip install kdbxpasswordpwned
Uruchamiamy program, podając jako argument ścieżkę do bazy z rozszerzeniem .kdbx:
Kdbxpasswordpwned -p /home/test/Pulpit/baza.kdbx
Narzędzie przeszukuje zapisane loginy i hasła oraz porównuje je z tymi w bazie na stronie https://haveibeenpwned.com za pomocą API. Jak podaje autor, skrypt jest w pełni bezpieczny i nigdzie nie udostępnia tych danych (oczywiście z wyjątkiem witryny, za pomocą której weryfikuje wyciek). Narzędzie ma otwarty kod, więc każdy może zobaczyć, co się w nim znajduje i jak działa.
Rezultatem działania narzędzia są informacje w konsoli na temat strony internetowej oraz hasła, które zostało użyte do logowania się np. do nexusmods.com/skyrim. Jeżeli takie hasło znajduje się w bazie PWNED, to zostało ono wyświetlone w terminalu.
Natomiast jeśli w bazie KeePass znajdują się ujawnione hasła, to jeszcze nie ma powodów do paniki. Należy upewnić się, że hasła wypisane w konsoli są zarezerwowane dla mało znaczących serwisów, w których nie zapisujemy żadnych istotnych danych. W przeciwnym razie należy zalogować się do wskazanego serwisu i zmienić hasło na unikalne. Warto wykorzystać do tego wbudowany generator haseł w KeePass. Użytkownik we własnym zakresie powinien rozważyć, co zrobić z ujawnionymi informacjami przez narzędzie „kdbxpasswordpwned”.
Skrypt może być uruchomiony w Windows po zainstalowaniu Pythona, na maszynie wirtualnej z dowolną dystrybucją Linuksa albo w Windows 10 w zainstalowanym systemie np. Ubuntu ze sklepu Microsoft Store.
Czy ten artykuł był pomocny?
Oceniono: 0 razy