cnpkcs10v17认证请求语法标准.docx
- 文档编号:23073629
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:12
- 大小:21.90KB
cnpkcs10v17认证请求语法标准.docx
《cnpkcs10v17认证请求语法标准.docx》由会员分享,可在线阅读,更多相关《cnpkcs10v17认证请求语法标准.docx(12页珍藏版)》请在冰豆网上搜索。
cnpkcs10v17认证请求语法标准
组织:
PKI论坛()
PKCS/PKIX中文翻译计划
论坛电子邮件:
pki@
译者:
sql2000(付少庆)(fushaoqing@)
版权:
本中文翻译文档版权归PKI论坛的注册用户所共有。
可以用于非商业用途自由转载,但必须保留本
文档的翻译及版权信息。
如用于商业目的,所得利润需用于PKI论坛的发展。
更改记录
日期
修改章节
类型
修改描述
修改人
2005/03/26
全部
C
创建文档
sql2000
*修改类型分为C-产生一-附加的M-修正D-划除
PKCS#10v1.7认证请求语法标准
(PKCS#10v1.7:
CertificationRequestSyntaxStandard)
RSA实验室
2000年5月26*
目录:
1.绪论2
2.定义与符号3
2.1定义3
2.2符号3
3.概述3
4.认证请求语法3
4.1CertificationRequestInfo3
4.2CertificationRequest3
AASN.1模块3
B知识产权事项3
C修订历史3
D参考文献3
E关于PKCS3
1.绪论
本文档描述了认证请求的语法。
一个认证请求包括一个可区分的名称、一个公钥、一个可选择的属性集,和要求认证的实体整体签名。
认证请求被发送到一个认证的权威机构,它将这个请求边转换为X.509[9]公钥。
(在那种形式中认证的权威机构返回一个新的签名的证书,这部分的介绍超出了本文档的范围。
可能是一条PKCS#7[2]的密文消息。
)
包含属性集有双重目的:
提供特定实体的其它相关信息,或者是个难破解的口令,依靠那个口令实体可以在将来要求证书撤销;提供X.509证书的内部信息。
PKCS#9[3]给出了一个比较详细的属性列表。
认证的权威机构也可以要求使用非电子的申请表格,而且可以以非电子的方式答复。
也许你期望给一些那些表格的描述,但这超出了本文档的范围,你可以到认证的权威机构那里获得。
本文档最初的应用意图是支持PKCS#7的密文,但有有人期望开发其它的应用。
(如[4])
2.定义与符号
2.1定义
为了说明本文档,应用下面的一些定义。
算法:
在X.509中定义的一个信息对象类,被描述为由一个算法(一个唯一的对象标识符)和他的参数(任意的ASN.1类型)组成。
在这个类中,对象的值由ASN.1的算法标识符{}表示。
算法定义为有用的信息对象类类型标识符。
具体说明在[11],AnnexA
算法标识符{}:
本文档中定义的一个有用的,参数表现的,X.509类型运算符。
它将成对的运算标识符与他们的相关的参数类型紧密绑定。
当引用的时候,单个的AlgorithmIdentifier{}参数指定了在一个类型实例中约束出现的值对。
AlgorithmIdentifier{}的编码值等价于这些属性的类型。
ASN.1:
抽象语法符号1,参见ASN.1中定义的标准([10],[11],[12]和[13])。
属性:
描述了组成对象的属性(一个唯一的对象标识符)和一个相关的属性值的集合(任意的ASN.1类型)。
在这个类中,对象的值可以表示为类型Attribute{}。
Attribute{}:
本文档中定义的一个有用的,参数表现的,X.501[8]类型。
这个类型将成对的属性对象类型标识符紧密地绑定到一个或多个属性值上。
在ASN.1开放类型符号中,一个属性类型被定义为ATTRIBUTE.&id,一个属性值被定义为ATTRIBUTE.&Type。
当引用的时候,单个的Attribute{}参数指定了在一个类型实例中约束出现的值对。
Attribute{}的编码值等价于这些属性的类型。
BER:
基本编码规则(BasicEncodingRules),定义在X.690中([14])。
证书:
用数字签名将一个可区分的实体名称和一个公钥绑定到一起的一种类型。
这种类型在X.509中定义。
这种类型也包括证书发行者的可区分名称(签名者),一个发行者特定的序列号,发行者的签名算法标识符,有效期,和一些可选择的签名扩展。
DER:
对ASN.1的唯一编码规则(DistinguishedEncodingRulesforASN.1),在X.609中定义。
DER是BER的一个子集。
名称:
是在X.500[7]目录中,唯一标识或区分对象的一种类型。
这种类型在X.501中定义。
在一个X.509证书中,这种类型标识证书发行者和证书主题,公钥证明的实体。
2.2符号
在本文档中,所有ASN.1的类型和值用粗体Helvetica表示。
3.概述
一个认证请求由三部分组成:
“认证请求信息”,一个签名算法标识符,和一个签署在认证请求上的数字签名。
认证请求信息由实体的可区分名称,实体的公钥,和一些能提供实体其它信息的属性组成。
一个认证请求的过程由下面一些步骤组成:
1.一个CertificationRequestInfo值包含着在一个实体的认证请求中的,一个可以区分的名称,一个公钥,和一组可选择的属性。
2.这个CertificationRequestInfo值被那个实体的私钥签名。
(看4.2节)
3.这个CertificationRequestInfo值,一个签名算法标识符,和实体的签名被收集到一个CertificationRequest值中,在后面定义。
一个认证的权威机构通过鉴别这个请求和验证实体的签名来执行这个请求。
如果请求是有效的,就会由可区分的名称,公钥,发行者的名称,认证权威机构的选择的序列号,有效期,签名算法,来构建一个X.509证书。
如果认证请求包含任何PKCS#9的属性,认证的权威机构也可以使用这些属性构建X.509证书的扩展部分。
在这个过程中,关于认证的权威机构返回的新证书的部分超出了本文档讨论的范围。
一个可能的结果是一个PKCS#7内容被签名的的密文,在一些简并的实例中没有签名者(followingthedegeneratecasewheretherearenosigners翻译不准)。
返回的信息可能包含一条从新证书到认证的权威机构的认证路径。
它也可能包含其它的认证信息:
如认证机构认为有用的交叉认证信息,也可能包含证书撤销列表(CRLs)。
另外的可能是认证机构将这个新的证书加入到中心数据库。
注释1一个实体通常在产生了一个公钥/私钥对,或更改了实体的唯一名称后发出认证请求。
注释2认证请求中的签名会阻止一个实体使用其它的公钥请求一个证书。
这样做会防止一个实体篡改其他实体的签名的信息。
当实体不知道信息已经被签名,而且信息中签名的部分不能标识签名者时,这样处理是很重要的。
当然,实体也不能解密发给其他人的信息。
注释3关于实体怎样将认证请求发送给一个认证的权威机构的问题超出了本文档的范围。
使用纸质或电子的表格都有可能。
注释4本文档和加强电子邮件保密性的认证请求语法(如在RFC1424[5]中描述的)不兼容。
其中的不同表现在三个方面:
本语法允许一个属性集;它不包含发行者的名称,序列号,或有效期;它不要求签署一段“innocuous”信息。
本文档的主要设计目的是将请求最小化,主要特点是认证机构以书面形式接收请求。
4.认证请求语法
本节分为两个部分。
第一部分描述了认证请求信息的类型CertificationRequestInfo,另一部分描述了最高层的类型CertificationRequest。
4.1CertificationRequestInfo
认证请求信息应该符合ASN.1的类型CertificationRequestInfo:
CertificationRequestInfo:
:
=SEQUENCE{
versionINTEGER{v1(0)}(v1,...),
subjectName,
subjectPKInfoSubjectPublicKeyInfo{{PKInfoAlgorithms}},
attributes[0]Attributes{{CRIAttributes}}
}
SubjectPublicKeyInfo{ALGORITHM:
IOSet}:
:
=SEQUENCE{
algorithmAlgorithmIdentifier{{IOSet}},
subjectPublicKeyBITSTRING
}
PKInfoAlgorithmsALGORITHM:
:
={
...--addanylocallydefinedalgorithmshere--}
Attributes{ATTRIBUTE:
IOSet}:
:
=SETOFAttribute{{IOSet}}
CRIAttributesATTRIBUTE:
:
={
...--addanylocallydefinedattributeshere--}
Attribute{ATTRIBUTE:
IOSet}:
:
=SEQUENCE{
typeATTRIBUTE.&id({IOSet}),
valuesSETSIZE(1..MAX)OFATTRIBUTE.&Type({IOSet}{@type})
}
CertificationRequestInfo类型组成部分的意义如下:
version是版本号,目的是为了和本文档将来的修订版兼容。
本标准中的版本号为0。
subject是认证主题的唯一名称(被实体的公钥证明的)。
SubjectPublicKeyInfo包含公钥证明的信息。
信息中表明实体的公钥算法(和相关的其他参数);在PKCS#1[1]中的一些公钥算法的例子包含rsaEncryption对象标识符。
信息中也包含着实体公钥的位串表示。
正如在公钥算法中提到的,位串中包含着PKCS#1RSAPublicKey类型的值的DER编码。
类型SubjectPublicKeyInfo{}的值考虑到了subjectPKInfo会受到信息对象集PKIAlgorithms的具体值的约束,它包含在扩展标识符(…)中。
具体算法对象的定义在本文档的参考文献中有详细的说明。
如果附加的算法对象加入到扩展标识符中,这些具体说明能够和将来的版本互操作。
attributes是关于认证主题的其他信息属性的一个集合。
在PKCS#9中定义的一些属性类型在这里是有用的。
其中的一个例子如质询口令属性,它指定了一个口令,将来实体依靠它就可以撤销证书。
另一个例子是出现在X.509证书扩展中的信息(例如PKCS#9中的extensionRequest属性)。
类型Attributes{}的值考虑到了attributes被信息对象集中的CRIAttributes指定的值约束的问题。
具体属性对象的定义在本文档的参考文献中有详细的说明。
如果附加的属性对象加入到扩展标识符中,这些具体说明能够和将来的版本互操作。
4.2CertificationRequest
一个认证请求应该符合ASN.1的类型CertificationRequest:
CertificationRequest:
:
=SEQUENCE{
certificationRequestInfoCertificationRequestInfo,
signatureAlgorithmAlgorithmIdentifier{{SignatureAlgorithms}},
signatureBITSTRING
}
AlgorithmIdentifier{ALGORITHM:
IOSet}:
:
=SEQUENCE{
algorithmALGORITHM.&id({IOSet}),
parametersALGORITHM.&Type({IOSet}{@algorithm})OPTIONAL
}
SignatureAlgorithmsALGORITHM:
:
={
...--addanylocallydefinedalgorithmshere--}
CertificationRequest类型组成部分的意义如下:
CertificateRequestInfo是认证请求信息。
它是被签名的信息。
SignatureAlgorithm表示了签名的算法(和相关的其他参数),认证清求中的信息就是用它签名的。
例如:
一个具体的例子在信息对象集SignatureAlgorithms中可能包括一个PKCS#1算法对象md5WithRSAEncryption:
SignatureAlgorithmsALGORITHM:
:
={
...,
{NULLIDENTIFIEDBYmd5WithRSAEncryption}
}
signature是用认证请求主题的私钥将认证请求信息签名的结果。
签名过程有两步组成:
1.CertificationRequestInfo的组成部分被DER编码,产生字节串。
2.步骤1的结果被请求认证主题的私钥使用特定的签名算法签名,产生一个位串,也就是签名。
注释一个和CertificationRequest等价的语法可以如下的形式书写:
CertificationRequest:
:
=SIGNED{EncodedCertificationRequestInfo}
(CONSTRAINEDBY{--VerifyorsignencodedCertificationRequestInfo--})
EncodedCertificationRequestInfo:
:
=TYPE-IDENTIFIER.&Type(CertificationRequestInfo)
SIGNED{ToBeSigned}:
:
=SEQUENCE{
toBeSignedToBeSigned,
algorithmAlgorithmIdentifier{{SignatureAlgorithms}},
signatureBITSTRING
}
AASN.1模块
附录A包含了所有在本文档中使用的ASN.1中的类型和值的定义。
表现形式为ASN.1模型PKCS-10.
PKCS-10{iso
(1)member-body
(2)us(840)rsadsi(113549)pkcs
(1)pkcs-10(10)modules
(1)pkcs-10
(1)}
DEFINITIONSIMPLICITTAGS:
:
=
BEGIN
--EXPORTSAll--
--AlltypesandvaluesdefinedinthismoduleareexportedforuseinotherASN.1modules.
IMPORTS
informationFramework,authenticationFramework
FROMUsefulDefinitions{joint-iso-itu-t
(2)ds(5)module
(1)usefulDefinitions(0)3}
ATTRIBUTE,Name
FROMInformationFrameworkinformationFramework
ALGORITHM
FROMAuthenticationFrameworkauthenticationFramework;
--Certificaterequests
CertificationRequestInfo:
:
=SEQUENCE{
versionINTEGER{v1(0)}(v1,...),
subjectName,
subjectPKInfoSubjectPublicKeyInfo{{PKInfoAlgorithms}},
attributes[0]Attributes{{CRIAttributes}}
}
SubjectPublicKeyInfo{ALGORITHM:
IOSet}:
:
=SEQUENCE{
algorithmAlgorithmIdentifier{{IOSet}},
subjectPublicKeyBITSTRING
}
PKInfoAlgorithmsALGORITHM:
:
={...--addanylocallydefinedalgorithmshere--}
Attributes{ATTRIBUTE:
IOSet}:
:
=SETOFAttribute{{IOSet}}
CRIAttributesATTRIBUTE:
:
={...--addanylocallydefinedattributeshere--}
Attribute{ATTRIBUTE:
IOSet}:
:
=SEQUENCE{
typeATTRIBUTE.&id({IOSet}),
valuesSETSIZE(1..MAX)OFATTRIBUTE.&Type({IOSet}{@type})
}
CertificationRequest:
:
=SEQUENCE{
certificationRequestInfoCertificationRequestInfo,
signatureAlgorithmAlgorithmIdentifier{{SignatureAlgorithms}},
signatureBITSTRING
}
AlgorithmIdentifier{ALGORITHM:
IOSet}:
:
=SEQUENCE{
algorithmALGORITHM.&id({IOSet}),
parametersALGORITHM.&Type({IOSet}{@algorithm})OPTIONAL
}
SignatureAlgorithmsALGORITHM:
:
={...--addanylocallydefinedalgorithmshere--}
END.
B知识产权事项
RSASecurity公司没有对本文中做出的一般性介绍提出专利要求,虽然可能涉及到一些基本的技术细节。
本文档允许复制,但要在所有提到或引用本文的地方标明“RSADataSecurity,Inc.Public-KeyCryptographyStandards(PKCS)”。
RSASecurity公司不对其他有关方面的知识产权声明做任何陈述。
用户请自己确认。
C修订历史
版本1.0
版本1.0是这篇文档的前一个版本(在[6]发表的时候被成为版本1.5)
版本1.7
本版本合并了几处编辑上的修改,包括参考文献的更新材料和一些ASN.1种类型定义的变化。
下面几处作了较大的改动:
●本版本引用了当前最近的ASN.1的国际标准和它的编码规则X.680-X.690。
除去了所有涉及X.208和X.209的参考内容。
●X.690标准要求各个组成部分的编码值按照DER升序的顺序存储。
不考虑这些,应用程序不依赖属性组件的顺序。
●所有关于PKCS#6扩展证书语法标准的参考都已经被删除。
随着对X.509版本3证书的扩展支持的增加,RSA实验室正在逐渐取消对PKCS#6的支持。
注释–使用本文档1.7版本的原因是为了避免和[6],还有一个已经不再支持的版本1.6的混淆,[6]被命名为1.5版。
D参考文献
[1]RSALaboratories.PKCS#1:
RSAEncryptionStandard.Version2.0,October1998.
[2]RSALaboratories.PKCS#7:
CryptographicMessageSyntaxStandard.Version1.5,November1993.
[3]RSALaboratories.PKCS#9:
SelectedAttributeTypes.Version2.0,February2000.
[4]C.Adams,S.Farrell.RFC2510:
InternetX.509PublicKeyInfrastructure–CertificateManagementProtocols.March1999.
[5]B.Kaliski.RFC1424:
PrivacyEnhancementforInternetElectronicMail:
PartIV:
KeyCertificationandRelatedServices.February1993.
[6]B.Kaliski.RFC2314:
PKCS#10:
CertificationRequestSyntaxVersion1.5.March1998.
[7]ITU-TRecommendationX.500(1997)|ISO/IEC9594-1:
1998,Informationtechnology-OpenSystemsInterconnection-TheDirectory:
Overviewofconcepts,modelsandservices.
[8]ITU-TRecommendationX.501(1993)|ISO/IEC9594-2:
1995,Informationtechnology-OpenSystemsInterconnection-TheDirectory:
Models.
[9]ITU-TRecommendationX.509(1997)|ISO/IEC9594-8:
1998,Informationtechnology-OpenSystemsInterconnection-TheDirectory:
Authenticationframework.
[10]ITU-TRecommendationX.680(1997)|ISO/IEC8824-1:
1998,InformationTechnology-AbstractSyntaxNotationOne(ASN.1):
SpecificationofBasicNotation.
[11]ITU-TRecommendationX.681(1997)|ISO/IEC8824-2:
1998,InformationTechnology-AbstractSyntaxNotationOne(ASN.1):
InformationObjectSpecification.
[12]ITU-TRecommendationX.682(1997)|ISO/IEC8824-3:
1998,Information
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- cnpkcs10v17 认证 请求 语法 标准