Доста често разработчиците на софтуер си задават въпроса: „В какъв вид е най-добре да бъде запазена една парола в базата с данни?“ Повечето програмисти се спират на варианта с най-обикновенно MD5 криптиране, което между другото върши работа, но когато става дума за по-големи системи, където не трябва да се прави компромис с качеството, това не е достатъчно. В много от случаите MD5 хешовете могат лесно да бъдат разбити с помощтта на големи бази данни от MD5 хешове. Поради тази причина софтуерните продукти с отворен код все по-често започват да използват по-сложни варианти за криптиране на паролите. Разбира се, не трябва да се прекалява със сигурността, защото това би могло да окаже влияние на цялостната съвместимост на продукта.
Добро решение на проблема е паролите да се пазят в базата с данни в криптиран вид, заедно с добавена сол. Солта представлява определен набор от символи, които се добавят към паролата, след което паролата бива криптирана заедно с тях. По този начин възможността да бъде декриптирана паролата с използване на хакерски бази данни се свежда до нулева. Единствения вариант за нейното разбиване е да бъде направена BruteForce атака (брутална сила), когато всички възможни комбинации се проверяват и се прави сравнение между паролата в базата и генерирания хеш. Но в този случай хакерите трябва да знаят солта и хеша, също така паролата трябва да бъде примитивна.
Да си представим в момента цялостна система за оторизиране на потребители, без значение на какъв език за програмиране е писана тя (PHP, Python, Java). След регистрация, към паролата на потребителя се добавя случаен набор от символи, които се записват в отделно поле в таблицата. Паролата и солта се запазват заедно в криптиран вид (MD5, SHA1 и т. н.) За да бъде проверено, дали въведената парола от даден потребител съответства на тази, създадена при регистрацията, скрипта прави следната проверка. Взима от полета на таблицата солта, добавя я към въведената парола, криптира двете и сравнява двата хеша. Системата работи, и в същото време е достатъчно сигурна. Постигнахме точно това, което търсихме.
Разбира се, сигурността на една система не зависи само от това в какив вид се пазят паролите. За изграждането осигуряването на сигурността на Вашите системи, можете да използвате услугите на фирма Zapprotect.

юни 07, 2010
Jordan


Zapprotect във FaceBook
Zapprotect в Twitter