【问题标题】:What ciphers are used to encrypt sections of the ASP.NET Web.config file?哪些密码用于加密 ASP.NET Web.config 文件的各个部分?
【发布时间】:2017-12-20 02:02:47
【问题描述】:

我正在这些链接中查看 MS 文档: https://msdn.microsoft.com/en-us/library/dtkwfdky.aspx https://msdn.microsoft.com/en-us/library/hh8x3tas.aspx

文档说明如下:

既然您的 ASP.NET 应用程序的身份对默认 RsaProtectedConfigurationProvider 对象的 RSA 密钥容器具有读取访问权限,您将使用该密钥容器为您的 ASP.NET 应用程序加密 Web.config 文件的部分。

这似乎暗示 Web.config 文件中受保护的部分将通过 RSA 加密,并且在示例 XML 代码中,我确实看到了以下代码

<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />

但是,我也看到以下代码,这似乎表明 TDES-CBC 被用作密码:

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

什么密码被用来加密什么数据?

【问题讨论】:

  • crypto.stackexchange.com 可能会为您提供更详细的信息。
  • 我只是更仔细地查看我自己的配置,并注意到您的问题。即使在下面回答之后,我现在也看到了您所说的更好。就好像“部分”使用三元组,而键/值使用 rsa。
  • @wazz by section 你的意思是 部分?那么 封装的所有内容都被 TDES 加密了吗?哪些键/值使用 RSA 加密?是否有任何文件可以证实这一点?
  • 我无法用docs确认,就是结果是什么样子的,不管是conn字符串部分,app设置部分,smtp部分等等。大概得深入provider类才能看到如果真的使用了两个密码。

标签: c# asp.net .net encryption


【解决方案1】:

引用自各种文档:

您可以指定自己的受保护配置提供程序,也可以使用 ASP.NET 中内置的提供程序之一。

默认情况下,Machine.config 文件指定以下受保护的配置提供程序 [包含在 .NET Framework 中]:

DpapiProtectedConfigurationProvider。使用 Windows 数据保护 API (DPAPI) 用于加密和解密数据。

RsaProtectedConfigurationProvider。 使用 RSA 加密算法对数据进行加密和解密。 [默认。]

https://msdn.microsoft.com/en-us/library/68ze1hb2(v=vs.100).aspx

// Encrypt the <connectionStrings> section.
connectionStrings.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider");

“在某些情况下,您可能需要使用非 RSA 或 DPAPI 提供程序可用的算法来加密信息。” https://msdn.microsoft.com/en-us/library/wfc2t3az(v=vs.100).aspx

TripleDES 提供程序示例:https://msdn.microsoft.com/en-us/library/system.security.cryptography.tripledescryptoserviceprovider(v=vs.100).aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 1970-01-01
    相关资源
    最近更新 更多