Всего в каталоге: 217 компаний
Сравнить (0)

Шифрование md5 с солью – как система безопасности?

Время чтения: 22 минуты

92 0

Шифрование md5 с солью – как система безопасности?
 

Шифрование MD5 – это есть хеширование паролей методом MD5, который зарекомендовал уже себя давно. Он служит для защиты интернет-ресурса от взлома и подбора паролей. И вроде бы все классно, а тот факт, что данный метод делает переработку информации необратимой, позволяет чувствовать полностью себя защищенным от взлома и даже если кто-то получил случайно доступ к базе данных, он все равно не сможет достать пароли.
 

Важно знать: этот стереотип стал уязвим с появлением Rainbow-таблицы, которая позволяет декодировать хешированный шрифт.

Шифрование md5 с солью
 

Но в этот момент появилось куча дополнительный инструкций на просторах интернета, как повысить защиту MD5 от декодирования. Но 100% защиты так и не нашли. Даже можно сказать, что процент защиты вашего ресурса 0%. Вопрос только в том, сколько времени и электричества нужно потратить на декодирование кода. И действительно часто такой процесс занимает больше месяца. Минусом этой системы, глобальным минусом, является тот факт, что вы тоже будете израсходовать мощность своего хостинга, сервера и вам придётся сменить не одного провайдера, чтобы он за разумные деньги не ограничивал вас в использование мощностей его машин, что встречается довольно часто.
 

На сегодняшний день самым толковым методом по защите интернет ресурса является метод: шифрование MD5 с солью. Преимущества данного метода и его суть заключается в том, что само по себе шифрование MD5 это чистый код, следовательно, пользуясь таблицей можно расшифровать. Но ведь не кто нам не мешает добавлять в код свои элементы? И действительно никто не мешает это делать.
 

хэш = соль + md5(соль+пароль) 
или на PHP:
function md5WithSalt($pass, $salt = "someDefaultSalt"){<br>
$hash = $salt;<br>
$hash .= md5($salt.$pass); <br> return $hash;<br>}


Таким образом мы получаем хэш, увеличенной длинны с конкатенацией пароля с той же самой солью. Естественно, что в таком случае генерацией Rainbow-таблиц, именно для этой соли, никто заниматься не будет. В принципе, достаточно ограничиться конкатенацией соли с паролем и от этого брать md5 — всё равно результат взломать, даже зная соль, практически невозможно.

"Подперчить" сей метод можно добавив динамики в генерацию соли т.е. при правильном вводе пользователем его пароля, динамически заменять соль на новую, например, при каждом 10-ом логине или каждую неделю. Кстати, если соль сделать из 8-ми абсолютно случайных символов, то при взломе такого хэша, система взлома может распознать его как SHA-хэш и априорно начнёт двигаться в ложном направлении.
 

Нужно помнить, что на данном методе защиты ресурсы не нужно останавливаться, существует множество других способов.
 

Совет: чем больше людей знают про метод защиты, тем больше программистов знают слабые места методов.
 

Среди бывалых программистов ходит мнение:
 

Недостатки тут разве что в сложности: хэширование на клиенте через JS, по 2 запроса и ответа от сервера (опять таки, время). А в целом, Вы описали логику аутентификации по Kerberos :) 

Кстати, если у злоумышленника есть таки возможность перехватывать Ваши пакеты, то и salt1, md5(salt+password), salt2 он может перехватить. Да, тут встаёт вопрос, может ли он это после обработки дописывать в ответ серверу или, грубо говоря, полностью сэмитировать сессию (в Kerberos ещё помимо проверок паролей идёт шифрование по открытым ключам и выдача всяких посторонних значений для идентификации пользователей и их сессий — не буду подробно расписывать т. к. темы вопроса это не касается :) ). 

Но зачем всё усложнять — передавайте пароль по https и никаких лишних ухищрений делать не придётся. Не панацея, конечно, но усложнять веб-системы подобным образом — не самый разумный подход, помоему :)

Оцените, пожалуйста, статью по пятибальной шкале, при анализе мы учтём ваше мнение и станем чуть лучше:
  Рейтинг статьи: 4.0
Узнайте об акциях и отзывах первыми в нашей группе