Рубрики
Без рубрики

Радужные столы и зачем добавлять соль

Обеспечение того, чтобы вы шифровали свою безопасную или личную информацию, является почти сизифической задачей, CO … Tagged Security, WebDev, JavaScript.

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

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

Большинство паролей не очень уникальны

Есть много паролей, которые используются чаще, чем другие. Это могут быть общие имена, спортивные команды и даты. У хакеров может быть просто словарь слов, которые он зацикливается на попытках войти в грубую силу. Даже когда номера добавляются в пароль, они не всегда настолько уникальны.

Подумайте о том, что кто -то использует свой день рождения в формате MM/DD как часть своего пароля. Это 4 числа, но вместо 4 чисел 0001-9999, он действительно нажимает только 01-12, а затем 01-31. Гораздо менее разнообразны. Гораздо менее уникальный. Это сужает цифры, необходимые для попытки при попытке взломать приложение грубой силой.

Кроме того, если ваш сайт сообщает вам конкретно требования к паролю, хакер также может сузить именно до того, что им следует и не должен пытаться. В приведенном ниже шаблоне, если пользователь будет изложено, он знает, что пароль должен быть не менее 8 символов, поэтому не нужно угадать ничего под суммой.

PassPattern: /^([a-zA-Z0-9]{8,16}$/,

Атаки на пароли, которые были зашифрованы, требуют вычисления хеша в реальном времени. Злоумышленник, возможно, украл хэшированные пароли из базы данных, но им все равно нужно сделать вычисление, чтобы увидеть, соответствует ли какой -либо из паролей, которые они догадаются, с хэшированными в украденной базе данных. Хорошая функция хэш -пароля целенаправленно медленная, что означает, что это займет много времени, чего не хочет хакер. Чтобы избежать этой ситуации, злоумышленник мог бы попытаться использовать радужный стол вместо использования грубой силы.

Радужный стол

Радужная таблица – это база данных хэшей, которая уже сделала эти много времени, сделанные на них. Так что, если ваш пароль «Gocubs1993», «Password123» или любое количество обычных комбинаций фразов, он, вероятно, уже был сопоставлен и хранится в этой таблице.

Случайные фразы и словаря выполняются через выбранную хэш-функцию, такую как SHA-224, SHA-256, MD4 и MD5. Хэш -картирование затем хранится в таблице радуги, которую злоумышленник может сделать обратный поиск с хэшами из базы данных о похищенном пароле.

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

Соль (и, может быть, перец!)

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

this.userpassword = "password123";
this.salt = "eyeLUV2beeSecure";
newEncryption = md5(this.userpassword + this.salt);

В приведенном выше примере, в то время как пароль «пароль123» не очень уникален, добавление соли к ней делает «Password123eeluv2beesecure», вряд ли уже будет пароль, который уже будет отображаться в таблице радуги. Это означает, что хакеры должны были бы сделать все дорогостоящие вычисления сами.

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

Что вы должны использовать, чтобы сделать шифрование?

Ты не должен быть Используя MD5 или Используя Sh-1 Анкет По словам Fortify, они больше не имеют необходимого уровня безопасности. Вы должны переключаться на одну из новых версий, таких как SHA-224, SHA-256, SHA-384, SHA-512 или SHA-3.

Если вам нужна дополнительная информация о хешировании, соле и шифровании Это отличный ресурс Анкет

Оригинал: “https://dev.to/salothom/rainbow-tables-why-to-add-salt-45l9”