Видът парола, който трябва да създадете, има много общо с това как се съхранява паролата.

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

Благодарение на днешните променящи се технологии и машини под наем, това време е намалено до часове. Но как се съхраняват тези пароли на първо място?

Как се съхраняват паролите онлайн

Системите не съхраняват потребителски пароли директно във файлове или бази данни, тъй като нападателите могат да превземат базата данни, където системите пазят паролите. Вместо това системите криптират потребителските пароли и нападателите срещат криптирана версия на всяка парола.

Има някои алгоритми, които системите използват за криптиране на пароли. Един от тези алгоритми е симетричният алгоритъм. Симетричният алгоритъм е вид криптиране където можете да използвате един и същ ключ както за криптиране, така и за декриптиране. Ключът, който ще използвате за криптиране на данните, е един и същ както за криптиране, така и за декриптиране. Сигурността на симетричните алгоритми носи известни рискове, тъй като има само един ключ за дешифриране. Поради тази причина системите обикновено не използват симетрични алгоритми за криптиране на пароли.

instagram viewer

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

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

В началото на 2000-те можеше да отнеме стотици години, за да се изпробват всички комбинации за пароли от 8 знака, криптирани с популярни алгоритми за хеширане. Разбира се, този ди не включва много прости комбинации като "123456" или "mypassword" в този набор. С развитието на днешните софтуерни и хардуерни технологии методът за кракване на пароли също се промени много.

Въздействието на нововъзникващите графични процесори

Възможностите за паралелна обработка на данни на графичните процесори (GPU) се подобриха с времето. Графичните процесори не са способни да извършват разнообразни операции като процесорите с общо предназначение. Така че въпреки че има толкова много ядра и мощност на паралелна обработка, че няма смисъл да ги използвате за почти всеки проблем като ПРОЦЕСОР.

И все пак е възможно да се изпълняват някои хеш алгоритми, използвани за пароли, доста ефективно на GPU. Изчислимите хешове за секунда, които можете да постигнете с традиционните процесори, са нараснали неимоверно с новите GPU платформи.

За да получите представа, разгледайте хеширащите числа в секунда на хеш алгоритми като NTLM, MD5 и SHA1 в таблицата по-долу. Засега е достатъчно да знаете, че тези алгоритми са само хеш алгоритъм. За да създам тази таблица, използвах клъстерна система, състояща се от 25 графични процесора AMD Radeon.

Алгоритъм

Хеширане на секунда

NTLM

350.000.000.000

MD5

180.000.000.000

SHA1

63.000.000.000

SHA512Crypt

364.000

Bcrypt

71.000

Scrypt

33.000

Както можете да видите, с такава система можете да генерирате NTLM хешове 350 милиарда пъти в секунда. Това означава, че можете да изпробвате всички комбинации от 8-знакова парола за по-малко от 6 часа. Освен това хардуерът в този пример принадлежи на преди години. Представете си днешната сила за разбиване на пароли.

Какво трябва да направят разработчиците на софтуер?

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

Ако разработчиците работят със софтуерна рамка, която също адресира процеси за криптиране на пароли като Django, Ruby on Rails и Spring Security, те трябва да проверят дали са взети правилните решения в рамката по отношение на сигурност.

Например, Измислете, една от най-използваните библиотеки за потребителски операции в Ruby on Rails, използва Bcrypt като хеш алгоритъм по подразбиране. Той също така ви позволява да използвате друг метод като хеш алгоритъм. Алгоритъмът Bcrypt е надежден, тъй като все още отнема много време, преди GPU да се счупи.

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

Колко знака трябва да има вашата парола?

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

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

Брой знаци

Главни/малки букви и цифри

Главни/малки букви, цифри и специални символи

8

по-малко от 1 минута

2 минути

9

2 минути

2 часа

10

2 часа

1 седмица

11

6 дни

2 години

12

Една година

200 години

13

повече от 100 години

повече от 1000 години

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

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

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

Съвети към крайните потребители

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