基于区块链的防特权账号篡改审计系统*

2020-04-25 13:37方国强
通信技术 2020年4期
关键词:密文密钥管理员

方国强

(中国移动通信集团浙江有限公司,浙江 杭州 310000)

0 引 言

随着网络技术的不断发展,信息系统与人们生活结合得越来越紧密,给人们带来了诸多便利。这些便利也给网络黑客带去了攻击便利,增加了网络攻击的攻击面。即使是最强大的网络防火墙[1]、入侵检测系统[2]和反病毒软件[3]一起,也无法保证信息系统的完全安全。在这种情况下,计算机审计系统[4]的作用愈发明显。审计系统通过记录和分析系统中发生的操作事件,对攻击行为进行抽丝剥茧般的分析、追溯和特征归纳,从而对未来网络攻击进行预警。然而,现有的审计系统往往存在超级管理员权限过大的问题。具体来说,超级管理员拥有删除审计记录的权限。在极端情况,超级管理员可以监守自盗,并且从审计系统中删除可能追踪到他的所有审计记录。此外,调查研究发现[5],60%以上安全攻击来自于内部。因此,超级管理员的极端情况是不得不考虑的安全事件。

针对超级管理员问题,很多学者和企业也提出了许多解决方案,主要包括分散法和加层法。分散法中,超级管理员不是一个人,而是一个账户,该账户由多个人共同管理。当仅有其中的少数人作恶时,无法获得审计记录删除权限,从而解决了超级管理员问题。但是,这种方法存在如下问题。超级管理员人数不能过多,如果人数过多将不利于日常升级系统的管理;一旦人数过少,将易使得合谋成功,从而又回到该问题的原点。加层法则指的是在超级管理员上面再设立一个管理员,该管理员只负责记录超级管理员的操作行为。然而,这种方法完全寄托于新设立管理员的可信度。当该管理员和超级管理员合谋时,超级管理问题将再次发生。另外,当该管理员作恶如伪造超级管理员操作,将陷害超级管理员。如此一来,要区分是谁在作假,审计系统还需引进一套决策系统。公平地说,目前已有的审计系统没有很好地解决超级管理员问题。

2008 年年底,一个化名为中本聪的学者提出了一种新的密码货币,名为比特币[6]。经过不断发展,将在比特币中涉及的技术归纳总结为区块链技术。区块链技术可以在一个无中心的不可信的环境中建立可信数据链,这些数据共享于全网络且不可篡改。超级管理员问题实质上是数据篡改问题,而区块链的一大特点是不可篡改性。因此,本文将结合区块链技术,利用其不可篡改性,提出一个防篡改的审计系统。该系统不同于已有的解决方案,并不对已有的审计系统进行修改,而是将其作为一个黑盒,节约建设成本和人员培训成本;由于区块链本身是在不可信环境中建立可信的性质,最大程度上降低了超级管理员与区块链进行合谋的可能性。

当然,仅仅使用区块链技术并不能完全解决超级管理问题,原因有二。第一,当审计数据上链后,这些数据将被全网获取,因此必须对其进行保密处理,而且是细粒度的访问控制。第二,由于区块链本身不支持查找搜索的特性,势必会影响其审计数据稽核效率,因此必须设计一种快速有效的稽核方法。本文所提的最终解决方案较好地解决了以上两个问题。

本文剩余内容安排如下。第1 节介绍所提审计系统的系统框架和设计目标。第2 节介绍所提审计系统涉及的基础知识,包括哈希函数、数字签名、区块链和属性基加密等。第3 节和第4 节分别给出系统的描述和分析。第5 节基于之前的系统提出一个更高效的防篡改审计系统。最后,在第6 节给出结论。

1 系统框架和设计目标

介绍涉及的防篡改审计系统的设计框架、信任假设以及设计目标。

1.1 系统设计框架

如图1 所示,提出的防篡改审计系统共有5 个部分,分别是传统审计系统、数据采集网关、区块链网络、审计验证系统和密钥管理服务器。传统审计系统顾名思义是现行的审计系统,具有对系统内部操作进行记录和分析的功能,包括超级管理员对系统的操作。但是,由于超级管理员的权限设置问题,使得超级管理员可以删除操作记录。为了防止该情况的发生,数据采集网关将超级管理员的操作记录收集并上传至区块链网络中,利用区块链的不可篡改性防止超级管理员对其操作记录进行删除。由于这些操作记录涉及到企业内部信息或超级管理员的敏感信息,因此数据采集网关必须在上传至区块链网络前对其进行加密。最后,用户可以通过审计验证系统验证传统审计系统中超级管理员的操作记录是否经过修改。当然,用户在验证时需要用到解密密钥。操作记录的加解密密钥都是由密钥管理器生成和分发的。另外,这里的区块链可以是许可链也可以是非许可链,但是不管是哪种区块链,上链数据都需要进行认证。因此,在数据上传前操作记录将会由数据采集网关进行签名。签名所用到的公私钥对由网关独立生成,签名验证钥(公钥)由密钥管理服务器上传至区块链。

图1 防篡改审计系统的系统设计框架

1.2 信任假设

在所提的防篡改审计系统中,本文分别对各个参与组件做出如下信任假设。

(1)传统审计系统是可靠的,即系统中的所有操作都会被记录,但是在记录后超级管理员可以利用其权限对操作记录进行修改。

(2)数据采集网关是完全可信的,也就是说该网关会采集所有满足条件的审计记录(在本文的具体例子中指超级管理员的操作记录),并且不会存储所采集的审计记录而泄露给其他参与方或外部人员。

(3)密钥管理服务器也是完全可信的,会存储数据采集网关的签名验证钥(私钥),会产生对记录进行加解密操作的加解密钥,并对其进行安全分发。它与数据采集网关之间的通信信道是可信的,而与审计验证系统的通信信道是可信并保密的。

(4)区块链网络是诚实但好奇的,也就是区块链网络中的节点会根据区块链的共识机制对数据进行验证和上链操作,但是同时它们也对上链数据(审计数据)感兴趣并尝试获得这些信息。当然,根据区块链的性质,它不会发起主动攻击。

(5)审计验证系统由用户控制,只有用户具有对应的解密密钥时,才能判断审计记录是否进行了修改。

1.3 系统设计目标

本系统的设计目标包含安全和效率两个方面。

1.3.1 安全设计目标

安全设计目标又包含审计记录不可篡改性和审计记录的保密性两个子目标。不可篡改性指的是审计记录一旦生成,任何人包括超级管理员都不能对其进行修改。保密性指的是审计数据在从数据采集网关出来后,只有授权过的用户才能访问这些审计数据,并满足细粒度访问控制的要求。

1.3.2 效率设计目标

效率设计目标包含上链效率和下链效率两个子方面。上链效率指的是审计数据通过数据采集服务器出来后记录到区块链中的速度。在本文的具体应用中,需要满足中国移动审计系统中每天上百万条的数据量。下链效率指的是进行审计数据稽核时,它的效率在能接收的范围内。当数据没有被修改时,它的稽核效率不应该小于1 000 条/秒;当数据有修改时,假设1 000 条记录中有1 条被修改,其定位效率不低于5 s。

2 基础知识

本节中将主要介绍所设计的防篡改审计系统涉及的基本概念,包括区块链、哈希函数、数字签名以及属性基加密。

2.1 哈希函数

哈希函数是一种特殊的函数,其输入可以是任意字符串,而其输出是一串恒定长度的字符串。两个输入字符串中仅仅只有一个比特不同,其得到的输出也有很大的不同。一个哈希函数必须满足单向性和抗碰撞性两个安全属性。单向性指的是从函数的输出求不出函数的输入。抗碰撞性指的是找不到两个不同的输入其输出是一样的。在本文的剩余部分,将用H 来表示哈希函数。

2.2 数字签名

数字签名方案是一种公钥密码方案,包含公私钥生成算法KeyGen、签名算法Sign 和验证算法Verify 这3 个算法。在公私钥生产算法中会产生一对公私钥对(pk,sk)私钥sk 用在签名算法中产生对消息m 的签名σ,而公钥pk 可在验证算法中用来验证σ,判断其是否是消息m 的有效签名。公钥pk也可被称为签名验证钥。在本文的剩余部分,将用S 来表示数字签名方案。

对于数字签名来说,其安全属性主要是不可伪造性。该属性保证了攻击者即使通过自适应的方式获得相当数量的消息签名对(m,σ)后,也不能对一个新的消息m 产生有效的签名σ。

2.3 区块链

区块链技术来源于一个化名为中本聪的学者提出的比特币[6],其最大的特点是不可篡改性。该性质主要通过全局共享和哈希链结构获得。区块链由一系列数据块组成,且这些数据块是公开可获得的。也就是说,网络中的任何一个节点都可以获得区块链上的所有数据,即使一个节点丢失了区块链数据,也可以从其他网络节点中获得区块链数据。此外,这些数据块通过哈希函数连接在一起,修改其中的任何一个数据都会引起其后续区块的变动。然而,根据哈希函数的安全属性,这种变动很难实现。结合以上两点,区块链上的数据是不可篡改的。本文正是利用区块链的该特性,提出了一个基于区块链的防篡改审计系统。

2.4 属性基加密

属性基加密是一种特殊公钥加密类型,由密码学家Sahai 和Waters[7]在欧密2005 会议上提出,主要用来实现密文的细粒度访问控制系统。只有用户的属性满足密文的访问控制要求时,用户所拥有的私钥才能进行解密活动对应的明文。属性基加密分为密钥策略和密文策略两种类型。前者中,访问控制策略主要通过用户所拥有的私钥来实现;后者中,主要通过密文来实现。当然,属性基加密也包含加密算法Enc 和解密算法Dec,还有系统公私钥对产生算法SKeyGen 和用户私钥产生算法Ext。SKeyGen产生一对公私钥对(mpk,msk),mpk 公开,msk 由一个叫密钥生成中心(PKG)的实体掌握。该PKG 可以利用msk 根据用户的属性在Ext 算法中产生对应的用户私钥。在本文的剩余部分,用ABE 表示属性基加密。

对于属性基加密来说,它的安全属性主要通过不可区分性来保证所加密消息的私密性。不可区分性指的是攻击者不能得知一个给定的密文所对应的消息,即使这个消息是其所选定的两个消息之一。另外,根据攻击者是否可以获得其他一些信息,不可区分性又可分为多个等级,如选择明文攻击(Chosen-plaintext Attack,CPA)、选择密文攻击(Chosen-ciphertext Attack,CCA)以及选择模型(Selective Model,SM)等。

3 防篡改审计系统的设计

利用介绍的基本工具,给出设计的防篡改审计系统。该系统主要包括系统初始化阶段、数据收集阶段、数据上链阶段以及数据下链阶段。

3.1 系统初始化阶段

该阶段,各个系统组件生成必要的密钥数据。

(3)系统中的用户可以向密钥管理服务器申请自己属性所对应的私钥。具体来说,密钥管理服务器首先要认证用户声称的属性是真实的,可通过第三方认证系统来实现,如短信认证等。通过认证后,密钥管理服务器运行生成用户属性所对应的私钥,并通过可信且保密的通信信道传输给用户。

3.2 数据收集阶段

该阶段,数据采集网关将从传统审计系统中收集到的审计数据经过处理上传至区块链网络。具体来说,主要有以下步骤。

(1)从传统审计系统中收集审计数据,记为m。

(2)利用一个对称加密算法如SM4,对m 进行加密。加密所使用的密钥记为k,加密后所得的密文记为C1。

(4)用sk 对密文C1、C2和m 的生成时间t 运行 S.Sign算法,获得相对应的签名σ。

(5)将(t,C1,C2,σ)广播到区块链网络中。

3.3 数据上链阶段m

该阶段,区块链网络中的区块生成节点(或称共识节点)对传播到区块链网络中的(t,C1,C2,σ)进行验证。如验证通过,则将其记录到区块链中;如验证不通过,则抛弃该(t,C1,C2,σ)。

验证过程主要包括以下步骤。

(1)(t,C1,C2,σ)是否已包含在区块链中,如是,则验证不通过;

(2)利用pk 运行 S.Sign算法验证签名σ 是否是对(t,C1,C2)的有效签名,如不是有效签名,则验证不通过。

3.4 数据下链阶段

该阶段,用户可以通过审计验证系统验证传统审计系统中是否有记录进行了改动。

(1)用户确定稽核时间段[T1,T2]。

(2)根据时间段[T1,T2],从传统审计系统中下载对应数据M´={m´}。这里M´是一个审计数据的集合,包含数个待稽核的审计数据m´。

(3)根据时间段[T1,T2],从区块链中下载对应数据,输入从密钥管理服务器处获得的自己的私钥,让审计验证服务器对下载的数据进行解密获得审计数据明文。具体来说,用用户的私钥对C2运行算法获得k,然后利用k 对C1进行解密获得m。最终,从区块链中获得的审计数据记为M={m}。

(4)对集合M´和M 中的数据逐项进行稽核,从而验证传统审计系统中在时间段[T1,T2]是否有记录进行了修改。

4 系统分析

本节将对提出的防篡改审计系统进行分析,包括安全分析和效率分析。

4.1 安全分析

4.1.1 防篡改性

根据信任假设可知,数据采集网关一定能收集到所有的审计数据,并将这些审计数据传输到区块链网络。当区块链网络收到数据采集网关发来的审计数据时,会验证其有效性。通过有效性验证后,这些数据将会被写入区块链。由区块链的不可篡改性可知,数据一旦上传至区块链中将不可被修改;而用户通过审计验证服务器,一定能从区块链上下载到完整的审计数据。数据采集网关会对所有传输到区块链网络中的审计数据进行数字签名认证。根据数字签名的不可伪造性可知,系统中的其他实体或者其他人无法产生伪造的审计数据。因此,在所提的审计系统中,任何人都无法篡改审计数据,从而满足防篡改性。

4.1.2 细粒度访问控制

审计数据是经过对称加密算法进行加密的,其使用的加密密钥又是经过属性基加密方案加密的。根据属性基加密和对称加密算法的安全性可知,没有对应的解密密钥是无法获得对应的审计数据的。根据属性基加密的特点,如果用户的属性无法满足密文的访问控制要求,那么用户拥有的密钥将无法进行解密。因此,即使用户可以从区块链中随意下载(t,C1,C2,σ)数据,但只有其属性满足要求时才能审计明文数据,从而实现细粒度访问控制。

4.2 效率分析

在所提的防篡改审计系统中,系统初始化阶段的主要消耗是公私钥的产生。这些操作可在秒级程度上完成。初始化操作一般都只执行一次,或者在系统更新时才执行,而系统更新的频率很低,次数屈指可数,因此初始化操作即使在分钟级别也是能够接受的。另外,在数据上链阶段,主要消耗包括对数据采集网关签名的验证和共识形成。前者的时间消耗在毫秒级内完成,特别是使用ECDSA 时,而后者取决于所使用的共识机制。在非许可链中,使用PoS(Proof of Stake)共识机制的变体[8],其效率可以在秒级程度上完成。在许可链中可以获得比在非许可链中更高的效率[9]。因此,下面将详细分析数据收集阶段和数据下链阶段两个阶段的效率。

(1)数据收集阶段。该阶段,时间的消耗主要是在属性基加密操作。对于属性基加密来说,时间消耗在秒级。对于一天数百万审计记录的系统来说,该阶段的时间消耗很大,远远达不到高效的要求。

(2)数据下链阶段。不同于数据收集阶段,该阶段的时间消耗除了在属性基解密操作上外,还有相当部分时间消耗在区块链上查找对应的审计数据上。众所周知,区块链是一个不支持快速查询的数据库,其查找只能按顺序逐个查找,时间复杂度是O(n),n 是区块链上审计数据的数量。当审计数据达到每天数百万的量级时,查找速度将会无法忍受。

由上述分析可知,提出的审计系统虽然在安全性上达到了设计要求,但其效率远远不足,必须对其进行改进。

5 更高效的防篡改审计系统

在给出本文的改进方案之前,简要阐述改进思路。

(1)密码操作加速。对于属性基加解密的操作,由于所使用的密码算法都已是标准算法或知名算法,已经很难从算法本身去改进。为此,从计算机系统思路进行改进,采取批处理的思想,即多个审计记录用相同的加密密钥,从而减少属性基加解密操作次数。

(2)查找加速。由于区块链本身不支持查找搜索功能,因此必须自建一个对应于区块链的数据库,从而达到快速查找的功能。但是,如此一来,如何保证自建数据库不可篡改性就成了一个新问题。为此,设计了一个快速稽核方法,在每次利用自建数据库稽核前都要验证自建数据库是否被篡改。

5.1 系统初始化阶段

同第4 节中描述相同。

5.2 数据收集阶段

本阶段中,数据将被分批、分阶段、分类型进行打包、上传至区块链网络。

(1)建立一个空打包表,包括时间点、访问策略、属性基密文以及密钥。

(2)从传统审计系统中收集审计数据,记为m。

(3)在打包表中查找满足以下两方面的记录。

①审计数据m 的生成时间t 和记录的时间点处于相同时间段。时间段的定义可灵活设置,可为1 h、1 d 或1 a 等。

②审计数据m 的访问控制策略和记录的访问策略是否一致。

如果存在这样的记录,则取出对应的属性基密文(记为C2)和密钥(记为k);如果不存在这样的记录,则随机生成满足对称加密的密钥k,对k利用算法,获得对应于访问控制策略的属性基密文,并将审计数据m 的t、访问策略、C2和k 记录在打包表中。

(4)对m 进行加密,加密使用的密钥记为k,得到密文C1。

(5)用sk 对密文C1、C2、t、h、h-1运行 S.Sign算法,获得相对应的签名σ。这里h=H(h-1||C1||C2||t),h-1为上一条审计记录的h 值。

(6)将(t,C1,C2,σ,h,h-1)广播到区块链网络。

对比第4 节中的数据收集阶段,本文并不是对每一条审计记录都进行属性基加密,在同一时间段内访问控制策略一致的审计数据只做一次属性基加密操作,从而大大减少了数据收集阶段的时间消耗。

5.3 数据下链阶段

审计验证系统将建立一个支持搜索功能的数据库,该数据库存储(t,C1,C2,σ,h,h-1)和区块ID 等,并主动监测区块链。当有新的区块产生时,审计验证系统去区块中读取(t,C1,C2,σ,h,h-1),并连同区块ID存储在数据库中。

审计数据稽核过程如下。

(1)用户确定稽核时间段[T1,T2]。

(2)自建数据库对应于时间段[T1,T2]为

(3)从区块链中取得{ti1,C1,i1,C2,i2,σi1,hi1,h-1,i1}的前一审计记录(t,C1,C2,σ,h,h-1),验证h-1,i1=h 是否成立,且对于j=1,…,n-1,验证和hij=H(h-1,ij||C1||C2||t)是否成立。如果h-1,ij+1=hij有一个不成立,说明自建数据库被人修改过,需要重新读取数据;否则,说明自建数据库在时间段[T1,T2]的数据和区块链中的数据一致。

(4)根据时间段[T1,T2],从传统审计系统中下载对应数据M´={m´}。这里M´是一个审计数据的集合,包含数个待稽核的审计数据m´。

(5)根据时间段[T1,T2],从区块链中下载对应数据,输入从密钥管理服务器处获得的自己的私钥,让审计验证服务器对下载的数据进行解密,获得审计数据明文。具体来说,用户需要建立一个解密表,包括属性基密文和密钥。在打包表中查找C2。如果存在这样的记录,则取出对应密钥(记为k);如果不存在这样的记录,则利用其密钥进行算法,获得对称加密密钥k(可能为空,即无法解密),并将C2和k 记录在解密表中。

(6)当k 不为空时,对密文解密获得m。最终,从区块链中获得的审计数据记为M={m}。

(7)对集合M´和M 中的数据逐项进行稽核,从而验证传统审计系统中在时间段[T1,T2]是否有记录进行了修改。

对比第4 节中的数据收集阶段,本文并不是对每一条审计记录都进行属性基加密,在同一时间段内访问控制策略一致的审计数据只做一次属性基加密操作。另外,对于区块链的操作仅仅是一次,而不是每条审计记录都要进行临时下链操作,从而大大提高了稽核效率。

6 结 语

针对传统审计系统无法对超级管理员进行有效审计的问题,利用区块链技术的不可篡改性,提出了一个新的防篡改审计系统。为了保护审计数据的私密性,利用属性基加密实现了密文的审计数据的细粒度访问控制。由于使用区块链和属性基加密带来了效率上的损失,于是提出了相应的提速方法。

猜你喜欢
密文密钥管理员
我是小小午餐管理员
一种支持动态更新的可排名密文搜索方案
幻中邂逅之金色密钥
幻中邂逅之金色密钥
基于模糊数学的通信网络密文信息差错恢复
我是图书管理员
我是图书管理员
密码系统中密钥的状态与保护*
基于网络报文流量的协议密文分析方法
密钥共享下跨用户密文数据去重挖掘方法*