APP下载

基于CAS系统的网络数据库安全模型

2020-06-16何文才李斯佳刘培鹤马英杰杨亚涛

计算机应用与软件 2020年6期
关键词:敏感数据密钥加密

何文才 李斯佳 刘培鹤 马英杰 杨亚涛

1(西安电子科技大学通信工程学院 陕西 西安 710071)

2(北京电子科技学院通信工程系 北京 100070)

0 引 言

网络信息化时代的到来,给人类社会生产生活带来了重要的促进作用。人类生产生活中产生的信息量激增,大量的数据信息需要安全地存储到网络数据库当中。为了保证网络数据库安全有效的使用,就需要从理论联系实际出发,提出相关安全模型并进行多方面的分析,从而对网络数据库安全技术的研究与发展提供有效的支持。

近年来许多学者对网络数据信息加密展开研究。李爱宁等[1]提出了一种分段双重加密方法,效率及传输吞吐量较高,但是面对已知部分明密文对的敌手,被破译的可能性较高。闫玺玺等[2]提出了一种基于访问控制和中国剩余定理的密钥数据库管理方案,将需要加密的各个数据项的密钥通过中国剩余定理计算合成主密钥,从而进行管理。但实际上由于对数据库添加或删除数据项时会影响数据项和子密钥的个数,需要重新计算主密钥,计算量较大,对于需要频繁添加数据项的数据表不易进行主密钥生成操作。易成岐等[3]提出了一种基于社会网络特性的双混沌互反馈加密算法,在实际进行计算中由于数据精度有限,低维混沌系统部分会产生较明显的短周期效应,若用于网络数据库存储的大量数据加密,则会产生一定的周期效应。

近年来国内外专家学者对于混沌系统在加密方面的应用有着大量的研究及分析成果。Baykasoglu等[4]将Logistic映射的参数和初始条件作为部分密钥,用映射产生的浮点数序列加密明文。Habutsu等[5]使用Tent混沌映射的逆映射对明文初值进行N次迭代,解密时用Tent混沌映射进行N次正向迭代,设计了一种混沌加密系统。然而在网络数据库加密方面,迄今为止并未有一种成熟的使用混沌系统进行加密的方案。本文主要针对管理员内部违规风险,提出一种基于Logistic映射与Henon映射相结合的混沌系统加密算法,从而对网络数据库进行加密的方案,在保证安全性的前提下,有着更为良好的灵活性。

1 网络数据库安全及威胁

1.1 网络数据库安全技术

用户在访问和使用网络库时,通常是通过若干种网络数据库已有的安全技术来保证网络数据库数据安全的。

1) 用户识别技术。用户识别技术主要应用于用户登录验证过程中,通过使用基于口令的身份识别技术、基于生物学信息的身份识别技术、基于软硬件安全设备的识别技术等来验证确认用户身份信息,这样就能确保用户的合法性。

2) 访问限制和监视追踪技术。访问限制技术主要通过给予相同权限用户同一种角色身份信息,使得对于不同角色身份的用户访问操作权限不同,对合法用户非法获取自身权限外数据进行了限制。监视追踪技术是基于访问限制技术设定的不同角色身份信息,对用户角色的操作进行监视追踪,对限制非法操作、降低非法操作的影响做了更为有效的补充与完善。

3) 数据库审计技术。数据库审计技术是网络数据库安全技术中的一项重要内容,能够有效降低数据库相关安全事故的严重性和发生率。数据库审计技术会记录用户各种操作的时间、内容以及行为方式,对正常有效的操作予以记录和统计,对非法操作、恶意操作等及时记录下来,避免影响严重化,同时给予相关数据库权限人追责依据。

4) 数据库加密技术。数据库加密技术是保障数据库数据安全的一项重要技术。针对数据库中保存的数据量较大、保存时间长、访问数据较为频繁,数据库加密的粒度、层级、运算速度也有所不同。常用的数据库加密方案有AES、RSA、同态加密等加密算法,此外,MD5、SHA1等散列算法也常用于数据库密码混淆方案中。

1.2 网络数据库的安全威胁

网络数据库的安全主要从以下两个方面来定义[6]。一是指网络数据库运行系统的安全,二是指网络数据库中数据的安全,后者是网络数据库安全技术针对的核心之处。对于网络数据库运行系统的安全,主要包括攻击者对运行环境进行攻击、数据库服务器硬件损耗、数据库运行时崩溃或其他非正常运行状况等。对网络数据库中数据安全的威胁,主要来自以下三个方面。

1) 网络黑客入侵数据库造成数据泄露或损坏。部分网络黑客会挖掘系统漏洞来针对数据库进行数据的窃取与损毁,例如口令入侵、SQL注入攻击、XSS攻击等。这些网络黑客主要通过获取合法用户口令信息、获取特权、窃取数据备份、直接获取敏感数据等手段来对数据库数据安全造成威胁。

2) 合法用户非法获取自身权限外的数据资源。这种威胁一方面来自普通用户误操作导致获取到自身权限外的数据资源,从而使数据泄露或者损坏。另一方面来自恶意用户非法利用系统中的漏洞从而获取敏感信息,对数据库数据安全造成威胁。

3) 内部人员可以直接接触敏感数据导致数据泄露。网络数据库系统内部工作管理人员往往可以直接接触到数据库内部敏感数据,而敏感数据在网络数据库系统内部加密的密钥和加密方案等信息对于内部人员来说也可以较为容易地获取到。内部人员为了保障网络数据库安全有着不可替代的作用和意义,但也会对网络数据库的安全又造成了一定程度上的威胁。

2 网络数据库安全模型的构建

2.1 具体步骤

结合常用的网络数据库安全技术,为解决内部人员可直接接触敏感数据的问题,本文提出了一种基于混沌系统和CAS系统的网络数据库安全模型。

在新型的网络数据安全模型中,用户端单独保存数据库根密钥,在加解密操作的过程中,根据根密钥、用户身份信息在相应的混沌模型计算出加解密所需的所有相关密钥,并进行加解密操作。该网络数据安全模型的构造如图1所示。

图1 网络数据库安全模型

(1) 用户登录Web服务器。用户根据自身实际的需求,在网络数据库系统的Web前端页面中需要进行登录操作。这时用户首先在Web服务器发出登录请求,若用户曾经注册过且Service Ticket(ST)有效期未过,则请求的请求头中包含了ST参数。若用户还未注册过或ST的有效时间已过,请求的请求头中不携带ST参数。Web服务器检查用户请求头,判断该请求是否携带ST,若未携带则将请求重定向到LKM服务器并进行步骤(2),若携带则直接进行步骤(5)来进行相关验证。

(2) 请求重定向。Web服务器将该请求重定向到LKM服务器,LKM服务器会检查用户LKM服务器站点的Cookie中是否携带TGC(Ticket Grant Cookie)。若未携带则需要用户进行步骤(3)来进行注册或登录操作。若携带则LKM服务器验证该TGC是否正确,正确则跳转到步骤(4)。

(3) 注册或登录。LKM服务器对用户进行相应的身份认证,常见的认证方式有基于口令的身份识别技术、基于生物学信息的身份识别技术、基于软硬件安全设备的识别技术。本文在实现中使用基于口令的身份识别技术,将用户的密码进行MD5混淆后保存在LKM服务器的用户信息管理数据库中。用户在认证成功后进行步骤(4)。

(4) 下发TGC及参数。若用户是在注册或登录后进入步骤(4),LKM服务器会向用户浏览器下发TGC并生成下发混沌系统使用的各项参数,同时在LKM服务器的用户信息管理数据库中保存用户的TGC和这些参数,下发的TGC作为会话Cookie保存。会话Cookie不存在过期时间或者有效期,但在用户关闭浏览器的同时会被删除。若用户是在TGC验证成功后进入步骤(4),则仅下发混沌系统使用的各项参数。混沌系统使用的各项参数在下发时会使用公钥密码算法进行加密,保证参数在网络传输过程中的安全性。

(5) 重新登录Web服务器。用户端浏览器首先根据上次请求使用的ST(若没有则使用TGC)以及LKM服务器下发的相关参数在Logistic-Henon加密方案中计算出本次请求需要携带的ST,结合用户所需加密粒度对相关数据进行加密。随后将请求发送至Web服务器。

(6) ST验证。Web服务器向LKM服务器发送请求来验证该用户本次ST是否合法,该请求中包含ST信息、用户请求头中获取的用户名以及用户该请求发送时刻的时间戳。

(7) LKM服务器根据请求中发送过来的用户名信息,在用户信息管理数据库中获取此用户的TGC、用户成功请求次数N以及混沌系统参数信息。通过在Logistic-Henon混沌加密方案中Ticket生成部分代入到的传输过来的混沌系统参数,将TGC作为初始状态并迭代N次,计算出本次请求正确的ST并进行核对。若核对正确则会将用户相关权限信息反馈到Web服务器,同时保存N+1为该用户成功请求次数。

(8) 请求审计。Web服务器将用户端进行Logistic-Henon混沌加密后的库文件信息或SQL语句、用户权限信息传递给数据库安全中间件。数据库安全中间件首先根据用户的身份权限信息决定是否通过用户的请求,随后对SQL语句进行敏感词汇检查审计,并将相应的记录保存到审计日志中。

(9) 备份与示警。数据库安全中间件周期性对审计记录进行审查、保存数据库备份和数据库更新备份。在审查中若判断某数据库在一定时间段内遭受攻击频次较高或遭受严重攻击,则会向LKM服务器发送示警消息与数据库创建人信息,LKM服务器会向相应的用户发送示警邮件提示相关权限用户。

此外,若用户需要读取数据信息并且身份验证通过,LAKM服务器会根据审计记录中该数据保存时的用户成功请求次数在混沌系统中计算出当时所使用的ST,并与数据密文信息一同传递给用户,用于解密数据信息。

2.2 方案安全性分析

对数据库安全造成威胁的原因大体上来自于自然因素和人为因素两个方向,其中自然因素造成的威胁对数据库安全性能影响较小,网络数据库中发生的安全问题主要来自于人为因素。人为因素造成的威胁包括了三个主要方面:网络黑客入侵数据库造成数据泄露或损坏,内部人员直接接触敏感数据造成数据泄露以及合法用户非法获取自身权限外的数据资源。

根据本文所提网络数据库安全方案以及方案中所使用到的Logistic-Henon混沌加密算法的特征,网络黑客若要获取到用户的敏感数据信息,在已知安全方案中全部流程以及加密算法结构的同时,仍需要得到用户密文数据信息、根密钥、Service Ticket相关信息以及混沌加密参数。其中Service Ticket相关信息需要知道用户在创建、保存敏感数据时使用的Service Ticket,即使网络黑客已经得到了方案中混沌加密算法结构以及用户在混沌算法中使用的相关参数,也至少需要知道用户的TGC信息。用户在每次请求进行身份认证的过程中,使用的Service Ticket不同,由于产生Service Ticket的混沌系统具有伪随机特性,网络黑客难以使用重放攻击来获取合法用户身份。此外,根密钥信息保存在用户本地计算机中,并不会在用户请求中传递或由第三方下发分配,网络黑客一般无法窃听相关信息。因此,本文方案可以抵御网络黑客入侵造成的安全威胁。

网络数据库的内部管理人员往往具有非常大的用户权限,能够直接接触到用户敏感数据信息,若内部管理人员作为敌手,对用户敏感数据造成的安全威胁较其他两类攻击方式更大。本文提出的网路数据库安全模型将敏感数据加密流程放到用户端来进行,一方面防止了网络传输中黑客对敏感数据的窃听,另一方面防止用户敏感数据明文信息夹杂在用户请求正文中。在用户发送敏感数据加密请求之后,从服务器接收到用户请求到服务器内部对敏感数据加密完成的过程中,网络数据库管理员及服务器后端管理员均可以解除到敏感数据明文信息。本文模型中,敏感数据加解密使用的密钥信息在用户端保存,管理员无法通过自身权限优势获取用户根密钥,从而防止了网络数据库中的内部违规行为。因此,本文方案可以抵御网络数据库内部管理人员直接接触敏感数据造成的安全威胁。

网络数据库中还存在着合法用户非法获取自身权限外数据资源的威胁。本文方案中敏感数据库及数据表访问权限由RBAC访问控制模型建立,通过用户、权限、角色表共同保存用户与资源之间的权限关系,合法用户无法获取自身权限外数据资源信息。因此,本文方案可以抵御合法用户通过非法手段获取自身权限外的数据资源。

对于网络数据库来说,一般有以下几种常见的攻击手段[9]。

(1) SQL注入攻击手段。这种方式不需要采用任何外部工具,敌手通过将敏感字符添加到数据库查询请求参数中,从而窃取数据库中的敏感信息。本文数据库安全模型中,数据库安全中间件对用户提交的SQL语句敏感词汇进行分析,能够防止恶意用户通过SQL注入攻击窃取用户敏感信息。

(2) 数据库下载漏洞。这种方式通过计算机系统中互联网信息服务存在的漏洞或网站设计缺陷,暴露网络数据库路径,从而下载整个网络数据库信息。对于本文数据库模型,网络黑客若通过网络漏洞或网站缺陷,从网络服务器内部或网络数据库获取到用户敏感信息,由于用户数据在浏览器端已完成加密操作,并且在服务端和网络数据库存储过程中不会对用户数据进行解密操作,网络黑客只能够获取到密文信息,从而无法直接获得用户敏感数据明文信息。

(3) 窃取备份。这种攻击手段常发生在内部管理人员利用自身权限将数据库备份销售给攻击者,而数据库中数据未加密,从而导致敏感信息泄露。与第2点相同,本文方案数据库备份同样为加密后的密文信息,因此内部人员或黑客无法通过窃取备份信息得到用户敏感数据明文信息。

(4) 特权提升。这种攻击手段针对于数据库中访问控制产生的漏洞,网络数据库内部管理员利用自身较高的访问权限或外部攻击人员通过破坏数据库操作系统获取更高等级的权限来对数据库敏感信息进行攻击。本文方案中对用户以及管理员访问控制权限做了较为详细的限制,用户或网络黑客无法访问自身没有访问权限的数据信息,数据库管理员也无法提升自身的操作权限,权限管理员无法接触到敏感数据信息,从而最大程度上防止这种攻击手段。

表1展示了在安全性方面,本文方案与其他若干种方案对于常见网络数据库攻击方式的对比。可以看出,本文方案较其他几种方案更能抵御常见网络数据库攻击,同时还可以避免网络数据库内部管理人员利用自身权限直接接触敏感数据。文献[17]所提出的B/S架构网络数据库方案中,用户敏感数据在服务端进行加解密操作,以密文的形式存储,因此可以抵御窃取备份方式的攻击。但是该方案未对数据库模型中访问控制模型做详细限制,因此对于数据库下载漏洞以及特权提升的攻击方式防御效果不佳。此外,该方案中并未对SQL语句进行详细分析,且数据库DAO层操作仅通过JDBC完成,因此对SQL注入攻击防御效果不佳。文献[18]提出的Web平台数据库系统中,系统对SQL注入攻击进行了防御,但是由于该系统访问控制模型中数据库管理员权限极高且数量较多,因此对于特权提升方式的攻击抵御效果不佳。该方案中用户先将明文数据保存到网络数据库中,再根据需求加密相关数据,因此数据库备份文件中可能存有敏感数据明文备份,因此对于数据库下载漏洞以及窃取备份方式的攻击防御效果不佳。文献[19]重点研究数据库加密密钥管理技术,提出了一种二级密钥管理方案,并对SQL语法进行了分析,因此能够防御SQL注入、数据库下载漏洞、窃取备份等攻击方式的攻击。但是该方案中用户管理员能够直接接触到用户密文数据信息及加密字典,从而对特权提升等来自内部人员的攻击防御效果不佳。

表1 网络数据库模型安全性能比较表

3 混沌加密算法原理

本文系统使用Logistic-Henon混沌系统和CAS单点登录系统共同完成身份确认和子密钥生成过程,大体上可以分为ST生成和子密钥生成两部分,具体流程图如图2所示。

图2 身份确认及子密钥生成流程图

对于LAKM服务器端来说,每次验证ST合法性需要将用户初始TGC代入Logistic映射中迭代,判断生成的ST与用户请求携带的ST是否相同,并保存记录用户成功请求的次数。

对于用户端来说,首先需要将上次成功使用的ST代入Logistic映射中迭代生成本次需要使用的ST,若验证成功则将本次使用的ST取代上次使用的ST保存。与此同时将此ST和根密钥带入Henon映射中生成加密使用的子密钥,再进行加密操作。

3.1 ST的生成

用户端对上次,即第p次成功身份验证所使用的ST进行处理f(x),得到满足Logistic映射的初态合理区间的初态f(st)=xp。其中x0表示TGC,μ则由LAKM服务器计算生成并在用户第一次注册时与TGC同时发放给用户,保证服务器和用户端有相同的μ。用户发送请求时将xi代入式(1)进行hp次迭代,得到本次请求需要的ST=f-1(xk)。

xn+1=μxn(1-xn)

(1)

Devaney R.L定义[6]混沌的连续映射f在度量空间V上具有如下性质:1) 初值敏感性;2) 拓扑传递性;3)f的周期点集在V中稠密。

3.2 子密钥生成及加解密过程

系统对于数据库库文件的明文信息m进行分段加密,将m分段为m1、m2、…、mn进行加密,需要的密钥k1、k2、…、kn由Henon映射生成。Henon映射是高维情形下最简单的非线性映射,相比于普通映射来说,初值敏感性更强、动力学系统特性更好[8]。

(2)

解密是加密过程的逆过程,其中计算k1所使用的初态x0使用提交保存加密数据库文件时所使用的ST。服务器调取审计日志记录信息获得用户该次的身份验证成功次数p,用于式(1)中的迭代次数以获取正确的ST,再传递给客户端。客户端将ST和根密钥带入相同的Henon混沌系统生成全部子密钥k1、k2、…、kn,分别对密文c1、c2、…、cn进行解密生成明文段m1、m2、…、mn,将所有明文段组合成明文文件m,即得到了明文数据库库文件。

3.3 安全性分析

在验证算法的安全性过程中,CPU选用Intel(R) Core(TM) i7-7700HQ CPU @ 2.80 GHz 2.81 GHz,内存8.00 GB,测试代码使用Java编写,jdk版本为10.0.1。代码中数据全部选用double型数据类型,子密钥生成后采用AES进行加密,与传统AES单一密钥加密进行对比。

3.3.1复杂度分析

首先计算本次请求使用的ST,这一步主要是固定次数的Logistic映射的迭代,复杂度与明文长度无关,为O(1)。这一步耗时主要与迭代次数相关,在实验仿真中迭代10 000次平均耗时1.92毫秒,在实际使用中基本可以忽略不计。下一步需要计算出子密钥并进行加密,其时间复杂度主要和加密时选用的算法复杂度相同。实验仿真中选用AES加密,其复杂为O(n),因此系统的时间复杂度为O(n)。

3.3.2密钥空间分析

本文算法共有两个初始值和三个参数,其中Logistic映射在参数3.569 945 6<μ≤4,初始状态x0∈[0,1]时进入混沌状态,参数空间为4.3×1015,初始状态空间为1×1016。Henon映射在参数α∈[0,1.4]、b=0.3时系统进入混沌状态,参数空间为1.4×1016,初始状态空间与根密钥生成初始状态的函数值域范围相关,仿真实验中使用字符串的哈希值生成初始状态,值域空间大小为232≈4×109。因此算法的总密钥空间为232×4.3×1015×1016×1.4×1016≈2.4×1057,完全可以满足加密时密钥空间大小的需求。

3.3.3初值敏感性分析

实验选取Logistic映射中参数μ=3.769 467 668 85,Henon映射中参数a=1.4,b=0.3,ST为0.215 146 685 55,根密钥为字符串password,对数据库文件进行加密。密文文件在选取相同ST和根密钥的条件下,可以解密得到正确的数据库文件。仿真实验代码中使用流的方式来读取写入库文件,每128个比特分为一组进行加密,解密时则是144个比特一组,不足的部分单独分为一组。实验表明,对于Logistic映射,在μ相同,ST即初态x0相差10-12的条件下,迭代次数在55次之后序列产生较大差异,如图3所示。在ST相同,μ相差10-12的条件下,迭代次数在65之后产生较大差异,如图4所示。

图3 μ相同ST不同时序列差值

图4 ST相同μ不同时序列差值

如图5-图8所示,在相同密文文件和相同参数的μ、a、b、ST,Logistic映射迭代次数为10 000的条件下,对一个有若干数据项的数据库先进行加密,然后用相同ST和根密钥进行解密,解密后的数据库与加密前数据库数据项完全相同,而加密后的库文件与加密前完全不同。在根密钥最后一位变动一个比特,即变为passwore进行解密,在解密过程中就会报错,无法正常解密。由此可证明本文算法对初值敏感性较高,安全性能好。

图6 加密前的库文件(json格式文件使用记事本打开)

图8 正常解密后的数据库

4 结 语

本文针对以内部人员造成的网络威胁为主,兼顾其他种类的网络威胁,以CAS单点登录系统为基础设计了一种Logistic-Henon混沌加密系统并进行了分析和实验。本文提出的加密系统用Logistic映射迭代,保证了CAS单点登录系统ST的安全性,基本做到了一次一密,并在此基础上以根密钥和该次传输的ST作为初态带入了Henon映射,依次计算出子密钥进行加密。由于混沌系统的初值敏感性和不稳定性,保证了计算出的子密钥无序性,从而取得了更好的加密效果。本文又提出了一种安全网络数据库模型以适配加密方案,更加注重用户对数据权限的私有化,以保障网络数据的安全性。

猜你喜欢

敏感数据密钥加密
幻中邂逅之金色密钥
幻中邂逅之金色密钥
基于广义logistic混沌系统的快速图像加密方法
保护数据按需创建多种加密磁盘
关于数据防泄露(DLP)的论述
Android密钥库简析
无线传感器网络中敏感数据分布密度控制方法研究
浅谈企业数据安全风险分析及保护
加密与解密
敏感数据的传播链