Вопрос или проблема
В NIST SP 800-132 указаны два способа использования ключа защиты данных (DPK), который выводится из пароля. Один из них заключается в том, чтобы использовать DPK для шифрования данных, а затем, если я не ошибаюсь, уничтожить DPK. Чтобы проверить, является ли введенный пароль правильным, система добавляет префиксное значение (например, строку нулей) к исходному тексту перед его шифрованием. Если ключ, полученный из введенного пароля, успешно расшифровывает это префиксное значение, то пароль действителен. Этот метод позволяет системе не хранить пароль или его хэш. Разве это нельзя считать более безопасным? Потому что я никогда не слышал об этом ранее, хотя эта рекомендация довольно старая (декабрь 2010 года, 14 лет назад).
Ответ или решение
Вопрос о хранении ключей защиты данных (DPK) является важной темой в области информационной безопасности. Метод, предложенный в NIST SP 800-132, действительно подразумевает использование DPK для шифрования данных с последующим уничтожением самого ключа, что позволяет избежать его хранения. Однако данный подход не пользуется широкой популярностью по нескольким причинам:
-
Проблема восстановления данных: Уничтожение ключа защиты данных после его использования означает, что восстановить доступ к зашифрованной информации станет невозможно, если кто-то потеряет свои учетные данные (например, пароль). В реальных сценариях нужно учитывать возможность восстановления данных, что затрудняет применение данной модели.
-
Сложность реализации: Хотя метод не требует хранения пароля или его хешированного представления, реализация такой системы может быть сложной. Придётся заботиться о правильной генерации и управлении ключами, а также о корректной обработке случаев, когда пользователи вводят неверные пароли.
-
Уязвимости в передаче данных: Даже если ключ не хранится, существует риски, связанные с передачей пароля по сети. Если он не защищен, злоумышленник имеет возможность перехватить его и использовать для шифрования данных. Эффективные методы защиты передачи данных, такие как TLS, становятся критически важными, и не всегда гарантируют полную защиту.
-
Отсутствие общепринятого метода: Хотя предложенный NIST способ действительно может обеспечить высокий уровень безопасности, на практике большинству организаций проще и привычнее использовать более устоявшиеся методы, такие как хранение хешей паролей или использование систем управления ключами (KMS), которые предлагают удобные решения для защиты ключей, а также восстановления данных при необходимости.
-
Более высокий уровень управления рисками: В большинстве организаций управления рисками не позволяет отказаться от хранения информации о паролях и ключах в силу потребностей в бизнесе и соблюдения нормативных требований. Безопасность системы часто сбалансирована с удобством использования и практическими потребностями.
Таким образом, хотя метод, рекомендованный NIST, действительно предлагает интересный подход к управлению ключами защиты данных, сложности с реализацией, проблемы с восстановлением и генерацией ключей, а также привычка использовать другие более традиционные методы делают его менее популярным среди профессионалов в области информационной безопасности.