Какво е Hashing с парола (и как работи)?
Ако често посещавате интернет като мен, има шанс, че сте получили имейл, който е нещо подобно:
Уважаеми клиенти,
Наскоро сайтът ни стана жертва на кибер-парад в нашата корпоративна мрежа. Всички пароли бяха кодирани, но като предпазна мярка изискваме от всички наши клиенти незабавно да възстановят паролите си.
Благодаря ти.
Така че имаше нарушение, част от информацията ви, включително кодираната от вас парола, беше изтекла. Разходите за профила ви ли са?
Кратък отговор: ДА, но защо?
За да разберете това, трябва да разберете понятието "хеширане на паролата".
Какво е хеш?
Хешът е просто начин да представят всички данни като уникален низ от знаци. Можете да хвърлите всичко: музика, филми, ваше име или тази статия. Метафорично казано, хеширането е начин да зададете "име" на данните си. Тя Ви позволява да взимате всяка дължина и да я превърнете в низ от знаци, които винаги са с еднаква дължина. Очевидно има много методи (алгоритми) за това.
Някои от най-популярните алгоритми за хеширане:
- MD5 - Предоставените данни ще върнат уникален хеш с 32 знака.
- SHA1 - Предвид всички данни ще се върне уникален хеш с 40 знака.
- SHA256 - Като се има предвид, че всички данни ще върнат уникален хеш за 64 знака; проектиран от Агенцията за национална сигурност.
Да разгледаме един прост пример:
Казвам се "Джамин Бекер"
MD5 хеш представянето на моето име е:
eeb7048c69b088739908f5f5144cd1f5
SHA1 хеш представянето на моето име е:
ae480b717c08b6ab36a85075864e35b9c528d7c5
SHA256 хеш представянето на моето име е:
a477cc14eae5fd94fe4cb20b36ec80ac6983bad44973ae7f4f230010f01289b0
Защо Hashing Secure?
Причината за хеширането на причините е проста: хеширането е еднопосочна операция. Те не могат да бъдат обърнати. Като се има предвид низ "eeb7048c69b088739908f5f5144cd1f5", няма начин да се обърне MD5 хеш, за да се върне "Jamin Becker". Това се дължи на начина, по който математиците и програмистите структурираха MD5 хеширащия алгоритъм и той се връща към фундаментален компютърно-научен проблем наречен "P vs NP". P и NP са само два класа алгоритми.
Повечето алгоритми за хеширане попадат под NP, което означава, че те могат бързо да се изчислят. Обаче алгоритмите за неутрализиране (т.е. "eeb7048c69b088739908f5f5144cd1f5" -> "Jamin Becker") попадат в класа P и могат ефективно да бъдат решени само в полиномично време (т.е. използвайки квантов компютър значително по-напреднал от наличните днес).
Защо това е добро за сигурността?
Кажете, че се абонирате за уебсайт и изберете парола "12345". Веднага след това този уебсайт ще изтрие вашата парола, вероятно с SHA1, и ще я съхранява в база данни. Сега всеки път, когато влезете, сайтът ще префашира вашата парола и ще я сравни с тази, съхранена в базата данни. Ако те съвпадат, ще бъдете успешно удостоверени. Ако уебсайтът е нарушен и базата данни с пароли е изтекла, паролата ви ще се покаже като "8cb2237d0679ca88db6464eac60da96345513964", а не "12345".
Стратегии с хеш атаки
Така че нападателят има хешираната версия на паролата ми и няма начин да го върнем на 12345. Нямам какво да се притеснявам, нали? Грешно!
Един метод, който обикновено се използва за получаване на парола на обикновен текст от хеш, се нарича атака на груба сила. При тази атака, нападателят ще премине през гигантски списък с думи и ще хвърли всяка дума със съответния алгоритъм за хеширане. След това те могат да сравняват хешове в списъка с думи с тези, които са получили от базата данни. Ако хеш от списъка с думи съответства на този в базата данни, те могат просто да намерят съответната парола за обикновен текст в оригиналния списък с думи, който са размазани. Опитните нападатели ще използват изключително големи списъци с думи, съчетани с мощен софтуер, за да преминат през милиони възможности за пароли в секунда.
Друг метод на атака се опитва да използва самия хеширащ алгоритъм, като създаде хеш сблъсък. Космическият сблъсък възниква, когато две различни набори от данни се преобразуват в един и същ хеш и докато това е рядко, то може да бъде смъртоносно. Това ще позволи на атакуващия да генерира низ от знаци, които не са вашата парола, но все пак могат да влязат в профила ви, тъй като генерират същия хеш.
заключение
Хостинг алгоритмите стават все по-напреднали. Математиците и компютърните специалисти непрекъснато разработват криптографски хеширащи алгоритми с по-малка вероятност от сблъсъци. Важно е обаче да запомните, че без значение колко силен е алгоритъмът на хеширане, винаги може да се напука, като се използва атака на груба сила. Добрата новина е, че можете лесно да се защитавате и срещу тези атаки, като просто следвате политиката за пароли за най-добри практики.
- Размерът има значение - колкото по-дълга е оригиналната парола, толкова по-малко вероятно ще бъде в списъка с думи
- Не бъдете предсказуеми - избягвайте да използвате думи като "парола" и "myname123"
- Използвайте комбинация от специални знаци, цифри, малки и малки букви
Какви са вашите мисли по хеширането? Споделяйте своите изгледи в коментара по-долу.
Кредит на изображението: отпечатъци от лупата онлайн отBigStockPhot