Jeśli mogę cat /etc/shadow
uzyskać zaszyfrowane hasła roota i mojego użytkownika.
Te hasła są takie same (wiem, złe bezpieczeństwo) dla każdego konta, ale /etc/shadow
pokazują się jako różne zaszyfrowane ciągi.
Dlaczego? Czy dla każdego stosowane są różne algorytmy?
Odpowiedzi:
Oddzielni użytkownicy oznaczają oddzielny identyfikator użytkownika, dlatego też algorytm będzie obejmował osobne skróty.
Nawet użytkownik o tej samej nazwie, tym samym haśle i utworzony w tym samym czasie (z prawie pewnym prawdopodobieństwem) skończy z innym hashem. Istnieją inne czynniki, które pomagają utworzyć szyfrowanie.
Jeśli chcesz spojrzeć na szybki przykład tutaj , może to lepiej wyjaśnić.
źródło
/etc/passwd
,/etc/shadow
to nazwa użytkownika, a nie identyfikator użytkownika (co nie jest nawet wymienione w/etc/shadow
).Algorytm jest taki sam. Nowoczesne zestawy cieni używają podłączanych modułów uwierzytelniania (PAM), a PAM pozwala skonfigurować jeden algorytm mieszający. Chodzi o „solenie”, co oznacza losowe hasło w celu uzyskania efektu, o który pytasz.
Solenie jest przeciwwagą dla ataków słownikowych, w których atakujący ze słownikiem znanych par hasło / hash próbuje dowiedzieć się, czy podana wartość skrótu dla nieznanego hasła odpowiada wartości skrótu dla jednego ze znanych haseł.
Solenie zapobiega temu, ponieważ inna wartość soli prowadzi do innej wartości skrótu, więc nie ma znaczenia, że hasło jest równe. (Jest to jednak zła praktyka, ale z innych powodów.) Aby atak słownikowy zakończył się powodzeniem, atakujący musi teraz mieć słowniki dla każdej możliwej wartości soli. Prawdziwie losowa sól o wystarczającej wielkości sprawi, że prawdopodobieństwo takiego ataku będzie znikome.
Sugerowana lektura: Jak przechowywane są hasła w Linuksie (Zrozumienie haszowania za pomocą narzędzi-cieni)
źródło
W pliku cienia zobaczysz liczbę między $$ (powiedz 1 $ $ lub coś w tym rodzaju). Wskazuje, który algorytm mieszający jest używany przez twoją maszynę. Zidentyfikuj algorytm i zobacz, jak on działa. Na przykład 6 USD to SHA 512, który został zaprojektowany w taki sposób, że nawet jeśli 2 osoby mają to samo hasło, skrót hash ich hasła będzie inny.
źródło