0

我想在将数据保存到数据库之前对其进行加密。对数据的访问由应用程序控制。所以任何具有管理员角色的人都应该能够看到数据。我希望能够保护用于加密/解密数据的加密密钥。我不想使用 DPAPI 机器密钥,因为服务器托管多个应用程序。

我想知道是否可以创建一个服务帐户并使用该帐户的登录凭据来加密 web.config 文件中的密钥。

谢谢

4

1 回答 1

2

好的,答案是肯定的,也不是取决于你的堆栈。

如果您托管在 IIS 7 上,那么您应该能够只使用专用应用程序池并使用新的 LoadUserProfile 功能 - 这将允许 DPAPI 使用用户存储。

IIS 6 没有该功能,因此严格的答案是否定的 - 但 Microsoft 提供了一个很好的示例,说明如何获得类似的最终结果。当 Windows 服务控制管理器加载用户配置文件时,他们使用服务进行加密/解密(从而允许 DPAPI 工作)

这是一个相当长的阅读,但应该做的伎俩:

构建安全的 ASP.NET 应用程序:身份验证、授权和安全通信

于 2009-09-26T23:15:27.830 回答