id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER ::= { id-ce 9 } SubjectDirectoryAttributes ::= SEQUENCE SIZE (1‥MAX ) OF Attribute AttributesSyntax::=SEQUENCE SIZE (1..MAX) OF Attribute 该扩展总是非关键的。
5.1.2.2.9 基本限制 basicConstraints
本项用来标识证书的主题是否是一个CA,通过该CA可能存在的认证路径有多长。此项定义如下:
id-ce-basicConstraints OBJECT IDENTIFIER ::={ id-ce 19 }
BasicConstraintsSyntax::=SEQUENCE{ CA BOOLEAN DEFAULT FALSE, pathLenConstraint INTEGER (0..MAX) OPTIONAL} CA字段标识此数字证书是否可用来验证证书签名。
PathLenConstraint字段仅在CA设置为TRUE时才有意义。它给出此证书之后认证路径中最多的CA证书数目。0值表明在路径中只可以向终端实体签发证书,而不可以签发下级CA证书。PathLenConstraint字段出现时必须大于或等于0。如果在认证路径的任何证书中未出现pathLenConstraint字段,则对认证路径的允许长度没有限制。
CA证书中必须包括本扩展,而且必须是关键的,否则,未被授权为CA的实体便可以签发证书,同时证书使用系统会在不知情的情况下使用这样的证书。
如果此扩展存在,并标记为关键的,那么:
-如果CA字段的值置为FALSE,则密钥用法不能包含keyCertSign这一用法,其公开密钥应不能用来验证证书签名;
-如果CA字段的值置为TRUE,并且pathLen Constraint存在,则证书使用系统应检查被处理的认证路径是否与pathLenConstraint的值一致。
注1:如果此扩展不存在或标记为非关键项并且未被证书使用系统认可,该证书被系统视为终端用户证书,并且不能用来验证证书签名。
注2:为限制一证书主题只是一个端实体,即,不是CA,颁发者可以在扩展中只包含一个空SEQUENCE值的扩展项。
5.1.2.2.10 名称限制 nameConstraints
本项仅在一张CA证书使用,它指示了一个名称空间,在此空间设置的认证路径可以在后续证书主题名称中被找到。此项定义如下:
id-ce-nameConstraints OBJECT IDENTIFIER::={ id-ce 30 }
NameConstraintsSyntax::=SEQUENCE{ permittedSubtrees [0]GeneralSubtrees OPTIONAL, excludedSubtrees
GeneralSubtree::=SEQUENCE{
Base GeneralName, minimum [0]BaseDistance DEFAULT 0,
12
[1]GeneralSubtrees OPTIONAL}
GeneralSubtrees::=SEQUENCE SIZE (1..MAX) OF GeneralSubtree
maximum [1]BaseDistance OPTIONAL}
BaseDistance::=INTEGER(0..MAX)
如果存在permittedSubtrees和excludedSubtrees字段,则他们每个都规定一个或多个命名子树,每个由此子树的根的名称或任选处于其子树内的任意节点名称来定义,子树范围是一个由上界和/或下界限定的区域。如果permittedSubtrees存在,在主题CA和认证路径中后续CA颁发的所有证书中,只有那些在子树中具有与permittedSubtrees字段规定主题名称相同的证书才是可接受的。如果excludedSubtrees存在,由主题CA或认证路径中后续CA颁发的所有证书中,同excludedSubtrees规定主题名称相同的任何证书都是不可接受的。如果PermittedSutrees和excluded Subtrees都存在并且名称空间重叠,则优先选用排斥声明(exclusion statement)。
通过GeneralName字段定义的命名格式,需要那些具有良好定义的分层结构的名称形式用于这些字段,Directory Name名称形式满足这种要求;使用这些命名格式命名的子树对应于DIT子树。在应用中不需要检查和识别所有可能的命名格式。如果此扩展标记为关键项,并且证书使用中不能识别用于base项的命名格式,应视同遇到未识别的关键项扩展那样来处理此证书。如果此扩展标记为非关键的,并且证书在使用中不能识别用于base项的命名格式,那么,可以不理睬此子树规范。当证书主题具有同一名称形式的多个名称时(在directory Name名称形式情况下,包括证书主题项中的名称,如果非“0”),对于同一名称形式的名称限制应检验所有这些名称一致性。
可以对主题名称或主题选择名称进行限制。只有当确定的名称格式出现时才应用限制。如果证书中没有类型的名称,则证书是可以接受的。当对于命名格式限制的一致性测试证书主题名称时,即使扩展中标识为非关键项也应予以处理。
Minimum字段规定了子树内这一区域的上边界。最后的命名形式在规定的级别之上的所有名称不包含在此区域内。等于“0”(默认)的minimum值对应于此基部(base),即,子树的顶节点。例如,如果minimum置为“1”,则命名子树不包含根节点而只包含下级节点。
Maximun字段规定了子树内这一区域的下边界。最后的命名形式在规定的级别之下所有名称不包含在此区域内。最大值“0”对应于此基部(base),即,子树的顶。不存在的maximun字段指出不应把下限值施加到子树内的此区域上。例如,如果maximun置为“1”,那么,命名子树不包含除子树根节点及其直接下级外的所有节点。
本规范建议将它标记为关键项,否则,证书用户不能检验认证路径中的后续证书是否位于签发CA指定的命名域中。
如果此扩展存在,并标记为关键的,则证书用户系统应检验所处理的认证路径与此扩展中的值是否一致。
本规范中,任何名称格式都不使用最小和最大字段,最小数总为 0,最大数总是空缺的。 5.1.2.2.11 证书撤销列表分发点 CRLDistributionPoints
CRL分发点扩展用来标识如何获得CRL信息,本扩展仅作为证书扩展使用。它可用于认证政务机构证书,终端实体数字证书以及属性证书中。本项指定了CRL分发点或证书用户的查阅点以确定证书是否已被撤销。证书用户能从可用分发点获得一个CRL,或者它可以从认证机构目录项获得当前完整的CRL。
该项定义如下:
id-ce-CRLDistributionPoints OBJECT IDENTIFIER ::={ id-ce 31 } cRLDistributionPoits::={ CRLDistPointsSyntax}
CRLDistPointsSyntax::=SEQUENCE SIZE (1..MAX) OF DistributionPoint
13
DistributionPoint::=SEQUENCE{ distributionPoint[0] DistributionPointNameOPTIONAL, reasons[1] ReasonFlagsOPTIONAL, cRLIssuer[2]
DistributionPointName::=CHOICE{ fullName[0] GeneralNames,
nameRelativeToCRLIssuer[1]RelativeDistinguishedName}
ReasonFlags::=BITSTRING{ unused keyCompromise CACompromise
(0), (1), (2),
GeneralNamesOPTIONAL}
affiliationChanged (3), superseded (4), cessationOfOperation
(5),
certificateHold (6)}
distributionPoint字段标识如何能够获得CRL的位置。如果此字段缺省,分发点名称默认为CRL颁发者的名称。
当使用fullName替代名称或应用默认时,分发点名称可以有多种名称形式。同一名称(至少用其名称形式之一)应存在于颁发CRL的分发点扩展的distrubutionPoint字段中。不要求证书使用系统能处理所有名称形式。它可以只处理分发点提供的诸多名称形式中的一种。如果不能处理某一分发点的任何名称形式,但能从另一个信任源得到必要的撤销信息,例如另一个分发点或CA目录项,则证书应用系统仍能使用该证书。
如果CRL分发点被赋予一个直接从属于CRL颁发者的目录名称的目录名,则只能使用nameRelativeToCRLIssuer字段。此时,nameRelativeToCRLIssuer字段传送与CRL颁发者目录名称有关的可甄别名。
Reasons字段指明由此CRL所包含的撤销原因。如果没有reasons字段,相应的CRL分发点发布包含此证书(如果此证书已被撤销)项的CRL,而不管撤销原因。否则,reasons值指明相应的CRL分发点所包含的那些撤销原因。
CRLIssuer字段标识颁发和签署CRL的机构。如果没有此字段,CRL颁发者的名称默认为证书签发者的名称。
此扩展可以是关键的或非关键的,由证书颁发者选择,建议该扩展设置为非关键的,但CA和应用应支持该扩展。
如果该扩展标记为关键,CA则要保证分发点包含所用的撤销原因代码keyCompromise和CACompromise,或二者之一。若没有首先从一个包含了原因代码keyCompromise(对终端实体证书)或CACompromise(对CA证书)指定的分发点检索和核对CRL,证书使用系统将不使用该证书。在分配点为所有撤销原因代码和由CA(包括作为关键扩展的CRLDistributionPoint)发布的所有证书分配CRL信息项中,CA不需要在CA项发布一个完整的CRL。
如果此扩展标记为非关键的,当证书使用系统未能识别此扩展项类型时,则只有在下列情况中,该系统使用此证书:
14
——能从CA获得一份完整CRL并检查该证书(通过在CRL中设有发布点扩展项来指示最近的CRL是完整的);
——根据本地策略不要求撤销检查; ——用其他手段完成撤销检查。
注1:一个以上的CRL分发者对应一个证书CRL签发者是可能的。这些CRL分发者与签发CA的协
调是CA策略的一个方面。
注2:证书撤销列表CRL的应用,请参照RFC2459中的第5章。
5.1.2.2.12 最新证书撤销列表 freshestCRL
最新CRL扩展一般作为证书扩展使用,或在发给认证机构和用户的证书中使用。该项标识了CRL,对CRL来说证书用户应包含最新的撤销信息(例如:最新的dCRL)。
该项定义如下:
id-ce-CRL freshestCRL OBJECT IDENTIFIER ::={id-ce 46} freshestCRL::={CRLDistPointsSyntax}
根据证书颁发者的选择,这个扩展可能是关键的,也可能是非关键的。如果最新的CRL扩展是关键的,那么证书使用系统不使用没有首先进行撤销和核对的最新CRL的证书。如果扩展被标记为不关键的,证书使用系统能使用本地策略来决定是否需要检查最新的CRL。 5.1.2.2.13 个人身份标识码 IdentifyCode
个人身份证号码扩展项用于表示个人身份证件的号码,其定义如下: id-IdentifyCode OBJECT IDENTIFIER ::={1.2.156.10260.4.1.1}
IdentifyCode ::=SET {
residenterCardNumber [0] PRINTABLESTRING OPTIONAL, militaryOfficerCardNumber [1] UTF8String OPTIONAL,
passportNumber [2] PRINTABLESTRING OPTIONAL, ...
}
residenterCardNumber -身份证号码 militaryOfficerCardNumber -军官证号码 passportNumber -护照号码 此扩展项标记为非关键的。
5.1.2.2.14 个人社会保险号 InsuranceNumber
个人社会保险号扩展项用于表示个人社会保险号码,其定义如下:
ID- InsuranceNumber OBJECT IDENTIFIER ::={ 1.2.156. 10260.4.1.2 }
InsuranceNumber::= PRINTABLESTRING 此扩展项标记为非关键的。
5.1.2.2.15 企业工商注册号 ICRegistrationNumber
企业工商注册号扩展项用于表示企业工商注册号码,其定义如下:
ID-ICRegistrationNumber OBJECT IDENTIFIER ::={ 1.2.156.10260.4.1.3 } ICRegistrationNumber::= PRINTABLESTRING 此扩展项标记为非关键的。
15
5.1.2.2.16 企业组织机构代码 OrganizationCode
企业组织机构代码号扩展项用于表示企业组织机构代码,其定义如下:
ID-OrganizationCode OBJECT IDENTIFIER ::={ 1.2.156. 10260.4.1.4 }
OrganizationCode::= PRINTABLESTRING 此扩展项标记为非关键的。
5.1.2.2.17 企业税号 TaxationNumeber
企业税号扩展项用于表示企业税号码,其定义如下:
ID- TaxationNumeber OBJECT IDENTIFIER ::={ 1.2.156. 10260.4.1.5 } TaxationNumeber::= PRINTABLESTRING 此扩展项标记为非关键的。
5.1.2.2.18 增强型密钥用法extendedKeyUsage
增强型密钥用法用于说明证书用于何种扩展性的用途,其定义如下: extendedKeyUsage EXTENSION ::= {
SYNTAX SEQUENCE SIZE (1..MAX) OF KeyPurposeId IDENTIFIED BY id-ce-extKeyUsage }
KeyPurposeId ::= OBJECT IDENTIFIER
-- PKIX-defined extended key purpose OIDs
id-kp-serverAuth OBJECT IDENTIFIER ::= { id-kp 1 } id-kp-clientAuth OBJECT IDENTIFIER ::= { id-kp 2 } id-kp-codeSigning OBJECT IDENTIFIER ::= { id-kp 3 } id-kp-emailProtection OBJECT IDENTIFIER ::= { id-kp 4 } id-kp-ipsecEndSystem OBJECT IDENTIFIER ::= { id-kp 5 } id-kp-ipsecTunnel OBJECT IDENTIFIER ::= { id-kp 6 } id-kp-ipsecUser OBJECT IDENTIFIER ::= { id-kp 7 } id-kp-timeStamping OBJECT IDENTIFIER ::= { id-kp 8 } 5.1.2.2.19 颁发机构信息访问AuthorityInfoAccess
本项描述了包含该扩展的证书的签发者如何访问CA的信息以及服务。包括在线验证服务和CA策略数据。该扩展可包括在用户证书和CA证书中,且必须为非关键的。
id-pe- authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 } AuthorityInfoAccessSyntax ::=
SEQUENCE SIZE (1..MAX) OF AccessDescription AccessDescription ::= SEQUENCE {
accessMethod OBJECT IDENTIFIER, accessLocation GeneralName } id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 } id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
序列AuthorityInforAccessSyntax中的每个入口描述有关颁发含有该扩展的证书的CA附加信息格式和位置。信息的类型和格式由accessMethod字段说明;信息的位置由accessLocation字段说明。检索机制可以由accessMethod表明或由acessLocaion说明。
16