Использование того же ключа, который aspnet_regiis использует для шифрования web.config для программного шифрования данных - PullRequest
1 голос
/ 09 января 2012

Недавно я обнаружил возможность использовать aspnet_regiis для шифрования частей web.config.Мы хотим дополнительно зашифровать данные, хранящиеся в базе данных, с помощью отдельного ключа, но сохранить этот ключ в зашифрованном виде с помощью того же ключа, который используется системой для шифрования web.config.Есть ли способ получить к нему программный доступ из самого C # / ASP.Net?

По сути, сценарий таков: наша строка подключения в web.config будет зашифрована с использованием aspnet_regiis (в настоящее время поставщик RSA, пока я не смогу получитьAES провайдер для работы).Затем мы хотим, чтобы дополнительная информация строки подключения (для других баз данных) сохранялась в этой исходной базе данных (включая доступное для записи соединение для исходной базы данных), которая была зашифрована другим ключом, но этот ключ будет сохранен в исходной базе данных и зашифрован с использованиемначальное шифрование, которое использовало web.config.

В противном случае мне придется хранить ключ и IV для алгоритма, используемого в web.config, и я думаю, что было бы более безопасно использовать окна«цепочка для ключей» безопасности, которая использовалась для шифрования файла web.config.

1 Ответ

0 голосов
/ 09 января 2012

Во-первых, я не уверен, что вы можете получить ключ шифрования, используемый aspnet_setreg.

Во-вторых, я не думаю, что шифрование данных в базе данных с использованием машинно-специфического ключа - ужасно хорошая идея. Что произойдет с данными в базе данных, если эта машина выйдет из строя, и база данных должна быть восстановлена ​​из резервной копии на другую машину?

Я думаю, вам было бы гораздо лучше использовать алгоритм обратимого шифрования (т.е. Rinjadel), используя ключ и iv, которые хранятся в скомпилированном приложении, которое используется для извлечения данных.

Если другим приложениям нужны строки подключения, вы можете централизовать доступ к ним через службу WCF с использованием учетных данных безопасности Windows.

...