从TripleDES更改Microsoft配置文件加密方法

时间:2011-01-25 17:51:43

标签: .net web-config app-config configuration-files

加密(“保护”)Microsoft配置部分时,您会看到类似下面的XML的内容。它遵循(至少部分)XML加密的W3规范。

但是,在下面的XML中,您会看到EncryptedData部分下的EncryptionMethod是“tripledes-cbc”。我们希望能够将其更改为更安全的替代方案,特别是AES,这也是上述W3规范中规定的。

在微软支持工程师的许多电话中,他们无法理解这个问题,更不用说回答它了。有没有办法改变这种加密方法?

我之前忘了提到我们当前设置为RsaProtectedConfigurationProvider,但只有密钥似乎是用RSA加密的,而数据是用3DES加密的。

<MiscCryptoData configProtectionProvider="someConfigProtectionProvider">
  <EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#">
    <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
    <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
      <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
        <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
        <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
          <KeyName>Rsa Key</KeyName>
        </KeyInfo>
        <CipherData>
          <CipherValue>asf78ag78asg\...cryptoyadayada...asdf8r=</CipherValue>
        </CipherData>
      </EncryptedKey>
    </KeyInfo>
    <CipherData>
      <CipherValue>zxcv6asdf35...largercryptoyadayada...u7i8o9p=</CipherValue>
    </CipherData>
  </EncryptedData>
</MiscCryptoData>

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

我刚刚使用Reflector检查了RsaProtectedConfigurationProvider,因为我发现没有什么办法可以将tripledes-cbc更改为其他任何内容。

因此,如果要使用AES加密,则必须编写自己的ProtectedConfigurationProvider。您可能希望使用Reflector为您提供良好的开端。