标准搜索结果: 'GB/T 36644-2018'
标准编号 | GB/T 36644-2018 (GB/T36644-2018) | 中文名称 | 信息安全技术 数字签名应用安全证明获取方法 | 英文名称 | Information security technology -- Methods for obtaining security attestations for digital signature applications | 行业 | 国家标准 (推荐) | 中标分类 | L80 | 国际标准分类 | 35.040 | 字数估计 | 30,368 | 发布日期 | 2018-09-17 | 实施日期 | 2019-04-01 | 发布机构 | 国家市场监督管理总局、中国国家标准化管理委员会 |
GB/T 36644-2018
ICS 35.040
L80
中华人民共和国国家标准
信息安全技术
数字签名应用安全证明获取方法
2018-09-17发布
2019-04-01实施
国 家 市 场 监 督 管 理 总 局
中国国家标准化管理委员会 发 布
目次
前言 Ⅲ
引言 Ⅳ
1 范围 1
2 规范性引用文件 1
3 术语和定义 1
4 缩略语 2
5 数字签名应用安全证明获取 2
5.1 概述 2
5.2 私钥拥有属性的安全证明获取 3
5.2.1 证明时刻确定的私钥拥有属性安全证明获取时效模型 3
5.2.2 证明时刻不确定的私钥拥有属性安全证明获取时效模型 3
5.2.3 私钥拥有属性安全证明获取过程 4
5.2.4 具体的私钥拥有属性安全证明获取流程 7
5.3 公钥有效性的安全证明获取 10
5.3.1 总则 10
5.3.2 拥有者的公钥有效性安全证明获取 10
5.3.3 验证者的公钥有效性安全证明获取 11
5.3.4 公钥有效性验证过程 11
5.4 数字签名的生成时间安全证明获取 11
5.4.1 总则 11
5.4.2 从TTSA获取时间的方式获取签名生成时间证明 11
5.4.3 用验证方提供的数据获得签名生成时间证明 20
附录A(资料性附录) SM2签名算法公钥有效性获取流程 24
参考文献 25
前言
本标准按照GB/T 1.1-2009给出的规则起草。
请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别这些专利的责任。
本标准由全国信息安全标准化技术委员会(SAC/TC260)提出并归口。
本标准起草单位:中国科学院数据与通信保护研究教育中心、中国科学院软件研究所、重庆大学。
本标准主要起草人:王跃武、刘丽敏、吕娜、张严、荆继武、雷灵光、牛莹姣、刘志娟、向宏、夏晓峰、
周荃、夏鲁宁。
引 言
参与数字签名生成或验证的实体取决于过程的真实性,该真实性可以通过获取私钥拥有属性的安
全证明、公钥有效性的安全证明、数字签名的生成时间来保证。本标准旨在规定一套数字签名应用安全
证明获取方法,用以规范数字签名应用安全证明过程,主要应用于需要提供数字签名生成过程安全性和
对签名生成时间有明确要求的签名应用场景。
本标准在制定的过程中参考了 NISTSP800-89《数字签名应用安全保证获取建议》和 NISTSP
800-102《数字签名适时性证明获取建议》。本标准与两个参考标准在技术内容上保持一致,但忽略了其
与美国具体的签名算法标准相关部分,强调了安全证明获取的一般过程。此外,本标准将参考标准中与
密码相关的术语和规定改成了与我国密码政策相符的规定。
信息安全技术
数字签名应用安全证明获取方法
1 范围
本标准规定了一套数字签名应用安全证明获取方法,用以规范数字签名应用安全证明过程。
本标准适用于需要提供数字签名生成过程安全性和对签名生成时间有明确要求的签名应用场景。
2 规范性引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文
件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T 20520-2006 信息安全技术 公钥基础设施 时间戳规范
GB/T 25069-2010 信息安全技术 术语
GB/T 32918.1-2016 信息安全技术 SM2椭圆曲线公钥密码算法 第1部分:总则
GB/T 32918.2-2016 信息安全技术 SM2椭圆曲线公钥密码算法 第2部分:数字签名算法
3 术语和定义
GB/T 25069-2010界定的以及下列术语和定义适用于本文件。
3.1
公钥有效性证明
证明用于验证签名的公钥的有效性的证据。
3.2
私钥拥有属性安全证明
证明声称的签名者确实实际拥有用于生成签名的私钥的证据。
3.3
证明消息
用于获取私钥拥有属性安全证明的,具有特定格式的消息。
5 数字签名应用安全证明获取
5.1 概述
本标准凡涉及密码算法的相关内容,按国家有关法规实施;凡涉及到采用密码技术解决保密性、完
整性、真实性、不可否认性需求的须遵循密码相关国家标准和行业标准。
本标准明确了获取数字签名生成和验证环节的有效性证明方法。每一个数字签名者都拥有一对公
私钥对,并且该签名者就是这对公私钥对的拥有者。私钥用于数字签名的生成,公钥用于数字签名的验
证过程。数字签名生成、验证过程的安全证明获取包括:私钥拥有属性的安全证明获取、公钥有效性的
安全证明获取和数字签名的生成时间安全证明获取。
私钥的拥有者是指被授权使用公私钥对中的私钥来进行数字签名生成的实体。生成的数字签名可
以被对应的公钥进行验证。被授权使用私钥生成签名并不意味着拥有者确实知道正确的私钥。因此,
在拥有者进行数字签名之前,需要获取私钥拥有属性的安全证明。
根据签名公私钥对生成方式的不同,私钥被知道的方式可以分为如下5种:
a) 拥有者自己生成和维护公私钥对,仅由拥有者知道私钥;
b) 拥有者在TTP的帮助下生成公私钥对,但是私钥只能由拥有者知道;
c) 公私钥对由TTP生成后提供给拥有者,拥有者和TTP同时知道私钥;
d) 公私钥对采用方式a)生成,生成后提供给充当密钥服务器的TTP,这样拥有者和TTP同时知道私钥;
e) 公私钥对采用方式b)生成,生成后提供给充当密钥服务器的TTP,这样拥有者和充当密钥服
务器的TTP同时知道私钥。
后三种方式下,需要建立在TTP不会用私钥生成数字签名的信任之上。公私钥对拥有者、签名验
证者以及其他签名依赖方要能够共享这个信任。方式c)、d)、e)相对于方式a)、b),其私钥拥有属性安
全证明的可信程度较低。
私钥拥有属性安全证明的使用场景如下:
● 公私钥对拥有者在签名生成之前或者同时需要获得私钥拥有属性的安全证明;
● 验证者接受数字签名之前或者同时需要获得私钥拥有属性安全证明。此场景下,在获得私钥
拥有属性安全证明之前,要完成生成签名的公私钥对拥有者的身份鉴别;
● TTP向其他各方提供公私钥对拥有者的私钥拥有属性安全证明。此场景下,TTP在获得私钥
拥有属性安全证明之前,要首先完成拥有者的身份鉴别。
获取的私钥拥有属性安全证明是有时效性的。以下私钥拥有属性安全证明获取时效模型可以用于
私钥拥有属性安全证明水平评估。
5.2 私钥拥有属性的安全证明获取
5.2.1 证明时刻确定的私钥拥有属性安全证明获取时效模型
私钥拥有属性安全证明的获取要在一个特定的时间点完成,该时间点被称为证明时刻。随着时间
的流逝,可能会发生一些事件,对私钥拥有属性安全证明产生负面影响。随着时间流逝的增加,发生这
些事件的概率也将增加,安全证明水平将会因为这些事件的发生而降低。因此,合理地推断证明时刻之
后一段时间,证明水平是必要的。
图1描述了私钥拥有属性安全证明的证明水平随时间变化的模型。签名依赖方所在的组织可以根
据该模型对安全证明的证明水平做出判断。在图1中,tA 为私钥拥有属性安全证明的证明时刻。a,b,
c的值由签名依赖方所在的组织根据自己的安全需求选择。
图1 私钥拥有属性安全证明水平随时间变化的通用模型
a和b是tA前后的两个时间段,在这个模型中,tA-a和tA+b这两个时间点内,获得的私钥拥有属
性安全证明具有高的证明水平。签名依赖方所在的组织根据安全策略,选择不同的a、b值控制对证明
的信任程度。
c是tA+b之后的一个时间段,在这段时间内,私钥拥有属性安全证明的证明水平逐渐从高降到
低。在tA+b+c之后的时间里,私钥拥有属性安全证明的证明水平一直为低。
在私钥拥有属性安全证明的证明水平降为低之后,如果仍需要高的证明水平,需要重新进行私钥拥
有属性安全证明的获取。
5.2.2 证明时刻不确定的私钥拥有属性安全证明获取时效模型
理想情况下,证明时刻是一个确定的值。然而,实际应用中,准确地确定证明时刻存在一定的困难,
通常会用一个估计值代替。这个估计值是用一个包含证明生成时刻的一个时间段表示。证明时刻不确
定的私钥拥有属性安全证明如图2所示。
5.2.3 私钥拥有属性安全证明获取过程
5.2.3.1 总则
私钥拥有属性安全证明可以用如下一种或多种方法得到:
a) 私钥拥有者用私钥签发一个新的数字签名,然后用其对应的公钥进行验证;
b) 重新生成一次公私钥对,然后把它与拥有者当前拥有的公私钥对进行比对;
c) 用公私钥对中的一个密钥重新生成另一个密钥,然后将新生成的密钥与拥有者拥有的对应密
钥进行充分地比对。
重新生成密钥的私钥拥有属性安全证明获取方法,只适用于公私钥对拥有者或者被拥有者信任可
以知道私钥信息的TTP。
公私钥对拥有者获取私钥拥有属性安全证明可以独立完成,或者与TTP合作完成。
TTP获取私钥拥有属性安全证明需要与公私钥对拥有者合作完成。
签名依赖方可以从TTP获取私钥拥有属性安全证明,或者与拥有者合作获取证明。
私钥拥有属性安全证明获取的时刻要尽可能精确地被记录下来。确定证明获取的精确时刻可以有
多个时间源。以下是一些可信程度依次降低的时间源:
● 由获取私钥拥有属性安全证明的实体、实体所在的组织以及其他依赖各方所信任的TTP提供
可信时间戳作为时间源;
● 由获取私钥拥有属性安全证明的实体认可其精度的一个时钟作为时间源;
● 由精度不可知的时钟作为时间源。
无论采用何种时间源,都需要让证明依赖方知道,以判断证明获取时间的可信性。
5.2.3.2 利用数字签名获取私钥拥有属性安全证明
5.2.3.2.1 证明消息
利用数字签名获取私钥拥有属性安全证明是指用验证特定格式消息数字签名的方式来获取私钥拥
有属性安全证明,该方法适用于公私钥对拥有者、TTP或者其他依赖方获得私钥拥有属性安全证明。
当采用数字签名方式获得私钥拥有属性安全证明时,获取证明的实体将会被分配给一个拥有属性
安全证明消息,简称为证明消息。然后由私钥拥有者对该消息进行签名,该签名称为证明签名。
证明消息应包括下列信息:
a) 签名者身份标识;
b) 潜在的验证者身份标识;
c) 时间戳令牌TST,该TST由所有依赖方都信任的可信时间戳机构(TTSA)生成。TST可以
由签名者从TTSA获取,也可以由潜在的验证者从TTSA获取,之后传给签名者。所有依赖
方都应认可TTSA的签名安全强度;
d) 一个验证者提供的随机数(nonce)值。如果选择了nonce,则nonce值的随机性要等于或者超
过要获取证明的私钥的随机性。如果证明消息不包含TST,而依赖方又要求在验证证明签名
时,记录证明时间,则nonce值需要包含一个由验证者提供的时间戳,标示该nonce值提供给
证明消息的时间。
证明消息中私钥对应的公钥展示信息不是必要的。但是该公钥展示信息的包括与否,要严格根据
如下的描述决定:
● 如果生成证明签名的签名者能够在获取证明消息之前,成功展示公钥,该公钥信息可以从证明
消息中去除;
● 如果证明消息中包含TST,公钥展示应在TST标示的时刻之前。如果没有TST,公钥展示应
在nonce值中包含的时刻之前;如果没有TST,并且nonce值中不包含时间,应出示能够被各方
信任的证据证明公钥展示在证明签名生成之前;
● 公钥可以以一个包含时间戳的证书展示;
● 公钥还可以以签名者此前签发的一个签名的方式展示。该签名签发所用的私钥应与获取证明
的私钥一致,即可以用相同的公钥验证。该签名的签发时间要早于证明消息发送给签名者的时间;
● 公钥展示还可以在证明签名验证者向签名者提供nonce值之前,向验证者公开公钥的方式实现。
如下附加信息可以包含在证明签名签发之后的证明消息里:
---一个明确的标识,表示该消息是用来获取私钥拥有属性安全证明的;
---证明签名签发者提供的nonce值,nonce值包含一个随机部分,其随机性不低于或者要高于获
取证明的私钥;
---或其他的由证明签名签发者提供给验证者的数据。
任何包含了上述所需信息的消息,都可以用来作为证明消息。证明消息被要获取证明的私钥进行
签名生成证明签名。证明签名需要在TST,nonce值或者以其他形式提供的时刻立即生成。
5.2.3.2.2 指定证明时间
在证明签名成功验证后,需要给证明时间指定一个值。
证明时间的指定受证明消息的格式影响,同时也受包括证明签名生成时间tG的t1和t2的选择的影响。
如5.2.2所述,t1是超前或者等于证明签名生成时刻的一个时间点。t1的几种可能赋值如下:
a) 如果证明消息中包括了来自依赖方信任的TTSA的时间戳,则时间戳中的时间可以作为t1赋值的候选;
b) 如果证明消息中包含了验证者提供时间,例如,nonce值中包含的时间,则该时间可以作为t1
赋值的候选;
c) 如果证明消息中包含一个验证者提供的nonce值,并且记录了nonce值第一次提供给证明签
名签发者的时间,则该时间可以作为t1赋值的候选。
依赖方从上述的t1赋值候选中选择他们认为最可信的时间源为t1赋值。在可信程度相等的情况
下,应该优先选择最晚的时间为t1赋值。
如5.2.2所述,t2是滞后或者等于证明签名生成时刻的一个时间点。t2的几种可能赋值如下:
● 如果证明签名生成时刻被包含在一个所有依赖方都信任的TTSA签发的TST内,则包含在
TST中的时间可以作为t2赋值的候选;
● 如果验证者记录了证明签名的接收时间,则该记录的时间可以作为t2赋值的候选;
● 如果验证者记录了证明签名被验证的时间,则该记录的时间可以作为t2赋值的候选。
依赖方从上述的t2赋值候选中选择他们认为最可信的时间源为t2赋值。在可信程度相等的情况
下,应该优先选择最早的时间为t2赋值。
如果证明签名已被成功验证通过,并且依赖方已经确定了证明时间的误差精度d,则可以按照如下
的方法估计证明时间tA:
---如果t2-t1≤d,并且t1可信度不小于t2,则应选择t1为证明时间tA;
---如果t2-t1≤d,并且t1可信度小于t2,则应选择t2为证明时间tA;
---如果t2-t1 >d,则私钥拥有属性安全证明没有获得,不用赋值给证明时间tA。
如果证明签名不能被验证通过,则私钥拥有属性安全证明没有获得,不用赋值给证明时间tA。
5.2.3.2.3 指定初始证明水平
证明签名被验证通过和证明时间指定完成后,需要指定证明的初始水平。证明初始水平指定按如
下方法完成:
a) 如果证明时间tA是从依赖方信任的TTSA提供的TST中获得,那么最初的证明水平被置于高;
b) 如果证明时间tA不是从依赖方信任的TTSA提供的TST中获得,而是从证明签名验证者提
供的一个精度被依赖方信任的时间源获得,那么最初的证明水平被置于中;
c) 如果证明时间tA不是从依赖方信任的TTSA提供的TST中获得,而是从证明签名验证者提
供的一个时间源获得,并且该时间源的精度对依赖方不可知,那么最初的证明水平被置于低。
5.2.3.3 通过密钥再生获取私钥拥有属性安全证明
密钥再生可以由公私钥对拥有者或者被提供公私钥对的TTP完成。
密钥再生要在与原始密钥对生成环境不同的环境下,用不同于原始密钥对生成方法的方法生成一
个或者一对密钥。在后续再次获取私钥拥有属性安全证明时,密钥再生可以采用与第一次密钥再生相
同的环境和流程完成。
私钥拥有属性安全证明获取只有在再生的密钥与拥有者拥有的密钥相同的情况下才能获取。
密钥再生的过程与具体的签名算法相关,可以参考对应的算法标准。
通过密钥再生获取私钥拥有属性安全证明,同样需要指定证明时间和初始证明水平,具体过程见
5.2.3.2.2和5.2.3.2.3。
5.2.3.4 普通签名的私钥拥有属性安全证明确定
本部分描述如何判断一个普通消息签名所对应的私钥拥有属性安全证明水平。普通消息一般不会
充分满足5.2.3中的证明消息的各项要求。可以用签发该普通消息签名的私钥的私钥拥有属性安全证
明来确定该普通消息签名的安全证明水平。
普通消息签名安全证明获取可以在其对应私钥的私钥拥有属性安全证明的证明时间之前,同时或者之后生成。
普通消息签名的生成时间用ts表示。ts可能有一个确定的值,或者是一个取值范围,或者是完全不
确定的一个值。如果ts有一个具有充分精度的值,并且对应私钥的私钥拥有属性安全证明已经获取,则
可以根据5.1.1中的时效模型,按照如下的方法确定该普通消息签名的安全证明水平:
a) 如果(tA-(a-d))≤ts≤(tA+(b-d)),那么该普通消息签名的安全证明水平等于获取的私
钥拥有属性安全证明的初始证明水平;
b) 如果(tA+(b-d))≤ts≤(tA+(b-d)+c),那么该普通消息签名的安全证明水平将从最初
状态逐渐降低直至低水平;
c) ts >(tA+(b-d)+c),那么该普通消息签名的安全证明水平为低。
如果ts没有一个确定的值,则该普通消息签名的安全证明水平被确定为低。
5.2.4 具体的私钥拥有属性安全证明获取流程
5.2.4.1 公私钥对拥有者获取私钥拥有属性安全证明
公私钥对拥有者可以用如下一种或多种方法获取私钥拥有属性安全证明:
a) 公私钥对拥有者采用证明签名获取私钥拥有属性安全证明:
公私钥对拥有者需要完成以下内容:
1) 确定适当的d值,例如,可以按照5.2.2中的时效模型,在确定完合适的a,b,c值的基础
上,确定d值;
2) 确定一个可信的t1值;
3) 生成一个新的用于获取私钥拥有属性安全证明的证明消息;
4) 用要获取证明的私钥对证明消息签名,生成证明签名;
5) 用对应的公钥验证证明签名;
6) 如果验证成功:
● 为t2确定一个可信的值;
● 当t1≤t2≤t1+d时,按照本标准前面的规定确定证明时间和初始证明水平。
b) 公私钥对拥有者采用证明签名从TTP获取私钥拥有属性安全证明:
1) 公私钥对拥有者要确定适当的d 值,例如,可以按照5.2.2中的时效模型,在确定完合适
的a,b,c值的基础上,确定d值;
2) 如果TTP负责证明时间的分配,则d值要让TTP知道;
3) 公私钥对拥有者和/或 TTP要确定一个被公私钥对拥有者信任的t1值;
4) 公私钥对拥有者生成一个新的用于获取私钥拥有属性安全证明的证明消息;
5) 公私钥对拥有者用要获取证明的私钥对证明消息签名,生成证明签名;
6) 公私钥对拥有者将证明消息、证明签名和其他必要的数据发送给TTP;
7) TTP用对应的公钥验证证明签名;
8) 如果验证通过:
● 需要通知公私钥对拥有者,证明签名验证成功;
● 公私钥对拥有者和/或TTP要为t2确定一个拥有者信任的值;
● 如果t1≤t2≤t1+d,公私钥对拥有者或者是TTP开始指定证明时间和初始证明水
平,指定证明时间的实体应知道d值以及t1和t2,指定初始证明水平的实体也应知道
确定t1和t2值的方法;
● 公私钥对拥有者要记录证明时间和初始证明水平。
c) 公私钥对拥有者通过密钥再生获取私钥拥有属性安全证明:
公私钥对拥有者需要完成以下内容:
1) 确定适当的d值,例如,可以按照5.2.2中的时效模型,在确定完合适的a,b,c值的基础
上,确定d 值;
2) 确定一个可信的t1值;
3) 选择下面的一个操作:
● 重新生成要获取证明的私钥对应的密钥对;
● 重新生成要获取证明的私钥对应的密钥对中的一个密钥。
4) 对比重新生成的密钥对(密钥)值和目前拥有的密钥值;
5)......
|