Какой самый простой способ зашифровать файл в C #? - PullRequest
3 голосов
/ 12 апреля 2009

Заранее:

Я действительно прочитал другие темы по SO, но не могу найти в них ответ.
(Остальные о конфигурационных файлах или списке методов)

Мой вопрос, таким образом, очень прост, хотя и немного субъективен (я обозначу его заранее :-)), каков самый простой способ ..

Ответы [ 5 ]

7 голосов
/ 12 апреля 2009

File.Encrypt довольно просто - один вызов (с одним параметром).

Конечно, это действительно зависит от того, для чего вы хотите шифрование. File.Encrypt шифрует текущую учетную запись, которая не очень полезна, если вы передаете файл. Но, учитывая вашу спецификацию - то есть самый простой способ зашифровать файл - он должен быть кандидатом!

4 голосов
/ 12 апреля 2009

Шифрование тривиально для современных библиотек: сложная часть заключается в защите ключа (ей).

Итак, вам нужно посмотреть, что вы пытаетесь обезопасить, и от каких угроз вы пытаетесь обезопасить.

Чтобы зашифровать файл, чтобы только текущий пользователь мог видеть его на клиентской рабочей станции, File.Encrypt является хорошим выбором или DPAPI с областью действия CurrentUser.

Для файла конфигурации на одном сервере, DPAPI, использующий область LocalMachine, является хорошим выбором. Затем вам необходимо убедиться, что только авторизованные пользователи могут войти на сервер. Здесь вы, по сути, делегируете управление ключами в Windows.

Для файла конфигурации на ферме серверов вам необходимо разделить ключ между серверами. RsaProtectedConfigurationProvide - хороший выбор, но у вас больше работы, чтобы все серверы имели доступ к одному и тому же ключу и были защищены от несанкционированного доступа (например, с использованием DACL).

4 голосов
/ 12 апреля 2009

Не верьте, что у вас есть какая-то безопасность только потому, что вы шифруете файл конфигурации. Если у кого-то есть доступ к зашифрованному файлу конфигурации и вашему исполняемому файлу, содержащему пароль, вероятно, будет возможно расшифровать ваш файл конфигурации. Это немного сложнее.

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

4 голосов
/ 12 апреля 2009
3 голосов
/ 12 апреля 2009

Я рекомендую Блок приложения криптографии в Корпоративная библиотека . Очень легко, очень гибко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...