Зашифровать хешированные пароли?
Является ли здравым смыслом шифровать хешированные и засоленные пароли, которые хранятся в базе данных с надежным шифрованием (AES 192 или около того), или мы просто стремимся к звездам?
Конечно, ключ шифрования не будет находиться в самой базе данных, но будет храниться в безопасном месте.
Большое спасибо!
3 ответа
Я не эксперт по безопасности, и я не знаю, какое приложение вы используете или какие у вас настройки. Но если бы я делал обычное старое веб-приложение, я бы просто использовал соленый хеш.
Вы собираетесь хранить ключ (или открытый ключ, если вы используете шифрование с асимметричным ключом, поскольку вы можете зашифровать хэш пароля, который предоставляет пользователь и сравнить его со значением из базы данных) на сервере приложений в любом случае.
Если вы в основном беспокоитесь о том, что кто-то может взломать ваш сервер баз данных, то сложнее ли взломать сервер приложений?
Если кто-то попытается атаковать по словарю через сервер приложений, то в любом случае потребуется одинаковое количество попыток. Вам просто нужно обнаружить и заблокировать это.
Единственная ситуация, в которой полезно шифрование соленых хэшей, - это если злоумышленники могут получить зашифрованные значения, но не ключ. Я думаю, вам решать, хотите ли вы этого для своей системы.
Нет необходимости шифровать соленый и хешированный пароль.
Когда пароль солен и хешируется с помощью хорошего алгоритма шифрования, это не улучшит безопасность.
Когда вы шифруете его, вы должны каким-то образом управлять ключом, что только усложнит ситуацию.
Используйте криптографическую соль для каждого пароля и используйте хороший алгоритм хэширования.
Для получения дополнительной информации см. Этот вопрос: Лучший способ сохранить пароль в базе данных
Пароли всегда должны быть хешированы, а не зашифрованы, если вам действительно не нужен пароль. Восстановление пароля само по себе обычно не считается хорошей практикой.