APP下载

基于可搜索加密技术的区块链密文审计系统

2019-03-18陈锦雯李世杰刘林刚梁海曹春杰

网络空间安全 2019年12期
关键词:数字证书智能合约区块链

陈锦雯 李世杰 刘林刚 梁海 曹春杰

摘   要:近年来,区块链可监管审计的需求使得可审计区块链框架的研究成为了一个热点。文章基于可搜索加密技术设计了一种区块链上密文审计系统。系统首先通过客户端生成数字标签,数字标签包含了用户的行为特征。其次,在区块链中选取一个审计节点,执行智能合约中的校验算法辨别数字标签的真伪,执行智能合约中审计算法完成对用戶行为的审计。最终,文章提出的系统在保证区块链用户之间数据隐私加密的情况下,能够实现对用户行为数据的无密钥监管和审计。

关键词:区块链;可搜索加密;数字证书;智能合约;旁路监听

中图分类号:TP393          文献标识码:A

Abstract: In recent years, the demand for blockchain auditability has made the research of auditable blockchain framework to be a hot topic. A ciphertext audit system on the blockchain based on searchable encryption technology is proposed in this paper. The system first generates digital tags through the client, and the digital tags contain the behavior characteristics of the user. Second, select an audit node in the blockchain, execute the verification algorithm in the smart contract to identify the authenticity of the digital label, and execute the audit algorithm in the smart contract to complete the audit of the user's behavior. In the end, the system proposed in this article can implement keyless supervision and audit of user behavior data while ensuring the privacy of data between blockchain users.

Key words: blockchain; searchable encryption; digital certificate; smart contract; bypass monitoring

1 引言

近年来,区块链的概念逐渐兴起,公有区块链是一种基于现代密码算法的分布式数据库,具有去中心化、不可篡改、可追溯、公开透明等优势,但是这些优势在现实应用中因无法受到控制,从而导致应用很少。目前,大部分区块链应用都是基于区块链开发,区块链本质上仍然属于一种私有链,有着部分去中心化、可控型较强、数据会在链内部公开、交易很快的特点[1]。由于数据会在链内公开,用户选择将存储在链上的数据进行加密以保持自身数据隐私,催生出了一些不法用户利用加密数据进行非法操作逃脱区块链监管的现象,因此对区块链如何对加密的数据进行跟踪审计且不会触碰用户隐私则尤为重要。

可搜索加密的概念最早出现在云计算领域,为了解决海量密文文件的搜索问题而提出的,目前可搜索加密技术在加密类型上分为可搜索对称加密(SSE)和可搜索非对称加密(SAE)[2]。可搜索加密在云计算领域的审计作用,应用较为广泛,可以使得云服务提供商完成密文审计的安全需求。

在现有的区块链审计方案中没有一种既要实现对数据包进行加密,又要完成正常的审计工作的审计方案。因此,结合上述区块链和可搜索加密的密文检索的特点,本文设计了可以应用于区块链安全审计的基于可搜索加密数据标签的设计方案。

1.1 相关工作

随着互联网的快速发展,数据呈现出爆发式增长的趋势,云计算的出现提供了数据存储、处理和共享服务。云计算在提供给用户便捷性的同时,也带来了数据隐私泄露的问题。云计算领域发生用户数据泄露的事故屡见不鲜,1996年Goldreich等人为保证服务器数据的安全,提出了隐藏用户访问模式的密文搜索机制概念[3]。该方案有可证明安全、控制搜索、隐藏查询、查询独立等安全性优势,它解决了在云存储领域存储大量加密数据的检索问题,且云服务器在完成检索的同时不会泄露相关密文数据内容,保证了加密数据在云服务器上的存储和检索的可行性和安全性。

2000年,Song、Wagner、Perrig提出了一种基于对称密码学算法的可搜索加密方案[4]。2004年,Boneh、Crescenzo、Ostrovsky等人提出了一种基于公钥密码学的可搜索加密方案[5]。这两种方案在云计算领域得到大量的应用,但是由于当时区块链技术还未出现,因此可搜索加密方案并未应用在区块链上。

Waters、Balfanz、Durfee等人提出了适用于云服务器的基于对称加密和公钥加密的可搜索加密数字标签[6]。为了保证审计证书的可信性,防止伪造,此方案的原理由可信的数据库服务器管理员来生成可信的数字标签并存储,等待审计人员的审查[7],没有考虑到实际生活中,数据库系统审计设备均采用链路监听的原理,在客户端和服务器交互的同时就完成了审计操作。Ohtaki提出了基于加密倒排索引的可搜索加密数字标签方案[8]。Sabbaghi提出了一种基于SQL数据库命令结构的可搜索加密数字标签方案。这些方案出现的问题均是如此[9]。

目前,区块链技术的发展还处在初级阶段,各方面的技术还在不断发展与进步[10]。但是在产业应用上,区块链技术可以适应不同行业的要求,区块链技术的发展为审计行业也提供了发展改进的方向。2017年Andrew Sutton和Reza Samavi提出了利用区块链技术创建防篡改审核日志[11],这个方案考虑到审计人员和参与者会产生合謀攻击,而采用可信的第三方即区块链技术,生成审核日志,从而提供日志操作和不可否认性的证明。这种方案解决的问题有限,仅针对合谋攻击做出措施,但是区块链上的密文审计没有被提及。

近些年来,越来越多的研究者重视到可搜索加密和区块链之间的联系,并尝试将这种联系应用到数据审计领域之中。2019年,翁昕耀、游林、蓝婷婷提出了基于区块链的结果可追踪的可搜索加密方案[12],这个方案是将区块链作为审计服务器的一部分去跟踪云端服务器使用者的行为,而不是审计区块链用户本身,虽然是将区块链和可搜索加密相结合,但是显然不符合要求。区块链和加密货币的需求日益增长,专业人士都正在采取不同的方法来促进企业对区块链领域兴趣的增长。目前,现有的区块链技术的应用是研究者将区块链用于审计的载体,而针对区块链本身的审计,尤其是密文审计的问题没有解决。

1.2 系统架构

本文针对上述的问题提出了一种区块链上基于可搜索加密的密文审计数字标签,数字标签用于对区块链用户的行为审计,该系统利用了可搜索加密算法,解决了传统区块链审计中存在的密文审计困难等弊端,数字标签设计的实现可以使审计系统在旁路监听的模式下既保证了用户的隐私(不会获取用户的密钥),也可以完成密文审计操作。安全需求部分分析了当前区块链密文审计的安全问题,确定数字标签需要满足的需求。验证部分分析了本算法满足了区块链上密文审计的安全需求。验证部分同时还测算了算法的各个部分的实行效率,证明了算法在满足安全需求的同时还能够保持高效运算。本文设计了基于可搜索加密的数字标签,并提出了相应的审计模型。将本模型和区块链上其他的审计模型对比,剖析各个审计方案的利弊,旨在设计出一个安全性更高,系统稳定的基于可搜索加密的区块链数字标签。

1.3 本文组织

第二章介绍基于本文方案的区块链审计系统模型及安全需求。第三章给介绍可搜索加密数字标签实现的具体方案。第四章分析可搜索加密数字标签设计方案的安全性及效率优势。第五章总结本文的主要内容。

2 密文审计系统模型及安全需求

2.1 密文审计系统模型

密文审计系统模型及实体交互如图1所示,实体包括被监管审计的客户端用户、诚实的区块链服务商和好奇的第三方审计人员。

(1)客户端用户

客户端会率先生成一个加密密钥,并通过秘密渠道传送给服务器管理员用于通讯加密,用户根据自身的需要输入操作指令或数据,客户端程序提取关于操作指令或数据的审计关键词,并依照审计的关键词执行可搜索加密算法,生成数字标签。密文连同数字标签一同发送给区块链。

(2)区块链服务商

诚实且好奇的区块链服务商负责维护服务器的正常运行,并向客户端用户提供其所需要的服务。与此同时,区块链服务商能够正常执行算法。区块链服务商在收到客户端发来的密文和数字标签后,先解密出明文,然后将明文和数字标签执行校验算法,核实解密出的明文和数字标签是否一致,以防止客户端伪造数字标签。只有在确认两者一致的情况下,区块链服务商才会允许执行操作指令或数据,来获取执行结果。和客户端类似的方式,将执行结果加密,并提取审计关键词,执行可搜索加密算法,生成数字标签,最后将密文和数字标签打包发送给客户端用户。

(3)第三方审计人员

第三方审计设备从总交换机的镜像端口上获取客户端和区块链之间交互的数据包,将数据包中的数字标签提取出来,结合第三方审计设备中带有审计词典,对数字标签进行匹配,得到明文的审计信息,并将明文审计信息可视化处理并展示给第三方审计人员。

2.2 数字标签的安全需求

(1)不可篡改

由于数字标签中存储了审计人员审计客户端用户行为的唯一依据,数字标签的真实性、不可伪造性尤为重要。由于数字标签是在客户端自动生成,所以无法在客户端上完全信任审计证书的生成,区块链上的校验算法可以解决这一问题。从本文的表述中不难发现,不可伪造这一安全需求十分重要,它撑起数字标签可信任性,若审计人员无法确定数字标签是否被伪造,从而也无法判断区块链系统中的非法行为。这也违背了审计的初衷,增加了数据库系统的安全风险。所以,不可伪造这一安全需求是可搜索加密必须满足的安全需求。

(2)隐私保护

在密文审计模型中,没有经过安全加密的数字标签会将明文的审计信息完全对外公开,那么窃听链路的敌手会通过数字标签中的公开信息完全掌握数据包有价值的信息,从而达到窃听的目的。带有隐私保护的可搜索加密数字标签,要求加密后的数字标签不能泄露用户的数据包中的信息,这样就能保证监听链路的敌手在获取到数字标签后,也无法从数字标签中获得任何有关用户的隐私信息。在特殊的区块链应用场景中,例如国防领域、公安领域、法证领域等,不但要防止敌手窃听,还要防止第三方审计系统泄露密钥。因为,第三方审计设备同样不能够获取客户端和区块链之间的通讯密钥,所以要求审计设备要在没有获取双方通信密钥的情况下完成对密文的审计工作。

(3)旁路监听

在密文审计模型中,旁路监听是性能最稳定、安全性最高、部署成本最少的部署方式,第三方审计设备只需要接入总交换机上的镜像端口,即可完成审计工作,不会影响区块链系统的正常交互。若采用“中间人”模式的部署方式,即数据库审计系统充当客户端和区块链的中间人,区块链审计设备接受客户端发来的数据完成审计,并将数据转发给区块链,部署成本较高,不但大大影响了区块链系统中数据的传输速度,而且一旦第三方审计设备出现故障,整个区块链系统就会陷入瘫痪。所以,区块链数字标签的设计方案必须遵从旁路监听的部署模式,来完成部署。

3 数据标签的设计

根据本文描述国内外研究的现状分析,当今的可搜索加密数据标签设计方案,都无法应用于区块链安全审计的这一应用场景中。结合这些方案的优势和短板和可搜索加密技术的优势,本文提出一种新的可用于区块链审计系统的可搜索加密数据标签的方案。具有不可伪造性质和隐私保护性质的可搜索加密数据标签有算法组成。

3.1 初始化

获取采用AES加密的密钥和系统参数,并选择一种抗碰撞哈希函数,其中所述抗碰撞哈希函数为输入任意位的二进制串,输出为获取的所述系统参数位的二进制串。

3.2 制定审计关键词组

获取与审计有关的明文关键词,结合对应的密文,组成审计关键词词典,第三方审计人员根据审计内容的需要确定明文审计关键词集合,发送给服务器管理员,服务器管理员使用密钥对进行加密生成对应的密文集合,审计关键词词典的具体结构为,表示审计关键词的明文形式,表示审计关键词的密文形式。

3.3 数据标签生成算法

包含可搜索加密数据标签的数据包,客户端程序生成包含可搜索加密数据标签的数据包的具体步骤为:

(1)客户端程序使用AES算法主密钥,将明文指令或数据加密为密文。表示使用主密钥为的AES加密算法对进行加密;

(2)针对用户发送的明文指令或数据,在所述审计关键词词典中的明文关键词中随机选取n个明文关键词,组成审计关键词集;

(3)使用密钥对整个审计标签集进行AES加密,生成密文审计标签集。选取所述中的第i个关键词的前8个加密元素根据初始化步骤中选取的抗碰撞哈希函数计算出第一哈希值集合,并和随机选取的一长度比第i个加密元素少8个长度的第一大随机数进行拼接求哈希,得到第二哈希值集合,第二哈希值集合中的每一个哈希的前8个加密元素再和进行拼接,得到第一变量,得到第一变量集合,将所述与所对应的所述逐位进行指数运算,生成数字标签。

3.4 审计算法

第三方审计人员和设备在收到数据包后,会对数据包中的审计证书进行审计运算,提取其中的审计信息。

(1)数据库审计程序将获取的数据包解析出审计证书,程序本身含有审计关键词词典,表示审计明文,表示对应的AES密文。并遍历所述审计关键词词典中的密文关键词的前8位元素计算出第三哈希值,遍历所述数字标签中的密文集合,得到第二变量,将和进行指数运算,得到第三变量集合。

(2)将所述的后8位和剩余位元素分别赋值为R和L,將L和第三哈希值集合拼接并求哈希,得到第四哈希值集合,判断所述的前8位哈希值是否与所述R相等,然后根据所述审计关键词词典中明文和密文的对应关系得到审计明文关键词,经过可视化处理后展示。

3.5 智能合约校验算法

算法运行在区块链智能合约上,负责检验客户端发来的密文数据和数字标签的一致性。具体算法为:

(1)区块链收到客户端发来的数据包后,使用密钥对密文进行解密,得到使用和客户端相同的关键词提取程序提取审计信息,故服务器提取的审计信息和客户端提取出的信息是一致的;

(2)智能合约上执行章节3.3的数据标签生成算法,对数据标签的生成过程进行复现。输出结果为新的数字标签;

(3)将新的数字标签和客户端发来的数字标签进行对比。若相同则校验通过;若不相同,则校验失败,并返回校验错误的结果。

4 安全与效率分析

4.1 安全分析

4.1.1 不可篡改

由于方案中的可搜索加密数字标签是由不可信的客户端生成的,智能合约中的校验算法用来校验客户端发来加密数据和数字标签的一致性。

假设客户端为了进行非法操作,掩饰自身的行为轨迹,用以躲避审计人员审查,就会伪造审计证书。伪造的审计证书的特点就是和原文数据特征不符。区块链上的校验算法将客户端数字标签的生成过程进行复现。复现后产生新的数字标签和数据包中的原始数字标签进行对比。从而达到数字标签不可篡改的作用。

4.1.2 隐私保护

在方案中,无论是操作指令或数据还是数字标签,对密文审计系统之外的用户都是保密的。在没有主密钥的情况下,攻击者无法解开密文数据获取有用信息。在生成包含可搜索加密数字标签的数据包的过程中:

所以,加密数字标签的数据包中直接由公式(1)的计算生成,计算的第一步就是先执行公式(2)的算法,对整个审计标签集进行加密得到密文审计标签集,后续的算法都是在公式(2)的算法的基础上进行运算,所以满足隐私保护的安全需求。第三方审计人员同样没有获取到主密钥,依然无法解密操作指令或数据,防止第三方审计人员和设备在特定的高机密的应用场景中泄露机密数据。在制定审计关键词词典的过程中,第三方审计人员最终得到的是一个明文和密文一一对应的审计关键词词典,因为加密算法使用的是AES对称加密,AES算法本身分组加密的原理,密文中几乎不含有密钥信息,具有抵抗选择明文攻击的特点,所以第三方审计人员和设备在已知审计关键词词典的情况下无法推算出主密钥。

4.1.3 旁路监听

客户端无需和第三方审计设备有数据包或者密钥的交换;区块链和第三方审计设备在制定审计关键词词典的过程中有过交互,但不是需要转发的数据包且制定审计关键词词典的过程只在部署的时候发生一次交互,所以这一过程可以通过数据库系统之外的链路来完成。第三方审计设备在整个方案中只起到监听的作用,所以第三方设备部署的方式就是旁路监听。

4.2 效率评估

本文已经使用python的crypto模块实现了上述的可搜索加密数字标签的全部算法,并以执行时间作为参照评估运行效率。如图2所示,为算法的执行效率。

生成可搜索加密数字标签算法按照一条操作指令生成五条审计关键词(包含客户端ID、执行时间、源IP、SQL语句执行类型等)的数字标签的标准评估,执行时间为:0.0014S。

在执行区块链校验算法时,收到的数字标签按照一个数字标签包含五条审计关键词的标准进行评估,执行时间为:0.0011S。

在执行审计算法时,收到的数字标签按照一个数字标签包含5条审计关键词,审计关键词词典为50条的标准进行评估,执行时间为:0.0369S。

总之,无论是在客户端、区块链还是第三方审计设备上,算法的执行时间均低于0.1S,考虑到对比现行的数据库审计系统,在安全性上有显著提升,低于0.1S的算法执行效率在可接受的范围内。

5 结束语

本文针对密文审计系统提出了在区块链上基于隐私保护的可搜索加密的密文审计方案,解决了明文审计模式中的拦截与窃取风险的问题和密文审计模式中无法使用旁路监听的方式进行审计的问题,因为数据标签本身携带了加密后的审计信息,审计人员可以在不获取密文密钥的条件下,完成审计的问题,满足了传输过程中隐私保护的需求,也可以将该方案应用于区块链安全审计的这一应用场景中,解决了区块链本身的密文审计,具有良好的实用价值。今后会将机器学习和人工智能的算法融入进来,最终实现人工智能审计的效果。

基金项目:

1.国家自然科学基金(项目编号:61661019);

2.国家自然科学基金联合基金(项目编号:U19B2044);

3.广西重点研发计划(项目编号:AB17195025);

4.海南省高等学校教育教学改革研究重点资助项目(项目编号:Hnjg2017ZD-1)。

参考文献

[1] 陈纯. 联盟区块链关键技术[N]. 中国信息化周报,2019-11-04(007).

[2] 李颖,马春光.可搜索加密研究进展综述[J].网络与信息安全学报,2018,4(07):13-21.

[3] Goldreich O, Ostrovsky R. Software protection and simulation on oblivious RAMs[J]. Journal of the ACM (JACM), 1996, 43(3): 431-473.

[4] Song D X, Wagner D and Perrig A. Practical techniques for searches on encrypted data[C]. IEEE Symposium on Security and Privacy, S&P 2000, Berkeley, CA, US, 2000: 44-55.

[5] Boneh D, Di Crescenzo G, Ostrovsky R, et al. Public key encryption with keyword search[C]. International conference on the theory and applications of cryptographic techniques. Springer, Berlin, Heidelberg, 2004: 506-522.

[6] Waters B R ,Balfanz D,Durfee G,et al.Building an Encrypted and Searchable Audit Log[C]. Network and Distributed System Security Symposium,2004.

[7] 趙唯玮,李强,张爱新,等.云存储系统中可搜索加密审计日志的设计[J].通信技术,2018,51(2): 433-438.

[8] Ohtaki Y .Constructing a Searchable Enerypted Log Using Encrypted Inverted Indexes[C].International Conference on Cyberworlds. Singapore EEE,2005:132-138.

[9] Sabbaghi A,Mahmoudi F. Establishing an Efficient and Searchable Encrypted Log Using Record Authenticator[ C].International Conference on Computer Technology and Development,2009(02):206-211.

[10] 尹浩.区块链技术的发展机遇与治理思路[J].人民论坛·学术前沿,2018(12):6-10.

[11] Sutton A, Samavi R. Blockchain enabled privacy audit logs[C]. International Semantic Web Conference. Springer, Cham, 2017: 645-660.

[12] 翁昕耀,游林,蓝婷婷.基于区块链的结果可追溯的可搜索加密方案[J].电信科学,2019,35(09):98-106.

猜你喜欢

数字证书智能合约区块链
区块链技术在互联网保险行业的应用探讨
智能合约的特点及其在债券市场的应用
区块链技术的应用价值分析
“区块链”的苟且、诗和远方
基于区块链技术的数字货币与传统货币辨析
区块链技术在会计中的应用展望
PKI技术在SSLVPN中的应用
智能合约与金融合约
用“区块链”助推中企走出去
数字签名保护Word文档