Как выбрать / применить шифрование AES с помощью aspnet_regiis для шифрования значений web.config? - PullRequest
2 голосов
/ 08 января 2012

Мне нужно зашифровать часть нашего web.config для нашего проекта ASP.Net 4.0, но мы должны использовать AES, и по умолчанию используется Triple DES.Как я могу сказать ему использовать шифрование AES вместо этого?

В командной строке я выполняю следующие команды:

aspnet_regiis -pc "NetFrameworkConfigurationKey" -exp
aspnet_regiis -pe "connectionStrings" -app "/<myapp>"

Я полагаю, что я установил метод шифрования на AES, выбрав соответствующий CSP (-csp), но я не смогнайти или выяснить имя правильного.

И одна из строк в зашифрованном файле web.config:

<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />

1 Ответ

2 голосов
/ 08 января 2012

Поставщик выбирается с помощью параметра -prov для aspnet_regiis.Поставщики зарегистрированы в web / machine.config с помощью раздела configProtectedData.Чтобы зарегистрировать AES, вы должны использовать что-то вроде этого:

<configProtectedData>
    <providers>
        <add name="AesProvider"
            type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider"
            description="Uses an AES session key to encrypt and decrypt"
            keyContainerName="iisConfigurationKey" cspProviderName=""
            useOAEP="false" useMachineContainer="true"
            sessionKey="aSessionKeyGoesHere" />
    </providers>
</configProtectedData>

На моем компьютере RSA и DPAPI являются предварительно настроенными алгоритмами в machine.config.

При условии, что поставщик AES зарегистрирован вамидолжен быть в состоянии зашифровать раздел конфигурации, используя:

aspnet_regiis -pe "connectionStrings" -app "/<myapp>" -prov "AesProvider"
...