陈子迪,龙毅宏
(武汉理工大学信息工程学院,湖北 武汉 430070)
IBE(Identity Based Encryption)密码技术是一种公钥加密技术,该密码技术避免了数字证书的使用,提高了数据加密的易用性和方便性[1]。在移动终端比如手机上使用公钥密码的私钥包括IBE私钥时,最重要的一点就是保障用户私钥存储、使用的安全。保障用户私钥存储、使用的安全,通常有两种方法可采用:一是通过近场通信外接密码装置,如通过USB外接针对移动终端的USB Key,二是使用移动终端如手机本身自带内置的密码芯片,用内置的密码芯片来存储私钥以及使用私钥进行密码运算。但是这两种方法都存在明显的缺陷,使用外接密码装置成本费用较高,而且用户使用起来有较大的不便;而使用内置密码芯片,现在市面上除了极少部分要求实现特定密码功能的手机外,绝大部分的手机都不自带密码芯片,并且目前不存在针对IBE密码运算的手机密码芯片。在这种情况下,目前最常用的方案是在手机上使用纯软件的密码模块,并将私钥比如IBE私钥存储在手机的永久存储介质中。当手机应用程序需要使用私钥时,手机中的密码模块再将私钥导入到内存中进行密码运算。但是这种纯软件的模式,由于将私钥存储在手机本地内存中,存在着比较大的私钥泄露的风险。比如,攻击者可以通过木马攻击手机,窃取在手机永久存储介质中的私钥[2]。而且,这种纯软件模式在进行密码运算时,私钥是以明文的形式导入到内存中使用的,这样攻击者可以通过一定的攻击方式,窃取用户存储在内存中的私钥。对此,如何在采用纯软件模式的情况下,保证用户安全无风险的存储私钥以及使用私钥进行密码运算具有很好的实际应用意义。
为了解决在用户移动终端中安全存储、使用私钥的问题,本文设计了一种在iOS移动终端上利用秘密共享技术来安全存储、使用IBE私钥的IBE移动密码系统[3-4]。
基于秘密共享的IBE移动密码系统结构如图1所示,主要包括iOS移动终端,密钥服务器,密码服务器三部分[5]。
图1 基于秘密共享的IBE密码系统结构图Fig.1 Structure of IBE mobile system based on secret sharing
(1)iOS移动终端:用户使用的iOS终端设备,其中的IBE密码模块负责完成IBE私钥分割、存储部分私钥秘密份额、使用秘密份额进行密码运算等功能。
(2)密钥服务器:其中包括 IBE私钥生成器(Private Key Generator,PKG),负责在线产生、返回IBE私钥[6-7]。
(3)密码服务器:在本系统中有1到n-1个密码服务器,n≥2,用来存储部分私钥秘密份额以及使用私钥秘密份额进行密码运算,并向iOS移动终端返回密码运算的结果。
本文设计的IBE移动密码系统同时支持普通秘密共享方案和门限秘密共享方案,下面分别说明。
1.2.1 普通秘密共享方案
普通秘密共享即把IBE私钥用特定算法分割成n份私钥秘密份额,iOS移动终端保留一份私钥秘密份额,其余n-1份分发到n-1个密码服务器[8-9]。当应用程序需要使用 IBE私钥进行解密运算时,iOS移动终端中的密码模块一方面使用移动终端中的私钥秘密份额进行密码运算,另一方面从其他n-1个密码服务器获得使用相应私钥秘密份额进行密码运算的结果,在获得所有n份私钥秘密份额进行密码运算的结果后,移动终端中的密码模块才能通过密码运算得到最后的密码运算结果。少了这n份私钥秘密份额密码运算结果中的任意一份,密码模块都不能得到最终解密的结果[10]。
对IBE私钥进行普通秘密共享或秘密分割,即选取d1,d2,…,dn(秘密份额),使得dID=d1+d2+…+dn,这里 QID是用户标识映射的椭圆曲线点,dID=sQID是用户标识对应的IBE私钥,具体可通过如下方式选取:
任意给定n-1个整数r1,r2,…,rn-1,得到d1=r1QID,d2= r2QID,dn-1= rn-1QID,dn=dID-( d1+d2+…+dn-1),其中 d1由移动终端保存,d2,…,dn由 n-1个密码服务器保存使用;d1,d2,…,dn可以预先生成,也可以生成后多次使用超过一定次数或时间后更新。
IBE解密运算会涉及到配对运算e(dID,U),其中U是解密运算过程涉及到的一个椭圆曲线点,针对此配对运算的过程如下:
iOS移动终端中的密码模块和n-1个密码服务器分别使用其秘密份额 d1,d2,…,dn进行配对运算 e(d1,U),e(d2,U),…,e(dn,U),然后由移动终端中的密码模块计算 e(dID,U)= e(d1,U)* e(d2,U)*…*e(dn,U),并据此结果完成最终的解密运算。
本系统的普通共享方案如图2所示:
图2 普通共享方案图Fig.2 Scheme of ordinary secret sharing
从以上描述可以看到,除非一个攻击者同时从n个密码运算系统获取 n份私钥秘密份额,否则攻击者无法获得用户可用的私钥,想要同时攻击n个密码运算系统获得 n份私钥秘密份额是十分困难的,特别是当这n个密码运算系统处于不同位置,属于不同运行者时。因此,基于本系统的秘钥共享方案,用户可以安全的进行密码操作。
1.2.2 门限秘密共享方案
采用普通秘密共享方案时,如果我们把所有的私钥秘密份额都存储在同一个密码服务器上,密码服务器有可能出现负载过重的情况;而存储在多个密码服务器上时,若是其中某一个密码服务器出现宕机的情况,那么移动终端中的密码功能程序就不能得到所有n份私钥秘密份额的密码运算结果。为了防止这种情况的发生,本系统还采用了另外一种秘密共享方案:门限秘密共享。
门限秘密共享的基本思想是分发者通过秘密多项式将私钥分割为 n份私钥秘密份额,并分发给 n个不同的密码运算系统,其中任意不少于t(t 本系统的门限共享方案采用(2,3)门限方案时的工作原理如图3所示,即把私钥分割成三份,其中一份保存在iOS移动终端,另外两份分别发送给密 码服务器1和密码服务器2保存,移动终端的密码程序在获得在本地密码运算结果以及两个密码服务器中上任意一个的密码运算结果后,均可得到最终的密码运算结果(图3中获得的是密码服务器1的运算结果)。 图3 (2,3)门限共享方案示意图Fig.3 Scheme of threshold secret sharing with (2,3) iOS移动终端中的IBE密码模块用Objective-C开发,提供IBE解密、IBE私钥分割、存储私钥秘密份额、使用私钥秘密份额进行密码运算等功能。IBE密码模块采用sqlite数据库(直接在iOS移动终端自带库文件中查询导入即可)来存储分割后的IBE私钥的秘密份额。 调用移动终端解密功能时,系统首先会从本地sqlite数据库查询是否有当前可用私钥秘密份额,如果没有,则向密钥服务器申请IBE私钥,并在由IBE私钥运算得到真正解密秘钥时将 IBE私钥进行分割,一部分私钥秘密份额存储到 sqlite数据库中,其余部分分发到不同的密码服务器上保存;如果数据库中有可用私钥秘密份额,则用当前可用私钥秘密份额进行密码运算,并向密码服务器发送请求,将移动终端密码运算结果和密码服务器密码运算结果相乘得到真正的解密秘钥。本系统采用的配对算法是Weil配对算法[6]。 iOS移动终端与密码服务器、密钥服务器的交互采用自定义的协议,包括在SM2数字签名协同生成过程中对移动终端用户进行身份鉴别,并采用SSL安全传输协议对传输数据进行安全保护。 本系统中的密码服务器运行在Windows平台,用C语言开发,面向移动终端提供服务,其功能主要包括存储私钥秘密份额以及使用私钥秘密份额进行密码运算的功能。密码服务器采用 MySQL数据库存储私钥秘密份额,进行密码运算时主要用到了PBC(Pairing based cryptography)库。 密码服务器接收到iOS移动终端的密码运算结果申请后,首先会判断申请的类别,是请求获得普通秘密共享时的密码运算结果,还是请求获得门限秘密共享时的密码运算结果,然后到本地数据库表中查询是否有相应的私钥秘密份额。如果有对应的私钥秘密份额,则会在本地根据私钥秘密份额进行相应的密码运算,并将密码运算的结果返回给 iOS移动终端。 本系统中的密钥服务器运行在Windows平台,用Java和CC++技术开发,主要提供在线生成、返回IBE私钥的功能。当密钥服务器接收到iOS移动终端的私钥申请请求后,首先会对移动终端进行身份认证,在验证通过后,密钥服务器会立刻产生并返回IBE私钥给iOS移动终端。本系统采用D.Boneh和 M.Franklin的方案[6]将用户身份标识映射到椭圆曲线中的点QID,然后用主密钥s计算得到用户标识对应的IBE私钥dID=sQID。 经测试,无论是普通秘密共享还是门限秘密共享,当iOS移动终端中的应用程序需要调用用户的IBE私钥对数据进行解密操作时,iOS移动终端中的密码模块以及密码服务器能通过使用各自的私钥秘密份额通过协同计算,得到正确的解密结果。 本文针对当前用户在手机上安全存储、使用私钥的问题,提出了一种基于秘密共享的IBE移动密码系统方案,并且分别采用了普通秘密共享和门限秘密共享两种方案对私钥进行分割保护。提出的方案具有以下优势: (1)用户手机上存储的只是多份私钥秘密份额中的一份,就算攻击者攻击手机也只能获得多份私钥秘密份额中的一份,提高了用户在手机上存储、使用私钥的安全性。 (2)采用门限方案时可以有效避免密码服务器出现负载过重的情况,并且如果某一个或多个服务器出现宕机,移动终端中的IBE密码程序仍能通过剩下的满足(t,n)门限条件的私钥秘密份额得到密码运算结果。 通常对移动终端本地保存的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] 黄存东. 关于计算机网络信息安全问题的技术研究[J]. 软件, 2013, 34(1): 140-141. [3] 关东升. iOS开发指南[M]. 人民邮电出版社, 2015. [4] 宋深, 刘雪冬, 龙毅宏. 一种基于IBE加密技术的移动文件共享系统[J]. 软件, 2017, 38(3): 22-26. [5] 陈伟, 卜庆凯. iOS系统中多线程技术的研究[J]. 电脑知识与技术, 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] 庞辽军, 裴庆祺, 李慧贤, 等. 秘密共享技术及其应用[J].通信学报, 2017(2). [9] Han Y H. Research on Development of Application Program Based on IOS Architecture[J]. Journal of Xian University,2017. [10] 任方, 王倩. 门限秘密共享及其典型应用[J]. 现代电子技术, 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秘密共享的安全方案应用研究[D]. 湖南大学, 2015. [13] 荣辉桂, 莫进侠, 常炳国, 等. 基于Shamir秘密共享的密钥分发与恢复算法[J]. 通信学报, 2015(3): 60-69.2 系统实施及结果
2.1 iOS移动终端的IBE密码功能实施
2.2 密码服务器密码功能实施
2.3 密钥服务器密码功能实施
2.4 实施结果
3 结论