Я изучаю, как зашифровать ConnectionString для нашего C# (3.5) Приложение. Я считал.Net Framwork Developer Guide (http://msdn.microsoft.com/en-us/library/89211k9b (По сравнению с 80) .aspx) об обеспечении строки подключения. но не полностью понимают содержание.
Это говорит"The connection string can only be decrypted on the computer on which it was encrypted."
У нас есть машина выпуска, которая создаст наше приложение, которое генерирует OurApp.exe.config и затем установит его на многих машинах продукта. Это - meam, нам нужно было разделить этот процесс шифрования с нашим приложением и выполнить его в машине отдельного продукта?
Мы можем использовать"RSAProtectedConfigurationProvider
". Это упомянуло, что нам нужно encryption key
для того поставщика. когда и как мы должны обеспечить ключ шифрования?
спасибо,
Существует два метода защиты ключа (на самом деле один, но они идут в разных направлениях после первоначального отстрела инструмента).
Надеюсь, это поможет.
Вы только нужно один раз запустить процесс шифрования. Однако после генерации машинного ключа вам необходимо распространить его на все файлы machine.config на целевых машинах. Файл machine.config должен находиться здесь:
%FRAMEWORKDIR%\%FRAMEWORKVERSION%\CONFIG
Как: настроить MachineKey в ASP.NET 2.0
: В этой ссылке есть раздел о настройке ключа конфигурации
и как разделить это между машинами.
1) Да, если вы воспользуетесь этим подходом, вы зашифруете его для каждой машины, на которой он был установлен. Если бы у вас все равно была бы другая конфигурация для каждой машины, это был бы нормальный подход из моего опыта. Это не лучший подход, если вы пытаетесь отправить «секретную» строку подключения.
2) Если вы этого не видели, я думаю, эта статья ответит на вопрос о поставщике RSA ... http://msdn.microsoft.com/en-us/library/ff650304.aspx
Если это приложение используется клиентами, которым вам необходимо предоставить информацию о подключении, то:
СЛОВО ВНИМАНИЕ: Не думайте, что, шифруя конфигурацию, вы действительно защищаете себя от пользователя, запускающего приложение. В какой-то момент эта строка должна быть расшифрована приложением, чтобы использовать ее для подключения к серверу. Это приложение может быть использовано для обеспечения связи с другими приложениями. Короче говоря, вы не должны полагаться на это как на свою единственную стратегию, чтобы не допустить пользователей к БД. Хорошая безопасность - это всегда комплексное усилие.
Конфиг шифруется с помощью машинного ключа. Это означает, что только компьютер с этим ключом может расшифровать его. Проще всего развернуть систему с незашифрованной конфигурацией, а затем зашифровать ее при запуске программы, или использовать отдельный процесс для шифрования конфигурации. Вы можете распространять оригинальный машинный ключ для использования на других машинах, используя ответ code4life выше
Вместо того, чтобы переписывать шаг за шагом, как использовать ключ шифрования RSA, пожалуйста, посмотрите это руководство MSDN - http://msdn.microsoft.com/en-us/library/dtkwfdky.aspx