Pytanie:
Dlaczego powstrzymywanie ponownego odgadywania hasła nie stało się normą?
donjuedo
2017-02-01 04:02:16 UTC
view on stackexchange narkive permalink

Wszyscy są świadomi konwencji / potrzeby stosowania silnych haseł. Biorąc pod uwagę liczbę różnych rodzajów wskazówek, których ludzie mogą używać w swoich hasłach, a także różne kombinacje wielkich liter i podstawiania cyfr-liter, haker musiałby średnio podejmować wiele prób, aby uzyskać skuteczne hasło.

Ten link: Spowolnienie powtarzających się ataków haseł omawia pewne wysiłki mające na celu zniechęcenie do zgadywania, chociaż to nie jest to samo pytanie, które mam: Dlaczego ingerowanie w powtarzające się domysły nie stało się normą? Zwiększający się czas wycofywania się po każdym błędnym zgadnięciu jest jednym ze sposobów, a inne zostały omówione.

Widziałem bardzo niewiele prób powstrzymania takiego zgadywania w systemach Linux lub jakiegokolwiek uwierzytelniania internetowego. Zostałem zablokowany z jednego systemu, gdy pomyliłem się 3 razy.

Informatycy narzucają coraz więcej ograniczeń, takich jak liczba znaków, litery, cyfry, wielkie litery i wykluczenie nazwy użytkownika z hasła. Ale to po prostu zwiększa liczbę potrzebnych prób w sytuacji, gdy liczba nie jest tak naprawdę ograniczona.

Wymagany cytat!Wiele systemów implementuje przepustnice, chociaż mogą one być ciche, a nie z jawną blokadą;mogą to być również ogólne ograniczenia żądań witryn, a nie tylko dane logowania.W przypadku ssh (który ma już wbudowane opóźnienia), zobacz także popularność fail2ban.Podejrzewam, że powodem, dla którego tak naprawdę często nie napotykasz blokad, jest to, że są one * dobrze dostrojone *, aby nie wywoływały normalnego zachowania użytkownika, a Ty nie próbujesz aktywnie i wytrwale łamać kont użytkowników.
Miarą dobrego bezpieczeństwa jest to, jak dobrze ** rozróżnia ** użytkownika legalnego od złośliwego.System bezpieczeństwa, który blokuje prawowitemu użytkownikowi dostęp do jego konta, nie spełnia kryteriów dostępności triady CIA (poufność, integralność i dostępność).Dobre zasady blokowania kont powinny być zaprojektowane tak, aby nigdy nie były napotykane przez legalnych użytkowników.Jeśli wszystko, co się liczy, to powstrzymywanie złoczyńców bez względu na koszty dla uprawnionych użytkowników, mam najlepszy system bezpieczeństwa na świecie: `function login (un, pw) {return" Przepraszam za złe hasło ";} `.
Dodając do poprzednich komentarzy, takie ograniczenia będą ciche, aby uniknąć pomagania atakującym w dokładnym ustaleniu, które zabezpieczenia są stosowane.
Dość często zdarza się, że systemy zwracają swoją normalną wiadomość „niepoprawna nazwa użytkownika lub hasło” po zablokowaniu konta - w przeciwnym razie ujawniasz, czy konto istnieje, chyba że śledzisz każdą wprowadzoną nazwę użytkownika i odpowiadasz identycznie.
Na przykład @LieRyan, nowy system captcha oznacza, że prawdziwy człowiek nie powinien często wybierać ze zdjęć
@LieRyan: Nauczyłem się CIA jako „poufności” (nikt inny nie może tego przeczytać), „uczciwości” (czytam, co zostało wysłane) i „autentyczności” (tak naprawdę pochodzi od tego, o czym myślę).
AiliaiemutCMT https://en.wikipedia.org/wiki/Information_security#Availability
„Informatycy narzucają coraz więcej ograniczeń, takich jak liczba znaków, litery, cyfry, wielkie litery i wykluczenie nazwy użytkownika z hasła.” Potrzebne źródło.Zwykle to szefowie o spiczastych włosach dodają głupie hasło „wymagania dotyczące siły”.https://xkcd.com/936/
Siła hasła jest również ważna w przypadku hacków, w których haker uzyskał zaszyfrowaną listę haseł.Gdyby hasło każdego było złe, siła funkcji skrótu byłaby mniej ważna.
Nie jestem pewien, czy zgodziłbym się z opinią, że „wszyscy są świadomi potrzeby silnych haseł”.Spójrz na wszelkie zrzuty haseł z ostatnich włamań, a gwarantuję, że znajdziesz tam dużą część trywialnych haseł ...
Dlaczego ludzie nadal używają MD5 do mieszania haseł?Ponieważ nie wiedzą lepiej lub ich to nie [email protected] „Autentyczność” byłaby częścią, integralność ”według twojej własnej definicji.
Sześć odpowiedzi:
#1
+113
Mike Ounsworth
2017-02-01 04:08:47 UTC
view on stackexchange narkive permalink

Chciałbym zakwestionować twoje założenie, że nie to się dzieje.

[ostrzeżenie: szalone przybliżenia do naśladowania]

Pamiętaj, że udany atak brutalnej siły będzie wymagał milionów lub miliardów domysłów na sekundę, aby dokonać pęknięcia w rozsądnym czasie (powiedzmy od kilku godzin do miesiąca, w zależności od siły hasła). Nawet limit 100 prób hasła na sekundę zwiększyłby czas złamania zabezpieczeń z miesiąca do setek tysięcy lat. Może moje standardy są niskie, ale to mi wystarcza i żaden użytkownik, który zgodnie z prawem próbuje dostać się na swoje konto, nigdy tego nie zauważy. Nawet lepiej, gdyby limit szybkości był określany przez IP, a nie przez nazwę użytkownika, aby zapobiec niektórym rodzajom ataków Denial-Of-Service.

Ponadto nie wiem, której dystrybucji Linuksa używasz, ale w moich systemach Ubuntu i CentOS, kiedy błędnie wpisuję hasło na ekranie logowania GUI lub terminalu, blokuje się ono na 1 sekundę przed ponownym wyświetleniem monitu.


Nawet jeśli serwer nie jest aktywnie próby logowania z ograniczeniem szybkości (które naprawdę powinny być), sam czas pingowania wystarczy, aby spowolnić Cię do milionów lat. Prawdopodobnie będziesz DDOS serwer, zanim osiągniesz blisko 1 miliard prób na sekundę. Prawdziwe pieniądze to uzyskanie kopii bazy danych z hasłami i przekazanie jej do platformy GPU, gdzie możliwe są miliardy prób na sekundę.

TL; DR: jeśli jesteś zamierzając włożyć wysiłek w wzmocnienie serwera logowania, zyskasz więcej za swoje pieniądze, poprawiając haszowanie hasła i utrudniając kradzież bazy danych, niż poprzez wprowadzenie ograniczenia szybkości na ekranie logowania.


AKTUALIZACJA : Ponieważ to stało się wirusowe, wyciągnę coś z komentarzy:

Ta logika dotyczy tylko serwerów logowania. W przypadku urządzeń fizycznych, takich jak telefony lub laptopy, typ „3 próby i blokuje się” lub „10 prób i urządzenie wyciera” nadal ma sens, ponieważ ktoś mógłby surfować po ramieniu podczas wpisywania hasła lub zobaczyć wzór smugi na ekranie lub wiedz, że 4-cyfrowy kod PIN i tak ma tylko 10 000 kombinacji, więc liczba zgadnięć, które muszą wykonać, jest bardzo bardzo dużo mniejsza.

Ciekawe jest pomyśleć, że być może niektóre systemy wydają się * wyglądać *, że nie robi się tego w celu zmniejszenia ryzyka DOS i identyfikacji złych (może to miałeś na myśli, Mike?), W przeciwieństwie do systemów powszechnie wdrażających blokady.
@symcbean Tak naprawdę nie myślałem o honeypottingu.Chodziło mi raczej o to, że „blokada” wynosząca 10 milisekund wystarczy, aby zatrzymać atak brutalnej siły, więc po co przeszkadzać użytkownikom bez powodu?Teraz, w przypadku telefonów i komputerów PC z smugami na ekranie lub ludzi spoglądających przez ramię, być może istnieje argument za blokadą po 3, ale OP pytał konkretnie o serwery internetowe.
W systemie Linux, szczególnie w konfiguracjach serwera, istnieje usługa o nazwie Demon niepowodzenia logowania (LFD).Zamiast wyłączać logowanie, LFD tymczasowo blokuje adres IP podczas próby logowania.
@MikeOunsworth Blokada po 3 jest całkowicie niewykonalna, chyba że urządzenie jest centralnie zarządzane i pozwala na odblokowanie przez jakiś firmowy IT lub coś takiego, a nawet wtedy jest to skomplikowane w praktyce.Ludzie wpisują hasła ponad 3 razy zbyt często, szczególnie w przypadkach wymuszania zmiany hasła.
DDOS = rozproszony atak typu „odmowa usługi”.Nie możesz tego zrobić sam.
@JanDvorak Dokładnie o to mi chodzi: nie ma możliwości, aby pojedynczy komputer mógł wygenerować blisko 1 miliard żądań logowania na sekundę.
@DRF Z mojego doświadczenia wynika, że 3-5 prób blokady jest w rzeczywistości dość powszechną praktyką.AD mojej obecnej firmy jest ustawione na 3. Myślę, że potrzebowałem administratora sieci, aby odblokować moje konto może raz lub dwa razy w ciągu 8 lat.Musiałem także poprosić administratora sieci o odblokowanie kont innych użytkowników, którzy próbowali zalogować się do usługi internetowej, o której pisałem kilka razy w tym okresie.Domyślnie mój telefon Samsung faktycznie czyści pamięć telefonu, jeśli hasło zostanie wpisane nieprawidłowo 10 razy.Sądząc po sytuacji z FBI w sprawie strzelca z San Bernardino, iOS najwyraźniej używa tego samego ustawienia domyślnego.
To bardzo mocno zakłada, że celem jest złamanie zabezpieczeń jednego konkretnego hasła, a nie tylko „czyjegoś hasła”.W takim przypadku napastnik (po wyliczeniu kont użytkowników) po prostu wypróbował wszystkie konta z hasłem „Hasło1” lub odpowiednikiem i przechodzi stamtąd, prawdopodobnie uzyskując dostęp ze stosunkowo niewielką liczbą domysłów (w porównaniu z liczbami potrzebnymi do brutalnej siłyjedno konto) jest to jednak bardziej istotne w aplikacjach internetowych niż w systemach Linux, gdzie prawdopodobnie występuje duża populacja użytkowników.
RoryMcCune Jeśli używasz fail2ban lub czegoś innego do ograniczania stawki na podstawie adresu IP, a nie limitu stawki na podstawie żądanej nazwy użytkownika, czy nie oznacza to tego samego?
Nie wspominając o tym, że taka blokada może łatwo przekształcić się w atak DOS - wszystko, co musisz zrobić, to znaleźć nazwy użytkowników usługi i „zgadnąć” trzy złe hasła i voila - usługa nie jest już używana.Szczególnie skuteczny, jeśli administratorzy nie mają specjalnego dostępu, więc nie mogą cofnąć blokad: P
#2
+60
Ken Whitesell
2017-02-01 06:22:34 UTC
view on stackexchange narkive permalink

Istnieje jeden poważny problem z blokowaniem ludzi po wielokrotnych nieprawidłowych próbach - w rzeczywistości staje się on wektorem ataku typu Denial of Service. Pomyśl o tym, co może się stać z działem pomocy technicznej lub witryną obsługi klienta, jeśli kilkaset tysięcy kont zostanie konsekwentnie zablokowanych przez kogoś, kto próbuje zakłócić działanie usługi.

Jest nawet strona internetowa, z której korzystam wysyła mi fizyczną wiadomość e-mail za każdym razem, gdy zmieniam hasło - ktoś szczególnie nieprzyjemny może naprawdę spowodować problemy, znajdując listę kont i wielokrotnie je zawieszając.

Zdecydowanie należy dokonać oceny między bezpieczeństwem a użyteczność i osobiście nie wierzę, że istnieje ustalona lub łatwa odpowiedź.

Czy nie spróbowałbyś zablokować maszyny (źródłowego adresu IP) zamiast używanego użytkownika?W ten sposób osoba atakująca musiałaby być w stanie (udawać) pochodzić z tego samego adresu IP co uprawniony użytkownik.Teraz, chociaż może to być możliwe, myślę, że powinno być znacznie trudniej ...
Sieci botów @Thomas oznaczają, że możesz użyć tysięcy lub milionów adresów IP, aby spróbować zalogować się na konto.
@Thomas A jak przechowujesz te informacje?Jeśli mam botnet z dziesięcioma tysiącami komputerów i zablokuję wszystkich użytkowników systemu z dziesięciu tysięcy różnych maszyn, czy Twój system przetrwa?Jaka jest szansa, że udało mi się również zablokować niektórych legalnych użytkowników (NAT i tym podobne)?W jaki sposób użytkownik może stwierdzić, dlaczego nie może już uzyskać dostępu do swojego konta, zwłaszcza gdy dobrą praktyką w zakresie bezpieczeństwa jest unikanie poinformowania użytkownika, że jego konto zostało zablokowane?Czy Twoja usługa może sobie z tym poradzić?
Co zabawne, [sam Stack Exchange został użyty do ataku typu password-reset-email flood] (http://meta.stackexchange.com/questions/270051/please-rate-limit-the-password-reset-functionality)
@Luaan „To zawsze jest coś” (RFC 1925)
#3
+5
Slava Knyazev
2017-02-01 04:08:21 UTC
view on stackexchange narkive permalink

Wystarczająca złożoność sprawia, że ​​brutalna siła jest niepraktyczna z technologicznego punktu widzenia, a jej spowolnienie nie dałoby dużo więcej.

„Ale to po prostu zwiększa liczbę potrzebnych prób” to dziwny sposób, jeśli mówimy o miliardy lat dłużej.

Spowolnienie, które sobie wyobrażałem, może wynosić 1 dodatkową sekundę po pierwszej awarii, następnie 2 sekundy, 4, 8 i tak dalej.Oczywiście musi się to zresetować po spełnieniu pewnego kryterium.Przy takim poziomie opóźnienia nawet skromne hasło wydawałoby się wystarczające (dla mnie, nowicjusza).
@donjuedo Ale w jakim celu?Przy wystarczającej złożoności po prostu nie ma to znaczenia.Serwer będzie skamieniałością, zanim go zdobędzie.
Ma to na celu zapamiętanie łatwiejszych haseł przy jednoczesnym zachowaniu bezpieczeństwa.
Więc używać mniej złożonych haseł?To po prostu zły pomysł, bez względu na to, jak na to spojrzysz.
Porównujemy (złożone hasła odgadywane przy dużej szybkości) z (mniej skomplikowane hasła odgadywane przy małej szybkości).Żadna z nich nie jest z natury lepsza od drugiej.Ważne jest to, co powiedziałeś: „niepraktyczne stosowanie brutalnej siły” lub przewidywany czas na złamanie jest zbyt długi.
złożone hasła odgadywane z dużą prędkością SĄ jednak z natury lepsze.Szybkość jest liniowa, a złożoność wykładnicza.
Jest to odpowiedź typu „winę ofiarę”.Wybór hasła entropicznego jest dobrym środkiem zaradczym, ale * użytkownicy * przyjmują go, aby chronić się przed napastnikami.Natomiast ograniczanie prób logowania jest środkiem, który * programiści * i * administratorzy * podejmują w celu ochrony użytkowników przed atakującymi * i sobą *.Programiści i administratorzy nie mogą uratować * wszystkich * użytkowników przed ich złymi wyborami, ale mamy obowiązek zapewnić rozsądne zabezpieczenia.
@donjuedo, który będzie chronił tylko słabe hasło przed brutalnym atakiem * przez ten pojedynczy kanał *.Jeśli np.solone hashe wyciekają z bazy danych, wtedy słabe hasła byłyby podatne na brutalne forsowanie „wokół” serwera i przepustnicy, podczas gdy silne hasła byłyby nadal chronione.
#4
+4
Goodbye SE
2017-02-02 15:48:24 UTC
view on stackexchange narkive permalink

Zakładasz, że hasła można sprawdzić tylko za pomocą loginu, ale dość często dochodzi do wycieku danych / włamania, które pozwalają komuś uzyskać tablice skrótów hasła. Jeśli je ma, może po prostu brutalnie wymusić hashe, co jest kilkakrotnie szybsze niż używanie loginu. I tam naprawdę potrzebujesz dobrych haseł.

#5
+2
Rory McCune
2017-02-02 19:48:03 UTC
view on stackexchange narkive permalink

Bardzo ważną koncepcją, której nie widzę w innych odpowiedziach, jest rozróżnienie między brutalną siłą offline i online.

W trybie offline atakujący ma dostęp do zaszyfrowanych haseł i tutaj główną obroną jest użycie odpowiedniego algorytmu haszowania haseł (np. bcrypt). punkty dotyczące algorytmów mieszania, łamania GPU itp. odnoszą się tylko do brutalnej siły w trybie offline

Zakładam, że to pytanie dotyczy brutalnej siły online, w której atakujący próbuje zalogować się do systemu prawdopodobnie zdalnie.

Przy zdalnym logowaniu do usług takich jak SSH, jak już wspomniano, zdalne odgadywanie haseł jest często blokowane przez fail2ban lub podobne.

Gdzie nie jest to powszechne w aplikacjach internetowych (wiem, ponieważ daję właścicielom aplikacje internetowe w przypadku braku tej funkcji dość często).

W niektórych systemach stosowana jest prosta blokada, ale wiąże się to z ryzykiem odmowy usługi ze strony atakujących polegających na zgadywaniu haseł, a także z pewnymi niedogodnościami dla użytkowników, w zależności od mechanizmu ponownej aktywacji kont.

Lepszym rozwiązaniem jest wymuszanie rosnącego opóźnienia w próbach logowania, aby atak był mniej wykonalny, jednak ważne jest, aby pamiętać, że w niektórych przypadkach atakujący może po prostu chcieć przejąć jedno konto (i nie obchodzi go, kto je otrzyma), w którym w przypadku, gdy mogą po prostu wypróbować niewielką liczbę popularnych haseł w całej bazie użytkowników, oczekując, że ktoś ich użył.

Twoje założenie dotyczące kwestii związanej z brutalną siłą online jest poprawne.Kiedy pisałem, nawet nie rozważałem ataku offline i zauważyłem go dopiero po tym, jak został wspomniany tu i tam.
#6
+1
dark_st3alth
2017-02-01 04:20:40 UTC
view on stackexchange narkive permalink

Najłatwiej spojrzeć na to, zadając inne pytanie. Dlaczego SHA-1 / MD5 jest nadal w użyciu, skoro istnieją znane wady / problemy z nim związane?

Mówiąc najprościej, ocena ryzyka osoby / korporacji uznaje, że te kwestie nie są głównym problemem. Tak jak w przypadku kroczących limitów czasu.

Kiedy zajmowałem się administracją w lokalnej szkole, nauczyciele często „odgadywali” swoje własne hasła. Zmuszanie nauczycieli do czekania było o wiele bardziej niewygodne, a następnie po prostu blokowanie konta po 4 lub 5 nieprawidłowych hasłach i telefonowanie do mnie, aby je odblokować.

Poważnym problemem są również przekroczenia limitów czasu. W przypadku systemu lokalnego może to nie stanowić problemu, ale weź przykład mojej szkoły (tak jak powyżej) lub dużego przedsiębiorstwa zatrudniającego ponad 1000 pracowników. Nie można już wykonywać pracy, ponieważ ktoś siedzi przy monicie o hasło i czeka na szansę wprowadzenia prawidłowego hasła. Może ktoś pomyślał, że zabawnie byłoby nakłonić kogoś do siedzenia przez kilka godzin, albo napastnik chciał spowolnić produkcję? Należy wziąć pod uwagę to, że musi istnieć sposób zarządzania tym, jak długie są limity czasu, o ile zwiększają się, oraz sposób ich resetowania.

Twierdzę, że system blokowania, taki jak ten, przez Windows, jest w rzeczywistości bezpieczniejszy. Wymaga interwencji administracyjnej i może być znacznie szybsze do cofnięcia (plus czas potrzebny na przeglądanie dzienników). W systemie internetowym przekroczenie limitu czasu może być korzystniejsze, ale jak już widzieliśmy, skróty haseł będą wyciekać, a przekroczenie limitu czasu nie będzie pomocne.

W rzeczywistości ekran logowania do systemu Windows * ma * opóźnienie.Dostajesz kilka prób za darmo, a potem zaczyna dodawać dodatkowe opóźnienia.(Wpadłem na to, gdy próbowałem zalogować się za pomocą innej klawiatury.)
@MartinBonner Nastąpi to po trzecim (lub piątym?) Błędnym wpisie, gdzie występuje znaczne opóźnienie.Jeśli dobrze pamiętam, nie ma funkcji „toczenia”, opóźnienie nie staje się coraz dłuższe.Z drugiej strony, w tym momencie powinno nastąpić zablokowanie konta.
Blokady mają jednak swoje ryzyko, zwłaszcza gdy napastnik jest zdalny, co oznacza, że dość łatwo jest dla niego wykonać usługę DoS, zwłaszcza jeśli znany jest format nazwy użytkownika.
@dark_st3alth Blokada konta ma sens tylko w domenie.Chociaż duża część komputerów z systemem Windows działa w domenie, nie można tak naprawdę zignorować wszystkich komputerów, które tego nie robią.Jak użytkownik spoza domeny odzyskałby zdrowie po zablokowaniu?


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...