朱鵬飛 張利琴 李偉 于華章
摘 要:論文介紹了交互型電子簽名的發(fā)展概況,給出了交互型電子簽名的定義,對(duì)交互型電子簽名特有的騙簽問題進(jìn)行了形式化分析,基于分析結(jié)論提出了在設(shè)計(jì)和實(shí)現(xiàn)交互型電子簽名過(guò)程中降低騙簽風(fēng)險(xiǎn)的關(guān)鍵點(diǎn),提出了若干在標(biāo)準(zhǔn)化國(guó)密算法應(yīng)用體系下交互型電子簽名的實(shí)施方案,指出交互型電子簽名對(duì)于自主可控密碼技術(shù)用于網(wǎng)絡(luò)空間安全保障的意義。
關(guān)鍵詞:交互型電子簽名;國(guó)密算法;密碼標(biāo)準(zhǔn)
中圖分類號(hào):TP309 文獻(xiàn)標(biāo)識(shí)碼: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 引言
交互型電子簽名是一種與密碼載體緊密結(jié)合的密碼算法應(yīng)用,有助于阻止攻擊者通過(guò)劫持主機(jī)控制簽名密鑰載體,冒用合法用戶身份計(jì)算電子簽名或篡改待簽數(shù)據(jù)。隨著金融行業(yè)標(biāo)準(zhǔn)JR/T 0068-2012《網(wǎng)上銀行系統(tǒng)信息安全通用規(guī)范》[1]的發(fā)布實(shí)施,交互型電子簽名在我國(guó)的網(wǎng)上銀行得到廣泛應(yīng)用。然而,目前JR/T 0068-2012并未對(duì)網(wǎng)上銀行應(yīng)用的交互型電子簽名進(jìn)行具體的、成體系的規(guī)定,實(shí)際應(yīng)用中的交互型電子簽名方案缺乏有針對(duì)性的規(guī)范和指引,客觀上存在良莠不齊的情況。
隨著一系列密碼行業(yè)標(biāo)準(zhǔn)及國(guó)家標(biāo)準(zhǔn)的發(fā)布實(shí)施,標(biāo)準(zhǔn)化的國(guó)密算法應(yīng)用體系初步成型。這些標(biāo)準(zhǔn)包括技術(shù)標(biāo)準(zhǔn)、接口標(biāo)準(zhǔn)、測(cè)試標(biāo)準(zhǔn)、管理標(biāo)準(zhǔn)等多種類型,對(duì)各種密碼設(shè)施及其應(yīng)用、檢測(cè)等進(jìn)行了細(xì)致全面的規(guī)定。在標(biāo)準(zhǔn)化的國(guó)密算法應(yīng)用體系框架下研發(fā)支持國(guó)密算法的交互型電子簽名方案并部署實(shí)施,不僅為網(wǎng)上銀行提供自主可控的體系化密碼技術(shù)應(yīng)用支撐,對(duì)于包括密碼技術(shù)在內(nèi)的自主可控網(wǎng)絡(luò)空間安全保障體系在國(guó)家關(guān)鍵信息基礎(chǔ)設(shè)施的應(yīng)用也具有示范作用。
2 交互型電子簽名概述
參照《電子簽名法》,本文對(duì)交互型電子簽名的定義為“使用電子簽名制作數(shù)據(jù)載體,經(jīng)電子簽名人交互確認(rèn)后簽署電子簽名的行為”。該定義使用了《電子簽名法》中的若干概念:電子簽名人,是指持有電子簽名制作數(shù)據(jù)并以本人身份或者以其所代表的人的名義實(shí)施電子簽名的人;電子簽名制作數(shù)據(jù),是指在電子簽名過(guò)程中使用的,將電子簽名與電子簽名人可靠地聯(lián)系起來(lái)的字符、編碼等數(shù)據(jù)。
交互型電子簽名在國(guó)內(nèi)網(wǎng)上銀行得到廣泛應(yīng)用,得益于JR/T 0068-2012規(guī)定,“資金類交易中,應(yīng)具有防范客戶端數(shù)據(jù)被篡改的機(jī)制,應(yīng)由客戶確認(rèn)資金類交易關(guān)鍵數(shù)據(jù)(至少包含轉(zhuǎn)入賬號(hào)和交易金額),并采取有效確認(rèn)方式以保證待確認(rèn)的信息不被篡改,例如……在USB Key內(nèi)完成確認(rèn)等”。除此之外,JR/T 0068-2012還包括了“USB Key應(yīng)能夠自動(dòng)識(shí)別待簽名數(shù)據(jù)的格式,識(shí)別后在屏幕上顯示或語(yǔ)音提示交易數(shù)據(jù),保證屏幕顯示或語(yǔ)音提示的內(nèi)容與USB Key簽名的數(shù)據(jù)一致”等規(guī)定。為了符合金融行業(yè)標(biāo)準(zhǔn)的規(guī)定,應(yīng)用于網(wǎng)上銀行的交互型電子簽名還具有輸出交易信息供用戶復(fù)核的特征,因此也被稱作“復(fù)核簽名”。國(guó)際方面,在FIDO[2,3]的應(yīng)用場(chǎng)景中,生成電子簽名前用戶應(yīng)與簽名設(shè)備進(jìn)行交互確認(rèn),因此也屬于本文定義的交互型電子簽名應(yīng)用范圍。FIDO是一種用于互聯(lián)網(wǎng)服務(wù)的身份鑒別框架,包含兩個(gè)子規(guī)范:UAF(Universal Authentication Framework,通用認(rèn)證框架)和U2F(Universal Second Factor,通用第二因子)。其中,F(xiàn)IDO U2F基于專用設(shè)備(屬于智能密碼鑰匙范疇),對(duì)現(xiàn)有使用“用戶名/口令”體制的互聯(lián)網(wǎng)服務(wù)提供基于數(shù)字簽名的雙因子身份鑒別服務(wù)。生成數(shù)字簽名時(shí),用戶需要按下設(shè)備上的按鍵;FIDO UAF同樣提供基于數(shù)字簽名的身份鑒別機(jī)制,在此基礎(chǔ)上允許用戶使用智能移動(dòng)終端的本地身份鑒別功能(如指紋、虹膜、聲紋等)代替互聯(lián)網(wǎng)服務(wù)的“用戶名/密碼”機(jī)制,以此實(shí)現(xiàn)“無(wú)口令”的用戶體驗(yàn)。目前,參照FIDO的密碼行業(yè)標(biāo)準(zhǔn)制訂項(xiàng)目已經(jīng)獲批。
文獻(xiàn)[4]是率先使用“交互型”這一用詞的論文之一。除此之外,還有若干討論交互型電子簽名相關(guān)問題的論文[5-7],討論復(fù)核簽名相關(guān)問題的文獻(xiàn)[8-10],以及公開的交互型電子簽名技術(shù)方案[11-13],等。
支持國(guó)密算法的交互型電子簽名有幾個(gè)基本特征。
第一,包括觸發(fā)、交互、計(jì)算三個(gè)過(guò)程?!坝|發(fā)”指的是JR/T 0068-2012條文中的 “自動(dòng)識(shí)別待簽名數(shù)據(jù)的格式”;“交互”指的是“未經(jīng)按鍵確認(rèn),不得簽名和輸出”;“計(jì)算”指的是生成電子簽名。
第二,基于具備相應(yīng)功能的終端設(shè)備。為了符合JR/T 0068-2012“在USB Key內(nèi)完成確認(rèn)”的規(guī)定,觸發(fā)、交互、計(jì)算三個(gè)過(guò)程應(yīng)由同一個(gè)終端設(shè)備完成,并采取安全措施避免拆解導(dǎo)致的安全風(fēng)險(xiǎn)。
第三,所生成的電子簽名符合國(guó)家主管部門的要求。根據(jù)JR/T 0068-2012的規(guī)定,USB Key使用的密碼算法應(yīng)經(jīng)過(guò)國(guó)家主管部門認(rèn)定。盡管在計(jì)算電子簽名時(shí)要求與用戶交互,但只起到類似“開關(guān)”的作用,不改變電子簽名算法及其實(shí)現(xiàn)。交互型電子簽名是一種新的生成電子簽名的過(guò)程,而不是一種新的生成電子簽名的算法。
相對(duì)于一般的電子簽名,交互型電子簽名在生成電子簽名的過(guò)程中增加了交互確認(rèn)的環(huán)節(jié),有助于確證“簽署時(shí)電子簽名制作數(shù)據(jù)僅由電子簽名人控制”,使得交互型電子簽名的結(jié)果成為法律意義上的“可靠的電子簽名”。在實(shí)際的復(fù)核簽名應(yīng)用中,這一效果被稱作“所見即所簽”。相應(yīng)地,交互型電子簽名特有的安全威脅是使其失效,即無(wú)法確證“簽署時(shí)電子簽名制作數(shù)據(jù)僅由電子簽名人控制”。例如,如果交互型電子簽名生成的簽名結(jié)果與一般電子簽名的簽名結(jié)果相同,將導(dǎo)致無(wú)法確定該結(jié)果的生成過(guò)程。而對(duì)于“所見即所簽”的復(fù)核簽名,如果存在簽名結(jié)果相同而復(fù)核信息不同的情況,則即使能夠確定生成簽名時(shí)經(jīng)過(guò)用戶確認(rèn),但無(wú)法確定用戶確認(rèn)時(shí)所依據(jù)的復(fù)核信息,同樣將導(dǎo)致其失效。在實(shí)際應(yīng)用中,交互型電子簽名特有的安全威脅被稱作“騙簽”。是否存在騙簽隱患或漏洞,是評(píng)價(jià)交互型電子簽名方案的重點(diǎn)之一。
3 支持國(guó)密算法的交互型電子簽名分析
3.1 交互型電子簽名的形式化描述
文獻(xiàn)[13]利用形式化方法對(duì)交互型電子簽名方案設(shè)計(jì)的理論框架進(jìn)行了探索,提出了交互型電子簽名的形式化模型,以此為基礎(chǔ)給出了騙簽問題的形式化描述,提出交互型電子簽名方案的基本設(shè)計(jì)思路與評(píng)價(jià)方法等。然而,文獻(xiàn)[13]提出的基于形式化方法的騙簽問題及其解決思路的描述不夠嚴(yán)謹(jǐn)。本文對(duì)該模型進(jìn)行微調(diào),以適配國(guó)密算法。
電子簽名的生成過(guò)程是一個(gè)從消息到簽名值的映射,包含預(yù)處理和密碼運(yùn)算兩個(gè)子映射。將待簽名消息記作m,簽名值記作s,密鑰記作k,預(yù)處理記作h,密碼運(yùn)算記作c,則電子簽名過(guò)程可以形式化地表述為:
。
實(shí)際的電子簽名系統(tǒng)可以支持多種預(yù)處理方式、多種密碼運(yùn)算方式(即算法)或多個(gè)(種)密鑰。因此,實(shí)際的電子簽名系統(tǒng)可以表示為三元組 。其中C是算法(即密碼運(yùn)算函數(shù))的集合,H是預(yù)處理映射的集合,K是密鑰的集合。實(shí)際的電子簽名系統(tǒng)對(duì)消息m生成的可能的簽名結(jié)果是一個(gè)集合。表達(dá)為:
(1)
當(dāng)前標(biāo)準(zhǔn)化國(guó)密算法應(yīng)用體系中,有兩種可用于電子簽名的非對(duì)稱密碼算法,分別是SM2算法[14]和SM9算法[15]。需要指出的是,無(wú)論是SM2算法還是SM9算法,簽名過(guò)程均有隨機(jī)數(shù)的參與。這意味著對(duì)于支持SM2或SM9算法的電子簽名系統(tǒng),即使只有一種算法、一個(gè)密鑰,該系統(tǒng)對(duì)消息m生成的可能的簽名結(jié)果仍然是一個(gè)集合。
將m的可能值構(gòu)成的集合記作M,電子簽名系統(tǒng)生成的簽名值集合可形式化地表達(dá)為:
(2)
將待簽消息記作m,電子簽名記作s,則電子簽名的驗(yàn)證過(guò)程是從二元組(m,s)到集合{0,1}的映射,可以形式化地表達(dá)為:
(3)
1表示被驗(yàn)證方接受,0表示不被接受。
交互型電子簽名在生成電子簽名的過(guò)程中增加交互過(guò)程,簽名算法、待簽消息、簽名密鑰等參數(shù)的變化與交互過(guò)程相獨(dú)立,而交互型電子簽名的驗(yàn)簽過(guò)程與交互過(guò)程無(wú)關(guān)。因此,交互型電子簽名適用上述形式化描述。
3.2 騙簽問題的形式化分析
對(duì)于交互型電子簽名,待簽的消息可分為“需要進(jìn)行交互型電子簽名”(觸發(fā)交互)和“不需要進(jìn)行交互型電子簽名”兩類。因此,對(duì)于交互型電子簽名系統(tǒng),待簽消息集合M可表示為:
(4)
其中是能夠觸發(fā)交互的消息集合,是其補(bǔ)集。在形式化視角下,交互型電子簽名系統(tǒng)的騙簽問題表示為:
若且滿足使得,則存在騙簽隱患;若對(duì)特定的,且滿足使得,則存在騙簽漏洞。
更具體地,若,對(duì)應(yīng)著利用一般電子簽名仿冒交互型電子簽名的情況;若,對(duì)于復(fù)核簽名意味著可能存在簽名結(jié)果相同而復(fù)核信息不同的情況(即“所見非所簽”)。
為驗(yàn)證上述結(jié)論,對(duì)一種基于SM2算法的復(fù)核簽名方案進(jìn)行分析。在該方案中,從待簽報(bào)文中提取復(fù)核信息,待用戶確認(rèn)后將復(fù)核信息與待簽報(bào)文拼接,對(duì)拼接后的數(shù)據(jù)依SM2算法標(biāo)準(zhǔn)計(jì)算電子簽名;否則,對(duì)待簽報(bào)文依SM2算法計(jì)算電子簽名。分析如下:
根據(jù)GM/T 0009-2012[16]的規(guī)定,SM2簽名的預(yù)處理過(guò)程表示為H=SM3(Z||M)。其中H為預(yù)處理結(jié)果,SM3()表示SM3雜湊運(yùn)算,“||”表示拼接,M為待簽消息,Z為對(duì)使用簽名方的用戶身份標(biāo)識(shí)和簽名方公鑰依序拼接后進(jìn)行SM3雜湊運(yùn)算得到的值(在簽名方密鑰對(duì)等參數(shù)不變的前提下,可以將Z按固定值處理)。
將消息m中可能存在的復(fù)核信息記為Ma。不難理解,若,則。上述復(fù)核簽名方案的預(yù)處理過(guò)程可以形式化地表示為:
(5)
將的可能取值集合記作,顯然。構(gòu)造集合:
(6)
則有
(7)
若能夠構(gòu)造滿足
且 (8)
則
(9)
即使得。
由上述分析可知,在該方案中,一旦對(duì)觸發(fā)復(fù)核簽名(交互型電子簽名)的消息范圍定義(例如復(fù)核簽名報(bào)文格式規(guī)則)的設(shè)計(jì)或?qū)崿F(xiàn)存在漏洞,有可能在不觸發(fā)交互型電子簽名的前提下得到交互型電子簽名結(jié)果。因此,該方案可能存在騙簽隱患。
為避免出現(xiàn)騙簽隱患或漏洞,盡量降低由此帶來(lái)的風(fēng)險(xiǎn),交互型電子簽名方案的設(shè)計(jì)和實(shí)現(xiàn)應(yīng)關(guān)注幾個(gè)重點(diǎn)。
(1)對(duì)觸發(fā)交互型電子簽名的消息范圍定義:設(shè)計(jì)邏輯完備的報(bào)文格式規(guī)則定義并實(shí)現(xiàn),避免出現(xiàn)二義性或者邏輯漏洞,防止在判斷是否觸發(fā)交互型電子簽名時(shí)出現(xiàn)誤判。
(2)交互型電子簽名和一般電子簽名的生成方法:兩類電子簽名使用不同的生成方法,即使在判斷是否觸發(fā)交互型電子簽名時(shí)出現(xiàn)誤判,在驗(yàn)證簽名階段也能夠準(zhǔn)確無(wú)誤地判斷出待驗(yàn)證簽名的實(shí)際生成過(guò)程是否包含交互過(guò)程,從而避免交互型電子簽名系統(tǒng)(設(shè)備)的潛在風(fēng)險(xiǎn)擴(kuò)散到上層應(yīng)用。
4 標(biāo)準(zhǔn)化國(guó)密算法應(yīng)用體系下的交互型電子簽名
文獻(xiàn)[10]基于雙簽名證書(雙簽名密鑰)的技術(shù)路線,設(shè)計(jì)了包括證書簽發(fā)、簽名計(jì)算、簽名驗(yàn)證在內(nèi)的較為完整的帶復(fù)核的電子簽名方案,通過(guò)交互型電子簽名和一般電子簽名使用不同的簽名密鑰的方法,實(shí)現(xiàn)了交互型電子簽名和一般電子簽名的“隔離”,從而降低了騙簽問題帶來(lái)的風(fēng)險(xiǎn)。然而,GM/T 0034-2014[17]規(guī)定,“證書認(rèn)證系統(tǒng)采用雙證書機(jī)制。每個(gè)用戶擁有兩張數(shù)字證書,一張用于數(shù)字簽名,另一張用于數(shù)據(jù)加密”,且相關(guān)規(guī)定將在對(duì)對(duì)現(xiàn)行國(guó)家標(biāo)準(zhǔn)GB/T 25056-2010《信息安全技術(shù) 證書認(rèn)證系統(tǒng)密碼及其相關(guān)安全技術(shù)規(guī)范》的修訂過(guò)程中納入國(guó)家標(biāo)準(zhǔn)。
為妥善處理雙簽名證書路線與雙證書機(jī)制的沖突,結(jié)合當(dāng)前的密碼標(biāo)準(zhǔn)體系以及計(jì)劃中的制標(biāo)項(xiàng)目,有幾個(gè)解決方案。
“PKI+PKI”:在文獻(xiàn)[10]所述的證書管理端部署兩套證書認(rèn)證系統(tǒng)。用戶在兩套證書認(rèn)證中心分別擁有兩張簽名數(shù)字證書,以此來(lái)回避雙簽名證書路線與GM/T 0034-2014的沖突。進(jìn)一步地,還可以其中簽名交互型電子簽名專用證書的CA配置成原有證書認(rèn)證CA的子CA。
“PKI+FIDO”:在文獻(xiàn)[10]所述的證書管理端部署證書認(rèn)證系統(tǒng)和FIDO服務(wù)器(應(yīng)符合未來(lái)發(fā)布的參照FIDO制訂的密碼行業(yè)標(biāo)準(zhǔn)的規(guī)定)。用戶使用證書認(rèn)證中心簽發(fā)的證書進(jìn)行一般簽名,用注冊(cè)到FIDO服務(wù)器的簽名密鑰進(jìn)行交互型電子簽名。此架構(gòu)下用戶只需持有一張簽名證書,符合GM/T 0034-2014的規(guī)定。
“SM2+SM9”:SM2算法的密鑰格式與SM9算法不兼容,這意味著如果同時(shí)支持SM2算法和SM9算法的話,必然存在兩個(gè)簽名密鑰對(duì)。在文獻(xiàn)[10]所述的證書管理端部署證書認(rèn)證系統(tǒng)和SM9密鑰/證書管理中心(應(yīng)符合未來(lái)發(fā)布的關(guān)于SM9算法應(yīng)用的密碼行業(yè)標(biāo)準(zhǔn)的規(guī)定),用戶在兩套認(rèn)證系統(tǒng)中分別持有一張簽名證書,從而回避與GM/T 0034-2014的沖突。
上述方案均體現(xiàn)了“對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉”的設(shè)計(jì)原則,能夠復(fù)用現(xiàn)有的證書認(rèn)證系統(tǒng)。這也意味著,當(dāng)前應(yīng)用于證書認(rèn)證系統(tǒng)的一系列密碼標(biāo)準(zhǔn),參見表1,將隨著交互型電子簽名的應(yīng)用得到普及推廣,從而對(duì)標(biāo)準(zhǔn)化國(guó)密算法應(yīng)用體系在金融等關(guān)鍵信息基礎(chǔ)設(shè)施的應(yīng)用起到積極作用。
5 結(jié)束語(yǔ)
交互型電子簽名在最初誕生時(shí)僅限于“USB Key+按鍵”,但隨著應(yīng)用的普及和研究的深入,有望成為帶動(dòng)標(biāo)準(zhǔn)化國(guó)密算法應(yīng)用體系乃至自主可控密碼技術(shù)在關(guān)鍵信息基礎(chǔ)設(shè)施普及推廣的抓手。接下來(lái)的工作是基于本文的研究成果推動(dòng)交互型電子簽名納入標(biāo)準(zhǔn)化國(guó)密算法應(yīng)用體系,結(jié)合標(biāo)準(zhǔn)制訂、原型系統(tǒng)開發(fā)、應(yīng)用試點(diǎn)等多方面的工作,努力促成基于標(biāo)準(zhǔn)化國(guó)密算法應(yīng)用體系的交互型電子簽名方案盡快落地。
參考文獻(xiàn)
[1] JR/T 0068-2012,網(wǎng)上銀行系統(tǒng)信息安全通用規(guī)范[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屆全國(guó)信息安全保密學(xué)術(shù)會(huì)議,三亞,2008:378-383.
[5] 盛國(guó)棟.現(xiàn)有電子交易系統(tǒng)的安全缺陷及其對(duì)策研究[J].政法學(xué)刊,2008,25(1):122-124.
[6] 何永福.應(yīng)用于網(wǎng)上銀行增強(qiáng)型USB Key的設(shè)計(jì)探討[J].計(jì)算機(jī)安全,2010,4:75-77.
[7] 朱鵬飛,張利琴,李偉,等.交互型電子簽名的形式化分析[J].信息網(wǎng)絡(luò)安全,2016(9):31-34.
[8] 飛天誠(chéng)信科技有限公司.復(fù)核型USB Key與普通USB Key的混合應(yīng)用探討[J].保密科學(xué)技術(shù),2011,3:13-15.
[9] 于華章.復(fù)核混合型USB Key的設(shè)計(jì)及實(shí)現(xiàn)[D].北京:中國(guó)科學(xué)院研究生院,2011.
[10] 朱鵬飛,李偉,張利琴,等.自主標(biāo)準(zhǔn)化密碼應(yīng)用體系下帶復(fù)核的電子簽名方案設(shè)計(jì)[C].第30次全國(guó)計(jì)算機(jī)安全學(xué)術(shù)交流會(huì)議,重慶:2015,93-96.
[11] 北京握奇數(shù)據(jù)系統(tǒng)有限公司.一種物理認(rèn)證方法及一種電子裝置[P].中國(guó):ZL200510135007.5,2005.9.23.
[12] 堅(jiān)石誠(chéng)信科技有限公司.簽名設(shè)備及其操作指令執(zhí)行方法[P].中國(guó):ZL200910089302.X,2009.7.14.
[13] 飛天誠(chéng)信科技股份有限公司.一種交易報(bào)文的處理方法、設(shè)備和系統(tǒng)[P].中國(guó):ZL 201010580896.7,2010.12.3.
[14] GB/T 32918.2-2016,信息安全技術(shù) SM2橢圓曲線公鑰密碼算法 第2部分:數(shù)字簽名算法[S].
[15] GM/T 0044.2-2016,SM9標(biāo)識(shí)密碼算法 第2部分:數(shù)字簽名算法[S].
[16] GM/T 0009-2012,SM2密碼算法使用規(guī)范[S].
[17] GM/T 0034-2014,基于SM2密碼算法的證書認(rèn)證系統(tǒng)密碼及其相關(guān)安全技術(shù)規(guī)范[S].