📄 rfc2459.txt
字号:
4.1.2.5有效性
证书有效期是时间间隔,在这期间CA保证它将保持关于证书的状况的信息。把字段描
述为一连串(SEQUENCE)的两个日期:日期证书有效期开始(notBefore)和日期证书有
效期结束(notAfter)。notBefore和notAfter可以作为UTCTime或者GeneralizedTime类型编
码。
在本文中CAs必须(MUST)在2049年以前证书有效日期总是作为UTCTime类型编
码;在2050年或者以后证书有效性日期必须(MUST)作为GeneralizedTime类型编码。
4.1.2.5.1 UTCTime
世界时间(universal time)类型,UTCTime是作为国际应用的一标准ASN.1类型,因
为本地时间不适合国际应用。UTCTime通过两个低次序数字指定年以及指定精确(性)到
一分钟或者一秒钟。UTCTime包含(Zulu或者格林威治标准时间)Z或者一时间微分。
在本文描述中,UTCTime值必须(MUST)是格林威治标准时间表示(Zulu)并且必须
(MUST)包含秒(即,时间(格式)是YYMMDDHHMMSSZ),甚至秒的数目等于零。
系统必须(MUST)如下解释年字段(YY):
当YY大于等于50,年将被认为是19YY;和
当YY不到50,年将被认为是20YY。
4.1.2.5.2 GeneralizedTime
普遍时间类型,GeneralizedTime为时间的可变精确性的标准ASN.1类型。随意地,
GeneralizedTime字段能包含一在本地和格林威治标准时间之间时间微分的代表。
为了本文的目标,GeneralizedTime值必须(MUST)是格林威治标准时间表示(Zulu)
并且必须(MUST)包含秒(即,时间格式是YYYYMMDDHHMMSSZ),甚至其秒的数目
等于零。GeneralizedTime值必须不(MUST NOT)包含小数部分秒(fractional seconds)。
4.1.2.6主题
主题字段标识符与存储在主题公开密钥字段中相关联的密钥实体。主题名字和/或在
subjectAltName扩展中被附带。如果主题是一CA(例如,如同在4.2.1.10讨论那样,基本
约束扩展存在和cA的值是真的(TRUE)),那么主题字段必须(MUST)是随着一非空的
可识别的名字存在,在所有的主题CA签发的证书和发行者字段(见4.1.2.4)的目录相匹配。
如果主题命名信息仅存在subjectAltName扩展(例如一把密钥局限于一电子邮件地址或者
URI)中,那么主题名字必须(MUST)是一空的序列并且subjectAltName扩展一定是关键
的。
在它非空的地方,主题字段必须(MUST)含有一X.500可识别名字 (DN)。DN必须
(MUST)对于每一主题实体是唯一的通过被签发者名字字段定义的一CA证明。一CA可
以用同样的DN向同样的主题实体签发多个证书。
主题名字字段定义为X.501类型名字。工具(应用)要求这字段是那些签发者字段定义
的 (见4.1.2.4)。当将类型DirectoryString的属性值编码的时候,关于签发者字段的编码规
则必须(MUST)被执行。本文说明的工具一定是有准备的接收包含为签发者字段推荐的属
性类型的主题名字。本文说明的工具应该(SHOULD)是有准备的接收含有为签发人字段
建议属性类型的主题名字。这些属性类型句法和相结合的对象标识符(OIDs)在附录A和
BASN.1模块中被提供。本文说明的工具可以(MAY)使用这些相似规则去处理不熟悉属性
类型(例如,对于名字链条)。这允许工具在不熟悉属性的主题名字中处理证书。
此外,遗留工具存在于一RFC 822名字作为EmailAddress属性被嵌入在可识别的名字
中。作为IA5String类型的EmailAddress属性值允许包含字符'@',其不在PrintableString字
符集中。EmailAddress属性值是不区分大小写的(例如,"fanfeedback@redsox.com"与
FANFEEDBACK@REDSOX.COM是一样的)。
随着电子邮件地址使产生新证书工具必须(MUST)在主题字段可能的选择中使用
rfc822Name (见4.2.1.7)的名字描绘。同时包含在主题中可识别名字的EmailAddress属性
值去支持遗留工具被反对,但是允许(即不禁止)。
4.1.2.7主题公开密钥信息
使用这字段携带公开密钥和密钥使用算法的标识符。算法使用在部分4.1.1.2中指定
AlgorithmIdentifier结构被标识。在部分7.3中指定对象标识符作为将公开密钥材料(公开密
钥和参数)支持的编码算法和方法。
4.1.2.8唯一标识符
这些字段可能仅出现在版本2或者3中(见4.1.2.1)。主题和发行者的唯一标识符存在
于证书中去处理在超出(有效)时间主题和/或发行者名字的再使用的可能性。本文推荐名
字不在不同实体中重用以及Internet证书唯一标识符不被使用。CAs遵从本文不应该
(SHOULD NOT)使用唯一标识符产生证书。遵从本文应用(程序)应该(SHOULD)是
能解析唯一标识符的语法并且作比较。
4.1.2.9扩展
这字段可能如果仅出现在版本3(见4.1.2.1)中。如果存在,这字段是一连串
(SEQUENCE)的一个或多个证书扩展。在Internet PKI中证书扩展的格式和内容将在4.2
定义。
4.2标准证书扩展
在X.509 v3证书扩展定义中提供为用户或者公开密钥和证书管理等级制度相结合的附
加属性的方法。X.509 v3证书格式也允许社区(一个具体应用环境――译者注)定义私有范
围为那些社区携带所特有信息。在一张证书中的每一扩展可以是关键的或者非关键的。如果
遇到一项不能识别的关键扩展,那么应用系统必须(MUST)拒绝接受此证书;但是,如果
不被认出的项是非关键扩展则可以被忽视。下面章节推荐在Internet证书和标准信息以内使
用扩展。然而社区可以选择使用附加扩展(针对具体应用环境的自定义扩展――译者注);
但是,应该谨慎采用在证书中的任何关键扩展,其可以阻碍在一般背景(证书比较普遍的应
用环境――译者注)中的证书应用。
每一项扩展包含一OID和一ASN.1结构。当一扩展出现在一张证书中的时候,OID作
为字段extnID和相应的ASN.1结构按照八位字符(octet string )extnValue的值编码。仅一
特定扩展的事例可以出现在一张特定证书中。例如,一张证书可以含有仅一当局密钥标识符
扩展(见4.2.1.1)。一扩展包含boolean类型关键值,缺省值为FALSE。文本为每一扩展指
定可接受作为关键字段的值。
CAs必须(MUST)支持密钥标识符(见4.2.1.1和4.2.1.2)、基本约束(见4.2.1.10)、
密钥应用(见4.2.1.3,)和证书策略(见4.2.1.5)扩展。如果CA颁发空序列主题证书,CA
必须(MUST)支持可选择的名字扩展 (见4.2.1.7)。支持余下的扩展是可选的。CAs可以
支持在本文说明以内不被识别的扩展标识符;提醒证书发行者把这样的扩展标记关键可以抑
制双方的共同操作。
最低限度,本文的应用必须(MUST)能够识别在本文中必须或者可能的扩展。这些扩
展是:密钥应用(见4.2.1.3)、证书策略(见4.2.1.5)、主题可替换名字(见4.2.1.7)、基本
约束(见4.2.1.10)、名字约束(见4.2.1.11)、策略约束(见4.2.1.12)和密钥应用扩展(见
4.2.1.13)。
此外,本文推荐(RECOMMENDS)支持权威和主题密钥标识符(见4.2.1.1和4.2.1.2)
的应用扩展。
4.2.1标准扩展
这部分介绍在Internet PKI应用中[X.509]定义的标准证书。[X.509] 定义中的每一扩展
和一OID联系起来。这些OIDs 是id-arc的成员,定义如下:
译者注:OID是OBJECT IDENTIFIER(对象标识符)的简称,其是国际性组织定义的全球
标准的对象定义,是一树结构,id-arc是树结构中ISO组织定义的一枝,感兴趣的
读者请阅读相关文档。
id-ce OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) ds(5) 29}
4.2.1.1权威密钥标识符
权威密钥标识符扩展提供一识别出对使用私有密钥在一张证书上签名相对应的公开密
钥的手段。这个扩展用于一个发行者有多个签名密钥(也由于多重同时发生的密钥对或者由
于密钥更换)。标识符可以建立在任一个密钥标识符(在发行者的证书中的主题密钥标识符)
或者有关发行者名字和序列号的基础上。
authorityKeyIdentifier扩展的keyIdentifier字段必须(MUST)是包含在所有的由CAs
遵照便于链条构建所产生的证书内。有一例外:一CA以一张"自我签名"证书的形式分配它
的公开密钥,权威密钥标识符可以被删掉。在这个情况中,主题和权威密钥标识符将是完全
相同的(等价的)。
keyIdentifier字段的值应该(SHOULD)从验证证书签名的公开密钥或者产生唯一值的
方法中得到(keyIdentifier字段的值产生算法――译者注)。两个从公开密钥产生密钥标识符
的通用方法描述在4.2.1.2。一个产生唯一值的通用方法在4.2.1.2中描述。因为一个密钥标
识符还没有先前建立,本文推荐使用这些方法中的一种产生keyIdentifiers。
本文推荐(使用)经过所有的证书用户支持密钥标识符的算法。
这扩展必须不(MUST NOT)要被标记为关键。
id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }
AuthorityKeyIdentifier ::= SEQUENCE {
keyIdentifier [0] KeyIdentifier OPTIONAL,
authorityCertIssuer [1] GeneralNames OPTIONAL,
authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL }
KeyIdentifier ::= OCTET STRING
4.2.1.2主题密钥标识符
主题密钥标识符扩展提供一种识别出包含一特定公开密钥的证书的手段。
为了便于链条(证书链)构建,这个扩展必须(MUST)出现在所有CA证书中,也就
是说所有证书中包含基本约束扩展证书(见4.2.1.10)它的cA的值是TRUE。主题密钥标识
符的值必须(MUST)是按照这张证书的主题值放入权威密钥标识符扩展(见4.2.1.1)的证
书的发出的密钥标识符字段。
同CA证书一样,主题密钥标识符应该(SHOULD)从公开密钥或者产生唯一值方法中
得到。两种从公开密钥产生密钥标识符的通用方法如下:
(1) keyIdentifier由BIT STRING subjectPublicKey的值的160位SHA1哈希值
组成(排除标签,长度和不在使用的bits数目)。
(2) keyIdentifier 四bit类型字段值为0100以及随后的由BIT STRING
subjectPublicKey的值SHA 1哈希的值中最后60 bits连接组成。
一个产生唯一值通用方法是一整数的monotomically递增序列。
为末端实体证书,主题密钥标识符扩展提供一识别出包含在一种应用中使用特定公开密
钥的证书的手段。一末端实体已经得到多重证书,特别从多重CAs,主题密钥标识符提供一
迅速识别出包含一特定公开密钥证书的手段。为帮助在应用方面识别适合末端实体证书,这
扩展应该包含在所有的末端实体证书内。
为末端实体证书,主题密钥标识符应该(SHOULD)从公开密钥得到。从公开密钥产
生密钥标识符的两个通用方法在上面描述了。
因为一个密钥标识符还没有先前建立,本文说明推荐使用这些方法中的一种产生密钥标
识符。
这扩展必须不(MUST NOT)要标记为关键。
id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 14 }
SubjectKeyIdentifier ::= KeyIdentifier
4.2.1.3 密钥使用
密钥使用扩展定义包含在证书的密钥的目的(例如加密,签名,签名证书)。当一把能
被用于超出一个操作时候(超出了密钥应用范围――译者注),密钥使用限制可以被使用。
例如,当一RSA密钥应该是仅用于签名使用的时候,digitalSignature和/或nonRepudiation
位(bits)将被断言(有效,置为1――译者注)。同样,当一RSA密钥应该是仅用于密钥
管理使用的时候,keyEncipherment位将被断言。当使用的时候,这扩展应该(SOULD)被
标记为关键。
id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
KeyUsage ::= BIT STRING {
digitalSignature (0),
nonRepudiation (1),
keyEncipherment (2),
dataEncipherment (3),
keyAgreement (4),
keyCertSign (5),
cRLSign (6),
encipherOnly (7),
decipherOnly (8) }
在KeyUsage类型中位(Bits)使用如下:
digitalSignature位被断言,当主题公开密钥用一数字的签名算法来支持安全服务而非抗
抵赖性(位1)、签名证书(位5)或者签名撤销信息(位6) 的时候。数字的签名算法常
常为实体和数据起源(做)完整性验证。
nonRepudiation位被断言,当主题公开密钥被用于验证提供抗抵赖性服务的数字签名的
时候,其签名实体避免虚假拒绝的一些行动所造成的危害,这些行动排除签名证书或者
CRL。
keyEncipherment位被断言,当主题公开密钥被用于密钥传输的时候。例如,当一RSA
密钥用于密钥管理时候,那么这位将被断言。
当主题公开密钥用于(除了密码学的密钥)将用户数据加密使用的时候,
dataEncipherment位被断言。
keyAgreement位被断言,当主题公开密钥为用于密钥协议的时候。例如,当一Diffie
Hellman密钥是要为密钥管理被使用的时候,那么这位将被断言。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -