陳子迪,龍毅宏
(武漢理工大學(xué)信息工程學(xué)院,湖北 武漢 430070)
IBE(Identity Based Encryption)密碼技術(shù)是一種公鑰加密技術(shù),該密碼技術(shù)避免了數(shù)字證書的使用,提高了數(shù)據(jù)加密的易用性和方便性[1]。在移動終端比如手機上使用公鑰密碼的私鑰包括IBE私鑰時,最重要的一點就是保障用戶私鑰存儲、使用的安全。保障用戶私鑰存儲、使用的安全,通常有兩種方法可采用:一是通過近場通信外接密碼裝置,如通過USB外接針對移動終端的USB Key,二是使用移動終端如手機本身自帶內(nèi)置的密碼芯片,用內(nèi)置的密碼芯片來存儲私鑰以及使用私鑰進行密碼運算。但是這兩種方法都存在明顯的缺陷,使用外接密碼裝置成本費用較高,而且用戶使用起來有較大的不便;而使用內(nèi)置密碼芯片,現(xiàn)在市面上除了極少部分要求實現(xiàn)特定密碼功能的手機外,絕大部分的手機都不自帶密碼芯片,并且目前不存在針對IBE密碼運算的手機密碼芯片。在這種情況下,目前最常用的方案是在手機上使用純軟件的密碼模塊,并將私鑰比如IBE私鑰存儲在手機的永久存儲介質(zhì)中。當手機應(yīng)用程序需要使用私鑰時,手機中的密碼模塊再將私鑰導(dǎo)入到內(nèi)存中進行密碼運算。但是這種純軟件的模式,由于將私鑰存儲在手機本地內(nèi)存中,存在著比較大的私鑰泄露的風(fēng)險。比如,攻擊者可以通過木馬攻擊手機,竊取在手機永久存儲介質(zhì)中的私鑰[2]。而且,這種純軟件模式在進行密碼運算時,私鑰是以明文的形式導(dǎo)入到內(nèi)存中使用的,這樣攻擊者可以通過一定的攻擊方式,竊取用戶存儲在內(nèi)存中的私鑰。對此,如何在采用純軟件模式的情況下,保證用戶安全無風(fēng)險的存儲私鑰以及使用私鑰進行密碼運算具有很好的實際應(yīng)用意義。
為了解決在用戶移動終端中安全存儲、使用私鑰的問題,本文設(shè)計了一種在iOS移動終端上利用秘密共享技術(shù)來安全存儲、使用IBE私鑰的IBE移動密碼系統(tǒng)[3-4]。
基于秘密共享的IBE移動密碼系統(tǒng)結(jié)構(gòu)如圖1所示,主要包括iOS移動終端,密鑰服務(wù)器,密碼服務(wù)器三部分[5]。
圖1 基于秘密共享的IBE密碼系統(tǒng)結(jié)構(gòu)圖Fig.1 Structure of IBE mobile system based on secret sharing
(1)iOS移動終端:用戶使用的iOS終端設(shè)備,其中的IBE密碼模塊負責(zé)完成IBE私鑰分割、存儲部分私鑰秘密份額、使用秘密份額進行密碼運算等功能。
(2)密鑰服務(wù)器:其中包括 IBE私鑰生成器(Private Key Generator,PKG),負責(zé)在線產(chǎn)生、返回IBE私鑰[6-7]。
(3)密碼服務(wù)器:在本系統(tǒng)中有1到n-1個密碼服務(wù)器,n≥2,用來存儲部分私鑰秘密份額以及使用私鑰秘密份額進行密碼運算,并向iOS移動終端返回密碼運算的結(jié)果。
本文設(shè)計的IBE移動密碼系統(tǒng)同時支持普通秘密共享方案和門限秘密共享方案,下面分別說明。
1.2.1 普通秘密共享方案
普通秘密共享即把IBE私鑰用特定算法分割成n份私鑰秘密份額,iOS移動終端保留一份私鑰秘密份額,其余n-1份分發(fā)到n-1個密碼服務(wù)器[8-9]。當應(yīng)用程序需要使用 IBE私鑰進行解密運算時,iOS移動終端中的密碼模塊一方面使用移動終端中的私鑰秘密份額進行密碼運算,另一方面從其他n-1個密碼服務(wù)器獲得使用相應(yīng)私鑰秘密份額進行密碼運算的結(jié)果,在獲得所有n份私鑰秘密份額進行密碼運算的結(jié)果后,移動終端中的密碼模塊才能通過密碼運算得到最后的密碼運算結(jié)果。少了這n份私鑰秘密份額密碼運算結(jié)果中的任意一份,密碼模塊都不能得到最終解密的結(jié)果[10]。
對IBE私鑰進行普通秘密共享或秘密分割,即選取d1,d2,…,dn(秘密份額),使得dID=d1+d2+…+dn,這里 QID是用戶標識映射的橢圓曲線點,dID=sQID是用戶標識對應(yīng)的IBE私鑰,具體可通過如下方式選取:
任意給定n-1個整數(shù)r1,r2,…,rn-1,得到d1=r1QID,d2= r2QID,dn-1= rn-1QID,dn=dID-( d1+d2+…+dn-1),其中 d1由移動終端保存,d2,…,dn由 n-1個密碼服務(wù)器保存使用;d1,d2,…,dn可以預(yù)先生成,也可以生成后多次使用超過一定次數(shù)或時間后更新。
IBE解密運算會涉及到配對運算e(dID,U),其中U是解密運算過程涉及到的一個橢圓曲線點,針對此配對運算的過程如下:
iOS移動終端中的密碼模塊和n-1個密碼服務(wù)器分別使用其秘密份額 d1,d2,…,dn進行配對運算 e(d1,U),e(d2,U),…,e(dn,U),然后由移動終端中的密碼模塊計算 e(dID,U)= e(d1,U)* e(d2,U)*…*e(dn,U),并據(jù)此結(jié)果完成最終的解密運算。
本系統(tǒng)的普通共享方案如圖2所示:
圖2 普通共享方案圖Fig.2 Scheme of ordinary secret sharing
從以上描述可以看到,除非一個攻擊者同時從n個密碼運算系統(tǒng)獲取 n份私鑰秘密份額,否則攻擊者無法獲得用戶可用的私鑰,想要同時攻擊n個密碼運算系統(tǒng)獲得 n份私鑰秘密份額是十分困難的,特別是當這n個密碼運算系統(tǒng)處于不同位置,屬于不同運行者時。因此,基于本系統(tǒng)的秘鑰共享方案,用戶可以安全的進行密碼操作。
1.2.2 門限秘密共享方案
采用普通秘密共享方案時,如果我們把所有的私鑰秘密份額都存儲在同一個密碼服務(wù)器上,密碼服務(wù)器有可能出現(xiàn)負載過重的情況;而存儲在多個密碼服務(wù)器上時,若是其中某一個密碼服務(wù)器出現(xiàn)宕機的情況,那么移動終端中的密碼功能程序就不能得到所有n份私鑰秘密份額的密碼運算結(jié)果。為了防止這種情況的發(fā)生,本系統(tǒng)還采用了另外一種秘密共享方案:門限秘密共享。
門限秘密共享的基本思想是分發(fā)者通過秘密多項式將私鑰分割為 n份私鑰秘密份額,并分發(fā)給 n個不同的密碼運算系統(tǒng),其中任意不少于t(t 本系統(tǒng)的門限共享方案采用(2,3)門限方案時的工作原理如圖3所示,即把私鑰分割成三份,其中一份保存在iOS移動終端,另外兩份分別發(fā)送給密 碼服務(wù)器1和密碼服務(wù)器2保存,移動終端的密碼程序在獲得在本地密碼運算結(jié)果以及兩個密碼服務(wù)器中上任意一個的密碼運算結(jié)果后,均可得到最終的密碼運算結(jié)果(圖3中獲得的是密碼服務(wù)器1的運算結(jié)果)。 圖3 (2,3)門限共享方案示意圖Fig.3 Scheme of threshold secret sharing with (2,3) iOS移動終端中的IBE密碼模塊用Objective-C開發(fā),提供IBE解密、IBE私鑰分割、存儲私鑰秘密份額、使用私鑰秘密份額進行密碼運算等功能。IBE密碼模塊采用sqlite數(shù)據(jù)庫(直接在iOS移動終端自帶庫文件中查詢導(dǎo)入即可)來存儲分割后的IBE私鑰的秘密份額。 調(diào)用移動終端解密功能時,系統(tǒng)首先會從本地sqlite數(shù)據(jù)庫查詢是否有當前可用私鑰秘密份額,如果沒有,則向密鑰服務(wù)器申請IBE私鑰,并在由IBE私鑰運算得到真正解密秘鑰時將 IBE私鑰進行分割,一部分私鑰秘密份額存儲到 sqlite數(shù)據(jù)庫中,其余部分分發(fā)到不同的密碼服務(wù)器上保存;如果數(shù)據(jù)庫中有可用私鑰秘密份額,則用當前可用私鑰秘密份額進行密碼運算,并向密碼服務(wù)器發(fā)送請求,將移動終端密碼運算結(jié)果和密碼服務(wù)器密碼運算結(jié)果相乘得到真正的解密秘鑰。本系統(tǒng)采用的配對算法是Weil配對算法[6]。 iOS移動終端與密碼服務(wù)器、密鑰服務(wù)器的交互采用自定義的協(xié)議,包括在SM2數(shù)字簽名協(xié)同生成過程中對移動終端用戶進行身份鑒別,并采用SSL安全傳輸協(xié)議對傳輸數(shù)據(jù)進行安全保護。 本系統(tǒng)中的密碼服務(wù)器運行在Windows平臺,用C語言開發(fā),面向移動終端提供服務(wù),其功能主要包括存儲私鑰秘密份額以及使用私鑰秘密份額進行密碼運算的功能。密碼服務(wù)器采用 MySQL數(shù)據(jù)庫存儲私鑰秘密份額,進行密碼運算時主要用到了PBC(Pairing based cryptography)庫。 密碼服務(wù)器接收到iOS移動終端的密碼運算結(jié)果申請后,首先會判斷申請的類別,是請求獲得普通秘密共享時的密碼運算結(jié)果,還是請求獲得門限秘密共享時的密碼運算結(jié)果,然后到本地數(shù)據(jù)庫表中查詢是否有相應(yīng)的私鑰秘密份額。如果有對應(yīng)的私鑰秘密份額,則會在本地根據(jù)私鑰秘密份額進行相應(yīng)的密碼運算,并將密碼運算的結(jié)果返回給 iOS移動終端。 本系統(tǒng)中的密鑰服務(wù)器運行在Windows平臺,用Java和CC++技術(shù)開發(fā),主要提供在線生成、返回IBE私鑰的功能。當密鑰服務(wù)器接收到iOS移動終端的私鑰申請請求后,首先會對移動終端進行身份認證,在驗證通過后,密鑰服務(wù)器會立刻產(chǎn)生并返回IBE私鑰給iOS移動終端。本系統(tǒng)采用D.Boneh和 M.Franklin的方案[6]將用戶身份標識映射到橢圓曲線中的點QID,然后用主密鑰s計算得到用戶標識對應(yīng)的IBE私鑰dID=sQID。 經(jīng)測試,無論是普通秘密共享還是門限秘密共享,當iOS移動終端中的應(yīng)用程序需要調(diào)用用戶的IBE私鑰對數(shù)據(jù)進行解密操作時,iOS移動終端中的密碼模塊以及密碼服務(wù)器能通過使用各自的私鑰秘密份額通過協(xié)同計算,得到正確的解密結(jié)果。 本文針對當前用戶在手機上安全存儲、使用私鑰的問題,提出了一種基于秘密共享的IBE移動密碼系統(tǒng)方案,并且分別采用了普通秘密共享和門限秘密共享兩種方案對私鑰進行分割保護。提出的方案具有以下優(yōu)勢: (1)用戶手機上存儲的只是多份私鑰秘密份額中的一份,就算攻擊者攻擊手機也只能獲得多份私鑰秘密份額中的一份,提高了用戶在手機上存儲、使用私鑰的安全性。 (2)采用門限方案時可以有效避免密碼服務(wù)器出現(xiàn)負載過重的情況,并且如果某一個或多個服務(wù)器出現(xiàn)宕機,移動終端中的IBE密碼程序仍能通過剩下的滿足(t,n)門限條件的私鑰秘密份額得到密碼運算結(jié)果。 通常對移動終端本地保存的IBE私鑰份額可以采用PIN(Personal Identification Number)碼保護,若采用指紋等生物特征對私鑰進行保護,則可以進一步提交方案的安全性。 [1] H. Tanaka. A realizationscheme for the identity-based cryptosystem[C]. Proceedings of Advances in Cryptology Crypto’87. [S.1.]: Springer-Verlag, 1987: 341-349. [2] 黃存東. 關(guān)于計算機網(wǎng)絡(luò)信息安全問題的技術(shù)研究[J]. 軟件, 2013, 34(1): 140-141. [3] 關(guān)東升. iOS開發(fā)指南[M]. 人民郵電出版社, 2015. [4] 宋深, 劉雪冬, 龍毅宏. 一種基于IBE加密技術(shù)的移動文件共享系統(tǒng)[J]. 軟件, 2017, 38(3): 22-26. [5] 陳偉, 卜慶凱. iOS系統(tǒng)中多線程技術(shù)的研究[J]. 電腦知識與技術(shù), 2017, 13(3X): 78-80. [6] D. Boneh and M. Franklin. Identity-based encryption from the Weil pairing[A], In: Killian J.LNCS 2139[C]. Berlin:Springer-Verlag, 2001: 213-229. [7] Phaneendra H. D. Identity-Based Cryptography and Comparison with traditional Public key Encryption: A Survey[J].International Journal of Computer Science & Information Technolo, 2014. [8] 龐遼軍, 裴慶祺, 李慧賢, 等. 秘密共享技術(shù)及其應(yīng)用[J].通信學(xué)報, 2017(2). [9] Han Y H. Research on Development of Application Program Based on IOS Architecture[J]. Journal of Xian University,2017. [10] 任方, 王倩. 門限秘密共享及其典型應(yīng)用[J]. 現(xiàn)代電子技術(shù), 2015(13): 71-75. [11] Huang Wentao, Langberg M, KliewerJ, et al. Communication Efficient Secret Sharing[J]. IEEE Transactions on Information Theory, 2015, 62(12): 7195-7206. [12] 莫進俠. 基于Shamir秘密共享的安全方案應(yīng)用研究[D]. 湖南大學(xué), 2015. [13] 榮輝桂, 莫進俠, 常炳國, 等. 基于Shamir秘密共享的密鑰分發(fā)與恢復(fù)算法[J]. 通信學(xué)報, 2015(3): 60-69.2 系統(tǒng)實施及結(jié)果
2.1 iOS移動終端的IBE密碼功能實施
2.2 密碼服務(wù)器密碼功能實施
2.3 密鑰服務(wù)器密碼功能實施
2.4 實施結(jié)果
3 結(jié)論