[黎艷 張榮]
基于用戶卡的數(shù)字簽名技術(shù)研究
[黎艷 張榮]
在介紹了數(shù)字簽名技術(shù)及相關(guān)算法的基礎(chǔ)上,重點分析了與數(shù)字簽名相關(guān)的智能卡關(guān)鍵技術(shù)的發(fā)展,并給出了基于用戶卡的數(shù)字簽名實現(xiàn)方案及其應(yīng)用場景示例。
數(shù)字簽名 智能卡 機(jī)卡通信
黎艷
工程師,中國電信股份有限公司廣東研究院,主要從事移動互聯(lián)網(wǎng)安全技術(shù)研究與產(chǎn)品開發(fā)。
張榮
高工,中國電信股份有限公司廣東研究院,主要從事移動互聯(lián)網(wǎng)新技術(shù)與業(yè)務(wù)、智能管道等研究。
隨著互聯(lián)網(wǎng)/移動互聯(lián)網(wǎng)的發(fā)展,各行各業(yè)都發(fā)生了翻天覆地的變化,人們對互聯(lián)網(wǎng)的要求和依賴也越來越多,過去需要人工完成關(guān)鍵交易簽名或印章的業(yè)務(wù)逐漸被電子簽名所代替?;赑KI(Public Key Infrastructure)公鑰體系的數(shù)字簽名技術(shù)已經(jīng)廣泛應(yīng)用在電子金融、安全辦公、政企商務(wù)等行業(yè)領(lǐng)域。數(shù)字簽名密鑰和證書載體也隨著智能硬件技術(shù)的發(fā)展在不斷變化,從最開始的個人電腦硬盤到USB密鑰棒、加密SD卡以及智能卡等。多功能通用智能卡技術(shù)的發(fā)展,使得數(shù)字簽名技術(shù)可以與安全便攜的用戶手機(jī)卡相結(jié)合。本文從多功能通用用戶卡的角度,闡述數(shù)字簽名在用戶卡上的技術(shù)發(fā)展,并提出合理可行的實現(xiàn)方案。
2.1 非對稱加解密技術(shù)
與對稱加密技術(shù)不同,非對稱加密技術(shù)需要一對密鑰來進(jìn)行加密和解密,分別是公開密鑰(Public Key,簡稱公鑰)和私有密鑰(Private Key,簡稱私鑰)。如果使用了公鑰對數(shù)據(jù)進(jìn)行加密,那么只有用對應(yīng)的私鑰才能解密,如果用私鑰對數(shù)據(jù)進(jìn)行加密,那么只有用對應(yīng)的公鑰才能解密。
在非對稱加密技術(shù)里面,私鑰是不公開的,由簽名方獨自持有和保管,公鑰是公開可對外傳播的,如果公鑰可以成功解密(驗簽),那么數(shù)據(jù)的加密方一定是持有對應(yīng)私鑰的,從而可以準(zhǔn)確地進(jìn)行交易溯源。數(shù)字證書則是由證書認(rèn)證機(jī)構(gòu)(CA)對證書申請者真實身份驗證之后,用CA的根證書對申請人的一些基本信息以及申請人的公鑰進(jìn)行簽名后形成的數(shù)字文件,可以把數(shù)字證書理解成經(jīng)過CA認(rèn)證過的公鑰,數(shù)字證書和公鑰都是公開的。
數(shù)字簽名的簽名和驗簽過程如圖1。
圖1 數(shù)字簽名過程
數(shù)字簽名的簽名和驗簽主要步驟如下:
(1)待簽數(shù)據(jù)明文經(jīng)過哈希算法之后得到定長的摘要信息;
(2)持有私鑰的用戶使用簽名私鑰對摘要數(shù)據(jù)進(jìn)行數(shù)字簽名,得到簽名結(jié)果的密文;
(3)驗簽后臺獲取該用戶的簽名證書,提取其中的公鑰信息,對傳遞過來的簽名結(jié)果密文進(jìn)行公鑰解密(驗簽);
(4)公鑰解密(驗簽)之后得到簽名數(shù)據(jù)摘要。驗簽后臺也對同樣的待簽數(shù)據(jù)明文進(jìn)行哈希計算摘要數(shù)據(jù),對比計算出來的摘要數(shù)據(jù)與驗簽之后的摘要數(shù)據(jù)是否一致,如果一致則表明這個數(shù)字簽名確實來自于簽名私鑰的持有方(用戶、簽名發(fā)送方)。
2.2 數(shù)字簽名相關(guān)算法
(1)摘要算法
算法(又叫雜湊算法、哈希算法、散列算法)可以對任意長度的數(shù)據(jù)進(jìn)行散列運算,生成固定長度的摘要值,當(dāng)原數(shù)據(jù)發(fā)生改動時,所得到的摘要值就會發(fā)生變化,由于散列運算多對一的關(guān)系,很多不同的數(shù)據(jù)經(jīng)過散列運算變換之后也有可能是相同的,所以散列運算是不可逆的。使用摘要算法可以讓大容量信息在進(jìn)行數(shù)字簽名前被散列成定長的保密的格式,而且確保信息傳輸完整性。常見的摘要算法有MD5和SHA-1、SHA-2、SM3,其中SM3是我國特有的國密摘要算法。表1是各種主流摘要算法的對比:
表1 摘要算法對比
(2)非對稱加密算法
除了消息摘要算法,基于公鑰密碼系統(tǒng)的非對稱加密算法也是數(shù)字簽名技術(shù)里必不可少的。非對稱加密算法的密鑰值在同一個過程中生成,稱為公私鑰密鑰對。常見的非對稱加密算法有RSA和ECC,我國特有的國密非對稱算法是SM2。表2是以上3種非對稱加密算法的對比。
表2 非對稱加密算法對比
2.3 數(shù)字簽名應(yīng)用領(lǐng)域
(1)鑒權(quán)
公鑰加密系統(tǒng)允許任何人在發(fā)送信息時使用公鑰進(jìn)行加密;數(shù)字簽名則能夠讓信息接收者確認(rèn)發(fā)送者的身份。
(2)完整性
傳輸數(shù)據(jù)的雙方都總希望確認(rèn)消息未在傳輸?shù)倪^程中被修改。加密使得第三方想要讀取數(shù)據(jù)十分困難,然而第三方仍然能采取可行的方法在傳輸?shù)倪^程中修改數(shù)據(jù)。數(shù)字簽名能確保消息的完整性。因為數(shù)字簽名文件如果發(fā)生改變,數(shù)字摘要值也將發(fā)生變化。
(3)防抵賴
在密文背景下,抵賴這個詞指的是不承認(rèn)與消息有關(guān)的舉動(即聲稱消息來自第三方)。消息的接收方可以出示數(shù)字簽名來證明信息的來源,防止所有后續(xù)的抵賴行為。
數(shù)字簽名廣泛應(yīng)用于包括電子商務(wù)、企業(yè)信息系統(tǒng)、政府及金融保險行業(yè)等方面。尤其是在金融行業(yè)的應(yīng)用,交易額大、安全性要求高的交易必須使用數(shù)字簽名進(jìn)行公證、可信的認(rèn)證。隨著我國《電子簽名法》的實施和推廣,電子商務(wù)和電子政務(wù)將會持續(xù)推動數(shù)字簽名的應(yīng)用。
3.1 密鑰載體的發(fā)展
目前,在PC端網(wǎng)絡(luò)應(yīng)用環(huán)境下,USB Key簽名認(rèn)證技術(shù)已經(jīng)相當(dāng)成熟,將簽名密鑰和加解密密鑰存儲在USB棒等硬件載體里,可以更安全地保障用戶的密鑰安全。隨著移動智能終端的快速發(fā)展和移動互聯(lián)網(wǎng)的普及,數(shù)字簽名技術(shù)對密鑰載體提出了新的需求,原有在PC端普遍應(yīng)用的USB Key或者在手機(jī)終端上使用加密SD卡方式在便攜性、易用性和兼容性方面已經(jīng)不再適應(yīng)移動互聯(lián)網(wǎng)業(yè)務(wù)的發(fā)展需求。
隨著智能卡技術(shù)的發(fā)展,多功能通用JAVA SIM卡增加了獨立的RSA或國密算法的硬件協(xié)處理器,使得運算速度和性能都有很大提升;卡片的可存儲空間可以達(dá)到幾百K以上,為多對密鑰對的存儲提供了條件;而對GlobalPlatform規(guī)范的支持使得卡片在訪問控制、文件保護(hù)等方面的鑒權(quán)能力也得到了極大的提高,可以防止攻擊者利用軟件方式竊取卡內(nèi)的機(jī)密信息。基于JAVA通用平臺使得可以很靈活地在卡內(nèi)安裝各種卡應(yīng)用。多功能通用智能JAVA手機(jī)卡具有安全、通用和便捷的特點,是存儲密鑰和數(shù)字證書的理想介質(zhì)。
3.2 智能卡通信技術(shù)發(fā)展
隨著智能卡技術(shù)的發(fā)展,硬件上智能卡的芯片計算能力大大增強(qiáng),軟件上通用java平臺和虛擬機(jī)技術(shù)使得可以在卡上開發(fā)多個通用程序包。GP(Global Platform)規(guī)范更是解決了應(yīng)用權(quán)限管理機(jī)制、安全域安全策略、卡片生命周期管理等關(guān)鍵問題。在數(shù)字簽名技術(shù)要求的角度,智能卡硬件上增加的RSA協(xié)處理器,終端與SWP卡之間的機(jī)卡通信技術(shù),以及Global Platform卡應(yīng)用訪問控制技術(shù),使得在智能卡上實現(xiàn)快速安全的數(shù)字簽名能力成為可能。
(1)Open Mobile API機(jī)卡通信技術(shù)
根據(jù)不同的底層平臺(如Android、J2ME),SIM/ SE訪問API(SIM/Secure Element Access API)向客戶端應(yīng)用程序提供訪問SWP-SIM卡的接口(如Android系統(tǒng)的Open Mobile API和J2ME下的JSR177),實現(xiàn)客戶端應(yīng)用程序與SWP-SIM卡之間的應(yīng)用協(xié)議數(shù)據(jù)單元交互。如圖2,終端應(yīng)用可以通過Open Mobile API接口與卡內(nèi)的JAVA應(yīng)用進(jìn)行通信交互。
圖2 OMA機(jī)卡接口
(2)應(yīng)用訪問控制技術(shù)
安全訪問控制主要采取Global Platform可信任框架的GPAC(Global Platform Access Control,全局平臺訪問控制)機(jī)制。GPAC由手機(jī)側(cè)訪問控制模塊和用戶卡中的規(guī)則文件構(gòu)成。訪問控制規(guī)則存儲在SIM卡中,手機(jī)終端操作系統(tǒng)依據(jù)SIM卡訪問控制規(guī)則,允許或者拒絕哪些客戶端應(yīng)用可以訪問哪個(或哪些)SIM卡應(yīng)用,也可以定義允許訪問的具體APDU指令。通過GPAC訪問控制技術(shù),可以嚴(yán)格控制應(yīng)用控件訪問用戶卡應(yīng)用的權(quán)限,使得指定應(yīng)用才有權(quán)限訪問數(shù)字簽名應(yīng)用,充分保證卡內(nèi)數(shù)據(jù)的安全。
4.1 系統(tǒng)架構(gòu)
圖3為基于用戶卡的數(shù)字簽名系統(tǒng)架構(gòu)與實施方案,主要功能模塊如下:
(1)數(shù)字簽名卡應(yīng)用:具備證書管理、數(shù)字簽名、非對稱加解密、密鑰管理、認(rèn)證信息交互等能力;
圖3 用戶卡數(shù)字簽名系統(tǒng)架構(gòu)
(2)PKI安全插件:適配機(jī)卡通道和短信通道,手機(jī)客戶端應(yīng)用可以通過調(diào)用PKI安全插件,將待簽名數(shù)據(jù)通過插件傳給用戶卡,實現(xiàn)用戶卡PKI數(shù)字簽名能力調(diào)用;
(3)PKI認(rèn)證平臺:處理PKI加密短信,向CA機(jī)構(gòu)申請公鑰證書,驗證數(shù)字簽名等。
4.2 業(yè)務(wù)場景及流程
在用戶卡內(nèi)進(jìn)行數(shù)字簽名的流程如圖4。
圖4 用戶卡數(shù)字簽名流程
數(shù)字簽名主要流程如下:
(1)如果移動終端是支持OMA機(jī)卡通道
① 應(yīng)用客戶端則通過機(jī)卡接口向數(shù)字簽名PKI卡應(yīng)用發(fā)送待簽名數(shù)據(jù);
② 卡應(yīng)用校驗用戶個人碼之后使用卡內(nèi)存儲的私鑰進(jìn)行簽名,并向應(yīng)用客戶端返回簽名結(jié)果;
(2)如果移動終端不支持OMA機(jī)卡通道
① 通過認(rèn)證平臺向卡片下發(fā)數(shù)字簽名指令短信;
② 卡片接收到短信之后彈出UTK窗口校驗用戶個人碼,使用卡內(nèi)私鑰進(jìn)行簽名,并向認(rèn)證平臺返回簽名結(jié)果上行短信。
本方案支持各種應(yīng)用客戶端的融合認(rèn)證,除了可以用于移動終端應(yīng)用之外,還可以用于PC或TV應(yīng)用,以用戶在PC應(yīng)用上的數(shù)字簽名場景為例,如圖5。
圖5 PC應(yīng)用場景的用戶卡數(shù)字簽名
智能卡和智能終端技術(shù)的發(fā)展使得在用戶卡上實現(xiàn)數(shù)字簽名技術(shù)能力成為可能。這種技術(shù)具有安全、便捷的特點,而且適用于多種終端(如手機(jī)APP、PC APP等)的應(yīng)用場景。隨著互聯(lián)網(wǎng)+的蓬勃發(fā)展以及人們對安全隱私保護(hù)意識的增強(qiáng),基于用戶卡的數(shù)字簽名技術(shù)將是實現(xiàn)安全移動身份認(rèn)證比較好解決方案選擇,在當(dāng)前各行各業(yè)進(jìn)行互聯(lián)網(wǎng)化轉(zhuǎn)型升級過程中具有廣闊的應(yīng)用前景。
1 胡博,嚴(yán)斌峰,仇劍書等.基于SIM卡的金融應(yīng)用移動數(shù)字簽名業(yè)務(wù)研究.電信科學(xué),2015,157:1-6
10.3969/j.issn.1006-6403.2016.11.017
(2016-11-08)