GM-T 0057-2018 基于IBC技术的身份鉴别规范.pdf
- 文档编号:14660579
- 上传时间:2023-06-25
- 格式:PDF
- 页数:23
- 大小:430.13KB
GM-T 0057-2018 基于IBC技术的身份鉴别规范.pdf
《GM-T 0057-2018 基于IBC技术的身份鉴别规范.pdf》由会员分享,可在线阅读,更多相关《GM-T 0057-2018 基于IBC技术的身份鉴别规范.pdf(23页珍藏版)》请在冰点文库上搜索。
ICSICS35.04035.040LL8080备案号:
备案号:
GGMM/T/T00570057-20182018基于IBC技术的身份鉴别规范IdentityauthenticationspecificationsbasedonIBCtechnology(报批稿)2018-05-02发布2018-05-02实施中华人民共和国国家标准中华人民共和国国家标准国家密码管理局国家密码管理局发布发布GM/T0057-2018I目次前言.II引言.III1范围.12规范性引用文件.13术语和定义.14符号和缩略语.15标识结构.26用户身份鉴别规范.26.1描述.26.2单向用户身份鉴别.36.2.1接收者鉴别发起者身份.36.2.2发起者鉴别接收者身份.56.3三次传递鉴别.错误错误!
未定义书签。
未定义书签。
附录A(规范性附录)公共参数查询协议.10A.1描述.10A.2获取PPS服务信息.10A.3获取PPS服务信息应答.10A.4公开参数信息查询.11A.5公开参数信息查询应答.11A.6用户标识查询.12A.7用户标识查询应答.12A.8IBC公共参数结构.13附录B(规范性附录)密钥与签名格式.15B.1密钥数据结构.15B.2签名加密数据结构.15参考文献.17GM/T0057-2018II前言本标准依据GB/T1.1-2009给出的规则起草。
请注意本文件的某些内容可能涉及专利。
本文件的发布机构不承担识别这些专利的责任。
本标准由密码行业标准化技术委员会提出并归口。
本标准起草单位:
上海信息安全工程技术研究中心、北京国脉信安科技有限公司、西安工业大学、无锡江南信息安全工程技术研究中心、中油瑞飞信息技术有限责任公司。
本标准起草人:
袁峰、药乐、容晓峰、杜志强、王一曲、蒋楠、王建、崔广印、金一、万进。
本标准凡涉及密码算法的相关内容,按国家有关法规实施;凡涉及到采用密码技术解决保密性、完整性、真实性、不可否认性需求的须遵循密码相关国家标准和行业标准。
GM/T0057-2018III引言本标准是IBC(Identity-BasedCryptography)基于标识的密码技术系列标准之一,本标准依托于GM/T0044SM9标识密码算法标准,面向应用系统中基于IBC技术和SM9算法进行的身份鉴别时涉及到的鉴别需求。
鉴于标识密码技术的特点,规定了两种单向身份鉴别要求和一个双向身份鉴别要求。
本标准还在附录中给出了利用IBC技术进行鉴别时需要访问公开参数服务(PPS)的基本流程和相关密码数据结构,用于公开参数和标识状态查询。
GM/T0057-20181基于IBC技术的身份鉴别规范1范围本标准规定了使用基于标识的密码技术的身份鉴别要求。
本标准适用于使用基于标识的密码技术的身份鉴别领域。
2规范性引用文件下列文件对于本文件的应用是必不可少的。
凡是注日期的引用文件,仅所注日期的版本适用于本文件。
凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GM/T0044SM9标识密码算法3术语和定义下列术语和定义适用于本文件。
3.1标识identity可确定一个对象身份的唯一信息,例如电子邮箱地址、手机号码、指纹数据等。
3.2SM9密码算法SM9algorithm由GM/T0044定义的一种算法。
3.3公开参数服务publicparameterservice用于发布基于标识的密码技术中公开参数、私钥生成策略、用户标识信息和状态等数据的应用服务。
4符号和缩略语下列缩略语适用于本文件。
ASN.1:
抽象语法标记(AbstractSyntaxNotationOne)IBC:
基于标识的密码技术(Identity-BasedCryptography)IRI:
国际化资源标识符(InternationalizedResourceIdentifiers)OID:
对象标识符(Objectidentifier)PKG:
私钥生成(PrivateKeyGeneration)PPS:
公开参数服务(PublicParameterService)URI:
统一资源标识符(UniformResourceIdentifier)GM/T0057-201825标识结构标识的ASN.1数据格式定义为:
标识数据格式的ASN.1定义为:
Identifier:
=SEQUENCEibcTypeOBJECTIDENTIFIER,identityDataOCTETSTRING,validStartUTCTIME,validEnd0UTCTIMEOPTIONAL,idExtensions1ExtensionsOPTION其中:
identityType身份类别是一个对象标识符号OID,定义所应用算法或数据域的编码。
identityData身份数据是八位串,身份的具体描述。
validStart有效期的起始日期。
validEnd有效期的终止日期,可选项,如果该项不存在表示标识长期有效。
idExtensions扩展项是Extensions类型,标识信息扩展项。
Extensions:
=SEQUENCESIZE(1.MAX)OFExtensionExtension:
=SEQUENCEextnIDOBJECTIDENTIFIER,criticalBOOLEANDEFAULTFALSE,extnValueOCTETSTRING其中:
extnID表示一个扩展元素的OID。
critical表示这个扩展元素是否极重要。
extnValue表示这个扩展元素的值,字符串类型。
6用户身份鉴别规范6.1描述用户身份鉴别过程包含了鉴别双方的流程和具体协议,在进行身份鉴别时各方都可以通过访问公开参数服务PPS获取相关鉴别体系的关键参数,例如IBC的公开参数;还可以通过访问PPS获取对方标识的相关信息,例如标识信息的状态,完整的标识数据等,如图1所示。
GM/T0057-20183ABAB认证PPS获取系统公开参数查询用户标识信息图1身份鉴别结构对PPS的查询协议见附录A.4。
6.2单向用户身份鉴别6.2.1接收者鉴别发起者身份a)一次传递鉴别在接收者环境基本可信的情况下适用于一次传递鉴别。
其特点是接收者B直接验证发起者A的身份,见图2。
ABA发起鉴别B鉴别A的身份图2一次传递鉴别关系发起者A发起鉴别过程,由接收者B对其身份进行鉴别。
提交的用于验证的数据记作令牌Token,其唯一性/时效性通过产生并验证时间戳或者随机数进行控制。
具体内容如下:
A:
A向B发送TokenAB,AtoB:
IDATokenAB,也可表示为IDA,TokenAB。
发起者A发送给验证者B的令牌记作TokenAB。
TokenAB=IDBrAText1signA(IDBrAText1),也可表示为,TokenAB=IDB,rA,Text1,signA(IDB,rA,Text1)。
其中:
IDB为验证者B的唯一性标识。
rA为表示唯一性的时间或者由发起者产生的随机数。
signA为发起者A的签名,格式为SM9Signature。
Text1为可选项,其他需要传递的信息。
如果有信息需要加密传输,则应以数字信封方式进行封装。
GM/T0057-20184请求被鉴别的格式如下:
RequestAuthenticated:
=SEQUENCEuserIDAIdentifier,authTokenAuthTokenAuthToken:
=SEQUENCEuserIDBIdentifier,verifierVerifier,text10OCTETSTRINGOption,userSignatureSM9SignatureVerifier:
=CHOICEgeneralTimeGeneralizedTime,serialNumberINTEGERuserSignature令牌签名SM9Signature类型,参加附录B。
B:
验证A的鉴别信息B接收A发来的含有TokenAB的消息后,进行身份鉴别,见图2。
具体内容如下:
1)B根据A的标识生成A的公钥,如果B没有生成A公钥的公共参数,应从公开参数服务系统PPS中获取;2)检验包含在令牌中的A的签名信息检验TokenAB中IDB标识段的值,是否等于实体B的标识符;验证数字签名的正确性;检验唯一性/时效性;解析Text1。
若任一验证结果不正确,则停止通联,且反馈:
鉴别失败信息。
若验证正确,则完成身份鉴别。
b)两次传递鉴别在接收者环境基本可信的情况下适用于两次传递鉴别。
当采用两次传递鉴别方式时rA代表一个随机数,具体内容如图3:
ABHello,随机数A发起鉴别B鉴别A的身份鉴别随机数图3两次传递鉴别关系A:
A向B发送请求,附带随机数rA。
A发送给B:
IDArA请求被鉴别的格式如下:
GM/T0057-20185RequestHello:
=SEQUENCEuserIDAIdentifier,randeomINTGERB:
回复A随机数rB。
B发送给A:
rB请求被鉴别的格式如下:
ResponseHello:
=SEQUENCErandeomBINTGERA:
A向B发送TokenAB。
A发送给B:
IDATokenAB,也可表示为IDA,TokenABTokenAB=IDBText1signA(IDBrText1)r=rArB。
Text1为需要传送的数据,可选项。
请求被鉴别的格式如下:
RequestAuthenticated:
=SEQUENCEuserIDAIdentifier,authTokenAuthTokenB:
验证A的鉴别信息B接收A发来的含有TokenAB的消息后,进行身份鉴别。
6.2.2发起者鉴别接收者身份在接收者环境基本可信的情况下适用于单向鉴别。
其特点是发起者A要求接收者B向A证明自己的身份,要求获取B的签名并验证,见图4。
ABA的标识、随机数A发起鉴别A鉴别B的身份图4单向鉴别关系发起者A发起鉴别过程,接收者B回应A的要求并将自身的身份信息返回给A,由A对其身份进行鉴别。
提交的用于验证的数据记作令牌Token,其唯一性/时效性通过产生并验证时间戳或者随机数进行控制。
具体内容如下:
A:
A向B发送获取验证B身份信息的要求。
A发送给B:
IDArAText1,也可表示为IDA,rA,Text1。
其中:
IDA为发起者A的唯一性标识。
rA为表示唯一性的时间或者由发起者产生的随机数。
GM/T0057-20186Text1为可选项,其他需要传递的信息。
要求鉴别对方的格式如下:
RequireAuthenticated:
=SEQUENCEuserIDAIdentifier,verifierVerifier,text1OCTETSTRINGOptionB:
B向A返回确认其身份的信息。
B发送给A:
IDBTokenBA,也可表示为IDB,TokenBA。
接收者B发送给发起者A的令牌记作TokenBA。
TokenBA=IDArText2signB(IDArText2),也可表示为:
TokenBA=IDA,r,Text2,signB(IDA,r,Text2)。
其中:
IDA为发起者A的唯一性标识。
IDA为可选项,由于A对该值已知,B在向A返回时可以不再附带之。
r=rArB。
rB为B产生的随机数。
SignB为接收者B的签名。
Text2为可选项,其他需要传递的信息。
如果有信息需要加密传输,则应以数字信封方式进行封装。
回应的格式ResponseAuthentication:
ResponseAuthenticated:
=SEQUENCEuserIDBIdentifier,authTokenAuthTokenAuthToken:
=SEQUENCEuserIDAIdentifier,verifierVerifier,text2OCTETSTRINGOption,userSignatureSM9SignatureVerifier:
=CHOICEgeneralTimeGeneralizedTime,serialNumberINTEGERA:
验证B的鉴别信息。
发起者A接收B发来的含有TokenBA的消息后,进行身份鉴别。
具体内容如下:
a)A根据B的标识生成B的公钥,如果A没有生成B公钥的公共参数,应从公开参数服务系统PPS中获取;b)检验包含在令牌中的B的签名信息;1)检验TokenBA中IDA标识段的值,是否等于实体A的标识符,该步骤可选;2)验证数字签名的正确性;GM/T0057-201873)鉴别rA是不是以前的那个;4)检验唯一性/时效性;5)解析Text2。
若任一验证结果不正确,则停止通联,且反馈:
鉴别失败信息。
若验证正确,则完成身份鉴别。
6.3三次传递鉴别其特点是接收者B验证发起者A的身份,接收者B也向A证明自己的身份,见图5。
B的标识、随机数AB鉴别A发起鉴别A、B相互鉴别身份鉴别图5三次传递鉴别关系A签名,将签名值发给B;B直接验证;B签名,将签名值发给A;A直接验证。
发起者A发起鉴别过程,先由接收者B对其身份进行鉴别。
接收者B再将自身的身份信息返回给A,由A对其身份进行鉴别。
提交的用于验证的数据记作令牌Token,其唯一性/时效性通过产生并验证时间戳或者随机数进行控制。
具体内容如下:
B:
B向A发送请求附带随机数rB。
B发送给A:
IDBrB,也可表示为IDB,rB。
其中:
IDB为发起者B的唯一性标识。
rB为表示唯一性的时间或者由发起者产生的随机数。
要求鉴别对方的格式如下:
RequireAuthenticated:
=SEQUENCEuserIDBIdentifier,randeomINTGER,A:
A向B发送TokenAB。
A发送给B:
IDATokenAB,也可表示为IDA,TokenAB。
发起者A发送给验证者B的令牌记作TokenAB。
TokenAB=IDBrArBText1signA(IDBrArBText1),也可表示为,TokenAB=IDB,rA,rB,Text1,signA(IDB,rA,rB,Text1)。
其中:
rA为表示唯一性的时间或者由发起者产生的随机数、随机数。
GM/T0057-20188signA为发起者A的签名。
IDB为验证者B的唯一性标识。
Text1为可选项,其他需要传递的信息。
如果有信息需要加密传输,则应以数字信封方式进行封装。
采用RequireAuthentication定义。
B:
验证A的鉴别信息B接收A发来的含有TokenAB的消息后,进行身份鉴别。
具体内容如下:
a)B根据A的标识生成A的公钥,如果B没有生成A公钥的公共参数,应从公开参数服务系统PPS中获取;b)检验包含在令牌中的信息;1)检验TokenAB中的rB是否与发送给之前发送给A的值相等;2)检验TokenAB中IDB标识段的值,是否等于实体B的标识符;3)验证数字签名的正确性;4)检验唯一性/时效性;5)解析Text1。
若任一验证结果不正确,则停止通联,且反馈:
鉴别失败信息。
若验证正确,则完成身份鉴别。
B:
B向A返回确认其身份的信息。
B发送给A:
IDBTokenBA,也可表示为IDB,TokenBA。
接收者B发送给发起者A的令牌记作TokenBA。
TokenBA=IDArAText2signB(IDArAText2),也可表示为,TokenBA=IDA,rA,Text2,signB(IDA,rA,Text2)。
其中:
IDA为发起者A的唯一性标识。
rA为表示唯一性的时间或者由发起者产生的随机数、随机数。
SignB为接收者B的签名。
Text2为可选项,其他需要传递的信息。
如果有信息需要加密传输,则应以数字信封方式进行封装。
采用RequestAuthenticated定义。
A:
验证B的鉴别信息发起者A接收B发来的含有TokenAB的消息后,进行身份鉴别。
具体内容如下:
a)A根据B的标识生成B的公钥,如果A没有生成B公钥的公共参数,应从公开参数服务系统PPS中获取;b)检验包含在令牌中的信息;1)检验TokenBA中的rA是否与发送给之前发送给B的值相等;2)检验TokenBA中IDA标识段的值,是否等于实体A的标识符;3)验证数字签名的正确性,验证签名时要按照TokenBA的验证包按照IDArAText2的格式进行组织;4)检验唯一性/时效性;5)解析Text2。
GM/T0057-20189若任一验证结果不正确,则停止通联,且反馈:
鉴别失败信息。
若验证正确,则完成身份鉴别。
GM/T0057-201810附录A(规范性附录)公共参数查询协议A.1描述本附录定义了与公开参数服务系统(PPS)进行信息查询的相关协议,协议格式基于ASN.1格式规范进行编写。
A.2获取PPS服务信息用于获取PPS支持的IBC密钥管理基础设施或者IBC密钥管理系统的数量和类型。
PPSInfoRequest:
=SEQUENCEversionINTEGERv1
(1),idIdentifier,timeGeneralizedTime其中:
version为版本号项,本文中定义为1。
id为标识项,为查询者的身份标识。
time为时间项,返回的时间,采用格林威治格式。
A.3获取PPS服务信息应答用于PPS基本信息的回复。
PPSInfoResponse:
=SEQUENCEresponseCodeINTEGER,ppsInfoPPSInfo,signInfoIBCSignInfoIBCSignInfo:
=SEQUENCEsignDataIBCSignData,algorithmOBJECTIDENTIFIERPPSInfo:
=SEQUENCEversionINTEGERv1
(1),idIdentifierresponseKgsItem:
=SETOFKgsInfo,timeGeneralizedTime,algorithmOBJECTIDENTIFIERGM/T0057-201811KgsInfo:
=SEQUENCEkgsNameOCTETSTRING,kgsIDInfoIdentifier,algorithmOBJECTIDENTIFIER其中:
PPSInfoResponse表示PPS的应答信息。
responseCode返回码项,表示应答的返回码,0表示正确,其他标识错误。
PPSInfo表示PPS的相关信息。
version版本号项,本文中定义为1。
id标识项,为PPS的身份标识。
responseKgsItem返回密钥生成服务器信息的集合,代表该PPS中支持那些密钥生成服务器。
KgsInfo密钥生成服务器信息项,如果查询成功将返回kgsName、kgsIDInfo项。
kgsName密钥生成服务器名称项,PPS所服务的密钥生成服务器或IBC系统(仅限支持一组主密钥)的名称。
kgsIDInfo密钥生成服务器标识项,PPS所服务的密钥生成服务器或IBC系统(仅限支持一组主密钥)的ID标识。
time时间项,返回的时间,采用格林威治格式。
IBCSignInfo签名信息。
signData签名项,PPS的签名信息,内容包括PPSInfo。
algorithm算法项,签名用的算法标识。
A.4公开参数信息查询用于向PPS查询IBC系统公开参数的请求。
PublicParameterRequest:
=SEQUENCEversionINTEGERv1
(1),idIdentifier,kgsIDInfoIdentifier,timeGeneralizedTime其中:
version版本号项,本文中定义为1。
id标识项,为查询者的身份标识。
kgsIDInfo查询条件,查询密钥生成服务器的标识信息,以PPS基本信息之一作为获取PPS中某组公开参数的查询条件。
Time时间项,查询时间,采用格林威治格式。
A.5公开参数信息查询应答用于PPS对公开参数查询的回复。
PublicParameterResponse:
=SEQUENCEresponseCodeINTEGER,GM/T0057-201812publicParameterPublicParameter,signInfoIBCSignInfoIBCSignInfo:
=SEQUENCEsignDataIBCSignData,algorithmOBJECTIDENTIFIERPublicParameter:
=SEQUENCEversionINTEGERv1
(1),parameterIBCSysParams,idIdentifier,timeGeneralizedTime,algorithmOBJECTIDENTIFIER其中:
PublicParameterResponse公共参数应答信息。
responseCode应答码,表示应答的返回码0标识正确其他标识错误。
publicParameter公共参数项,是公共参数信息。
version版本号项,本文中定义为1。
parameter公开参数项,如果查询成功将返回公开参数内容IBCSysParams。
id标识项,为PPS的身份标识。
time时间项,返回的时间,采用格林威治格式。
algorithm算法标识项,表示该kgs支持的算法。
IBCSignInfo签名信息。
signData签名项,PPS的签名信息,内容包括PublicParameter。
algorithm算法项,签名用的算法标识。
A.6用户标识查询用于向PPS查询用户的标识参数的请求。
IBCUserInfoRequest:
=SEQUENCEversionINTEGERv1
(1),idOCTETSTRING,timeGeneralizedTime其中:
version版本号项,本文中定义为1。
Id用户ID标识项,被查询的用户标识。
time时间项,查询时间,采用格林威治格式。
A.7用户标识查询应答应答内容包括:
正确有效标识,无效有效标识,无效GM/T0057-201813IBCUserInfoResponse:
=SEQUENCEresponseCodeINTEGER,ibcUserInfoIBCUserInfo,signInfoIBCSignInfoIBCSignInfo:
=SEQUENCEalgorithmOBJECTIDENTIFIER,signDataIBCSignDataIBCUserInfo:
=SEQUENCEversionINTEGERv1
(1),usersInfo:
=SETOFUserInfotimeGeneralizedTimeUserInfo:
=SEQUENCEuserStatusCodeINTEGER,userIDInfoIdentifier,publishTimeGeneralizedTime其中:
IBCUserInfoResponse用户信息查询应答。
responseCode返回码项,表示应答的返回码0标识正确其他标识错误。
ibcUserInfoibc用户信息项。
version版本号项,本文中定义为1。
usersInfo用户基本信息的集合。
userStatusCode标识状态项,表示当前用户标识信息的状态。
userIDInfo表示用户标识信息。
publishTime用户信息的发布时间
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GM-T 0057-2018 基于IBC技术的身份鉴别规范 GM 0057 2018 基于 IBC 技术 身份 鉴别 规范