Мой вопрос в том, что хакер может сделать это, только если он знает, как работает хеш-функция (используемая банком). Очевидно, что он не может генерировать хэши общих паролей, если не знает, как работает хеш-функция, используемая банком. Так почему же хеширование без солей представляет угрозу безопасности? Означает ли это, что все хеш-функции работают одинаково?
Ваша предпосылка неверна, поскольку вы предполагаете, что банки защищены от взлома и хранят хэши паролей от злоумышленников. Если когда-либо банки будут использовать хеширование паролей без солей, то их управление рисками будет очень плохим, им нужно активировать анализаторы рисков.
Таким образом, когда банк использует хэши паролей без соли, это вопрос времени, когда они будут атакованы, и почти все пароли будут легко раскрыты.
Будем надеяться, что банковские системы полагаются не только на пароли, так как их риск выше. Обычно они требуют двухфакторной аутентификации, одноразовых паролей и т. д.
И помните, что мы не используем криптографические хэши в качестве хэшей паролей, поскольку они предназначены для быстрой и безопасной работы. С другой стороны, современные хэши паролей требуют уникальной соли и;
- контролируемая итерация для уменьшения массивного распараллеливания злоумышленника,
- большой объем памяти, чтобы уменьшить массовое использование среды, подобной ASIC/GPU, и
- регулируемые резьбы для уменьшения распараллеливания.
Некоторые хорошие алгоритмы хэширования паролей, на которые вы, возможно, захотите обратить внимание, — это хеширование Argon2, Scrypt и Balloon. В конце концов, хеширование пароля без уникальной соли не рекомендуется. Если их использовать, то Радужные столы — это монстры, скрывающиеся на соседней улице...