APP下载

基于国密算法体系的交互型电子签名

2018-06-29朱鹏飞张利琴李伟于华章

网络空间安全 2018年1期

朱鹏飞 张利琴 李伟 于华章

摘 要:论文介绍了交互型电子签名的发展概况,给出了交互型电子签名的定义,对交互型电子签名特有的骗签问题进行了形式化分析,基于分析结论提出了在设计和实现交互型电子签名过程中降低骗签风险的关键点,提出了若干在标准化国密算法应用体系下交互型电子签名的实施方案,指出交互型电子签名对于自主可控密码技术用于网络空间安全保障的意义。

关键词:交互型电子签名;国密算法;密码标准

中图分类号:TP309 文献标识码:A

Interactive electronic signing following the national cryptographic standards

Abstract: In this paper, a survey of interactive electronic signing is introduced, an explicit definition of interactive electronic signing is given, and a formal analysis about the security threat “tricked signing” is provided, which arrives the key points for the mitigation of the threat during the designing of the interactive electronic signing schemes with consistence of the national cryptographic standards. Moreover, several arrangement schemes of interactive electronic signing are discussed.

Key words: interactive electronic signing; domestic cryptographic algorithm; national standard

1 引言

交互型电子签名是一种与密码载体紧密结合的密码算法应用,有助于阻止攻击者通过劫持主机控制签名密钥载体,冒用合法用户身份计算电子签名或篡改待签数据。随着金融行业标准JR/T 0068-2012《网上银行系统信息安全通用规范》[1]的发布实施,交互型电子签名在我国的网上银行得到广泛应用。然而,目前JR/T 0068-2012并未对网上银行应用的交互型电子签名进行具体的、成体系的规定,实际应用中的交互型电子签名方案缺乏有针对性的规范和指引,客观上存在良莠不齐的情况。

随着一系列密码行业标准及国家标准的发布实施,标准化的国密算法应用体系初步成型。这些标准包括技术标准、接口标准、测试标准、管理标准等多种类型,对各种密码设施及其应用、检测等进行了细致全面的规定。在标准化的国密算法应用体系框架下研发支持国密算法的交互型电子签名方案并部署实施,不仅为网上银行提供自主可控的体系化密码技术应用支撑,对于包括密码技术在内的自主可控网络空间安全保障体系在国家关键信息基础设施的应用也具有示范作用。

2 交互型电子签名概述

参照《电子签名法》,本文对交互型电子签名的定义为“使用电子签名制作数据载体,经电子签名人交互确认后签署电子签名的行为”。该定义使用了《电子签名法》中的若干概念:电子签名人,是指持有电子签名制作数据并以本人身份或者以其所代表的人的名义实施电子签名的人;电子签名制作数据,是指在电子签名过程中使用的,将电子签名与电子签名人可靠地联系起来的字符、编码等数据。

交互型电子签名在国内网上银行得到广泛应用,得益于JR/T 0068-2012规定,“资金类交易中,应具有防范客户端数据被篡改的机制,应由客户确认资金类交易关键数据(至少包含转入账号和交易金额),并采取有效确认方式以保证待确认的信息不被篡改,例如……在USB Key内完成确认等”。除此之外,JR/T 0068-2012还包括了“USB Key应能够自动识别待签名数据的格式,识别后在屏幕上显示或语音提示交易数据,保证屏幕显示或语音提示的内容与USB Key签名的数据一致”等规定。为了符合金融行业标准的规定,应用于网上银行的交互型电子签名还具有输出交易信息供用户复核的特征,因此也被稱作“复核签名”。国际方面,在FIDO[2,3]的应用场景中,生成电子签名前用户应与签名设备进行交互确认,因此也属于本文定义的交互型电子签名应用范围。FIDO是一种用于互联网服务的身份鉴别框架,包含两个子规范:UAF(Universal Authentication Framework,通用认证框架)和U2F(Universal Second Factor,通用第二因子)。其中,FIDO U2F基于专用设备(属于智能密码钥匙范畴),对现有使用“用户名/口令”体制的互联网服务提供基于数字签名的双因子身份鉴别服务。生成数字签名时,用户需要按下设备上的按键;FIDO UAF同样提供基于数字签名的身份鉴别机制,在此基础上允许用户使用智能移动终端的本地身份鉴别功能(如指纹、虹膜、声纹等)代替互联网服务的“用户名/密码”机制,以此实现“无口令”的用户体验。目前,参照FIDO的密码行业标准制订项目已经获批。

文献[4]是率先使用“交互型”这一用词的论文之一。除此之外,还有若干讨论交互型电子签名相关问题的论文[5-7],讨论复核签名相关问题的文献[8-10],以及公开的交互型电子签名技术方案[11-13],等。

支持国密算法的交互型电子签名有几个基本特征。

第一,包括触发、交互、计算三个过程。“触发”指的是JR/T 0068-2012条文中的 “自动识别待签名数据的格式”;“交互”指的是“未经按键确认,不得签名和输出”;“计算”指的是生成电子签名。

第二,基于具备相应功能的终端设备。为了符合JR/T 0068-2012“在USB Key内完成确认”的规定,触发、交互、计算三个过程应由同一个终端设备完成,并采取安全措施避免拆解导致的安全风险。

第三,所生成的电子签名符合国家主管部门的要求。根据JR/T 0068-2012的规定,USB Key使用的密码算法应经过国家主管部门认定。尽管在计算电子签名时要求与用户交互,但只起到类似“开关”的作用,不改变电子签名算法及其实现。交互型电子签名是一种新的生成电子签名的过程,而不是一种新的生成电子签名的算法。

相对于一般的电子签名,交互型电子签名在生成电子签名的过程中增加了交互确认的环节,有助于确证“签署时电子签名制作数据仅由电子签名人控制”,使得交互型电子签名的结果成为法律意义上的“可靠的电子签名”。在实际的复核签名应用中,这一效果被称作“所见即所签”。相应地,交互型电子签名特有的安全威胁是使其失效,即无法确证“签署时电子签名制作数据仅由电子签名人控制”。例如,如果交互型电子签名生成的签名结果与一般电子签名的签名结果相同,将导致无法确定该结果的生成过程。而对于“所见即所签”的复核签名,如果存在签名结果相同而复核信息不同的情况,则即使能够确定生成签名时经过用户确认,但无法确定用户确认时所依据的复核信息,同样将导致其失效。在实际应用中,交互型电子签名特有的安全威胁被称作“骗签”。是否存在骗签隐患或漏洞,是评价交互型电子签名方案的重点之一。

3 支持国密算法的交互型电子签名分析

3.1 交互型电子签名的形式化描述

文献[13]利用形式化方法对交互型电子签名方案设计的理论框架进行了探索,提出了交互型电子签名的形式化模型,以此为基础给出了骗签问题的形式化描述,提出交互型电子签名方案的基本设计思路与评价方法等。然而,文献[13]提出的基于形式化方法的骗签问题及其解决思路的描述不够严谨。本文对该模型进行微调,以适配国密算法。

电子签名的生成过程是一个从消息到签名值的映射,包含预处理和密码运算两个子映射。将待签名消息记作m,签名值记作s,密钥记作k,预处理记作h,密码运算记作c,则电子签名过程可以形式化地表述为:

实际的电子签名系统可以支持多种预处理方式、多种密码运算方式(即算法)或多个(种)密钥。因此,实际的电子签名系统可以表示为三元组 。其中C是算法(即密码运算函数)的集合,H是预处理映射的集合,K是密钥的集合。实际的电子签名系统对消息m生成的可能的签名结果是一个集合。表达为:

(1)

当前标准化国密算法应用体系中,有两种可用于电子签名的非对称密码算法,分别是SM2算法[14]和SM9算法[15]。需要指出的是,无论是SM2算法还是SM9算法,签名过程均有随机数的参与。这意味着对于支持SM2或SM9算法的电子签名系统,即使只有一种算法、一个密钥,该系统对消息m生成的可能的签名结果仍然是一个集合。

将m的可能值构成的集合记作M,电子签名系统生成的签名值集合可形式化地表达为:

(2)

将待签消息记作m,电子签名记作s,则电子签名的验证过程是从二元组(m,s)到集合{0,1}的映射,可以形式化地表达为:

(3)

1表示被验证方接受,0表示不被接受。

交互型电子签名在生成电子签名的过程中增加交互过程,签名算法、待签消息、签名密钥等参数的变化与交互过程相独立,而交互型电子签名的验签过程与交互过程无关。因此,交互型电子签名适用上述形式化描述。

3.2 骗签问题的形式化分析

对于交互型电子签名,待签的消息可分为“需要进行交互型电子签名”(触发交互)和“不需要进行交互型电子签名”两类。因此,对于交互型电子签名系统,待签消息集合M可表示为:

(4)

其中是能够触发交互的消息集合,是其补集。在形式化视角下,交互型电子签名系统的骗签问题表示为:

若且满足使得,则存在骗签隐患;若对特定的,且满足使得,则存在骗签漏洞。

更具体地,若,对应着利用一般电子签名仿冒交互型电子签名的情况;若,对于复核签名意味着可能存在签名结果相同而复核信息不同的情况(即“所见非所签”)。

为验证上述結论,对一种基于SM2算法的复核签名方案进行分析。在该方案中,从待签报文中提取复核信息,待用户确认后将复核信息与待签报文拼接,对拼接后的数据依SM2算法标准计算电子签名;否则,对待签报文依SM2算法计算电子签名。分析如下:

根据GM/T 0009-2012[16]的规定,SM2签名的预处理过程表示为H=SM3(Z||M)。其中H为预处理结果,SM3()表示SM3杂凑运算,“||”表示拼接,M为待签消息,Z为对使用签名方的用户身份标识和签名方公钥依序拼接后进行SM3杂凑运算得到的值(在签名方密钥对等参数不变的前提下,可以将Z按固定值处理)。

将消息m中可能存在的复核信息记为Ma。不难理解,若,则。上述复核签名方案的预处理过程可以形式化地表示为:

(5)

将的可能取值集合记作,显然。构造集合:

(6)

则有

(7)

若能够构造满足

且 (8)

(9)

即使得。

由上述分析可知,在该方案中,一旦对触发复核签名(交互型电子签名)的消息范围定义(例如复核签名报文格式规则)的设计或实现存在漏洞,有可能在不触发交互型电子签名的前提下得到交互型电子签名结果。因此,该方案可能存在骗签隐患。

为避免出现骗签隐患或漏洞,尽量降低由此带来的风险,交互型电子签名方案的设计和实现应关注几个重点。

(1)对触发交互型电子签名的消息范围定义:设计逻辑完备的报文格式规则定义并实现,避免出现二义性或者逻辑漏洞,防止在判断是否触发交互型电子签名时出现误判。

(2)交互型电子签名和一般电子签名的生成方法:两类电子签名使用不同的生成方法,即使在判断是否触发交互型电子签名时出现误判,在验证签名阶段也能够准确无误地判断出待验证签名的实际生成过程是否包含交互过程,从而避免交互型电子签名系统(设备)的潜在风险扩散到上层应用。

4 标准化国密算法应用体系下的交互型电子签名

文献[10]基于双签名证书(双签名密钥)的技术路线,设计了包括证书签发、签名计算、签名验证在内的较为完整的带复核的电子签名方案,通过交互型电子签名和一般电子签名使用不同的签名密钥的方法,实现了交互型电子签名和一般电子签名的“隔离”,从而降低了骗签问题带来的风险。然而,GM/T 0034-2014[17]规定,“证书认证系统采用双证书机制。每个用户拥有两张数字证书,一张用于数字签名,另一张用于数据加密”,且相关规定将在对对现行国家标准GB/T 25056-2010《信息安全技术 证书认证系统密码及其相关安全技术规范》的修订过程中纳入国家标准。

为妥善处理双签名证书路线与双证书机制的冲突,结合当前的密码标准体系以及计划中的制标项目,有几个解决方案。

“PKI+PKI”:在文献[10]所述的证书管理端部署两套证书认证系统。用户在两套证书认证中心分别拥有两张签名数字证书,以此来回避双签名证书路线与GM/T 0034-2014的冲突。进一步地,还可以其中签名交互型电子签名专用证书的CA配置成原有证书认证CA的子CA。

“PKI+FIDO”:在文献[10]所述的证书管理端部署证书认证系统和FIDO服务器(应符合未来发布的参照FIDO制订的密码行业标准的规定)。用户使用证书认证中心签发的证书进行一般签名,用注册到FIDO服务器的签名密钥进行交互型电子签名。此架构下用户只需持有一张签名证书,符合GM/T 0034-2014的规定。

“SM2+SM9”:SM2算法的密钥格式与SM9算法不兼容,这意味着如果同时支持SM2算法和SM9算法的话,必然存在两个签名密钥对。在文献[10]所述的证书管理端部署证书认证系统和SM9密钥/证书管理中心(应符合未来发布的关于SM9算法应用的密码行业标准的规定),用户在两套认证系统中分别持有一张签名证书,从而回避与GM/T 0034-2014的冲突。

上述方案均体现了“对扩展开放,对修改关闭”的设计原则,能够复用现有的证书认证系统。这也意味着,当前应用于证书认证系统的一系列密码标准,参见表1,将随着交互型电子签名的应用得到普及推广,从而对标准化国密算法应用体系在金融等关键信息基础设施的应用起到积极作用。

5 结束语

交互型电子签名在最初诞生时仅限于“USB Key+按键”,但随着应用的普及和研究的深入,有望成为带动标准化国密算法应用体系乃至自主可控密码技术在关键信息基础设施普及推广的抓手。接下来的工作是基于本文的研究成果推动交互型电子签名纳入标准化国密算法应用体系,结合标准制订、原型系统开发、应用试点等多方面的工作,努力促成基于标准化国密算法应用体系的交互型电子签名方案尽快落地。

参考文献

[1] JR/T 0068-2012,网上银行系统信息安全通用规范[S].

[2] FIDO Alliance. FIDO UAF Architectural Overview[EB/OL]. FIDO Alliance,2017. https://fidoalliance.org/specs/fido-uaf-v1.1-id-20170202/fido-uaf-protocol-v1.1-id-20170202.html.

[3] FIDO Alliance. Universal 2nd Factor (U2F) Overview[EB/OL]. FIDO Alliance,2016. https://fidoalliance.org/specs/fido-u2f-v1.1-id-20160915/fido-u2f-overview-v1.1-v1.1-id-20160915.html.

[4] 李偉,于华章,朱鹏飞.一种交互型USB Key方案[C].第18届全国信息安全保密学术会议,三亚,2008:378-383.

[5] 盛国栋.现有电子交易系统的安全缺陷及其对策研究[J].政法学刊,2008,25(1):122-124.

[6] 何永福.应用于网上银行增强型USB Key的设计探讨[J].计算机安全,2010,4:75-77.

[7] 朱鹏飞,张利琴,李伟,等.交互型电子签名的形式化分析[J].信息网络安全,2016(9):31-34.

[8] 飞天诚信科技有限公司.复核型USB Key与普通USB Key的混合应用探讨[J].保密科学技术,2011,3:13-15.

[9] 于华章.复核混合型USB Key的设计及实现[D].北京:中国科学院研究生院,2011.

[10] 朱鹏飞,李伟,张利琴,等.自主标准化密码应用体系下带复核的电子签名方案设计[C].第30次全国计算机安全学术交流会议,重庆:2015,93-96.

[11] 北京握奇数据系统有限公司.一种物理认证方法及一种电子装置[P].中国:ZL200510135007.5,2005.9.23.

[12] 坚石诚信科技有限公司.签名设备及其操作指令执行方法[P].中国:ZL200910089302.X,2009.7.14.

[13] 飞天诚信科技股份有限公司.一种交易报文的处理方法、设备和系统[P].中国:ZL 201010580896.7,2010.12.3.

[14] GB/T 32918.2-2016,信息安全技术 SM2椭圆曲线公钥密码算法 第2部分:数字签名算法[S].

[15] GM/T 0044.2-2016,SM9标识密码算法 第2部分:数字签名算法[S].

[16] GM/T 0009-2012,SM2密码算法使用规范[S].

[17] GM/T 0034-2014,基于SM2密码算法的证书认证系统密码及其相关安全技术规范[S].