Хорошо, вот что я сделал на данный момент:
Создан экспортируемый контейнер ключей уровня машины RSA
aspnet_regiis -pc "MyKeys" -exp
Теперь я предоставляю доступ на чтение к этому соединению для NT Учетная запись AUTHORITY \ NETWORK SERVICE (что бы это ни было)
aspnet_regiis -pa "MyKeys" "NT AUTHORITY\NETWORK SERVICE"
Затем я зашифровал свой файл конфигурации с помощью моего собственного провайдера
aspnet_regiis -pef "connectionStrings" "path_to_config_file" -
prov "myCustomProvider"
Файл конфигурации выглядит следующим образом:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configProtectedData>
<providers>
<add name="myCustomProvider"
type="System.Configuration.RsaProtectedConfigurationProvider,
System.Configuration, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a,
processorArchitecture=MSIL"
keyContainerName="MyKeys"
useMachineContainer="true" />
</providers>
</configProtectedData>
<configSections>
</configSections>
<connectionStrings>
<add name="myConnectionString"
providerName="System.Data.SqlClient"
connectionString="Data Source=myServerName;Initial
Catalog=myDefDatabase;User=myUser;Password=myPassword;Application
Name=myAppName" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
</configuration>
Затем я экспортирую свой контейнер ключей RSA в файл:
-px "MyKeys" "C:\Users\name.surname\Desktop\test\test.xml" -pri
И куда мне теперь импортировать этот xml файл? Каждый ли пользователь моей программы должен выполнять c эту строку?
aspnet_regiis -pi "MyKeys" test.xml
Теперь, когда я пытаюсь запустить программу Winform (даже на компьютере, на котором было выполнено шифрование), я получаю следующую ошибку сообщение:
Невозможно расшифровать с помощью провайдера myCustomProvider. Сообщение об ошибке провайдера. Произошла ошибка при декодировании завершения OAEP
Любая помощь будет очень признателен.