Pytanie:
Czy używanie znaków specjalnych w hasłach jest złe?
Héctor Álvarez
2020-02-04 22:32:14 UTC
view on stackexchange narkive permalink

Próbuję znaleźć najlepszy stopień entropii dla szablonu hasła i po przeprowadzeniu kilku testów najlepszy wynik wyszedł z tego: à.

To Sam symbol dodaje do zestawu 160 znaków (w przeciwieństwie do małych liter, cyfr, a nawet symboli) i jest łatwo dostępny z hiszpańskiej klawiatury, takiej jak ta, której używam, która wygląda idealnie.

Jednak , Nie mogę znaleźć żadnych informacji na ten temat, wydaje się, że wszystkie programy do generowania haseł unikają ich używania i nie wiem dlaczego.

Hasło takie jak + 9qQ¨ {^ dodaje do 254 rozmiaru zestawu znaków, + 9qQ¨ {^ aaaa ma już 67 bitów entropii, odkładając na bok łatwość do zapamiętania, czy jest jakiś powód, aby unikać używania tych znaków specjalnych?

Komentarze nie służą do rozszerzonej dyskusji;ta rozmowa została [przeniesiona do czatu] (https://chat.stackexchange.com/rooms/104180/discussion-on-question-by-hector-alvarez-is-it-bad-to-use-special-characters-w).
Entropia jest równa 0 btw.
Dwanaście odpowiedzi:
schroeder
2020-02-05 02:33:20 UTC
view on stackexchange narkive permalink

Znaki specyficzne dla języka są zazwyczaj pomijane przez generatory haseł, ponieważ nie byłyby one powszechnie dostępne (na przykład klawiatury amerykańskie nie mają znaków akcentowanych). Więc nie traktuj ich pominięcia w tych narzędziach jako wskazówki, że mogą być słabe lub problematyczne.

Im większy zestaw symboli ( az , AZ , 0-9 itd.), tym większa pula możliwych znaków do odgadnięcia podczas forsowania hasła. Dodanie znaków specyficznych dla języka zwiększa pulę i może być dobrą rzeczą.

Ale uważaj przy obliczaniu entropii. Ciąg ààààààààààà nie ma dużej entropii, jeśli po prostu naciskasz go na klawiaturze, ponieważ jest to wygodne. Entropia dotyczy sposobu wybierania postaci. Losowo wybrany ciąg ma wysoką entropię, a losowo wybrany ciąg z szerokiej puli znaków ma wyższą entropię.

Kiedyś musiałem zmienić swoje hasło do Amazon, gdy logowałem się na telewizorze Smart TV, a klawiatura ekranowa nie miała symbolu, którego użyłem.A ~ jeśli dobrze pamiętam.
Pamiętam przypadek, w którym użycie „ß” w logowaniu do systemu Windows działało tylko wtedy, gdy nie było połączenia przez RDP
Niedawno wygenerowałem hasło za pomocą znaku ampersand, a następnie zmieniłem je, gdy przypomniałem sobie, że muszę go uciec, gdy umieszczam hasło w pliku xml.
Dodanie dodatkowego wymagania dotyczącego długości znaków pomaga w porównywaniu (przynajmniej) całkowitej entropii hasła w zwiększaniu zestawu znaków.Należy wziąć pod uwagę praktyczne problemy ze znakami siedmiobitowymi innymi niż podstawowe - a użytkownicy mogą nie brać ich pod uwagę, dopóki nie wystąpi problem.W haśle zawarłem znak kontrolny backspace, który powinien być wpisany tylko na konsoli systemowej - która używała ctrl-x do usuwania.
Kolejny argument przemawiający za metodą generowania haseł [zszywka do baterii] (https://xkcd.com/936/).Zwłaszcza na smartfonach lub tabletach dłuższe hasło składające się tylko z małych liter i spacji jest * tak * znacznie łatwiejsze do poprawnego wpisania niż krótszy ciąg losowych błędów.
Klawiatura amerykańska ma znaki akcentowane podczas korzystania z mapowania międzynarodowego, które tworzy akcenty z martwych klawiszy (łączenie różnych symboli z innymi literami).np .: `', c` ->` ç`
@njzk2 tak, wiem, że możesz tworzyć mapowania, ale jako ktoś, kto normalnie nie musi wpisywać `ç`, a moja klawiatura go nie ma, aby mieć generator haseł, oznacza to, że muszę dostosować wejście klawiaturypozwolić na to.A potem musiałby dostarczyć instrukcje, co robić.
@njzk2 czy możesz dostosować mapowanie przed zalogowaniem się do systemu operacyjnego?Ponieważ jeśli nie możesz, to poważnie utrudnia twoją zdolność do * tworzenia * tych mapowań w pierwszej kolejności.Nawet jeśli to zrobisz, zdalne logowanie do komputera może nadal stanowić problem.A jeśli używasz tego * nie * jako hasła użytkownika systemu operacyjnego, musisz dostosować mapowanie klawiatury na każdym komputerze, którego używasz tylko po to, aby zalogować się na wszystko, co używa nietypowych dziwnych znaków.Na urządzeniach mobilnych może to być również dość denerwujące.
Bardzo istotne tutaj: https://twitter.com/FakeUnicode/status/1192245294429130752
@IllusiveBrian Co robiłeś, umieszczając niezaszyfrowane hasło w pliku XML?
Stig Hemmer
2020-02-05 16:05:53 UTC
view on stackexchange narkive permalink

Tak !”

Wszystkie hasła powinny zawierać tylko drukowalne znaki ASCII. Nie „Rozszerzony ASCII”, nie Latin-1, nie Unicode.

Powodem jest to, że nigdy nie wiadomo, co faktycznie odbiera program po naciśnięciu „à” lub podobnego.

W wielu wersjach „Rozszerzonego ASCII” „a” jest zakodowane jako (szesnastkowo) 85.
W ISO Latin-1 „à” jest kodowane jako (szesnastkowo) E0.
W Unicode „à” jest kodem U + 00E0. Po zakodowaniu w UTF-8 wynikiem jest (szesnastkowo) C3 (szesnastkowo) A0.

Justin Time zwraca uwagę w komentarzu, że istnieje inna możliwość. Nawet jeśli wszyscy mówią w Unicode, „à” może być przechowywane na różne sposoby. Istnieje U + 00E0, jak wymieniono powyżej, ale istnieje również wersja skomponowana (U + 0061 U + 0300), w której występuje „a”, po którym następuje (POŁĄCZONY GRAVE ACCENT). Prawidłowo napisany program sobie z tym poradzi, ale bardzo często pojawiają się błędy w tym obszarze.

Każdy, kto ma charakter narodowy w swoim nazwisku lub adresie, widział je zniekształcane na wiele różnych sposobów. Kiedy tak się dzieje, jest to po prostu brzydkie, ale list i tak jest zwykle dostarczany.

Gdy dzieje się tak z hasłem , skutkuje to tym, że nie możesz się zalogować! Po prostu nie idź tam.

Zgodnie z tą logiką wszyscy powinniśmy używać tylko sześciu znaków alfanumerycznych, ponieważ w niektórych witrynach dane są nadal przechowywane w jakimś starym komputerze typu mainframe z lat 50. XX wieku, który ma tylko sześć pozycji do przechowywania (niezaszyfrowanych) haseł.Więc nie, nie powinieneś zajmować się osobami słabo implementującymi formularze logowania i kodowanie swoich aplikacji internetowych i baz danych.Unicode istnieje już wystarczająco długo.
@CodeCasterCo jesteś nierozsądny.Ma to bardzo praktyczny sens.Zobacz błąd logiczny [Appeal to Extremes] (https://www.logicallyfallacious.com/tools/lp/Bo/LogicalFallacies/30/Appeal-to-Extremes).
Wręcz przeciwnie, myślę, że CodeCasterCo ma rację.To jest rok 2020. Jeśli istnieje system, który jeszcze nie obsługuje ciągów Unicode, powinien się wstydzić.Teraz na pewno, jeśli znajdziesz taki system i chcesz z niego skorzystać - użyj prostego hasła.Ale gdziekolwiek możesz, niestandardowe znaki tylko poprawią twoje hasło.A kiedy budujesz własny system, nie ma żadnego powodu, aby stawiać tak sztuczne wymagania.
@user1717828 tak, znam swoje błędy logiczne i kiedy ich używać.Ale ta rada jest sprzeczna ze zdrowym rozsądkiem.To dosłownie: „Niektórzy programiści nie wiedzą, jak działa kodowanie znaków, więc lepiej nigdzie nie używać znaków specjalnych w hasłach”.Istnieją ** praktyczne ** argumenty przemawiające za niestosowaniem takich znaków, przy czym łatwość wprowadzania jest duża, ale argument przedstawiony w tej odpowiedzi nie ma większego sensu.Szczególnie biorąc pod uwagę, że zaczyna się od _ „Wszystkie hasła powinny zawierać tylko drukowalne znaki ASCII” _, co jest pospiesznym uogólnieniem.Wyszukaj to w swojej witrynie.
Oczywiście ta odpowiedź zakłada coś innego, co jest naprawdę, bardzo złe.Zakłada się, że używasz tego samego hasła do ** kilku ** aplikacji (lub w kilku miejscach).Jeśli rzeczywiście jest to ta sama aplikacja, nie ma znaczenia, jaki numer program zobaczy.Dopóki są to te same bity, hasło jest poprawne, w przeciwnym razie nie.Program weryfikujący twoje hasło nie może się mniej przejmować, czy widzi 0xe0 czy 0x1ff43, o ile tak musi być.
@Damon W świecie, w którym do systemów chronionych hasłem można uzyskać dostęp z różnych zbiorów systemów klienckich, jeśli nie można ufać systemom klienckim, że dostarczają to samo kodowanie znaków spoza zestawu ASCII, problem może dotyczyć hasła pojedynczej aplikacji.
@Vilx- Czy to naprawdę ma znaczenie?Aby wprowadzić unicode lub ascii, należy wprowadzić kod liczbowy.Użyj tych liczb bez zamiany na znak.To hasło zyskuje entropię na długości (i powinno mieć mniej więcej taką samą entropię) i może być wprowadzone w dowolnym miejscu.
Być może lepszym przykładem byłoby wskazanie, w jaki sposób niektóre symbole mogą mieć wiele kodowań Unicode, a jednocześnie być wizualnie identyczne, jak np. Prekomponowany znak `à` (U + 00E0) kontra zdekomponowany znak` à` (U + 0061 U + 0300).Jest całkowicie możliwe, że użycie „à” może skutkować odrzuceniem lub przyjęciem hasła w zależności od metody wprowadzania, ponieważ pojedyncze naciśnięcie klawisza i kombinacja klawiszy mogą być różnymi sekwencjami bajtów.Jest to niestety znany problem z Unicode i jeszcze nie znormalizowany IIRC.
@Vilx- Jak zauważa Justin Time, wiele klastrów grafemowych ma więcej niż jedną możliwą reprezentację.Jeśli ktoś naciśnie klawisz „A”, a następnie klawisz „słaby akcent”, czy powinno to wygenerować pojedynczy znak „a z poważnym”, czy też powinno wygenerować „a”, po którym następuje „łączący słaby akcent”?Jeśli ktoś ustawi hasło za pomocą terminala lub przeglądarki, które traktują ten znak inaczej niż normalny system użytkownika, w jaki sposób ten użytkownik miałby wiedzieć o takiej sytuacji i odzyskać ją?
@supercat - Cóż, dla mnie to brzmi jak specjalne przypadki.W większości przypadków jest tylko jeden ekran logowania, więc hasło jest traktowane tak samo za każdym razem.
@Vilx- Różne urządzenia uzyskujące dostęp do ekranu logowania mogą różnie przetwarzać dane wejściowe z klawiatury.
Spór o blokadę wydaje się bardzo trafny, szczerze mówiąc, nie ma mowy o tym, czy strona internetowa jest dobrze zaprojektowana, czy nie, musiałem obsługiwać bardzo stare bazy kodu, które wolałbym wyrzucić i zacząćtylko dlatego, że działają, a ich aktualizacja wymaga zasobów, więc nie jest to opłacalne.To powiedziawszy, jestem trochę zaniepokojony bezpieczeństwem mojego hasła w tych systemach, w większości przypadków szyfrowanie jest obsługiwane bardzo słabo, widziałem PMów, którzy chętnie szyfrują hasła jako MD4 lub Base64, tylko po to, aby zhakować bazę danych idane zostały skradzione ... Może najlepiej będzie źle je zaszyfrować
Potencjalna sytuacja, która przychodzi na myśl, @Vilx-, ma miejsce, gdy ekran logowania akceptuje kombinacje klawiszy do wprowadzania znaków specjalnych (np. `Ctrl + \`, a`), ale znaki te można również wprowadzać za pomocą dyskretnych przycisków na niektórych układach klawiatury (np.przycisk `à` na klawiaturach hiszpańskich, o czym wspomniał OP).Istnieje możliwość, że te dwie metody wprowadzania generują różne wersje tego samego znaku, co może powodować problemy, jeśli preferowana metoda użytkownika jest niedozwolona (np. OP nie miał dostępu do hiszpańskiej klawiatury, na przykład podczas logowaniasystem obsługujący tylko QWERTY).
@Vilx- Aby nieco rozszerzyć punkt widzenia Justina, problem z przełączaniem klawiszy Ctrl / Alt nie polega na tym, że klawiatura nie pozwala na wprowadzanie akcentowanych liter.W Twojej nazwie użytkownika wszystko jest w porządku, ponieważ możesz zobaczyć pojawiające się litery, a jeśli ta klawiatura wymaga czegoś innego, możesz ją posortować.Problem dotyczy hasła, które prawie zawsze ma ukryte znaki.Jeśli nie możesz zagwarantować, że każda klawiatura na świecie da ci te same akcentowane znaki z tych samych klawiszy Ctrl / Alt, to wprowadzenie hasła za pomocą znaków akcentowanych w pewnym momencie cię wkręci.
Na konkretny przykład - choć w nieco innej sytuacji: https://apple.stackexchange.com/questions/202143/i-included-emoji-in-my-password-and-now-i-cant-log-in-to-moje-konto-na-yosemite
Dlaczego pole tworzenia hasła akceptuje te znaki?Wszystkie systemy, które obecnie buduję, obsługują emoji w haśle.Nie ma powodu, aby tego nie robić, gdy jest to akceptowane.
Chcę tylko podkreślić, że python2.7 jeszcze nie umarł, nawet jeśli nie jest już obsługiwany.(W kwietniu pojawi się nawet wersja 2.7.18, aby wbić ostatni gwóźdź do trumny). O ile aplikacja w wersji 2.7 nie została specjalnie napisana do używania Unicode, utknęła w mrocznych czasach ciągów ascii.
Tom
2020-02-06 17:23:29 UTC
view on stackexchange narkive permalink

Większość tak zwanych narzędzi do sprawdzania siły haseł nie rozumie poprawnie haseł ani entropii. Zawsze znajdowałem coś absurdalnego, co uchodzi za silne hasło. Podaj swoje imię i nazwisko oraz datę urodzenia (z kropkami lub ukośnikami, zgodnie z wymaganiami lokalnymi). Tam są twoje wielkie i małe litery, znaki specjalne i cyfry, a jednak nikt przy zdrowych zmysłach nie poleciłby tego jako hasła.

A jednak „JohnDoe01.01.1980” ma „220 bilionów lat” na https://howsecureismypassword.net/ i 100% na http://www.passwordmeter.com/.

https: // www .my1login.com / resources / password-force-test / to jedyny tester, który znalazłem, który rozumie głupotę - wprowadź ten przykład i zobacz, jak jego oszacowanie zmienia się z „fantastycznego” na „średni”, gdy wprowadzasz ostatnie liczba i „dostaje”, że jest data kalendarzowa.

Więc: Użyj czegoś więcej niż prymitywnych silników obliczających entropię do oceny haseł.

Dla twojego konkretnego przypadku oznacza to:

na papierze rozszerzenie zestawu znaków radykalnie zwiększa przestrzeń wyszukiwania i powinno radykalnie zwiększyć bezpieczeństwo haseł. w rzeczywistości 99,9% użytkowników będzie używać własnych ustawień regionalnych, a hiszpański a lub niemiecki umlaut to tylko kilka dodatkowych znaków, a nie cała przestrzeń UTF-8. Bo głupio byłoby zakładać, że atakujący nie bierze pod uwagę podstawowej natury ludzkiej.

Są też aspekty użyteczności. Kiedyś musiałem logować się na swoje konto zdalnie z japońskiej kafejki internetowej, a to zdecydowanie nie było zabawne. Jeśli moja nazwa użytkownika, hasło lub którekolwiek z poleceń, których potrzebowałem, zawierały znaki spoza zestawu ASCII, nie sądzę, aby istniał jakikolwiek sposób, aby to się stało.

Jeśli jest to zdalnie możliwe, musisz zalogować się do swojego komputera z innej klawiatury niż ta, której używasz teraz, zbyt-specjalne znaki pozwolą Ci z dala od własnego konta lepiej niż zapomniane hasło.

I nie mówmy nawet o Unicode i jego wielu zepsutych implementacjach, które mogą powodować dodatkowe problemy.

Oto niektóre z powodów, dla których generatory haseł unikają znaków spoza ASCII:

Za mało dodatkowych zabezpieczeń, aby zrekompensować wszystkie potencjalne problemy.


I proszę, bardzo proszę - przestań myśleć o złożoności hasła. To most słomkowy z wężowego oleju. Długość pokonuje złożoność każdego dnia, a jeśli używasz generatorów haseł, prawdopodobnie przechowujesz je również w menedżerze haseł i nie obchodzi Cię, czy wpiszesz 10, 20, 40 czy 200 znaków.

Numer 1 Najlepszą wskazówką dotyczącą bezpieczeństwa hasła jest użycie nowego, długiego, losowego hasła dla każdej witryny internetowej, na której się rejestrujesz, aby nie zgubić hasła podczas następnego włamania. Ponieważ nie możesz być pewien, że odpowiednio je haszują i solą, a jeśli nie, to cała złożoność i znaki specjalne na świecie nie mają znaczenia.

Możesz cieszyć się https://github.com/dropbox/zxcvbn
@Luc - tak.Pierwszy akapit wystarczy, aby wiedzieć, że mają głowy na właściwej drodze.Zaczynają od listy znanych haseł.Zawsze mówię każdemu, kto prosi o radę, aby wymusił rozsądną minimalną długość i sprawdził, czy nie ma na czarnej liście popularnych haseł, a także nazwa firmy, lokalizacja itp.
Brzmi dobrze!Nawiasem mówiąc, jest to również zgodne z zaleceniami NIST-u, na wypadek, gdybyś chciał powiedzieć ludziom, że masz jakieś oficjalne źródło, aby to twierdzić :)
my1login używa wewnętrznie zxcvbn (jest to dość stara wersja, ponieważ uważa, że `a # a # a # a # a # a` to świetne hasło).
@Luc - Świętowałem dzień, w którym NIST w końcu zmienił swoje zalecenia na krótszą wersję tego, o czym mówiłem na konferencjach dotyczących bezpieczeństwa przez około pięć lat wcześniej.:-)
@Tom Ponieważ nie mam innego sposobu na wysłanie PW - ten kod QR jest niemożliwy do zeskanowania, prawda?Jeśli tak, link kończy się na „42879”.Jeśli nie, to potrzebuje więcej jpeg: D
+1 za ostatnie dwa akapity.
Pamiętam, jak jeden z testerów siły mówił, że „aaaaaaaaaaaaaaaaaaaaaaaaaaaaa” było silnym hasłem, najprawdopodobniej ze względu na jego długość.... Jest to najprawdopodobniej najsłabsze możliwe 30-znakowe hasło, ponieważ prawdopodobnie jest to jedna z pierwszych permutacji, które spróbowałby brutalny forcer.
@JustinTime-ReinstateMonica masz błędne założenie, że brutalny forcer przejdzie od a do z.Nie byłoby.Byłoby to następstwem częstych listów w popularnych językach.Testowałby „e” przed „a”.W przeciwnym razie to głupi brutalny forcer.
@Luc Nie polecaj zxcvbn bez wspominania o zastrzeżeniach.Na przykład zxcvbn uważa, że `abcdefghijklmnopqrstu vwxyz 0 1 2 3 4 5 6 7 8 9` jest zdecydowanie bezpieczniejszym hasłem niż`} & wu.y '} rzzQ {n6L2nKg Ax? E..Ab'Y~] WeR7} Z [JD7, && j [ekWB8z * dh`, o czym oboje wiemy, że nie jest prawdą.
@MechMK1 Tylko dlatego, że nie jest idealne, nie czyni go złym narzędziem do pomocy przeciętnej osobie (która naprawdę nie będzie wbijać strony rejestracyjnej, aby spróbować znaleźć najsłabsze uważane za silne hasło, aby mógłmieć źle chronione konto).To, że można znaleźć lukę, nie stanowi zastrzeżenia.Teraz, gdybyś mógł wykazać, że w prawdopodobnym przypadku zaleci to komuś użycie słabego hasła, zapraszam Cię do dodania kolejnego komentarza, a także do otwarcia problemu w ich narzędziu do śledzenia błędów.
@Luc Pamiętam przypadek, w którym naprawdę słabe hasło było uważane za „bardzo silne”, ponieważ zxcvbn sklasyfikował je jako brutalną siłę, a nie słownik z podstawieniem.Będę musiał sprawdzić dokładne używane hasło.Chodziło mi o to, że to narzędzie może dawać fałszywe poczucie bezpieczeństwa w przypadku niektórych haseł i nie powinno się na nim polegać.Wiem, że to nie jest to, co wyraźnie powiedziałeś, ale zalecenie ze strony użytkownika o wysokiej reputacji może być tak zinterpretowane.
To dotyczy większości moich obaw, jest całkiem dobrze napisane i szczegółowe.Jednak nie jestem pewien, czy używać menedżerów haseł, to świetny sposób na utratę do nich dostępu.Na przykład.keepass bez pliku kbdx nie jest nic warte.Nie jest też zbyt wygodne otwieranie menedżera haseł za każdym razem, gdy chcę uzyskać dostęp do czegoś.
W porządku, @Tom.Nie był do końca pewien, jakiej logiki używają do określenia sposobu ataku.
@Luc, że kod QR jest po prostu linkiem do mojego profilu Google Plus, którego używam do logowania się tutaj, i który nie zawiera nic innego, co ciekawe, ponieważ korzystałem z G + przez może trzy tygodnie, zanim go porzuciłem.:-) - wtedy wydało mi się po prostu fajny pomysł, aby mieć samo-odnoszące się zdjęcie profilowe, które w zasadzie zapętlało się do siebie.
@tom Och, ponieważ jest bardzo rozmyty i muszę go poprawić do określonego ustawienia, zanim skaner rozpozna nawet znaczniki narożne.Ale dobrze, jeśli to działa dla Ciebie: P
Konrad Borowski
2020-02-06 15:35:52 UTC
view on stackexchange narkive permalink

Aby obliczyć entropię, potrzebujesz dobrze zdefiniowanej metody generowania losowych ciągów. Rozważ następujący ciąg.

  abcdef  

Jeśli powiesz komputerowi z dobrym generatorem liczb losowych, aby generował 6 małych liter, a po prostu w tej konkretnej sekwencji, wtedy masz log 2 (26 6 ) bitów entropii (28 bitów entropii). Jeśli jednak twój generator losowych ciągów zawsze zwraca „abcdef”, wtedy masz efektywnie 0 bitów entropii. Obliczenia entropii zakładają, że napastnicy wiedzą, w jaki sposób generujesz hasła.

W swoim pytaniu wyraźnie wspomniałeś o znaku à . Nie określiłeś algorytmu, więc pozwól mi go zaproponować. Wybierz dowolny algorytm generowania hasła (wybór nie ma znaczenia) i zawsze umieszczaj na jego końcu à . Ile bitów entropii to dodaje? Odpowiedź brzmi 0, ponieważ liczba możliwych haseł, które można wygenerować, nie uległa zmianie.

Ale powiedzmy, że zmodyfikowałeś algorytm, który generuje losowe znaki, aby dodać znak à do możliwych wyników postacie. Spowoduje to dodanie log 2 ((alfabet + 1) rozmiar ) - log 2 (alfabet rozmiar ) bity entropii. To nie zapewnia zbyt dużej wartości, dla 50-znakowych losowych haseł o rozmiarze alfabetu 62 (małe + duże + cyfry), doda to tylko jeden bit entropii. Możesz uzyskać znacznie lepszy wynik, dodając 1 znak do hasła, co dodaje około 6 bitów entropii.

Dodatkowo dodanie à do alfabetu wprowadza koszt posiadania znaku to niekoniecznie na żadnej klawiaturze, na której możesz chcieć wpisać hasło.

jamesdlin
2020-02-05 15:12:42 UTC
view on stackexchange narkive permalink

Może być źle, jeśli system logowania jest źle zaimplementowany. Biorąc pod uwagę, że nadal wydaje mi się, że widzę wiele systemów, które (prawdopodobnie ze starszych powodów) nadal mają maksymalne długości haseł i mają głupie zasady dotyczące haseł dotyczące dozwolonych znaków (lub gorzej, niedozwolonych), nie ufam bez szwanku, z wysokim stopniem pewności. Z pewnością byłoby źle, gdybyś mógł ustawić hasło ze znakiem innym niż ASCII, ale proces logowania go zniekształcił.

W przypadku systemów, w których obowiązują maksymalne długości haseł, należy również wziąć pod uwagę niejednoznaczność sposobu pomiaru długości hasła. Czy to liczba bajtów? W jakim kodowaniu? Czy jest to liczba punktów kodowych? Liczba klastrów grafemów? Na przykład, jeśli system ogranicza długość hasła w oparciu o liczbę bajtów w UTF-8, to użycie znaku innego niż ASCII pochłonie więcej bajtów i może zmniejszyć entropię.

PDP11
2020-02-07 08:30:45 UTC
view on stackexchange narkive permalink

Podczas gdy wiele odpowiedzi dostarczyło solidnych informacji dotyczących entropii, zadane pytanie brzmiało „... czy jest jakiś powód, aby unikać używania tych znaków specjalnych?”

Niektóre komputerowe systemy haseł akceptują tylko alfanumeryczne znaków oraz ograniczony zakres znaków, takich jak podkreślenie (_) lub łącznik (-). Wszystkie inne znaki są zabronione.

W niektórych złożonych aplikacjach mogą istnieć starsze systemy wykorzystujące funkcję skrobania ekranu, które mogą uszkodzić tłumaczenie znaków specjalnych w ciągach tekstowych. Problem polega na tym, że nie możesz wiedzieć, w jaki sposób aplikacja została wdrożona. Mogą istnieć przepisy ustanawiające minimalne standardy lub nie.

W dowolnym punkcie łańcucha, w którym zmieniane są zestawy znaków, istnieje możliwość, że znaki specjalne zostaną usunięte lub uszkodzone.

Nie zakładaj, że aplikacja akceptuje Twoje początkowe hasło do rejestracji to ta sama aplikacja, która akceptuje Twoje hasło w celu weryfikacji. Muszę przyznać, że gdybym każdy doświadczył źle wdrożonego systemu, unikałbym go jak zarazy.

paradx
2020-02-06 14:14:24 UTC
view on stackexchange narkive permalink

To zależy, gdzie i jak używasz hasła.

Jeśli używasz menedżera haseł, np. na pendrive'ie nie ma problemu z poprawnym wpisaniem hasła na wszystkich komputerach, ze względu na kopiowanie i przeszłość.

Gdy musisz używać hasła na specjalnych urządzeniach (smart TV, lodówka, urządzenia, do których nie można włożyć pendrive'a lub nie wolno tego robić) lub gdy istnieje dość duża szansa, że ​​proces logowania jest gówniany, wtedy użyłbym tylko znaków ASCII znalezionych na klawiaturach amerykańskich.

Ray
2020-02-07 03:37:58 UTC
view on stackexchange narkive permalink

Entropia nie jest właściwością haseł. Jest to właściwość metod generowania haseł (lub bardziej ogólnie właściwość rozkładów prawdopodobieństwa). W szczególności jest to oczekiwana liczba bitów informacji, których osoba atakująca potrzebowałaby w celu zidentyfikowania konkretnego wygenerowanego hasła, zakładając, że zna zastosowaną metodę. Jeśli wszystkie możliwe hasła, które możesz wygenerować, mają takie samo prawdopodobieństwo, upraszcza się to do entropii log 2 (liczba możliwych haseł).

  • Więc jeśli twoją metodą jest wybranie à , masz entropię równą 0; nie są potrzebne żadne dodatkowe informacje, aby określić, które z możliwych pojedynczych haseł zostało wybrane.
  • Jeśli twoje hasło jest sekwencją od 1 do 16 à s, masz entropię 4 , ponieważ istnieje 16 możliwości i log 2 (16) = 4.
  • Jeśli Twoje hasło składa się z trzech liczb od 0 do 15 włącznie, wybranych w sposób jednolity i niezależny, entropia wynosi 12, ponieważ istnieje 16 3 możliwości i log 2 (16 3 ) = log 2 (16 ) * 3 = 12.

    Ale hasło 15 3 7 nie ma entropii, ponieważ nie jest to rozkład prawdopodobieństwa; jest to pozycja, która została wybrana z jednego.

Narzędzia, które twierdzą, że dają ci entropię hasła, tak naprawdę odgadują metodę, prawdopodobnie użyty do wygenerowania tego hasła (i prawie na pewno zgadnął źle ) i dał ci entropię metody, którą myślą użyłeś. Zgłaszają wysoką entropię dla haseł ze znakami specjalnymi, ponieważ uważają, że hasło zostało wybrane przy użyciu metody, która mogła wygenerować dowolny znak specjalny na dowolnej pozycji. Jeśli to założenie jest fałszywe (a tak jest), to raportowana przez nie entropia jest nonsensowna.

Używanie znaków specjalnych w hasłach nie jest ani dobre, ani złe. Tak nie jest mają znaczenie, które znaki mogą znaleźć się w Twoim haśle. To ma znaczenie, ile jest możliwości.

HumanJHawkins
2020-02-06 12:41:27 UTC
view on stackexchange narkive permalink

Tak, w niektórych przypadkach. Na przykład:

1) Jeśli jest to sytuacja, w której hasło musi zostać zapamiętane, dodanie lub wymaganie znaków specjalnych zmniejsza bezpieczeństwo, ponieważ zwiększa prawdopodobieństwo, że użytkownicy naruszą zasady dotyczące haseł, nie przechowując ich lub po prostu napiszą te hasła w dół. W każdym przypadku powoduje to znacznie większe zagrożenie dla bezpieczeństwa niż posiadanie mniej złożonych haseł.

Weźmy również pod uwagę na przykład tę serię haseł zmienianych co 90 dni i używających znaków specjalnych, aby spełnić wymagania dotyczące nadmiernego hasła:

  Th1s $ ecuritySucks! Th2s # ecurity Sucks! Th3s @ ecuritySucks!  

Wyobraź sobie, że pierwsze dwa hasła zostały ujawnione ... Nawet po zmianie na trzecie hasło, łatwo byłoby odgadnąć aktualne hasło, widząc dwa pierwsze.

2) Dodawanie entropii ze względu na entropię może być stratą zasobów, które lepiej przeznaczyć na rozwiązywanie innych problemów bezpieczeństwa. Jeśli zablokujesz system (na przykład w porównaniu z plikiem), większe korzyści uzyskasz, upewniając się, że wszystkie inne drogi ataku są zablokowane ... Oznacza to, że trudne jak skała zapobieganie wszelkim rozległym powtórzeniom zgadywania jest znacznie lepsze niż próbowanie aby stworzyć hasło tam, gdzie potrzeba więcej domysłów.

Jeśli nie masz nic lepszego do roboty, a hasło nie musi być przechowywane w ludzkiej pamięci ani wpisywane (lub przynajmniej nie wpisywane z nieznanych / potencjalnie różnych systemów ) jednak niekoniecznie byłoby szkodliwe.

„* użytkownicy będą oszukiwać lub zapisywać swoje hasła *” Zapisywanie haseł może nie być złe, w zależności od sytuacji.Co masz na myśli mówiąc o oszukiwaniu?„* Wyobraź sobie, że osoba zapisała pierwsze dwa z nich *” Dlaczego ktoś miałby zapisywać historyczne hasła, ale nie bieżące?Może ktoś zapisałby pierwszy i numer, na którym się znajduje, ale scenariusz, w którym zapisanoby każdy z wyjątkiem bieżącego, wydaje się bardzo mało prawdopodobny.„* utrudnianie wykonywania rozległych powtórzeń zgadywania jest znacznie lepsze *”, ale to pytanie dotyczy użytkownika, a nie administratora systemu.Nie mogę tego zrobić jako użytkownik.
Nie jestem pewien, jeśli chodzi o użytkownika.Nie widzę wspólnego rozumienia słowa „szablon” w tym kontekście.Przyjąłem pytanie, jak opracować szablon wymagań dotyczących hasła.Ale tak ... to trochę niejednoznaczne. Odnośnie „oszukiwania” wyjaśnię w poście ... Miałem na myśli oszukiwanie zasad, że nie możesz wpisać swojego hasła itp.
Jeśli chodzi o zapisanie pierwszych dwóch, ale nie trzeciego, wyjaśnię również.Miało to po prostu reprezentować wszystkie przypadki, w których ujawniono wcześniejsze hasła.Nie należy stosować wzorców, które pozwalają na odgadnięcie dzisiejszego hasła na podstawie znajomości haseł z przeszłości.
Walter Tross
2020-02-08 05:44:42 UTC
view on stackexchange narkive permalink

Nie , nie jest źle używać w hasłach znaków „specjalnych” (lepiej: innych niż ASCII).

Jako użytkownik, jedyne co musisz zrobić, to

  1. ufaj witrynie, że nigdy nie pojawi się formularz logowania inny niż UTF-8,
  2. upewnij się, że zawsze będziesz w stanie wpisać hasło, gdy zajdzie taka potrzeba więc.

Jeśli wiesz, że może być konieczne wpisanie hasła na obcej fizycznej klawiaturze, musisz być w stanie zapamiętać (lub sprawdzić) położenie klawiszy, które Twoje znaki spoza ASCII (BTW, à na hiszpańskiej klawiaturze to 2 naciśnięcia klawiszy). Jeśli chodzi o układ, cały system operacyjny pozwoli ci to zmienić, więc nie stanowi to problemu.

Zaletą znaków innych niż ASCII jest to, że oprogramowanie do łamania haseł jest mało prawdopodobne, aby IMHO je wypróbowało. Gdyby tak było, zbadałby hasła z mniejszym prawdopodobieństwem, kosztem dłuższych haseł ASCII, które mają większe prawdopodobieństwo użycia.

Overmind
2020-02-06 13:14:06 UTC
view on stackexchange narkive permalink

Rozszerzone ASCII (0-255) jest w porządku, ponieważ i tak możesz je wybrać za pomocą alt + klawiatura numeryczna.

Każdy inny znak spoza rozszerzonego ASCII nie zawsze będzie działał, ponieważ możliwość jej zapisu uzależniona jest od konkretnej konfiguracji systemu. Niektóre systemy mogą być zablokowane / skonfigurowane tak, aby nie zezwalały na nic podobnego do UTF.

Więc jeśli masz określony system i określony język, możesz użyć czegoś specjalnego do logowania, ale jeśli potrzebujesz hasła aby pracować z dowolnego miejsca w dowolnym systemie, ogranicz się do ASCII.

Coś takiego da ci sporo entropii i generalnie nie będzie testowane przez większość brutalnych haseł:

  ≡ ± ≥▀Γ▄  

Wiele lat temu używałem nawet 3-4-znakowych haseł (do rzeczy takich jak dostęp do systemu laboratoryjnego), ponieważ znaków nie było na klawiaturze .

Statystycznie, oprogramowanie do brutalnego wymuszania, które jest przystosowane do określonego regionu, będzie również znacznie bardziej prawdopodobne, że odniesie sukces na UTF-8 w porównaniu do korzystania z rozszerzonego ASCII.

Powiedziałem konkretnie rozszerzone ASCII, które wynosi do 255.
Dodano rozszerzony.I tak użyłem 0-255, żeby było jasne.
Będziesz się nieźle bawić próbując tego w różnych lokalizacjach lub na komputerach innych niż Windows ;-)
To w ogóle nie ma sensu.Ponieważ w komentarzu jest zbyt wiele: https://pastebin.com/f4HTpdnX
Jeśli używasz n-znakowego hasła z zestawu m znaków, masz n lg (m) bitów entropii.Nie ma to znaczenia, czy jest zakodowane w ośmiobitowym zestawie znaków, czy w UTF-8.Jeśli szukasz hasła, które jest [a-zà], przeszukanie tych samych 27 haseł, bez względu na kod Unicode, zajmie tyle samo czasu.
Nie powiedziałem, że istnieje różnica w entropii.Twoja matematyka jest dobra, ale osoby do łamania haseł raczej nie będą szukać znaków takich jak te, które wymieniłem, w porównaniu z UTF-8.
Émile Jetzer
2020-02-06 19:23:58 UTC
view on stackexchange narkive permalink

Używam znaków Unicode w hasłach, a czasami zmiana hasła jest blokowana (niedozwolone znaki) lub przechodzi i wymaga ponownej inicjalizacji hasła (problem z kodowaniem). Jest to bardzo zależne od systemu.



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 4.0, w ramach której jest rozpowszechniana.
Loading...