Solaris wpuścił mnie z innym hasłem z tymi samymi 8 pierwszymi znakami

42

Nie wiem, czy to jest normalne, ale rzecz jest, powiedzmy Mam użytkownika Solaris nazwie gloaiza i jego hasło jest password2getin

Ja zalogowaniu się do serwera kit, po prostu umieścić 192.168.224.100 i to skłania do okna z prośbą o użytkownika, więc wpisuję gloaiza , to prosi o hasło i powiedzmy wpisuję password2geti przez pomyłkę, i to działa! Jestem na serwerze!

Czy to normalne? Działa również, jeśli wstawię coś takiego jak hasło2getin2 .

Nie jestem rodzimym językiem angielskim, więc jeśli czegoś nie rozumiesz, zapytaj mnie

System operacyjny: Oracle Solaris 10 1/13

gloaiza
źródło
4
Co dzieje się pod ośmioma postaciami? Wpuszcza passworkcię
thrig
@thrig Ok, mój rzeczywisty hasło ma 9 znaków długości, więc powiedzmy, że hasło jest pass2word, to działa z pass2wor, pass2word1, pass2worr1i tak dalej ... myślę, że działa ze wszystkim po wpisaniu pass2wor nie sądzę, że jest to duży problem, ale też nie jest dobry.
gloaiza,
3
Dopóki poprawnie wykorzystasz pierwsze 8 znaków, pozwoli ci wejść. Niestety, generowanie hasła wymaga użycia szyfrowania w starszych wersjach solaris, ignoruje znak 9 i później.
MelBurslan,
14
Delikatne przypomnienie dla wszystkich osadzonych tutaj programistów, myślących: „To nigdy nie może się zdarzyć w moim systemie:” busyboxpo cichu wróci do DES, jeśli nie masz wszystkich odpowiednich opcji szyfrowania w jego .config i twoim libc. Może poświęcisz dziś chwilę, aby dokładnie sprawdzić swoje pliki passwd/ shadow? ;)
11
@drewbenn - kto do diabła myślał, że cicha degradacja bezpieczeństwa to dobry pomysł? Jezus Chrystus.
Davor

Odpowiedzi:

65

System operacyjny przechowuje skrót hasła w /etc/shadow(lub historycznie /etc/passwd; lub w innej lokalizacji w niektórych innych wariantach Uniksa). Historycznie, pierwszy rozpowszechniony skrót hasłowy był schematem opartym na DES, który miał takie ograniczenie, że uwzględniał tylko pierwsze 8 znaków hasła. Ponadto algorytm mieszania hasła musi być powolny; Schemat oparty na DES był nieco powolny, kiedy został wynaleziony, ale jest niewystarczający według dzisiejszych standardów.

Od tego czasu opracowano lepsze algorytmy. Ale Solaris 10 domyślnie stosuje historyczny schemat oparty na DES. Solaris 11 domyślnie korzysta z algorytmu opartego na iterowanym SHA-256, który spełnia współczesne standardy.

O ile nie potrzebujesz historycznej zgodności ze starożytnymi systemami, przełącz się na iterowany schemat SHA-256. Edytuj plik /etc/security/policy.confi zmień CRYPT_DEFAULTustawienie na 5, co oznacza crypt_sha256. Możesz także chcieć ustawić CRYPT_ALGORITHMS_ALLOWi CRYPT_ALGORITHMS_DEPRECATE.

Po zmianie konfiguracji uruchom, passwdaby zmienić hasło. Spowoduje to zaktualizowanie skrótu hasła z aktualnie skonfigurowanym schematem.

Gilles „SO- przestań być zły”
źródło
1
Dziękuję za Twoją odpowiedź. Kiedy powiedziałeś „ O ile nie potrzebujesz historycznej zgodności ze starożytnymi systemami ”, naprawdę masz na myśli to, co mam na myśli… Czy można naprawdę potrzebować schematu opartego na DES i nie można zmienić na SHA-256, dla niektórych powód?
gloaiza,
11
@gloaiza Może się zdarzyć, jeśli plik skrótu hasła zostanie udostępniony NIS lub innej metodzie na komputerze z naprawdę starym systemem operacyjnym (takim jak Solaris 2.x). W przeciwnym razie nie.
Gilles „SO- przestań być zły”
21

Jest to oczekiwane, przynajmniej w domyślnej konfiguracji Solaris 10 i starszych.

Twój system używa starszego crypt_unixalgorytmu uniksowego , który faktycznie ogranicza liczbę znaków używanych do ośmiu.

Jest to udokumentowane na passwdstronie podręcznika :

Hasła muszą być zbudowane w celu spełnienia następujących wymagań:

  Każde hasło musi mieć znaki PASSLENGTH, gdzie PASSLENGTH jest zdefiniowane w
  / etc / default / passwd i jest ustawiony na 6. Ustawienie PASSLENGTH na więcej niż osiem
  znaki wymagają skonfigurowania policy.conf (4) z obsługiwanym algorytmem
  więcej niż osiem znaków .

Ponieważ ten algorytm jest zasadniczo przestarzały. Powinieneś przejść na coś lepszego (dostępne wartości wymienione na crypt.confstronie podręcznika), ustawiając CRYPT_ALGORITHMS_DEPRECATEi CRYPT_DEFAULTwpisując /etc/security/policy.confplik.

Zobacz http://docs.oracle.com/cd/E19253-01/816-4557/concept-63/index.html

jlliagre
źródło
1
Nie jest prawdą, że „im wyższy, tym lepszy”. Algorytm 2a(bcrypt) może być najlepszy .
Stop Harming Monica,
@OrangeDog Punkt zajęty, porada usunięta
jlliagre
7

Zobacz ten wątek na forach Oracle :

Opisane zachowanie jest oczekiwane w przypadku korzystania z domyślnego schematu szyfrowania hasła „crypt_unix”. Ten schemat szyfruje tylko pierwsze osiem znaków hasła, a zatem tylko pierwsze osiem znaków musi się zgadzać, gdy hasło zostanie wpisane ponownie. Nie jest to „błąd”, ale znane ograniczenie algorytmu - jest w dużej mierze zachowywany w celu zachowania kompatybilności wstecznej i niestety jest ustawiony jako domyślny w systemach Solaris po zainstalowaniu.

Aby rozwiązać ten problem, ustaw system operacyjny na użycie algorytmów MD5 lub Blowfish zamiast crypt_unix.

Można to zmienić w pliku /etc/security/policy.conf. Możesz ustawić algorytmy szyfrowania, aby zezwalały, a także istnieje ustawienie, które zniechęca (zabrania) używania algorytmu „crypt_unix” i zmienia domyślną na bezpieczniejszą.

Aby uzyskać więcej informacji, zapoznaj się z „Podręcznikiem administracji systemu Solaris 10: Usługi bezpieczeństwa”.

Zobacz także Zmiana algorytmu hasła (mapa zadań), a zwłaszcza jak określić algorytm szyfrowania hasła :

Podaj identyfikator wybranego algorytmu szyfrowania.

...

Wpisz identyfikator jako wartość zmiennej CRYPT_DEFAULT w pliku /etc/security/policy.conf.

...

Więcej informacji na temat konfigurowania opcji algorytmu znajduje się na policy.conf(4)stronie man.

Andrew Henle
źródło
2

Tylko do Twojej wiadomości, dzieje się tak również w systemach IBM AIX do wersji 7.1.

To zabawne, ponieważ w tym systemie, z którym pracowałem, obowiązuje zasada „nie można ponownie użyć żadnego z 10 ostatnich haseł”, która uwzględnia długość całego hasła, a następnie sprawdza tylko 8 pierwszych znaków podczas logowania. Aby ustawić hasło jak easypass_%$xZ!01, easypass_%&ssY!02, easypass_%$33zoi@@, ... dla każdego obowiązkowego zmiany hasła, skutecznie utrzymując easypassjako hasło na lata.

Walen
źródło