数字证书规范
前使用最广泛的标准为ITU和ISO联合制定的X.509的 v3版本规范 (RFC5280), 其中定义了如下证书信息域:
- 版本号(Version Number):规范的版本号,目前为版本3,值为0x2;
- 序列号(Serial Number):由CA维护的为它所发的每个证书分配的一的列号,用来追踪和撤销证书。只要拥有签发者信息和序列号,就可以唯一标识一个证书,最大不能过20个字节;
- 签名算法(Signature Algorithm):数字签名所采用的算法,如:
sha256-with-RSA-Encryption
ccdsa-with-SHA2S6;- 颁发者(Issuer):发证书单位的标识信息,如 ” C=CN,ST=Beijing, L=Beijing, O=org.example.com,CN=ca.org。example.com ”;
- 有效期(Validity): 证书的有效期很,包括起止时间。
- **主体(Subject) **: 证书拥有者的标识信息(Distinguished Name),如:" C=CN,ST=Beijing, L=Beijing, CN=person.org.example.com”;
- 主体的公钥信息(SubJect Public Key Info):所保护的公钥相关的信息:
公钥算法 (Public Key Algorithm)公钥采用的算法;
主体公钥(Subject Unique Identifier):公钥的内容。- 颁发者唯一号(Issuer Unique Identifier):代表颁发者的唯一信息,仅2、3版本支持,可选;
- 主体唯一号(Subject Unique Identifier):代表拥有证书实体的唯一信息,仅2,3版本支持,可选:
- 扩展(Extensions,可选): 可选的一些扩展。中可能包括:
Subject Key Identifier:实体的秘钥标识符,区分实体的多对秘钥;
Basic Constraints:一指明是否属于CA;
Authority Key Identifier:证书颁发者的公钥标识符;
CRL Distribution Points: 撤销文件的颁发地址;
Key Usage:证书的用途或功能信息。
此外,证书的颁发者还需要对证书内容利用自己的私钥添加签名, 以防止别人对证书的内容进行篡改。