Jak znaleźć algorytm mieszający używany do mieszania haseł?
11
Mam działające hasło i widzę skrót (/ etc / passwd). Jak znaleźć algorytm mieszający używany do mieszania hasła bez ręcznego wypróbowywania różnych algorytmów, dopóki nie znajdę dopasowania?
Jestem bardzo zaskoczony, że widzisz skrót /etc/passwd. Myślałem, że wszystkie warianty Unix / Linux przeniosły się z /etc/shadowlaty temu. (Wiem, że takie systemy nadal obsługują skróty, passwdale nie znam narzędzi, które by je tam umieściły. Być może system wbudowany?
roaima
To OpenWrt Backfire 10.03. Hashe nadal są /etc/passwdtutaj przechowywane . Nie zmienia to jednak kwestii pytania. Czy to?
Dorin Botan
1
Dla przypomnienia: BSD mają dwa pliki Berkeley DB, roaima. Nadal jest podzielony, ale tak nie jest /etc/shadowi nie mają pliku o tej nazwie.
Jeśli sól jest ciągiem znaków rozpoczynającym się od znaków „$ id $”, po którym następuje ciąg opcjonalnie zakończony „$”, wynik ma postać:
$id$salt$encrypted
id identyfikuje zastosowaną metodę szyfrowania zamiast DES, a następnie określa, w jaki sposób interpretowana jest reszta ciągu hasła. Obsługiwane są następujące wartości id:
ID | Method
─────────────────────────────────────────────────────────
1 | MD5
2a | Blowfish (not in mainline glibc; added in some
| Linux distributions)
5 | SHA-256 (since glibc 2.7)
6 | SHA-512 (since glibc 2.7)
Blowfish, znany również jako bcryptjest również zidentyfikowane przez prefiksów 2, 2b, 2x, i 2y(zobacz dokumentację PassLib za ).
Jeśli więc hashowane hasło jest przechowywane w powyższym formacie, możesz znaleźć algorytm, patrząc na identyfikator ; w przeciwnym razie jest to cryptdomyślny algorytm DES (z 13-znakowym skrótem) lub „duży” cryptDES (rozszerzony do obsługi 128-znakowych haseł, z skrótami do 178 znaków) lub BSDI rozszerzony DES (z _prefiksem a następnie 19-znakowy skrót).
Niektóre dystrybucje używają libxcrypt, który obsługuje i dokumentuje jeszcze kilka innych metod:
y: yescrypt
gy: gost-yescrypt
7: scrypt
sha1: sha1crypt
md5: SunMD5
Inne platformy obsługują inne algorytmy, więc sprawdź crypttam stronę podręcznika. Na przykład OpenBSDcrypt(3) obsługuje tylko Blowfish, które identyfikuje za pomocą identyfikatora „2b”.
Hasła oparte na DES mają BTW zawsze 13 znaków i składają się ze znaków alfanumerycznych, a także .i /. Pierwsze 2 znaki to sól, a pozostałe 11 to wartość skrótu (niejako). Jest to jedyny obsługiwany algorytm, cryptktóry jest tak słaby, że nie można go zrekompensować, wybierając silniejsze hasło.
/etc/passwd
. Myślałem, że wszystkie warianty Unix / Linux przeniosły się z/etc/shadow
laty temu. (Wiem, że takie systemy nadal obsługują skróty,passwd
ale nie znam narzędzi, które by je tam umieściły. Być może system wbudowany?/etc/passwd
tutaj przechowywane . Nie zmienia to jednak kwestii pytania. Czy to?/etc/shadow
i nie mają pliku o tej nazwie.Odpowiedzi:
Jest to udokumentowane w
crypt(3)
„s podręcznika , który można znaleźć poprzezshadow(5)
„s podręcznika , lubpasswd(5)
„s . Te linki są odpowiednie dla nowoczesnych systemów opartych na Linuksie; opis jest:Blowfish, znany również jako
bcrypt
jest również zidentyfikowane przez prefiksów2
,2b
,2x
, i2y
(zobacz dokumentację PassLib za ).Jeśli więc hashowane hasło jest przechowywane w powyższym formacie, możesz znaleźć algorytm, patrząc na identyfikator ; w przeciwnym razie jest to
crypt
domyślny algorytm DES (z 13-znakowym skrótem) lub „duży”crypt
DES (rozszerzony do obsługi 128-znakowych haseł, z skrótami do 178 znaków) lub BSDI rozszerzony DES (z_
prefiksem a następnie 19-znakowy skrót).Niektóre dystrybucje używają libxcrypt, który obsługuje i dokumentuje jeszcze kilka innych metod:
y
: yescryptgy
: gost-yescrypt7
: scryptsha1
: sha1cryptmd5
: SunMD5Inne platformy obsługują inne algorytmy, więc sprawdź
crypt
tam stronę podręcznika. Na przykład OpenBSDcrypt(3)
obsługuje tylko Blowfish, które identyfikuje za pomocą identyfikatora „2b”.źródło
.
i/
. Pierwsze 2 znaki to sól, a pozostałe 11 to wartość skrótu (niejako). Jest to jedyny obsługiwany algorytm,crypt
który jest tak słaby, że nie można go zrekompensować, wybierając silniejsze hasło.