В настоящее время я работаю над веб-приложением, которое требует высокого уровня безопасности, и я думал об обработке пароля. То, что я должен использовать хешированный пароль, с достаточно большой солью - это само собой разумеющееся, но будет ли полезно многократно хэшировать пароль с разными солями или разными алгоритмами?
Я не имею в виду тот факт, что вы должны хешировать пароль несколько раз, чтобы сгенерировать хэш пароля, например Hash(Hash(Hash(salt + psw)))=pswhash
, но вместо этого я думаю об использовании Hash(Hash(Hash(salt1 + psw)))=pswhash1
и Hash(Hash(Hash(salt2 + psw)))=pswhash2
, а затем сравнивать при входе
Используя эту процедуру, злоумышленник должен не только найти один пароль, который генерирует pswhash, но и пароль, который должен генерировать оба хэша правильно. Таким образом, вероятность коллизии практически равна нулю, но злоумышленник может использовать второй хеш, чтобы определить, верен ли пароль из первого хеша.
Дополнительная информация о приложении:
Приложение в первую очередь является внутренним приложением для нашей компании. Соединения Alla обрабатываются с помощью https, все имена пользователей являются уникальными для этого приложения (поэтому вы не можете выбрать свое имя пользователя), и все пароли являются уникальными для этого приложения (генерируются случайным образом, и вы не можете выбирать их). Мы прежде всего обеспокоены тем, что кто-то может получить несанкционированный доступ к системе, прежде чем мы сможем отреагировать. Если у нас есть время отреагировать на то, что «они» могут найти точный пароль, это не такая уж большая проблема.