Моя компания будет хранить конфиденциальные данные для наших клиентов и будет шифровать данные с помощью одного из классов управляемых алгоритмов шифрования .NET. Большая часть работы выполнена, но мы не выяснили, как и где хранить ключ. Я провел легкий поиск и чтение, и кажется, что аппаратное решение может быть наиболее безопасным. У кого-нибудь есть какие-либо рекомендации относительно решения или метода хранения ключей?
Спасибо за ваши ответы, все.
spoulson, проблема на самом деле в обеих "областях", которые вы упомянули. Полагаю, мне следовало быть яснее.
Сами данные, а также логика, которая их шифрует и дешифрует, абстрагируются в поставщика профилей ASP.NET. Этот поставщик профилей допускает как зашифрованные свойства профиля, так и обычные текстовые. Зашифрованные значения свойств хранятся точно так же, как и обычные текстовые значения - с очевидным исключением, что они были зашифрованы.
При этом ключ необходимо будет вызвать по одной из трех причин:
- Авторизованному веб-приложению, работающему на авторизованном сервере, необходимо зашифровать данные.
- То же, что # 1, но для расшифровки данных.
- Авторизованным членам нашей бизнес-группы необходимо просмотреть зашифрованные данные.
То, как я себе это представляю, - это то, что никто никогда не узнает ключ - было бы программное обеспечение, контролирующее фактическое шифрование и дешифрование данных. Тем не менее, ключ все еще должен прийти от где-то .
Полное раскрытие - если вы уже не могли сказать, я никогда не делал ничего подобного раньше, поэтому, если я совершенно не в себе, в моем восприятии того, как это должно работать, во что бы то ни стало, дайте мне знать.