密钥用法扩展和扩展密钥用法

密钥用法扩展定义证书中包含的公用密钥的用途。您可以使用它们根据需要限制公用密钥可执行的操作。例如,如果您拥有一个仅用于签名或验证签名的密钥,应启用数字签名和/或认可扩展。或者,如果密钥仅用于密钥管理,则应启用密钥加密。

密钥用法扩展

下表描述了可用于使用 CA 进程创建的证书的密钥用法扩展。

注: 对于所有的因特网证书,数字签名和数据加密密钥用法扩展都是缺省启用的。
1. 密钥用法扩展

密钥用法扩展

描述

数字签名

在公用密钥与数字签名机制协同使用时需要用以支持除认可、证书签名或 CRL 签名以外的安全服务。数字签名常用于实体认证和数据源的完整性认证。

认可

在使用公用密钥验证用于提供认可服务的数字签名时使用。认可服务可以防止签名实体错误地拒绝某些操作(将证书或 CRL 签名排除在外)。

密钥加密

当证书与加密密钥的协议协同使用时需要用到。S/MIME 封装是示例之一,其中的快速(对称)密钥使用证书中的公用密钥进行加密。SSL 协议也可以执行密钥加密。

数据加密

当公用密钥用于加密用户数据而不是编码密钥时使用。

密钥协议

当公用密钥的发送者和接收者需要在不使用加密的情况下获得密钥时使用。这样,此密钥就可以用于加密发送者和接收者之间的邮件。密钥协议通常与 Diffie-Hellman 加密法协同使用。

证书签名

当使用主题公用密钥验证证书上的签名时需要用到。此扩展只可用于 CA 证书。

CRL 签名

当主题公用密钥用于验证撤销信息(如 CRL)上的签名时需要用到。

仅加密

只有在另外还启用了密钥协议时才使用。此扩展可以使公用密钥仅用于在执行密钥协议时加密数据。

仅解密

只有在另外还启用了密钥协议时才使用。此扩展可以使公用密钥仅用于在执行密钥协议时对数据进行解密。

扩展密钥用法

扩展密钥用法可以进一步调整密钥用法扩展。扩展密钥可以是关键的,也可是非关键的。如果扩展是关键扩展,那么证书必须仅用于指示的一个或多个用途。如果证书用于其他用途,则违反了 CA 的策略。

如果扩展是非关键的,它会指明密钥预定的用途,且可以用于查找拥有多个密钥/证书的实体的正确密钥/证书。该扩展只是一个信息字段,并不表示 CA 限制将密钥用于预定的用途。但是,使用证书的应用程序可能要求指明特定的用途,以使证书可接受。

如果某个证书同时包含关键密钥用法字段和关键扩展密钥用法字段,那么必须分别处理这两个字段,并且该证书只能用于与这两个字段一致的用途。如果没有与这两个字段一致的用途,那么不能将该证书用于任何用途。

2. 扩展密钥用法

扩展密钥

对下列密钥用法扩展启用

TLS Web 服务器认证

数字签名、密钥加密或密钥协议

TLS Web 客户机认证

数字签名和/或密钥协议

签名(可下载)可执行代码

数字签名

电子邮件保护

数字签名、认可和/或密钥加密或密钥协议

IPSEC 最终系统(主机或路由器)

数字签名和/或密钥加密或密钥协议

IPSEC 通道

数字签名和/或密钥加密或密钥协议

IPSEC 用户

数字签名和/或密钥加密或密钥协议

盖时间戳

数字签名、认可。

3. 需要的密钥用法扩展示例

应用程序

需要的密钥用法扩展

SSL 客户机

数字签名

SSL 服务器

密钥加密

S/MIME 签名

数字签名

S/MIME 加密

密钥加密

证书签名

证书签名

对象签名

数字签名