Ние се учим от грешките на другите и защита на паролите от груба сила

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

Ние се учим от грешките на другите и защита на паролите от груба сила

Грешките при стартиране на криптоанализ

Много се стремят криптоанализ вярват, че SHA1 схема (SHA1 (SHA1 (.. ($ хашиш)))) ще бъде добавен към кръга SHA1.

Всичко щеше да е така, ако не е фундаментално свойство на SHA1 алгоритъм. От това следва, че е невъзможно да се напише такава функция за изчислителни SHA1000, което е еквивалентно на хилядократно вложени разговори SHA1 и по този начин ще бъде лесно да изчислим. Забележете, че в резултат на SHA1 (SHA1 (.. ($ хашиш))) - не е едно и също нещо като добавяне на повече кръгове в SHA1, тъй като все още има преди и след обработката. В резултат на тази хеш може да бъде неблагоприятно във всички аспекти на потреблението на ресурси на процесора.

Атаката на хеш

За да се разбере каква е ефективността на метода на хеширане на пароли, нека да разгледаме съществуващите методи за "възстановяване", което означава, скрити зад хашиш. Те не са толкова много и мисля, че сте чували всички.

Според Пол-Хенинг Камп, md5crypt се изчерпа като алгоритъм за парола хашиш. Съвременни инструменти за парола се познае, способността да се провери един милион комбинации в секунда, овладяване на GPU ускорение може да възстанови всяка semisimvolny парола md5 хеш на по-малко от шест минути, а за търсенето шест характер на всички ценности и всичко ще бъде около минута. Тъй като в много системи за парола хеширане по подразбиране все още се използва md5crypt, Пол Хенинг Камп призова потребителите и разработчиците на операционната система да се премести в по-стабилни алгоритми.

Как да се намалят рисковете?

От всичко това може би трябва да са осъзнали колко нестабилни модерни криптографски хеш алгоритми на съвременните реалности атаки. Има няколко начина за намаляване на рисковете на ниво алгоритми:

  1. Използването на алгоритъм за криптиране.
  2. Мариноване на съществуващите хешове. Чрез мариноване се отнася до метод за изкуствено усложнение на паролата наречена наслагване на сол. Сол е колекция от различни видове герои, това е обикновено героите на двата регистъра, цифри и специални символи, които са наложени на размера на готовия хеш парола или залепени към него.

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

Ето един пример от най-простите защитата кисели използване на статични соли на таблици дъга md5 (SHA1 (md5 ($ пас))) за PHP:

Статично сол и подобни структури могат да служат доста добре, докато структурата на тези конструкции и G се пазят в тайна. Ако на някой хакер да научите razreversit алгоритъм и статичен кабелен (важно!) Таен ключ хашиш, вече е ясно, че това няма да е трудно да се променят за себе си "дъга маса".

Ние се учим от грешките на другите и защита на паролите от груба сила
Hashcat поддържа възстановяване на парола от "сол" хешове

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

Идеално - да генерира напълно уникален сол:

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

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

Ние се учим от грешките на другите и защита на паролите от груба сила
Жизненият цикъл на популярни криптографски алгоритми

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

Искате ли да се подобри сигурността - ще трябва да инвестира във времето и ресурсите, съотношението на ресурсите / час е пряко пропорционално.

Тя е по-удобно да се забави хеш функции използват различни криптографски алгоритми, с вградена PHP 4.0.32 и realizuemogcherez крипта () функция:

Ако вторият аргумент за крипта не се предава, той ще бъде избран на случаен принцип, така че солта се генерира напълно случайно. Golden средната метод за забавяне на разбъркващата функция е използването на криптографски алгоритъм Blowfish. Blowfish - Encryption е начин да се забави алгоритъм ключ за делене (алгоритъма е доста бързо, след като разделящ ключ [клавиш график], както и когато искате да криптирате голямо съобщение с един ключ). Чрез съвременните стандарти, това е най-кодовете да се осигури максимална сигурност.

Защо има уязвимост?

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

Доскоро (преди около шест години), сблъсък за криптографски алгоритми за хешване може да изглежда фантастично, но днес това не е изненада. След като "стабилна" хеш алгоритми MD4 / MD5, които са станали фактически стандарти в много проекти и решения в областта на продукти за информационна сигурност, вече напълно безнадеждна и трябва да бъдат изпратени само в една посока ... да, познахте: в най-/ сътрудничество / нула: ).

Ако добре подкован в областта на математиката и приложни криптографията, е възможно да се намери грешка в алгоритъма за хеширане като по-сложен алгоритъм, толкова по-голяма вероятността да го намерите. Трябва да се разбере, че такова нещо: в криптографията, както и в програмирането, толкова по-голям проект, толкова по-голяма грешка. За да се греши е човешко, така че, ако откриете грешки има надежда винаги незаменими в това отношение на човешкия фактор :). Когато пренасянето криптографски алгоритми и писане обвивки също е възможно възникването на грешки.

Като пример, набор от забележителни грешки в прилагането на неотдавна разкритите клас RSACryptoServiceProvider .NET Framework библиотеки. Както се оказа, RSACryptoServiceProvider заяви в класове и методи имат DSACryptoServiceProvider SignHash глупави грешки, която се състои в psevdorandomizatsii три от четирите блока. Резултат: + 75% за атака RSA криптиране VM .NET.

Много списание и научни статии искали да опише продуктите от гледна точка на криптографски алгоритми и ключови дължини. Алгоритми сладък: описание него може да бъде сбит и лесно в сравнение с друг. "128-битови ключове означава висока степен на защита". "Triple DES е налице висока степен на защита." "40-битови ключове означава ниско ниво на защита." "2048-битов RSA-добре от 1024-битов RSA».

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

заключение

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

Покажете тази статия на приятел: