计算机密钥有助于保护 Forms 身份验证 ">Cookie 数据和页级视图状态数据。
它们还用于验证进程外会话状态标识。ASP.NET 使用以下类型的计算机密钥:
- 验证密钥,用于计算消息验证代码 (MAC) 以确认数据的完整性。此密钥附加到 Forms 身份验证 Cookie 或特定页的视图状态。
- 解密密钥,用于对 Forms 身份验证票证和视图状态进行加密和解密。
(一)生成计算机密钥
1. 打开 IIS 管理器,然后导航至要管理的级别。
2. 在"功能视图"中,右键单击"计算机密钥",然后单击"打开功能"。
3. 在"计算机密钥"页上,从"加密方法"下拉列表中选择一种加密方法。默认加密方法为"SHA1"。
4. 从"解密方法"下拉列表中选择一种解密方法。默认解密方法为"自动"。
5. 此外,也可以配置验证密钥和解密密钥的设置。
6. 在"操作"窗格中,单击"生成密钥",然后单击"应用"。
(二)选择计算机密钥加密方法
通过选择良好的计算机密钥加密方法,可以增强你创建的计算机密钥的安全性。
有下列加密方法可供使用:
- 高级加密标准 (AES) 实现起来相对容易一些,并且需要很少的内存。AES 的密钥大小为 128、192 或 256 位。此方法使用相同的私钥对数据进行加密和解密,而公钥方法必须使用成对的密钥。
- Message Digest 5 (MD5) 用于对应用程序(例如邮件)进行数字签名。此方法将产生 128 位的哈希,这是一种压缩格式的原始数据。MD5 可以提供一定的保护,以防止遭受计算机病毒和某些程序(看上去像是无害的应用程序,而实际上具有破坏性)的攻击。这些程序称作特洛伊木马。
- 安全哈希算法 (SHA1) 是默认的加密方法,它被认为比 MD5 更加安全,因为它产生 160 位的消息摘要。应该尽可能使用 SHA1 加密。
- 三重数据加密标准 (TripleDES) 与数据加密标准 (DES) 稍有不同。它的速度比普通 DES 慢三倍,但是它更加安全,因为它的密钥大小为 192 位。如果性能不是主要考虑的问题,请考虑使用 TripleDES。
具体实现步骤如下:
1. 打开 IIS 管理器,然后导航至要管理的级别。
2. 在"功能视图"中,双击"计算机密钥"。
3. 在"计算机密钥"页上,从"加密方法"下拉列表中选择一种加密方法。默认加密方法为"SHA1"。
4. 在"操作"窗格中,单击"应用"。