ПредишенСледващото

Защо ни хеширани пароли?

През последните дни Хабре бе съобщено, че базата данни с хешовете на паролите на популярни услуги попаднат в неподходящи ръце (1), (2). Тя установи, че linked.in услуга използва метода на SHA-1 хеширане и last.fm използва MD5. Повечето пароли са думи от речника са кратки, а нападателя като по този начин хеша ще бъде в състояние да открие паролата източник, дори и без груба сила, просто чрез използване на таблици дъга.
Това е сериозно нарушение на сигурността, независимо от факта, че много от разработчиците смятат, че запазването на парола хеш вместо самата парола е в състояние да защити потребителите на услугата в случай на база данни изтичане. Разбира се, това е много по-добре, отколкото пароли магазин в обикновен текст, но явно не е достатъчно безопасно. BCrypt метод, в контраст с MD5 и SHA-1, не е добре известен в интернет, в руски език статия в Уикипедия дори не е за него. Какво се харесва?

Какво е BCrypt?

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

Бавно, не означава лошо

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

Защо не се използва сол?

Стандартна намери MD5 хеш функция е както следва:
MD5 (парола)
От думата, която е хеш на паролата се изчислява, която ще се съхраняват в база данни. Когато даден потребител иска да влезете в системата, чрез своята парола хеш се изчислява отново и sravnon факта, че се намира в основата. Ако отговарят на хешове, паролите са едни и същи, също и потребителят има право да влиза. Ако нападателят ще доведе база с парола хешове, а след това с помощта на таблици дъга, за да намерите бързо прост хешовете на паролите, които вече са там.

MD5 хеш функция да намерите сол има, например, следната форма:
MD5 (MD5 (парола) + сол)
На първо място е хеш думата, която е защитена с парола. Чрез този хеш е приложен сол (случаен набор simolov уникален за всеки потребител) и на комбинация от "парола хашиш + сол" е отново на хеш която се съхранява в база данни. Солта се съхранява в една и съща база данни и се използва за изчисляване на хеша, всеки път, когато трупите на потребител.
Сега, ако един нарушител ще оттегли своя база с хешове, таблици дъга той няма да помогнат, защото те могат да бъдат използвани за търсене само в хешове на думи от речника или набор от числа. В този случай, на нападателя е вероятно да се възползва от груба сила. Като хеша и сол, въоръжени с бърз процесор, той ще вдигне хешовете, докато докато не получи съвпадение.

Това реши ли проблема?
Подкрепете проекта - споделете линка, благодаря!