了解计算机级别和用户级别的 RSA 密钥容器

更新:2007 年 11 月

RsaProtectedConfigurationProvider 类可以使用计算机级别或用户级别的 RSA 密钥容器。Microsoft Windows 为所有用户提供计算机级别的密钥容器,而用户级别的密钥容器只能供创建(或导入)了该密钥容器的用户使用。

比较计算机级别的 RSA 密钥容器和用户级别的 RSA 密钥容器

用户级别的 RSA 密钥容器存储在特定用户的 Windows 用户配置文件中,并且可以用于加密和解密在该特定用户标识下运行的应用程序的信息。如果希望确保在移除 Windows 用户配置文件时同时移除 RSA 密钥信息,则用户级别的 RSA 密钥容器非常有用。但是,由于登录时必须使用特定的用户帐户(该帐户将利用用户级别的 RSA 密钥容器来加密或解密受保护的配置节),因此它们使用起来不太方便。

默认情况下,计算机级别的 RSA 密钥容器对于所有可以登录到计算机的用户都可用,而且由于使用管理员帐户登录时可以使用这些密钥容器加密或解密受保护的配置节,因此它们是最有用的。计算机级别的 RSA 密钥容器可以用于为单个应用程序、一台服务器上的所有应用程序或者服务器上在同一用户标识下运行的一组应用程序提供信息保护。计算机级别的 RSA 密钥容器对所有用户都可用,不过也可以使用 NTFS 访问控制列表 (ACL) 保护这些密钥容器,以便只有所需的用户才能访问它们。

f5cs0acs.alert_note(zh-cn,VS.90).gif说明:

建议只在使用 NTFS 格式化的文件系统上使用受保护的配置来保护敏感信息,这样就可以使用 ACL 限制对加密密钥信息的访问权限。

由于使用用户级别的 RSA 密钥容器没有什么益处,因此建议在使用 RsaProtectedConfigurationProvider 提供程序保护配置节时,应使用计算机级别的 RSA 密钥容器。当您创建 RSA 密钥容器来保护一个或多个应用程序的配置信息时,建议您使用 Aspnet_regiis.exe 工具通过 -pa 选项(为特定标识添加对密钥的访问权限)和 -pr 选项(移除对密钥的访问权限)限制对计算机级别的 RSA 密钥容器的访问权限。有关如何设置或确定 ASP.NET 应用程序标识的更多信息,请参见 ASP.NET 模拟。有关授予对 RSA 密钥容器的读访问权限的更多信息,请参见 导入和导出受保护的配置 RSA 密钥容器

为 Aspnet_regiis.exe 工具标识计算机级别和用户级别的 RSA 密钥容器

当使用 Aspnet_regiis.exe 工具创建、导出、导入或删除 RSA 密钥容器时,必须指定该 RSA 密钥容器属于计算机级别还是用户级别。可使用 -pku 选项将 RSA 密钥容器标识为用户级别的密钥容器;否则,该 RSA 密钥容器将被视为计算机级别的容器。

请参见

任务

演练:创建和导出 RSA 密钥容器

其他资源

使用受保护的配置加密配置信息