加密(“保护”)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>
答案 0 :(得分:1)
您可能想要构建自定义ProtectedConfigurationProvider。请参阅Implementing a Protected Configuration Provider和How to: Build and Run the Protected Configuration Provider Example。
答案 1 :(得分:1)
我刚刚使用Reflector检查了RsaProtectedConfigurationProvider
,因为我发现没有什么办法可以将tripledes-cbc
更改为其他任何内容。
因此,如果要使用AES加密,则必须编写自己的ProtectedConfigurationProvider
。您可能希望使用Reflector为您提供良好的开端。