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:

PWNED
Ta strona została zaprogramowana przy znanego i cenionego na świecie badacza bezpieczeństwa, więc "teoretycznie" jest bezpieczna.

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

KeePass PWNED Kdbxpasswordpwned
Wynik działania narzędzia Kdbxpasswordpwned.

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.

AUTOR:

Adrian Ścibor

Podziel się

Komentarze

Korsarz czw., 28-02-2019 - 01:07

W Windows 10 nie potrzeba instalować Ubuntu. Python od wersji 2.7.9 i 3.4 ma już domyślnie zainstalowany PIP i są dostępne instalatory dla Windowsa. Starsze wersje można dostosować za pomocą skryptu. Można o tym przeczytać tutaj: https://www.makeuseof.com/tag/install-pip-for-python/

Adrian Ścibor czw., 28-02-2019 - 07:37

Masz rację :) Oczywiście, że Python jest pod Windows. Można nawet skompilować skrypt do pliku wykonywalnego exe wraz ze wszystkimi potrzebnymi bibliotekami do uruchomienia.

Dodane przez Korsarz w odpowiedzi na

Dodaj komentarz