本页
![]() | 概要 | ||||
![]() | Exchange 2000 密钥对系统 | ||||
![]() | 密钥类型及其使用 | ||||
![]() | 证书 | ||||
![]() | 数字签名 | ||||
![]() | 邮件加密和解密 | ||||
![]() | 加密 | ||||
![]() | 解密 | ||||
![]() | 邮件签名和验证 | ||||
![]() | 给邮件签名 | ||||
![]() | 验证签名 | ||||
![]() | KMS 管理 — 注册用户 | ||||
![]() | KMS 管理 — 吊销证书 | ||||
![]() | 恢复密钥 | ||||
![]() | 从其他 KMS 服务器导入用户 | ||||
![]() | 用户丢失其密钥 | ||||
![]() | 备份和还原 KMS 数据库 | ||||
![]() | 还原证书颁发机构 | ||||
![]() | 还原 KMS 数据库 | ||||
![]() | 修复和检查数据库完整性 | ||||
![]() | 这篇文章中的信息适用于: | ||||
概要
本信息性文章介绍了 Exchange 2000 高级安全性中的密钥使用,以及关于密钥管理服务器的一些相关概念。
每一个高级安全用户至少有两个密钥对;一个密钥对用于邮件的加密,它是在注册期间由密钥管理服务器 (KMS) 生成的;另一个密钥对用于数字签名,它是由用户的邮件客户端(如 Microsoft Outlook 或其他遵从 S/MIME 标准的电子邮件客户端)生成的。
注意 如果在您的组织中使用由 KMS 签发的 X.509v1 证书,就会另外再创建一个用于数字签名的密钥对。一个签名密钥对用于 X.509v1 证书,另一个签名密钥对用于 X.509v3 证书。
KMS 服务器的加密服务提供程序 (CSP) 生成了用户的加密密钥对,然后 KMS 从 CA 申请一份证书。用户的专用加密密钥然后就存储到用户的 KMS 上一个加密的数据库中。这样,KMS 管理员就能够访问这些密钥,以便执行系统范围的密钥恢复、密钥和证书吊销,以及其他一些旨在保护组织中加密数据的密钥管理任务。
用户的密钥对中的其中一个密钥是公钥,作为该用户对象的一个属性存储在 Active Directory 中,可供任何人访问。另一个密钥是私钥,它保存在客户端计算机上的一个安全位置,只有用户本人可以访问它,这样就维护了数字签名的不可否认功能。这些密钥由创建密钥的证书绑定到用户。
注意 用户的专用数字签名密钥的存储方式如下:
对于每一个启用了高级安全性的用户,均已创建了两个主要的 X.509 证书。一个证书用于存储公用加密密钥信息,另一个用于存储公用签名密钥信息。
当将数字签名添加到邮件时,将使用邮件内容来计算出一个标识发件人的哈希值并提供一个数字指纹。邮件摘要算法、邮件内容和发件人的私钥将用来生成哈希值。
为验证发件人的身份,收件人通过使用发件人的公钥来解密此原始哈希值,而此公钥可从受信目录(如 Active Directory)中获取。邮件被解密,然后用接收到的文本计算出一个新的哈希值,并将它与原始哈希值进行比较。如果它们相配,就确认了内容的完整性和发件人的身份。
注意 有时,发件人的公用签名密钥也有可能随签名的邮件一起发送。
注意 每一例注册只需要提供一次管理员密码。默认情况下,密码是 password。
在注册用户时,KMS 代表他们从证书服务申请证书。这些证书接着用于为每个用户创建两个密钥对。在客户端创建的一个密钥对用于数字签名,另一个在 KMS 上创建的密钥对用于电子邮件加密。当您准备好在 KMS 中注册用户时,您可以选择逐个注册或成批注册。不管用哪一种方法,您注册的用户都将接收到一个注册令牌。您可以使用Exchange 系统管理器或使用“Active Directory 用户和计算机”管理单元来注册用户。
要在 Exchange 系统管理器中逐个注册用户,请按以下步骤操作:
要在 Exchange 系统管理器中注册用户组,请:
注意 也可以通过“Active Directory 用户和计算机”在“高级安全性”中逐个注册用户。在“Active Directory 用户和计算机”中,对于每个注册的用户都会显示更多细节,包括各用户的安全状态、其密钥管理服务器以及证书激活和过期日期。
注意 无论使用何种方法吊销证书,您都要键入 KMS 管理员密码。默认情况下,管理员密码是 password。
在密钥恢复过程中,与注册过程一样,将发送给用户一个令牌。发送恢复令牌的方式与发送注册令牌时选择的方式相同,既可以通过管理员,也可以通过电子邮件。在 Outlook 中输入此恢复令牌之后,就会为用户创建一个新的签名密钥对。另外,KMS 将返回用户的所有旧密钥。对于导入的用户,会生成一个新的加密密钥对。
您可以从 Exchange 系统管理器或从“Active Directory 用户和计算机”中恢复用户密钥。要在 Exchange 系统管理器中恢复密钥,请按照下列步骤操作:
要完成还原,您必须完成下列操作步骤:
Exchange 2000 密钥对系统
Exchange 2000 中的高级安全性使用了双密钥对系统,意味着为每个注册的用户创建两个密钥对。一个密钥对用于创建数字签名,另一个密钥对用于加密邮件。每一个高级安全用户至少有两个密钥对;一个密钥对用于邮件的加密,它是在注册期间由密钥管理服务器 (KMS) 生成的;另一个密钥对用于数字签名,它是由用户的邮件客户端(如 Microsoft Outlook 或其他遵从 S/MIME 标准的电子邮件客户端)生成的。
注意 如果在您的组织中使用由 KMS 签发的 X.509v1 证书,就会另外再创建一个用于数字签名的密钥对。一个签名密钥对用于 X.509v1 证书,另一个签名密钥对用于 X.509v3 证书。
KMS 服务器的加密服务提供程序 (CSP) 生成了用户的加密密钥对,然后 KMS 从 CA 申请一份证书。用户的专用加密密钥然后就存储到用户的 KMS 上一个加密的数据库中。这样,KMS 管理员就能够访问这些密钥,以便执行系统范围的密钥恢复、密钥和证书吊销,以及其他一些旨在保护组织中加密数据的密钥管理任务。
用户的密钥对中的其中一个密钥是公钥,作为该用户对象的一个属性存储在 Active Directory 中,可供任何人访问。另一个密钥是私钥,它保存在客户端计算机上的一个安全位置,只有用户本人可以访问它,这样就维护了数字签名的不可否认功能。这些密钥由创建密钥的证书绑定到用户。
注意 用户的专用数字签名密钥的存储方式如下:
| • | Microsoft Outlook 97 及更旧的客户端将私钥存储在一个加密的 .epf 文件中。 |
| • | Microsoft Outlook 98 密钥存储在一个由 Microsoft Internet Explorer 保护的存储区中。 |
| • | Microsoft Outlook 2000 私钥存储在注册表中。 |
密钥类型及其使用
Exchange 2000 高级安全性支持四种不同类型的密钥。它们是:| • | 公用加密密钥 公用加密密钥用于加密由用户发送的邮件。在公钥加密中,发件人从 Active Directory 检索收件人的公钥并使用它来加密邮件。 |
| • | 专用加密密钥 专用加密密钥用于解密用户接收到的加密邮件。只有收件人对应的私钥才可以解密该邮件,所以其他用户不能够读取其内容。 |
| • | 公用签名密钥 当用户收到已签名的邮件时,将使用公用签名密钥确认发件人身份。收件人使用发件人的公钥确认邮件的来源。只有正确的公钥才能与专用签名密钥相配,所以收件人可以确信发件人身份的真实性。 |
| • | 专用签名密钥 专用签名密钥用于给由用户发送的邮件加数字签名。数字签名包含有基于邮件内容的信息,因此验证签名也就意味着验证了数据的完整性。有数字签名的邮件在传输过程中若有篡改,则必然会被发现。 |
证书
证书是安全保护机制中的一种身份验证方法。证书是由证书颁发机构 (CA) 为每个启用了高级安全性的用户创建的,所以未启用高级安全性的用户将没有证书。证书主要是用来存储用户的公钥。对于每一个启用了高级安全性的用户,均已创建了两个主要的 X.509 证书。一个证书用于存储公用加密密钥信息,另一个用于存储公用签名密钥信息。
数字签名
数字签名使收件人能够确定发件人身份的真实性,并能够使收件人验证邮件内容在传输期间没有经过修改。当将数字签名添加到邮件时,将使用邮件内容来计算出一个标识发件人的哈希值并提供一个数字指纹。邮件摘要算法、邮件内容和发件人的私钥将用来生成哈希值。
为验证发件人的身份,收件人通过使用发件人的公钥来解密此原始哈希值,而此公钥可从受信目录(如 Active Directory)中获取。邮件被解密,然后用接收到的文本计算出一个新的哈希值,并将它与原始哈希值进行比较。如果它们相配,就确认了内容的完整性和发件人的身份。
注意 有时,发件人的公用签名密钥也有可能随签名的邮件一起发送。
邮件加密和解密
邮件加密和解密是一个对用户“透明”的过程。除了查询目录以获取收件人公钥外,此过程执行期间在客户端和其他网络服务之间没有任何交互。每个过程的详细情况如下。加密
邮件加密使发件人能够加密邮件正文和任何可能带有的附件。要发送一封加密的邮件,发件人和收件人都必须启用了高级安全性。当用户发送一封加密的邮件时,Exchange 客户端使用由预期收件人的公钥加密的会话密钥来加密此邮件。要创建会话密钥(一种一次性对称密钥),发件人必须具有访问收件人公钥的权限。在多数情况下,用于加密邮件的公钥是由发件人的电子邮件客户端(如 Outlook)从 Exchange 服务器获得的。当用户撰写一封定址到另一个启用了高级安全性的 Exchange 用户的加密邮件时,将发生下面的情况:| 1. | 发件人从“全球通讯簿”中选择收件人。 |
| 2. | Outlook 从 Exchange 服务器上请求收件人的公钥。 |
| 3. | 如果服务器在运行 Exchange Server 5.5,那么邮箱的、自定义收件人的或公用文件夹的 X509-Cert 属性内容将返回到 Outlook。 |
| 4. | 如果服务器在运行 Exchange 2000 Server,那么 Active Directory 中邮箱的或支持邮件的对象的 userCertificate 属性将返回到 Outlook。 |
| 5. | 使用收件人的公钥加密一个一次性对称会话密钥。 |
| 6. | 使用会话密钥加密邮件。 |
| 7. | 邮件发送到收件人。 |
解密
邮件解密使得发件人能够解密邮件正文和任何可能带有的附件。为解密邮件,Outlook 使用收件人的私钥解密对称密钥,后者接着用来解密邮件。因为邮件的收件人是唯一能够访问私钥的人,所以邮件是安全的,除预期的收件人外不允许任何人读取邮件内容。邮件签名和验证
给邮件签名
当用户给邮件签名时,客户端就生成了一个数字签名,它是该邮件的校验和。接着将使用发件人的专用签名密钥对该数字签名进行加密。最后,原始明文邮件、数字签名和包含有发件人公用签名密钥的发件人签名证书都发送给收件人。验证签名
为验证签名,收件人对照证书吊销列表 (CRL) 来检查发件人的签名证书。如果该证书在列表上,将警告收件人说发件人的证书已被吊销。如果发件人的证书有效,则用随邮件一起发送来的发件人公用签名密钥对该加密的数字签名进行解密。最后,客户端对明文邮件执行校验和,然后将此校验和与解密的数字签名进行比较。两个值必须相符。如果这两个值不符,就会警告收件人说该邮件在最初签名后已被改变。KMS 管理 — 注册用户
Active Directory 用来在高级安全设置中逐个注册用户,或按组、Exchange 管理组或服务器来注册用户。注意 每一例注册只需要提供一次管理员密码。默认情况下,密码是 password。
在注册用户时,KMS 代表他们从证书服务申请证书。这些证书接着用于为每个用户创建两个密钥对。在客户端创建的一个密钥对用于数字签名,另一个在 KMS 上创建的密钥对用于电子邮件加密。当您准备好在 KMS 中注册用户时,您可以选择逐个注册或成批注册。不管用哪一种方法,您注册的用户都将接收到一个注册令牌。您可以使用Exchange 系统管理器或使用“Active Directory 用户和计算机”管理单元来注册用户。
要在 Exchange 系统管理器中逐个注册用户,请按以下步骤操作:
| 1. | 在 Exchange 系统管理器中,单击“高级安全性”。 |
| 2. | 在右窗格中,右键单击“密钥管理器”,指向“所有任务”,然后单击“注册用户”。 |
| 3. | 在“Enroll Users Selection”(注册用户选择)框中,单击“Display an alphabetical list of user names from the global address book”(从全球通讯薄显示按字母顺序排列的用户名列表),然后单击“确定”。 |
| 4. | 您的组织的通讯薄就会显示在“注册用户”框中。 |
| 5. | 单击一个或多个用户,然后单击“添加”以将他们添加到“已选定”列中。 |
| 6. | 如要向他们发送一个令牌,请单击“注册”。 注意 目前已注册的用户在 KMS 中都可以看到,但无法选择他们。 |
| 1. | 在 Exchange 系统管理器中,单击“高级安全性”。 |
| 2. | 在右窗格中,右键单击“密钥管理器”,指向“所有任务”,然后单击“注册用户”。 |
| 3. | 在“Enroll Users Selection”(注册用户选择)框中,单击“Display mailbox stores, Exchange servers, and administrative groups of eligible users”(显示合格用户的邮箱存储、Exchange 服务器和管理组),然后单击“确定”。 |
| 4. | 您的组织的管理组将出现在“注册用户”框中。 |
| 5. | 展开适当的管理组,并继续展开直到可以单击希望注册的节点。 |
| 6. | 当单击“注册”时,此节点中的所有用户都将被选中,而且其所有子节点都将收到一个令牌。 |
KMS 管理 — 吊销证书
如果一个用户的私钥泄密,必须由 KMS 管理员将其吊销。要对某一特定用户禁用“高级安全性”,可吊销此用户的证书。您可以从 Exchange 系统管理器或从“Active Directory 用户和计算机”吊销用户证书。在 Exchange 系统管理器中,单击“高级安全性”,右键单击“密钥管理器”,指向“所有任务”,然后单击“吊销证书”。在“Active Directory 用户和计算机”中,查看此用户属性,单击“Exchange 功能”选项卡、查看“电子邮件安全”属性,然后单击“吊销”。注意 无论使用何种方法吊销证书,您都要键入 KMS 管理员密码。默认情况下,管理员密码是 password。
恢复密钥
有两种情况需要恢复密钥:从另一个 KMS 导入用户时和用户丢失密钥时。从其他 KMS 服务器导入用户
当“高级安全性”用户从其原始 KMS 中导出时,其证书将被吊销。当他们迁移到新的 KMS 之后,可以继续使用其旧密钥读取旧的加密电子邮件。不过,用户的旧密钥现在绑定到一个已发布到您的组织的 CRL 的证书。因此,用户创建新的加密邮件时需要新的证书和相应的密钥。为确保用户收到有效的密钥,导出和导入过程的最后要执行密钥恢复这一步骤。用户丢失其密钥
用户在忘记密码或计算机硬盘出现故障时,都有可能丢失其现有的密钥。密钥恢复可防止用户丢失其加密的电子邮件,并可以恢复可能很重要的信息。在密钥恢复过程中,与注册过程一样,将发送给用户一个令牌。发送恢复令牌的方式与发送注册令牌时选择的方式相同,既可以通过管理员,也可以通过电子邮件。在 Outlook 中输入此恢复令牌之后,就会为用户创建一个新的签名密钥对。另外,KMS 将返回用户的所有旧密钥。对于导入的用户,会生成一个新的加密密钥对。
您可以从 Exchange 系统管理器或从“Active Directory 用户和计算机”中恢复用户密钥。要在 Exchange 系统管理器中恢复密钥,请按照下列步骤操作:
| 1. | 在 Exchange 系统管理器中,单击“高级安全性”。 |
| 2. | 右键单击“密钥管理器”,指向“所有任务”,然后单击“恢复密钥”。 |
备份和还原 KMS 数据库
要定期保存您的 KMS 数据库,请使用“Windows 2000 备份”。让您的 KMS 数据库保持定期备份将使您能够用最少的停机时间还原您的组织的证书和密钥。假如您的组织中的所有服务器都被破坏,那么您将需要以下所有的备份和密码来还原 KMS 功能:| • | CA 证书 .P12 文件备份和密码。 |
| • | 包含 KMS 管理员帐户的 Active Directory 备份。 |
| • | KMS 数据库备份和数据库启动密码。 |
| • | KMS 管理员密码。 |
| • | 还原 Active Directory。 |
| • | 还原证书颁发机构服务器。 |
| • | 还原 KMS 数据库。 |
还原证书颁发机构
要还原一个 CA,需要两部分信息:CA 证书和原始的 CA 服务器名称,因为必须使用与原始 CA 服务器相同的名称将 CA 证书还原到一个服务器。还原 KMS 数据库
要还原 KMS 数据库,请按下列步骤操作:| 1. | 从 Exchange 2000 Server 光盘安装“密钥管理服务”。 注意 没有必要将 KMS 重新安装到作为备份的另一个同名 Exchange 服务器上,但是您可能希望这样做。 |
| 2. | 如果选择将 KMS 启动密码放入 Kmserver.pwd 文件中,请将该文件移动到一个安全的位置。 |
| 3. | 停止 KMS 服务,然后将 Exchsrvr\Kmsdata 文件夹中的所有文件移动到一个安全的位置。 |
| 4. | 如果以前的 Kmserver.pwd 文件存在,请将其复制到适当的位置。 |
| 5. | 启动 KMS 服务。 |
| 6. | 如果以前没有使用 Kmserver.pwd 文件,则您必须在服务的启动参数中键入启动密码。 注意 如果在没有数据库的情况下启动 KMS,就会以半运行模式启动此服务,这样您就能够还原一个备份数据库。 |
| 7. | 使用“Windows 2000 备份”还原以前的 KMS 数据库。 |
| 8. | 停止,然后重新启动 KMS 服务。 |
修复和检查数据库完整性
Microsoft Exchange 密钥管理服务器服务包括 Kmserver.exe 文件。在停止 Exchange 密钥管理服务器服务之后,您可以使用多种命令行参数来运行 Kmserver.exe,执行诸如修复数据库文件之类的任务。 有关相关主题的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:232609 (http://support.microsoft.com/kb/232609/EN-US/) XADM:How to Verify the Integrity of a Key Management Server Database
关键字: | kbhowtomaster kbinfo KB812594 |

