Найти в Дзене

Что такое 'salted hash'? (байки ИТ-переводчика)

В личку постучалась одна из моих ИТ-студенток, ныне медпереводчица, и спросила: При редактировании проекта попался термин "salted hash value of password" и в целом про "подсаливание" паролей. Документ касается медоборудования. Переводчик оставил "пароль с солью". Подскажите, пожалуйста, уместно ли употребление подобного перевода? В сети нашла "salt" как "модификатор входа хеш-функции", исправила на такой перевод, но может быть есть еще какой-то более верный вариант? Вот уж откуда-откуда, а со стороны медицины я этот термин точно не ожидал. С этим термином я познакомился еще лет 10 назад, когда готовил русскую версию стандарта PCI DSS 3.0, и там упоминались такие штуки как радужные таблицы/rainbow tables: Зачем они нужны? Хеши, как многие из моих уважаемых читателей знают, работают всегда в одну сторону — т.е. из текста любой длины сделать хеш можно, а вот из хеша текст — никак. Другое важное их свойство: какой бы ни был длины входной текст, хеш по длине всегда будет один и тот же

В личку постучалась одна из моих ИТ-студенток, ныне медпереводчица, и спросила:

При редактировании проекта попался термин "salted hash value of password" и в целом про "подсаливание" паролей. Документ касается медоборудования. Переводчик оставил "пароль с солью". Подскажите, пожалуйста, уместно ли употребление подобного перевода? В сети нашла "salt" как "модификатор входа хеш-функции", исправила на такой перевод, но может быть есть еще какой-то более верный вариант?

Вот уж откуда-откуда, а со стороны медицины я этот термин точно не ожидал.

С этим термином я познакомился еще лет 10 назад, когда готовил русскую версию стандарта PCI DSS 3.0, и там упоминались такие штуки как радужные таблицы/rainbow tables:

Пример радужной таблицы
Пример радужной таблицы

Зачем они нужны?

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

Хеши используются для разных целей, но конкретно в рассматриваемой ситуации их используют для сокрытия паролей (например, на сайтах - не в открытом же виде их хранить).

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

Поскольку хеши по замыслу работают однонаправленно, хакеры (здесь и далее под хакерами я подразумеваю всегда "исследователей, проверяющих системы на прочность", а не злоумышленников) нашли способ как эту однонаправленность обойти — они создали вышеупомянутые радужные таблицы, то есть предвычисленные таблицы хешей наиболее распространенных паролей. Если у вас легкий пароль, то с большой долей вероятности, он попал бы в такую таблицу и при взломе (компрометации) сайта и утечке хешей паролей, вычислить ваш пароль занимало бы считаные секунды.

Одним из решений для противодействия таким атакам стало добавление к пользовательским паролям рандомной текстовой строки — salt/соли:

-2

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

Разумеется, за скобками осталась масса нюансов реализации процесса: как генерируется соль? какие механизмы гарантируют, что у каждого пароля будет своя соль? Где хранится эта соль? Какая длина соли? Какой алфавит используется для соли? и т.д. и т.п. Но это уже другая глубина вопросов — переводчики обычно в такие дебри не лезут (а зря).

Для закрепления термина у нас в конце состоялся такой диалог:

— А в переводе предпочтительнее как указывать: "соль" или "модификатор входа хеш-функции"? Или уместны оба варианта?
— Если вы бы написали "модификатор чего-то там" я бы даже не понял, что вы про "соль" написали.. Везде "соль" пишут.

Спасибо за внимание.

Мой блог в ТГ: 📖Редактор разъясняет ...: https://t.me/alliancepro