对称密钥与ASP.. NET存储在web.config中

本文关键字:web config 存储 NET 密钥 ASP 对称 | 更新日期: 2023-09-27 18:05:17

我正在努力确保我正在正确地实现我的加密任务。我想知道我的IV和Key使用是否正确。

场景:

ASP。NET 4.0 Web应用程序,它请求和存储最终用户的电子邮件地址和其他个人数据。我想加密这些信息之前存储在SQL服务器。加密是为了保护数据免受爱管闲事的dba和数据库存储介质的物理窃取。

web应用程序需要在个人数据上执行任务,例如向用户发送电子邮件,因此它需要能够解密存储在数据库中的值。

建议:

每次email地址更新时,生成一个新的IV。用IV和Key加密email地址(这就是问题所在)。将IV和加密后的数据存储在SQL server中

问题:

Key存储在哪里?

    在应用程序中硬编码的
  • ?我认为这是"坏的"。
  • 可以合法地存储在web上吗?配置文件?
    • 如果是,是否使用web ?配置区段加密?我相信这是"好的"。
    • 如果不是,为什么在web.config中存储machineKey元素(用于ViewState加密)是合适的?
  • 使用DPAPI向应用程序池用户帐户注册密钥并按需检索?
  • 跨不同位置,例如web。配置、注册表、应用程序代码?我认为这很麻烦,而且不一定有效。

我最好使用。net 4 MachineKey类做加密/解密?

我希望c#代码级的解决方案是合适的。目前,我无法理解列级SQL Server加密,但如果你告诉我这是"正确的方法",我会再打开书。

对称密钥与ASP.. NET存储在web.config中

依我之见,最好的方法是在SQL Server中使用列级加密。它对您是透明的,并且将提供您正在寻找的安全级别。