Пароли, хаос и математика

Пароли, хаос и математика

Паролите са нещо, което упорито се е загнездило в нашето ежедневие и за съжаление поне още няколко години едва ли ще се отървем от тях. Някой ги обичат, други ги ненавиждат. Замисляли ли сте се до колко те оказват влияние върху нашата производителност и как може да подобрим това, без да рискуваме да намалим нивото на сигурност?

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

Хаос и математика

… извадете лист и пишете - ентропия е физична величина, която представлява мярка за безпорядъка на термодинамичните системи. Не, не се шегувам. Определено този термин от термодинамиката е важен за сигурността на паролите ни, защото той показва колко те са устойчиви на атаки по метода а грубата сила (последователни опити с всички възможни комбинации от букви, цифри и символи). Реално целта ни е да използваме парола, за която да е необходим значителен интервал от време за „разбиване“ чрез посочения подход (тук не говоря за “brute-force”, насочен към лицето, а към паролата).

Ентропията на паролата е броят на опитите, необходими за отгатване на паролата. Тя се измерва в битове, като се приема, че за ентропията n ще са необходими 2n опита. От тук ясно се вижда, че колкото е по-голяма стойността на ентропията, толкова паролата е по-сигурна (повече опити водят до практически безсмислена атака). Практиката показва, че често пъти по метода на грубата сила е необходимо да се обходят половината от всички възможни комбинации, така че за броят на проверките може да изчисли 2n-1.

Самото изчисляване на ентропията, която се отбелязва с E е по простата формула:

E = log2(RL)

където:

· R – брой на всички уникални символи, използвани в паролата (например, ако са само цифри, то R=10).

· L – дължина на паролата (брой символи в нея).

Нека да разгледаме няколко примера:

· „123456“ – R=10 (само цифри), L=6, E=19,93.

· “iloveme” – R=26 (броят на малките латински букви е 26), L=7, E=32,90.

· “C*_r,Q+@r$ID$1WL” – R=94 (52 малки и главни латински букви, 10 цифри и 32 символа), L=16, E=104,87.

Вижда се, че за да се подобри ентропията на паролата следва да се увеличат един или и двата параметъра R и L.

Надеждна парола, или…

Нека да приемем, че искаме да регистрираме акаунт за сайт и трябва да зададем парола, при това надеждна. Използвайки генератор получаваме „bPw4@<P)}VNpu[-TKq+9“. Дължина от 20 символа, съдържаща всякакви видове символи и без шанс да я запомним. Ентропията е … Е=131,09. Ако успеем да тестваме по 50000 пароли в секунда, ще са необходими около 1,84x1027 години за да обходим всички комбинации. Да, паролата е надеждна.

За мен в горният пример има един сериозен проблем и той е, че тази парола трябва да се запише някъде. Не, не на лист или в тефтер, а в специален софтуер за менажиране на пароли. Това е добро решение, но все пак, паролата е записана някъде. Има ли вариант да не се налага нейното съхраняване? Има и той е да се запомни. Това ще е трудно, но има подход, при който може да се създаде т.нар. „фраза за парола“ (passphrase), която да бъде от няколко думи и цифри между тях.

Нека да разгледаме следният пример “Fred11Wilma22Barney33Betty” и да изчислим ентропията:

· R = 62 (52 малки и главни латински букви и 10 символа).

· L = 26.

· E=154,81.

Сравнете ентропията с тази от ужасния стринг “bPw4@<P)}VNpu[-TKq+9”. Тук тя е с 23,72 бита по-голяма. Ако се чудите защо това е така – причината е много по-голямата стойност на L, за сметка на намалената R.

Сега се опитайте да си спомните „фразата за парола“. Можете ли лесно да я напишете? Сигурен съм, че отговорът е „да“. Именно това е едно от най-големите предимства на „фразите за пароли“,  лесното помнене. То, в комбинация с ненужното използване на мениджър за пароли и високата сигурност определено се явява предпочитана комбинация.

Все пак има и недостатъци. Използването на думи може да доведе до създаване на парола, която да е налична в някои от базите данни с изтекли акаунти. Бих препоръчал, ако създадете „фраза за парола“ да я проверите в публична услуга като www.haveibeenpwnd.com.

Вместо заключение

Бих ви препоръчал да използвате „фрази за пароли“, а причините за това са, че те се помнят по-лесно, при достатъчна дължина са дори по-надеждни от сложна комбинация от случайни символи, а и не се налага да се записват. Необходимо е да се вземат и няколко неща под внимание. Важно е думите да не са пряко свързани с вас, например ще е доста нелогично да създадете фразата от вашите три имена, или тези на децата ви. Добрата практика е все пак да проверите, дали стрингът е в някоя от базите данни с изтекли пароли.

Надявам се, че след тези малко пресмятания, ще се убедите да тествате „фразите за пароли“ във вашето ежедневие и да се убедите в техните предимства.