Я работаю над приложением, подобным CMDB, где я должен хранить наши учетные данные безопасности (имена пользователей и пароли серверов, ...).
Я ищу лучший способ безопасно хранить их с этими ограничениями:
- Большинство пользователей НЕ будут иметь доступ ко всем учетным данным (в зависимости от роли пользователя)
- Мы не хотим, чтобы все пароли были зашифрованы одним и тем же ключом (уже пробовали: когда пользователь покидает компанию, менять ключ сложно...)
- Действительно, мы не хотим, чтобы какой-либо закрытый ключ был жестко записан в исходном коде приложения или даже хранился где-либо (в нашей предыдущей версии закрытый ключ хранился между нашими ушами...)
- Нам нужно реализовать аудит надежности паролей (т.е. анализировать расшифрованные пароли из скрипта)
- Не должно быть случаев, когда мы больше не можем получить доступ к нашим учетным данным (потерянный ключ, ...) => мы не хотим, чтобы посторонние лица смотрели на них, но мы также не хотим их терять => решение для этого ограничением может быть обычный экспорт в физический шкафчик...
Я не спрашиваю о безопасности приложения (https,...) или базы данных (без публичного доступа,...), а только о стороне хранения (может быть, даже НЕ в базе данных...? зашифрованные файлы или что-то в этом роде ...) : можно ли запретить кому-либо, даже имеющему доступ к коду приложения или содержимому базы данных (в худшем случае), иметь возможность читать расшифрованные учетные данные?
Я знаю, что прошу какое-то волшебное решение, но я хочу знать, существует ли оно ;о)