X.509是国际标准化组织CCITT建议作为X.500目录检索的一部分提供安全目录检索服务。一份X.509证书是一些标准字段的集合,这些字段包含有关用户或设备及其相应公钥的信息一种非常通用的证书格式,所有的证书都符合X.509 国际标准。目前X.509有不同的版本,例如 X.509 V2和x.509 v3都是目前比较新的版本,但是都在原有版本基础上进行功能的扩充,其中每一版本必须包含下列信息:
(1) 用来区分X.509的不同版本号既版本号
(2) 由CA给予每一个证书的分配的编号即序列号;
(3) 用于产生证书所用的方法以及一切参数即签名算法
(4) CA的x.500名字即发出该证书的认证机构
(5) 证书有效的时间包括两个日期,在所指定的两个时间之 间有效即有效期限
(6) 证书持有人的姓名、服务处所等信息即主题信息
(7) 认证机构的数字签名
(8) 被证明的公钥值,加上使用这个公钥的方法名称即公钥信息
n PKI (Public-Key Infrastructure) 公钥体系基础框架。
n PKIX (Public-Key Infrastructure Using X.509)使用X.509的公钥体系基础框架。
n X.500 由ISO和ITU提出的用于为大型网络提供目录服务的标准体系。
n X.509 为X.500提供验证(Authenticating)体系的标准。
n PKCS(Public Key Cryptography Standards)公钥加密标准,为PKI提供一套完善的标准体系。
n 对于任何基于公钥体系的安全应用,必须确立其PKI。而电子签证机关(CA)是PKI中的一个关键的组成部分,它主要涉及两方面的内容,即公钥证书的发放和公钥证书的有效性证明。在PKIX中,CA遵循 X.509标准规范。
n X.509最早的版本X.509v1是在1988年提出的,到现在已升级到X.509v3,现将其涉及到的主要内容以及与前版本的比较列于下表。
X.509 PKI国际标准更新版本对照表
X.509 PKI 主要特性
X.509 v1 & 2 X.509 v3
证书信息 只有X.500 实体名,包括CA、证主(subject)名,证主公钥及其有效期。 充分扩展,可包含任何信息。
CA 规范 CA体系鼓励带交叉的层状树型结构,无信任限制规范。 CA体系鼓励带交叉的层状树型结构,有信任限制规范。
CA "证主 " 用户 CA、证主、用户在概念上严格区分
CA "证主" 用户信任关系 认为每个用户至少信任一个CA。CA无法操纵与其它CA、证主及用户间的信任关系。 认为每个用户至少信任一个CA。CA可以规范与其它CA及证主间的信任关系。
证书有效性验证方式 离线方式,通过检查证书有效期及是否出现在最近的CRL(证书吊销表)上。 支持离线与在线方式。
证书吊销方法 简单CRL。 复杂的CRL,通过功能扩展支持在线方式。
证书形式特点 身份形式的证书。 主要还是身份形式的证书,但支持信任委托形式的证书。
匿名性 匿名程度依赖于 X.500 条目的匿名程度。 扩展功能支持彻底的匿名服务。
X.509证书格式
X.509是另一种非常通用的证书格式。所有的证书都符合ITU-T X.509国际标准;因此(理论上)为一种应用创建的证书可以用于任何其他符合X.509标准的应用。但实际上,不同的公司对X.509证书进行了不同的扩展,不是所有的证书都彼此兼容。在一份证书中,必须证明公钥及其所有者的姓名是一致的。对PGP证书来说,任何人都可以扮演认证者的角色。对X.509证书来说,认证者总是 CA或由CA指定的人(其实PGP证书也完全支持使用CA来确认证书的体系结构),一份X.509证书是一些标准字段的集合,这些字段包含有关用户或设备及其相应公钥的信息。X.509标准定义了证书中应该包含哪些信息,并描述了这些信息是如何编码的(即数据格式),所有的X.509证书包含以下数据:
<>X.509版本号:指出该证书使用了哪种版本的X.509标准,版本号会影响证书中的一些特定信息。目前的版本是3。
<>证书持有人的公钥:包括证书持有人的公钥,算法(指明密钥属于哪种密码系统)的标示符和其他相关的密钥参数。
<>证书的序列号:创建证书的实体(组织或个人)有责任为该证书指定一个独一无二的序列号,以区别于该实体发布的其他证书。序列号信息有许多用途;比如当一份证书被回收以后,它的序列号就被放入证书回收列表(CRL)之中。
<>证书持有人唯一的标示符:(或称DN-distinguished name)这个名字在 Internet上应该是唯一的。DN由许多部分组成,看起来象这样:
CN=Bob Allen, OU=Total Network Security Division,
O=Network Associates, Inc., C=US
这些信息指出该科目的通用名,组织单位,组织和国家
<>证书的有效期:证书起始日期和时间以及终止日期和时间;指明证书何时失效。
<>证书发布者的唯一名字:这是签发该证书的实体的唯一名字。通常是CA。.使用该证书意味着信任签发证书的实体。(注意:在某些情况下,比如根或顶级CA证书,发布者自己签发证书)
<>发布者的数字签名:这是使用发布者私钥生成的签名。
<>签名算法的标示符:指明CA签署证书所使用的算法。
X.509证书和PGP证书之间有许多不同,最明显的如下所述:
<>用户可以创建自己的PGP证书,但是必须向CA请求才能得到一份X.509证书。
<>X.509证书天生只支持密钥拥有者的一个名字。
<>X.509证书只支持证明密钥合法性的一个数字签名。
要获得一份X.509证书,必须请求CA发给你证书。用户提供自己的公钥,证明自己拥有相应的私钥,并提供有关自己的某些特定信息。然后在这些信息上数字签名,并将整个数据包(称为证书请求)发给CA。CA做一些努力来验证用户提供的信息是正确的,然后就生成证书并返回给用户。
一份X.509证书看起来很象一份带公钥的标准书面证书(类似于基础急救班的结业证书)。证书中包含名字和一些有关的个人信息,加上颁发证书人的签名。
当前X.509证书最广泛的使用大概是在Web浏览器之中。