Czy są jakieś uzasadnione powody, aby nie dopuszczać znaków i ograniczać długości haseł?

39

Natknąłem się na kilka stron, które albo ograniczają długość, na jaką pozwalają na hasła, i / lub nie dopuszczają niektórych znaków. To mnie ogranicza, ponieważ chcę poszerzyć i wydłużyć przestrzeń wyszukiwania mojego hasła. Daje mi to również niewygodne wrażenie, że mogą nie mieszać.

Czy istnieją dobre powody albo ustawiając górną długość lub wyłączeniem znaków w hasłach?

Chris
źródło
26
Pewnie! Ułatwia odgadywanie haseł ludzi! : P
FrustratedWithFormsDesigner
4
Czy mówimy o ważnych przyczynach „technicznych”, czy ważnych „biznesowych”?
Martin York,
1
@Martin: Myślałem technicznie, ale chyba tak.
Chris
11
@JYelton Dlaczego obchodzi Cię, jaka jest oryginalna długość hasła? Hash będzie zawsze tego samego rozmiaru. Z pewnością mam nadzieję, że nie przechowujesz ich w postaci zwykłego tekstu ...
Pewpewarrows

Odpowiedzi:

27

Nie

Nie ma dobrych powodów.

EDYCJA: Nie mogę udowodnić, że nie ma dobrych powodów, ponieważ nie można udowodnić negatywności. Nie mogę wymyślić żadnych dobrych powodów - jak zauważyli inni, skrót będzie tego samego rozmiaru niezależnie od wielkości danych wejściowych, a wyeliminowanie prawidłowych znaków (z kontekstu pytania) po prostu zmniejsza przestrzeń stanu. Na pierwszy rzut oka odpowiedź wydaje się oczywista: nie ma dobrych powodów. Może istnieć wiele powodów, które brzmią dobrze lub wydają się dobre, ale tak nie jest. Gdyby tak było, ktoś już by je tutaj opublikował, a gdyby nie tutaj, to z pewnością na security.stackexchange.com, a ta odpowiedź nie byłaby tak mocno oceniona.

Steven A. Lowe
źródło
3
Zgadzam się, ale komentarz Kissaki dotyczący kodowania jest poprawny. Niektórzy stosy / programiści po prostu nie wydają się poprawiać kodowania, ponieważ ograniczenie do ASCII jest tanim hackem, aby działało.
edA-qa mort-ora-y
10
Czy mógłbyś przynajmniej spróbować opracować? Albo nie znasz tego faktu, albo masz powód, by sądzić, że wspólne / istniejące powody są nieprawidłowe. Biorąc pod uwagę wątpliwości i zakładając to drugie, powinieneś wyjaśnić, dlaczego te powody są nieważne.
Aaronaught
8
-1 - Mogę wymyślić kilka dobrych powodów, aby ograniczyć hasła do danego zestawu znaków. Podobnie, musisz obsługiwać hasła tonowe, a także hasła wpisywane za pomocą klawiatury, o których musisz pamiętać.
rjzii
9
-1. Bez uzasadnienia, tylko opinia. Jeśli zamierzasz złożyć ogólne oświadczenie, wykonaj kopię zapasową.
Michael K
4
Jest to obecnie omawiane na naszej stronie meta-dyskusji : pomocne byłoby zrozumienie, dlaczego odpowiedź na jedno słowo jest tak popularna i co możemy zrobić, aby poprawić jakość takich odpowiedzi.
25

Ograniczenie długości może być miarą ograniczającą czas wykonywania mieszania, a także ograniczającą szerokość pasma (a i tak oba są naprawdę marginalne). Poza tym nie ma dobrego powodu, szczególnie z punktu widzenia bezpieczeństwa.

Można powiedzieć: „Ludzie łatwiej zapomną dłuższe hasła” - ale to naprawdę głupie stwierdzenie i wcale nie dochodzi do sedna.

Jeśli chodzi o znaki, o ile zdajesz sobie sprawę z potencjalnych problemów z kodowaniem podczas przesyłania i / lub migracji danych w przyszłości (np. Za 2 lata zmienisz ASCII na UTF-8), dzięki czemu więcej znaków może być dobre tylko dla siły haseł.

Kissaki
źródło
4
Biorąc pod uwagę obciążenie jakimkolwiek nowoczesnym protokołem długość nie może absolutnie być dobrym powodem - innym niż wysoki limit, taki jak 1K, tylko po to, aby zapobiec pewnym atakom / nonsensom.
edA-qa mort-ora-y
3
Ograniczanie czasu wykonywania mieszania jest ogólnie złe. Im dłużej trwa obliczanie skrótu, tym dłużej trwa jego brutalna siła.
tdammers
Chociaż to prawda, zawsze jest to kompromis. Nie zawsze chcesz obliczyć najlepszy skrót, który zajmuje najwięcej czasu. Stąd asymetryczny uścisk dłoni a symetryczny strumień danych w sieci VPN itp.
Kissaki,
17

Tak , istnieje powód dla znaków specjalnych.

Niedozwolone znaki specjalne są bardziej użyteczne niż związane z bezpieczeństwem. Przede wszystkim mogą zostać zakłócone przez problemy z kodowaniem. Po drugie, nawet jeśli gwarantujesz, że zawsze będziesz używać tego samego kodowania, nadal istnieje problem z urządzeniem wejściowym. Będziesz zależał od posiadania pełnej klawiatury (co eliminuje większość urządzeń mobilnych) z takim samym układem klawiatury. Później różnią się nie tylko między językami, ale także między systemami operacyjnymi, układy dla systemów Windows, Linux i OSX mogą być nieco inne. Więc widzę powód, aby nie dopuścić hasła jak: √Ω≈ç∫∞§…¬å∑±.

vartec
źródło
3
chyba że dostarczenie hasło do użytkowników, to znaczy, jeśli są te wchodzące sami hasło, a następnie, jeśli tak zdecydują używać jakiś dziwny symbol matematyczny jest naprawdę ich działalności. teraz zgadzam się z problemem kodowania tutaj, chociaż uważam, że jest to raczej wymówka, aby przejść poniżej niekompetencji radaru, niż faktyczny dobry powód, aby arbitralnie zapobiegać niektórym postaciom.
Newtopian
2
@new: to nie ich sprawa. Jeśli strzelą sobie w stopę, nadal będą postrzegać problem z aplikacją i zadzwonią do wsparcia.
vartec
7
@Newtopian: Nienawidzę tego, gdy jako użytkownik jestem ograniczony z powodu niewiedzy (np. Nie jestem w stanie podać znaku „+” na moim adresie e-mail). Czasami jednak dobrym pomysłem jest, aby nie dawać użytkownikom zbyt wielu lin do zawieszenia się. Myślę, że to taka okazja. Nie chodzi o „arbitralne” zapobieganie niektórym postaciom.
Zano
1
Więc popierasz Greków, Arabów, Chińczyków i innych, którzy używają US-ASCII?
l0b0
@ l0: nie, zalecam używanie normalnych, często używanych znaków w ich językach, a nie znaków specjalnych, które mogą być nieobecne w niektórych układach.
vartec
13

Kilka lat temu w świecie bezpieczeństwa pojawiła się kontrowersja, kiedy klienci Chase odkryli, że w ich hasłach nie jest rozróżniana wielkość liter. Okazało się, że ich strona internetowa była tylko frontendem dla około 30-letniego systemu backend OS / 400, który miał techniczne ograniczenie, że ignorował wielkość liter. Naprawienie tego kosztowałoby najwyraźniej miliony dolarów.

Chodzi o to, że mogą istnieć drogie starsze powody, dla których nie można zezwolić na hasła na pewną długość.
(Uwaga: nie toleruję tej wymówki ...)

BlueRaja - Danny Pflughoeft
źródło
1
o ile jest to jedyny dobry powód, aby ograniczyć hasło w jakikolwiek sposób ... tylko wtedy, gdy system bazowy zachowa takie ograniczenia.
Newtopian
8

Większość banków, działów IT itp., Które egzekwują ograniczenia maksymalnego hasła, nie robią tego ze względów technicznych. Doskonale zdają sobie sprawę z tego, jak działa haszowanie haseł i jak przechowywać złożone hasła. Nakładają te ograniczenia, ponieważ zmniejsza liczbę połączeń w celu wsparcia osób, które zapomniały hasła. Czy to dobry powód, aby wprowadzić tego rodzaju ograniczenia? W żaden sposób. Niemniej jednak jest to główny powód.

Greg Jackson
źródło
1
Widzę zmniejszanie liczby zgłoszeń do pomocy jako valid Business reason(Osobiście nie sądzę, aby istniała korelacja)
Martin York
2
Istnieją inne sposoby resetowania haseł lub edukowania użytkowników, jak wybierać wystarczająco złożone hasła, które są łatwe do zapamiętania. Moje ostatnie kilka haseł w pracy zawierało> 25 znaków i nie miałem problemu z ich zapamiętaniem. Ponadto, prawdopodobnie ludzie, którzy mają problemy z zapamiętywaniem swoich długich haseł, nadal wybiorą krótsze hasła, chociaż nie mam pojęcia, jak często to prawda. Zmniejszenie liczby zgłoszeń do pomocy wydaje się na pierwszy rzut oka ważnym uzasadnieniem biznesowym, ale nadal jest kiepskim powodem ograniczania długości hasła.
Greg Jackson
1
Myślę, że moje (i wiele osób) trafnie wpisuje (nie tylko zapamiętuje) 25 znaków, nie widząc wyników prawie niemożliwych. Do tej pory naprawiłem 5 literówek podczas pisania!
Gerry
Pamiętanie nie jest tym samym, co pisanie. Zapamiętywanie długich haseł jest bardzo łatwe, jeśli wiesz, jak je wybrać; po prostu wybieraj wiersze z opowiadań lub sztuk albo fragmenty wierszy lub tekstów piosenek. Tak długo, jak zmienisz jedną lub dwie rzeczy (celowe błędy ortograficzne, zmień jedno słowo na drugie, które brzmi jak to lub oznacza to samo, itp.), Jest to dość łatwe i wyjątkowo bezpieczne. To prawda, że ​​wpisywanie może być trudniejsze, ale banki nie usprawiedliwiają zmuszania Cię do wpisywania mniej niż 8/10/12 znaków.
Greg Jackson
spróbuj wpisać 25-literowe hasło na urządzeniu mobilnym
Lie Ryan,
7

Nie wszystkie urządzenia wejściowe (sprzętowo) często mają wszystkie znaki, które ma pełna klawiatura lub podobnie. Jeśli nie używasz menedżera haseł, możesz mieć problemy z wprowadzeniem takiego hasła, prawda? A Unicode jest wciąż daleki (daleko) od bycia standardem.

Wieża
źródło
1
Zwykle osoby wprowadzające hasła będą używać tego samego sprzętu (lub klasy sprzętu) do ich tworzenia i uwierzytelniania. Nie rozumiem, w jaki sposób jest to argument ograniczający zestawy znaków lub długość. Jeśli chodzi o Unicode, podczas budowania po stronie serwera (część uwierzytelniająca) dlaczego miałbyś ograniczyć rozmiar lub zestawy znaków? każdy system wymagający podania hasła powinien mieć możliwość kontrolowania sposobu wprowadzania hasła w systemie, dlatego jeśli potrzebujesz kodu Unicode dla swojego klienta, niech tak będzie!
Newtopian
@Newtopian Zakładasz, że nie musisz łączyć się ze starszymi systemami lub systemami niezależnymi od ciebie.
grahamparks
1
poprosili o dobry powód, to nie jest dobry powód
2
@Jarrod - Brak możliwości wprowadzenia hasła nie jest dobrym powodem ?! W każdym razie nie widziałem, żebyś wpadł na lepszy (lub w ogóle).
Gawron
3
@Rook, nie powinieneś był używać tych znaków, jeśli wiedziałeś, że nie możesz ich wybrać z urządzenia, co nie czyni z tego powodu dobrego ograniczenia dla wszystkich, dlatego jest to dobry powód, dla którego osobiście ich nie używasz.
7

Czy istnieją uzasadnione powody, aby ustawić wyższą długość lub wykluczyć znaki z haseł?

Zgadnę i powiem, że niektóre z tych ograniczeń wynikają z filtrowania znaków na ich stronie internetowej ( & < > #), aby powstrzymać hakerów. Podczas gdy inne są kośćmi, które wychodzą z komitetów spiczastych włosów szefów.

Natknąłem się na kilka naprawdę głupich (moim zdaniem) decyzji dotyczących „bezpieczeństwa”. Na przykład jedna duża firma inwestycyjna obsługuje moje konta IRA, a także moją emeryturę. W celu nawiązania jakiegokolwiek kontaktu z emeryturą wymaga ode mnie wpisania hasła przez telefon (inaczej nie można się z nim skontaktować). Moje konto maklerskie / IRA używa liter (duże i małe litery), a także niektórych znaków interpunkcyjnych - żaden z tych znaków nie pojawia się na klawiaturze numerycznej telefonu. Jeśli nie możesz zalogować się przy użyciu hasła przez telefon, pozwala to zresetować hasło do konta maklerskiego na coś, co możesz wpisać przez telefon.

Mój system płac (dla firmy konsultingowej, dla której pracuję) wymaga numerów i tylko liczb - pozwala to im korzystać z tej samej bazy danych, niezależnie od tego, czy użytkownik dzwoni (nigdy tego nie robiłem), czy korzysta z interfejsu internetowego (używam tylko tego) .

To powiedziawszy, czas zmienić moje hasło w biurze. Mają tak szalone ograniczenia, że ​​szacuję, że znalezienie hasła akceptowalnego przez system zajmie około pół dnia: co najmniej 2 duże litery, co najmniej 2 małe litery, co najmniej 2 cyfry (które nie mogą być +/- 1 z poprzedniego hasła), co najmniej 2 znaki nie alfanumeryczne / nienumeryczne, nie mogą pasować do żadnego z ostatnich 24 haseł, nie mogą zawierać żadnego łańcucha (do przodu lub do tyłu), który jest słowem (o długości 3 lub więcej liter) w języku angielskim ( także kilka innych języków, których nie znam). Myślę, że minimalna długość to 10-11 znaków.

Tangurena
źródło
Tak, widziałem te postacie na liście.
Chris
5
Prosty atak: znajdź karteczki pod klawiaturą, ponieważ nikt nie pamięta swojego hasła.
JeffO
@Jeff, to prawda. Jeśli zostawiam swój notatnik w domu, hasła są zbyt skomplikowane, aby je zapamiętać, więc nie mogę się zalogować. W systemie płac wpisuję nazwę użytkownika i hasło jako część zakładki.
Tangurena
„nie może zawierać żadnego łańcucha (do przodu lub do tyłu), który jest słowem (o długości 3 lub więcej liter) w języku angielskim” To był ten, który mnie dopadł. Ataki słownikowe nie są skuteczne, jeśli hasło zawiera całe słowa, ale jeśli całe hasło składa się tylko z pełnych słów ... Cóż, tak naprawdę jedno pełne słowo lub bardzo popularne frazy. Najbezpieczniejszymi hasłami, które są praktyczne w użyciu bez zapisywania, są hasła pochodzące z książek, wierszy, tekstów piosenek itp. - zamień kilka liter na cyfry, źle przeliteruj coś i wielkie litery nieprzewidywalnie, a nikt nie zamierza złamać tego hasła.
Greg Jackson
1
Filtrowanie znaków jest pewnym znakiem nieprzetestowanego kodu śmieci w tle. Programiści muszą nauczyć się unikać ciągów znaków.
l0b0
5

Jednym z powodów ograniczenia znaków byłby sposób wprowadzania hasła.

Na przykład kilka banków ze swoimi witrynami bankowości internetowej prosi o określone znaki z hasła, a Ty wybierasz odpowiednie znaki za pomocą rozwijanego pola.

Robią to prawdopodobnie po to, aby keyloggery nie mogły wykryć naciśnięcia klawisza, a tym samym poznać [znaki z] twojego hasła. Chociaż wiem, że istnieje wiele innych sposobów obejścia takich środków, np. Zrzut ekranu; nadal jest skuteczny przeciwko keyloggerom.

Gdyby musieli zezwolić wszystkim postaciom, wówczas długość listy rozwijanej stałaby się nieporęczna, a także dopuszczałaby zamieszanie między podobnie wyglądającymi postaciami.

Megan Walker
źródło
1
Z pewnością (techniczni) ludzie i tak po prostu wpisaliby list?
Gerry
@Gerry - jest to zachowanie specyficzne dla przeglądarki, a nie absolutny standard, a także zależy od wiedzy użytkowników, aby było to wykonalne.
Jon Hopkins
Mój bank używał wyskakującego apletu klawiatury z podobnego powodu. Ale korzystanie z niego było zbyt trudne i
spotkało
1
@Jon - powiedziałem technicznych ludzi i nie znam żadnych przeglądarek systemu Windows, które nie implementują co najmniej pierwszego dopasowania znaków, ponieważ jest to standardowe zachowanie systemu Windows - nie można mówić w przypadku komputerów Mac i * nix
Gerry
1
@Gerry Przeglądarka na moim telefonie z Androidem nie pozwala na to. Oczekuję, że tak samo jest z wieloma urządzeniami mobilnymi.
RoundTower
2

Wyłączenie specjalnych znaków, takich jak tab, byłoby prawidłowe. Możesz zalogować się lub zmienić hasło za pomocą tabulatora w trybie tekstowym, ale nie możesz go używać w GUI lub środowisku internetowym. Znak odwrotnego ukośnika spowoduje także problemy z wieloma platformami.

długie hasła nie są hasłami - to hasła. Przeciętny użytkownik nie pamięta 2Z8d!% G # x, ale pamięta „imię mojego zwierzaka to pies fido”. Dłuższy tekst jest trudniejszy do złamania za pomocą brutalnej siły i znacznie mniej prawdopodobne jest, że zostanie napisany na notatce dołączonej do ekranu.

jqa
źródło
Zobacz także xkcd.com/936
sergut
0

Kiedy ludzie piszą, popełniają błędy, zwane „literówkami”. Zwykle ludzie widzą swoje błędy i je poprawiają. Podczas wprowadzania hasła zwykle nie widzisz wpisanego tekstu, dlatego nie możesz poprawić literówek. Popełniasz błędy, nie zdając sobie z tego sprawy, podajesz hasło, a ono powraca jako „hasło nieprawidłowe”. Potem spróbuj ponownie. Potem spróbuj ponownie.

Możesz myśleć o tym jako o „3 mniejszych literówkach, a wtedy jesteś nie do odróżnienia od ataku brutalnej siły”. Jak systemy bronią się przed atakami siłowymi? Wyraźny „ Zbyt wiele prób, odejdź, nie będziesz w stanie się zalogować, nawet jeśli zrobisz to poprawnie ”? Gwałtownie rosnące opóźnienia przy wprowadzaniu hasła, prowadzące do przekroczenia limitu czasu przeglądarki, gdy opóźnienie jest zbyt długie, uniemożliwiając ponowne zalogowanie? Podejścia są różne, ale zawsze dobrze wpływa na dobrze zaprojektowany system.

Możesz myśleć o tym jak o „3 mniejszych literówkach, a potem dostajesz odmowę usługi”.

Wraz ze wzrostem długości hasła zwiększa się ryzyko literówek (a zatem ryzyko odmowy dostępu uprawnionej osobie). Coś dłuższego niż około 20 znaków będzie często błędnie wpisywane (chyba że użytkownik jest sprytny / leniwy i gdzieś przechowuje swoje hasło, aby móc je „kopiować i wklejać”, nie martwiąc się o literówki, np. Ładny plik tekstowy na pulpicie o nazwie „ hasła.txt ”).

Brendan
źródło