Шифрование пароля для файла конфигурации C # - PullRequest
0 голосов
/ 29 сентября 2018

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

Это требование, которое я должен выполнить.

Я использую ядро ​​DOTNET, и это должно работать на Windows 10, Windows Server и OSX.

Есть ли у кого-нибудь хорошие способы выполнить это требование?

Спасибо

1 Ответ

0 голосов
/ 30 сентября 2018

Во-первых, ознакомьтесь с RSA Key Containers.Ваша рабочая группа создаст одну для каждой из ваших сред.Они будут экспортировать их и отслеживать экспорт для вас.Они также получат доступ к ним ACL, чтобы у разработчиков был доступ к ним в более низких средах, но только у высокопоставленных пользователей есть доступ к ним.Им также необходимо добавить ACL, чтобы у учетных записей процессов на ваших серверах был доступ.

Эти контейнеры ключей будут импортированы на серверы и на любые клиентские машины, которые будут выполнять любые операции шифрования.

Затем создайте класс C # с секретным именем, возможно, шифрованием.метка времени и две строки, одна для секретного текста и одна для зашифрованной версии.Сделайте все JSON сериализуемым.Пометьте элемент с открытым текстом, чтобы он не сериализовался.

Создайте небольшое клиентское приложение (скажем, с WinForms), которое сможет считывать коллекцию объектов секретов, расшифровывая любой зашифрованный текст с помощью ключа в ключе.Контейнер.Приложение позволит пользователям вставить секрет (возможно, один скопированный из KeePass).Когда файл сохранен, открытый текст / вставленный в тайне шифруется и сериализуется.Версия открытого текста выбрасывается.

В этот момент у вас есть текстовый файл JSON, который содержит один или несколько зашифрованных секретов, но эти секреты могут быть расшифрованы только процессами, работающими с токеном, который имеет доступ кКонтейнер ключей RSA.Таким образом, вы можете поместить файл в систему управления версиями и положиться на сборку / развертывание, чтобы отправить файлы на серверы.

Извините за отсутствие кода, но я действительно не могу скопировать /Вставьте код, который я написал для моего работодателя.Здесь должно быть достаточно, чтобы вы начали.

...