До сих пор действует хеширование пароля с использованием md5 или sha1? - PullRequest
0 голосов
/ 30 января 2019

Просто сейчас я работаю в финансовом проекте.Здесь команда думает использовать MD5 для password hashing.Но сегодня легко скопировать пароль SHA1 или MD5 для расшифровки, в том числе, если это сложный пароль, такой как: My$uper$ecur3PAS$word+448, вы можете использовать онлайн-страницу для расшифровки, и она есть.Малые и средние разработчики (включая меня) используют эти hashing methods, но я думаю, что этого недостаточно для обеспечения безопасности базы данных.(Исключая firewalls, network security, iptables и т. Д.).

Может кто-нибудь подсказать мне, как лучше подходить к устранению этой уязвимости?

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Согласно Шпаргалу OWASP для хранения паролей , рекомендуется:

  • Argon2 - победитель конкурса хэширования паролей и должен рассматриваться как ваш первый выбордля новых приложений:
  • PBKDF2, когда требуется сертификация FIPS или корпоративная поддержка на многих платформах;
  • scrypt, где необходимо сопротивление любым / всем аппаратно ускоренным атакам, но поддержка не нужна.
  • bcrypt, где PBKDF2 или поддержка scrypt недоступны.

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

Группа алгоритмов хеширования SHA-2 защищена для многих случаев использования безопасности, но не для пароляхэширование, потому что они невероятно быстрые по сравнению с вышеупомянутыми алгоритмами.А производительность - это то, чего мы не хотим для хэширования паролей, потому что это поможет злоумышленнику выполнить атаку методом перебора, попробовав широкий диапазон паролей за короткий промежуток времени.

ВышеПоэтому 4 алгоритма должны быть дорогими с точки зрения памяти, вычислительной мощности и времени.Эти значения обычно параметризованы так, что они могут быть настроены на высокое значение, поскольку новые технологии улучшают вычислительную мощность с течением времени.Поэтому при использовании этих алгоритмов важно правильно выбирать значения коэффициента работы.Установка очень низкого значения valur может помешать достижению цели.

В дополнение к этому следует также использовать соль.

Снова из того же источника OWASP:

  • Создание уникальной соли при создании каждого сохраненного удостоверения (не только для пользователя или всей системы);

  • Использование криптографически стойких случайных данных;

  • В качестве разрешений на хранение используйте 32-байтовую или 64-байтовую соль (действительный размер зависит от функции защиты);
  • Безопасность схемы не зависит от сокрытия, разделения или иного скрытия соли.

Соли служат двум целям:

  • препятствуют тому, чтобы защищенная форма открывала два идентичных идентификатора, и
  • увеличивают энтропию, подаваемую на функцию защиты, не полагаясь на сложность учетных данных.

Вторая цель состоит в том, чтобы сделать предварительно вычисленные атаки поиска для отдельных учетных данных и основанные на времени атаки непопулярным населением

0 голосов
/ 30 января 2019

Ваше мышление верное, MD5 и SHA1 никогда не должны использоваться для хеширования пароля.Я бы рекомендовал следующее в порядке предпочтения:

  • argon2
  • bcrypt
  • scrypt
  • PBKDF2

Если вы пометите свой вопрос тем языком / структурой, которые вы используете, я могу порекомендовать вам конкретные библиотеки или методы.

Также помните, что шифрование не подходит для использования здесь.Это алгоритмы паролей хэширования , а не алгоритмы шифрования.

...