朱鵬飛 張利琴 李偉 于華章
摘 要:論文介紹了交互型電子簽名的發展概況,給出了交互型電子簽名的定義,對交互型電子簽名特有的騙簽問題進行了形式化分析,基于分析結論提出了在設計和實現交互型電子簽名過程中降低騙簽風險的關鍵點,提出了若干在標準化國密算法應用體系下交互型電子簽名的實施方案,指出交互型電子簽名對于自主可控密碼技術用于網絡空間安全保障的意義。
關鍵詞:交互型電子簽名;國密算法;密碼標準
中圖分類號: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].