Хорошо, поэтому вся проблема с хешами в том, что пользователи не вводят пароли длиной более 15 символов. Большинство из них используют только 4-8 символов, что позволяет атакующим легко взломать радужный стол.
Решение: используйте пользовательскую соль, чтобы сделать ввод хешей более сложным и более 50 символов, чтобы они никогда не смогли сгенерировать таблицу (слишком большой для строк такого размера) Кроме того, они должны будут создать новую таблицу для каждого пользователя. Проблема: если они загрузят БД, они получат пользовательскую соль, поэтому вы вернетесь к исходной точке, если им будет достаточно.
Решение, используйте сайт "перец" плюс пользовательскую соль, тогда, даже если они получат БД, им все равно придется знать файл конфигурации. Проблема: если они могут проникнуть в вашу БД, они также могут попасть в вашу файловую систему и обнаружить ваш сайт.
Итак, со всем этим известным - давайте предположим, что злоумышленник зайдет на ваш сайт и получит все, ВСЕ. Так что ты сейчас делаешь?
На этом этапе обсуждения большинство людей отвечают: «Кого это волнует?». Но это просто дешевый способ сказать: «Я не знаю, что делать дальше, так что это не может быть так важно». К сожалению, везде я задавал этот вопрос, который был ответом. Что показывает, что большинство программистов упускают очень важный момент.
Позволяет представить, что ваш сайт похож на другие 95% сайтов, а пользовательские данные - или даже полный доступ - не стоит приседать. Злоумышленник случайно выбрал одного из ваших пользователей «Боб», потому что он знает, что «Боб» использует тот же пароль на вашем сайте, что и на сайте банка. Он также знает, что у Боба есть сбережения. Теперь, если злоумышленник сможет просто взломать наши хэши сайтов, остальное будет просто пирогом.
Итак, вот мой вопрос: как увеличить длину пароля без отслеживания пути? Или как сделать процесс хеширования сложным для своевременного дублирования? Единственное, что я придумал, это то, что вы можете повторно хэшировать несколько тысяч раз и увеличивать время, необходимое для создания окончательной радужной таблицы, в 1000 раз. Это потому, что злоумышленник должен следовать по тому же пути при создании своих таблиц.
Есть еще идеи?