Колко важно е да запазвате дължината на паролата в тайна?

Поддържане на критична парола, като същевременно се поддържа сигурност?

важно

Някой знае ли, че имате парола с дължина 17 казва, че паролата е много по-лесна за налагане?

10 отговора

Е, нека започнем с математиката: Ако приемем, че паролата ви се състои от спускания, лица и числа, можете да избирате от 62 символа (само за да бъде математиката лесна, реалните пароли също използват символи). Парола с дължина 1 има 62 възможности, парола с дължина 2 има 62 ^ 2 възможности,. парола с дължина n има 62 възможности.

Това означава, че ако знам, че вашата парола има точно 17 знака, тогава мога да пропусна всички пароли с дължина по-малка от 17 и има само 62 ^ 17 пароли, които да опитате.

Но колко пароли съществуват с дължина по-малка от 17, в сравнение с 62 ^ 17?

Е, ако съберем 62 ^ n и разделим на 62 ^ 17, получаваме (сума от n = 1 до n = 16 от 62 ^ n)/62 ^ 17 = 0,016 (връзка към изчислението), така че проверка само на пароли с дължина 17 е само с 1,6% по-бърз отколкото проверка на всички пароли с дължина 17

Ако имаме схема за парола кой позволява всички 95 печатащи се ASCII знака, тогава спестяванията от това, че не се налага да изпробвате пароли, по-кратки от 17, намаляват до 1,06% (връзка към изчислението).

Интересно математическо взаимодействие за това съотношение на броя на паролите, по-кратки от n, спрямо броя на паролите с дължина n, е, че то изобщо не зависи от n. Това се дължи на факта, че вече сме много близо до асимптотата на 1/95 = 0.0105 . Така че нападателят получава същата относителна или процентна икономия на време от този трик, независимо от дължината на паролата; винаги е между 1% - 2%. Въпреки че, разбира се, абсолютното време, което ще отнеме, се увеличава в порядъка на размера с всеки нов добавен от вас символ.

Горната математика предполага обикновен насилник, който ще опита a, b, c,. aa, ab,. Който е добър модел (ish) за правилно разбиване на компютърно генерирани пароли, но е ужасен модел за познаване на генерирани от хората пароли.

Истински бисквитки с пароли са базирани на речници, опитващи думи (и комбинации от думи) от английския речник, списъци с изтекли пароли и т.н., така че тези изчисления трябва да се вземат с малко внимание.

Друг ефект от познаването на дължината ви е, че не е нужно да изпробвате пароли повече от 17, което за сурови алгоритми на принудително изпробване на речникови комбинации от думи всъщност може да бъде огромна икономия.

Както @SteveSether, @xeon и @CountIblis споменаха, разкриването на дължината (или ентропията) на паролата също може да има ефект, ако нападателят дори се опита да пробие паролата ви, като ги обезсърчи от силни пароли и вместо това ги привлече. слабият. Така че, ако знаете, че имате силна парола, разкрийте я! Обаче разкриването на дължини на пароли (или ентропии) за всички потребители в системата води до това, че прави силните пароли по-силни, а слабите пароли по-слаби.

Долен ред:

Да кажеш на някого дължината на паролата си не е най-лошото нещо, което можеш да направиш, но все пак не бих го направил.

Освен подробната математика от @Mike, ние смятаме, че дължината на паролата изчезва навсякъде:

Когато бъде въведен, ярък участник може да го научи, като преброи "*" на екрана, или като слуша клавишни комбинации (в последния случай той може да записва звука със смартфона си и да играе като развлекателна дейност).

В класически сценарий на "уеб браузър" потребителското име и паролата ще бъдат изпратени на сървъра чрез HTTPS POST. SSL слоят ще шифрова данните, но SSL не крие дължината на данните, така че пасивният наблюдател на мрежата също ще научи дължината на паролата.

Както потребителският интерфейс, така и приемащата система ще обработят паролата с функции, чието време за изпълнение и моделите за достъп до паметта ще зависят от дължината на паролата. Атакуващите, които могат да извършват мерки за синхронизация, обикновено ще могат да изведат дължината на паролата от тези мерки.

Следователно, разумен подход е да се разглежда дължината на паролата като публични данни. Някои нападатели няма да имат достъп до него (вида нападатели, които са направили копие на сървърната база данни); други ще знаят. Много е трудно да се знае „колко тайна“ е дължината на паролата и тъй като сигурността е свързана с количественото определяне на нещата, добре е да се предположи, че всички нападатели могат да знаят дължината на паролата. Вярването, че можете да го запазите в тайна, и оценяването на сигурността въз основа на това схващане би било твърде опасно.

Откриването на дължината на паролата разкрива нещо за силата на паролата. Така че по същество вие давате на някого предложение за това колко трудно би било да се досетите.

Така че, ако паролата ви е много дълга (17 знака във вашия пример), информацията е до голяма степен безполезна. Ако паролата е кратка (6 знака), тя казва на нападателя, че може да бъдете атакувани. Нападателите тръгват след най-леките цели.

Не съм съгласен с приетия отговор. Вярно е, че дължината на паролата е почти безполезна, ако всички пароли са създадени произволно от машина. Това вече не е така, ако паролите се създават от обикновени хора: въз основа на думите в речника, смесете малки букви, заменете някои знаци с цифри или специални знаци и добавете префикси и суфикси (напр. "! 1") и т.н.

Нека да разгледаме 2 сценария, единият е, че имаме 10 000 000 пароли и се стремим да намерим възможно най-много пароли, подходящи за този тип кореспонденция. Другото е хеш парола и ние искаме да я разчупим. И при двата сценария разликата се оказва значителна. Както обикновено, всяка информация може да бъде злоупотребена при атака, дори и да не изглежда на пръв поглед .

Сценарий 1: Създава много от 10 000 000 пароли с ограничени ресурси.

Можем да изпробваме bruteforce атаки само върху всички хешове на пароли, без да ги разграничаваме, ако не знаем дължината на паролата.

Ако използваме изчерпателна bruteforce атака (която гарантирано ще намери паролата), знаейки дължината на паролата, ще предложи само много минимална печалба. Защо? Грубото налагане на всички 7-цифрени пароли отнема около 1-2%, докато грубото налагане на всички 8-цифрени пароли. Единственото нещо, което печелим, като знаем дължината, е, че не е нужно да насилваме всички 7-цифрени (и по-малки) пароли, ако вече знаем, че паролата има 8 цифри. Освен че атаката на груба сила изисква почти безкрайни ресурси (изчислителна мощност и/или време) и следователно не е нещо, което можем или можем да направим.

Вместо това тестваме поредица от „вероятни“ пароли за всяка дължина на паролата. Един от начините да направите това е с речник атака. Тестването на вероятни пароли е с няколко порядъка по-евтино от използването на изчерпателна груба сила, но има огромен недостатък: След като изпробваме всички „вероятни“ 7-цифрени пароли срещу хеш парола, но не намерихме съответната парола, ние не знайте дали съответстващата парола за този хеш на парола е по-дълга от 7 цифри. Така че, освен ако не знаем със сигурност, че паролата не е по-дълга от 7 цифри, все пак трябва да тестваме тази хеш парола срещу всички „вероятни“ 8-цифрени пароли, 9-цифрени пароли, 10-цифрени пароли и т.н. - и при тестване на вероятни пароли, точно като изчерпателна груба сила, цената на тестването на по-дълги пароли нараства експоненциално. Тъй като сега знаем, че паролата е 7-цифрена, не е нужно да я тестваме срещу вероятни 8, 9, 10, 11, 12-цифрени и дори по-дълги пароли, спестявайки наистина огромна работа.

Тя се оправя. След като тестваме всички пароли с вероятности до дължина, да речем, 20 цифри, вече можем да изразходваме останалите ресурси за груба атака на тези хешове на пароли, с малка дължина на паролата, която търси предишен за „вероятни“ пароли. Казваме, че са ни останали 2 000 000 непоискани пароли и 100 000 от тях имат пароли с по-малко от 6 цифри. Имайте предвид, че разполагаме с ограничен бюджет. 6-цифрените пароли са евтини за разбиване. Но тъй като знаем какво е 100 000 6 цифри или по-малко, сега трябва да принудим приблизително 100 000 6-цифрени пароли да разбият 100 000, вместо да принуждаваме 2 000 000 пароли да разбият 100 ' 000 6 цифрови думи. Това е 5% от работата за същия резултат!

Ако разгледаме всички предимства комбинирани, точната печалба, която получаваме от познаването на дължините на паролите, зависи от скоростта на нашия метод за тестване на „вероятни“ пароли, съответната степен на успех на нашия метод за тестване на вероятни пароли за всяка дължина на паролата, разпределение на дължината на паролата в колекцията от хеш пароли, която искаме да пробием, и количеството ресурси, с които разполагаме (скорост на изчисление, време). Но знаейки дължината на паролите, можем лесно да увеличим броя на паролите, които намираме с дадено количество ресурси няколко пъти - ако номерата работят силно в наша полза, евентуално можем да намалим разходите за ресурс за разбиване на 30% от паролите с порядък или повече.

Сценарий 2: Прекъснете една парола при целенасочена атака

Ако не знаем дължината на паролата, трябва да разпределим ресурсите си сред необработените, принуждавайки всички ключове с малка дължина и да тестваме паролите с по-голяма дължина. Ако приемем, че харчим половината от ресурсите си за всеки, знаейки, че дължината на паролата ни позволява напълно да превключим към един от двата и следователно да удвоим наличните ресурси.

Също така получаваме допълнителна информация, която може да бъде изключително ценна при целенасочена атака:

Ако паролата е достатъчно кратка, за да я принуди брутално, можем да ви дадем горна граница за това колко време ни отнема да я получим. Това може да ни накара да опитаме някои атаки, които иначе не бихме обмислили.

Също така можем да изчислим вероятността от счупване на паролата. Ако знаем, че е малко вероятно да нарушим паролата, можем да похарчим ресурсите си за намиране на други начини да компрометираме системата.

Ако имаме 2 различни пароли от един и същ потребител, можем да видим дали има шанс те да са същите пароли. Ако тя варира само с 2-3 цифри, можем да получим учтива идея, че по-дългата парола може да бъде същата като най-късата, плюс префикс или суфикс.

Ако получим още повече информация за паролата, това може да доведе до по-голяма печалба от 2-те отделни парчета. . Например, ако разберем, че паролата е една дума в речника на Оксфорд, все още имате шанс да запазите паролата сигурна, ако например можем да принудим само една парола в минута. Но ако знаем също, че дължината на паролата е 17 цифри, това е над играта.