Колку е важно да се чува тајната на должината на лозинката
Одржување на критична лозинка додека одржување на безбедноста?

Дали некој знае дека имате должина од лозинка 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,. аа, аб,. Кој е добар модел (иш) за правилно кршење на лозинки генерирани од компјутер, но е ужасен модел за погодување на лозинки генерирани од луѓе.
Крекери за вистински лозинки се базираат на речник, се обидуваат зборови (и комбинации на зборови) од англискиот речник, списоците на лозинки што протекуваат, итн., затоа тие пресметки треба да се земат со зрно сол.
Друг ефект на знаење на вашата должина е тоа што не мора да пробувате лозинки повеќе од 17, што за алгоритми за сурово принудување, обидувајќи се со комбинации на зборови, всушност може да биде огромна заштеда.
Како што споменаа @SteveSether, @xeon и @CountIblis, откривањето на должината (или ентропијата) на лозинката исто така може да има ефект ако напаѓачот дури се обиде да ја пробие вашата лозинка, обесхрабрувајќи ги од силни лозинки и наместо да ги привлекува. слабиот Значи, ако знаете дека имате силна лозинка, откријте ја! Сепак, откривањето на должината на лозинката (или ентропиите) за сите корисници во системот има ефект на правење силни лозинки посилни, а слаби лозинки послаби.
Крајна линија:
Да кажам некому за должината на вашата лозинка не е најлошото нешто што можете да го направите, но сепак не би го сторил тоа.
Освен деталната математика од @Mike, мислиме дека должината на лозинката бега насекаде:
Кога ќе се напише, светлиот учесник може да го научи тоа, или со броење на „*“ на екранот или со слушање на тастатури (во вториот случај, тој може да го снима звукот со својот паметен телефон и да игра како активност од одмор).
Во класично сценарио за „веб прелистувач“, корисничкото име и лозинката ќе бидат испратени до серверот преку HTTPS POST. SSL слојот ќе ги криптира податоците, но SSL не ја крие должината на податоците, така што пасивен набverудувач на мрежата може да ја научи и должината на лозинката.
И корисничкиот интерфејс и системот за примање ќе ја обработуваат лозинката со функции чие време на извршување и моделите за пристап до меморијата ќе зависат од должината на лозинката. Напаѓачите кои можат да извршат мерки за синхронизација обично ќе можат да ја заклучат должината на лозинката од овие мерки.
Затоа, звучен пристап е да се смета должината на лозинката како јавни податоци. Некои напаѓачи нема да имаат пристап до тоа (тип на напаѓачи кои зеле копија од базата на податоци на серверот); другите ќе знаат. Многу е тешко да се знае „колку е тајна“ должината на лозинката и бидејќи безбедноста е поврзана со квантифицирање на работите, добро е да се претпостави дека сите напаѓачи можат да ја знаат должината на лозинката. Верувањето дека можете да го чувате во тајност и проценувањето на безбедноста врз основа на овој поим би било премногу опасно.
Откривањето на должината на лозинката открива нешто за моќта на лозинката. Значи, во суштина, вие некому давате предлог за тоа колку би било тешко да се погоди.
Значи, ако вашата лозинка е многу долга (17 карактери во вашиот пример), информациите во голема мера се бескорисни. Ако лозинката е кратка (6 карактери), на напаѓачот му кажува дека може да бидете нападнати. Напаѓачите одат по најлесните цели.
Не се согласувам со прифатениот одговор. Вистина е дека должината на лозинката е скоро бескорисна ако сите лозинки се создадени по случаен избор од машина. Ова повеќе не важи ако лозинките се создадени од обични луѓе: врз основа на зборовите во речникот, измешајте мали букви, заменете некои карактери со броеви или специјални знаци и додавајте префикси и наставки (на пр. „! 1“) итн.
Ајде да погледнеме во 2 сценарија, едното е дека имаме 10 000 000 лозинки и имаме за цел да најдеме што е можно повеќе лозинки соодветни за овие видови на преписка. Другото е хаш-лозинка и сакаме да ја скршиме. И во двете сценарија, разликата се покажува значителна. Како и обично, сите информации можат да бидат злоупотребени во напад, дури и ако не изгледаат на прв поглед .
Сценарио 1: Создава многу од 10.000.000 лозинки со ограничени ресурси.
Може да се обидеме само со напади на брутафор на сите хаши на лозинки, без да ги разликуваме ако не ја знаеме должината на лозинката.
Ако користиме исцрпен напад на бруталност (за кој се гарантира дека ќе ја најде лозинката), знаењето на должината на лозинката ќе понуди само многу минимална корист. Зошто? Грубото присилување на сите 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-цифрените лозинки се ефтини за разбивање. Но, бидејќи знаеме што 1000000 е 6 цифри или помалку, сега мора да принудиме на груби 100.000 6-цифрени лозинки да скршат 100.000, наместо грубо да ги принудуваме 2.000.000 лозинки да кршат 100 ’ 000 6 дигитални зборови. Тоа е 5% од работата за истиот резултат!
Ако ги разгледаме сите придобивки комбинирани, точната добивка што ја добиваме од познавањето на должината на лозинката зависи од брзината на нашиот метод за тестирање на „веројатни“ лозинки, соодветната стапка на успех на нашиот метод за тестирање на веројатно лозинки за секоја должина на лозинката, дистрибуција на должините на лозинката во колекцијата хаш на лозинка што сакаме да ја скршиме и количината на ресурси што ги имаме на располагање (брзина на пресметување, време). Но, знаејќи ги должините на лозинките, можеме лесно да го зголемиме бројот на лозинки што ги наоѓаме со дадена количина ресурси неколку пати - ако броевите работат силно во наша корист, ние може да ја намалиме цената на ресурсот за да скршиме 30% од лозинките по редослед или повеќе.
Сценарио 2: Скршете единствена лозинка во насочен напад
Ако не ја знаеме должината на лозинката, мора да ги дистрибуираме нашите ресурси меѓу суровата, принудувајќи ги сите клучеви со кратка должина и тестирајќи ги лозинките со поголема должина. Под претпоставка дека трошиме половина од нашите ресурси на секој од нив, знаејќи дека должината на лозинката ни овозможува целосно да се префрлиме на едно од двата и затоа да ги удвоиме нашите расположиви ресурси.
Добиваме и дополнителни информации што можат да бидат исклучително вредни при насочен напад:
Ако лозинката е доволно кратка за да ја присили брутално, можеме да ви дадеме горна граница за тоа колку време ни треба да ја добиеме лозинката. Ова може да предизвика да се обидеме со некои напади за кои инаку не би размислувале.
Ние исто така можеме да ја пресметаме веројатноста за кршење на лозинката. Ако знаеме дека веројатно нема да ја скршиме лозинката, можеме да ги потрошиме нашите ресурси во изнаоѓање други начини за компромис на системот.
Ако имаме 2 различни лозинки од ист корисник, можеме да видиме дали постои можност тие всушност да бидат иста лозинка. Ако варира за само 2-3 цифри, можеме да добиеме учтива идеја дека подолгата лозинка може да биде иста како и пократката, плус префикс или наставка.
Ако добиеме уште повеќе информации за лозинката, тоа може да резултира во поголема добивка од 2-те поединечни парчиња. . На пример, ако дознаеме дека лозинката е единствен збор во речникот на Оксфорд, сеуште имате шанса да ја чувате лозинката безбедна ако, на пример, можеме да присилиме само една лозинка во минута. Но, ако исто така знаеме дека должината на лозинката е 17 цифри, готово е.