一种可信的数据库完整性保护方法及系统的制作方法

文档序号:8299372阅读:293来源:国知局
一种可信的数据库完整性保护方法及系统的制作方法
【技术领域】
[0001]本发明涉及一种可信的数据库完整性保护方法及系统,属于数据库安全领域。
【背景技术】
[0002]由于工业生产对工控系统可用性的严格要求,工控系统在部署完成后通常不会及时地进行升级、打补丁或杀毒软件病毒库的更新等安全操作。因此相比于传统信息系统,工控系统的安全防护措施存在一定的滞后性。而随着信息化和工业化的融合,许多工业生产领域的企业管理网与工业控制网开始逐渐地互联互通,以实现管理与控制一体化。这就使工控系统面临着更加严重的来自外部的病毒、木马、黑客攻击等威胁,同时也使得内部人员的恶意行为能够对系统产生更严重的影响。与传统信息系统相似,工业控制系统的数据库中也存在大量的敏感数据,例如生产计划或工艺配方等数据。相比于工控系统的实时业务数据,这些数据一旦被篡改将会对工业生产造成更严重的影响。因此为了应对工控系统自身安全防护措施的滞后性和两化融合带来的数据安全威胁,有必要对工控系统的数据库中存放的敏感数据进行完整性保护。
[0003]为了确保数据库中的敏感数据的完整性,通常会采用数据库完整性保护技术。它是指以密码学技术为基础对数据库管理系统中的敏感数据:数据库、表、属性列、元组提供完整性度量和验证服务,以保证信息或数据不被未授权的篡改或在篡改后能够被迅速发现。然而现有数据库完整性保护技术存在以下两个显著缺陷无法确保工控系统中敏感数据的完整性:
[0004]其一,数据的完整性与环境安全性没有绑定。传统安全数据库系统的完整性保护措施通常建立在环境相对安全的前提下,例如操作系统中不存在病毒、木马等。而这种假设对于安全防护措施相对滞后的工业控制系统来说难以成立。在系统环境已被破坏的情况下,安全数据库即使对敏感数据进行了完整性保护也无法保证其完整性。这是由于数据在进行完整性度量时缺少对系统环境安全性的检测,导致在非安全环境下敏感数据产生的完整性度量值自身就是不可信的,而基于该值进行完整性检验就更加不可信了。而且在缺少对系统环境安全性的检测的情况下,完整性度量值的验证结果也可以被篡改,也是不可信的。
[0005]其二,数据的完整性没有建立在硬件基础上。传统安全数据库的完整性通常建立在软件方式实现的系统可信计算基TCB的安全性基础上。而对于工控系统来说,这种软件方式实现的TCB并不能完全阻止攻击者对敏感数据的篡改。例如,工控系统在维护时,通常会临时接上工程师的笔记本。攻击者可以通过对该笔记本的攻击,来进一步侵入和破坏工控系统。更为严重的是,能够物理接触工控系统的内部人员一旦是恶意的,那么他们能够篡改敏感数据而不被轻易发觉,造成严重的损失。这是缺少硬件支持的安全数据库方案无法解决的问题。
[0006]总之,目前在工控环境中尚缺乏一种能够安全存储敏感数据,并将其完整性与系统环境、底层硬件安全性绑定的数据库完整性验证技术成果。

【发明内容】

[0007]本发明的目的在于提供一种可信的数据库完整性保护方法及系统,能够对存放在数据库中的敏感数据进行完整性保护,并将其完整性与系统环境及底层硬件相绑定,从而能够有效发现远程攻击者或内部人员对敏感数据的篡改,尤其适用于工业控制系统。
[0008]为了实现上述目的,本发明采用以下技术方案:
[0009]一种可信的数据库完整性保护方法,包括以下步骤:
[0010]I)使用了本方法的系统基于安全芯片实施安全启动,并构建信任链,同时利用安全芯片产生签名密钥,并通过可信度量技术在形成的信任链基础上对当前系统环境进行度量,确保当前系统环境安全可信。
[0011]2)安全管理员设置敏感数据的完整性相关信息,该完整性相关信息包括:待保护的数据表或列,以及其授权用户列表。
[0012]3)利用安全芯片产生的签名密钥,将待保护的数据表或列,待保护的数据表或列的当前完整性值,及其授权用户列表一起进行签名,并存入元数据库中。同时,在这些待保护的数据表或列上添加一个属性列用于存储每条记录或其某个属性的完整性签名值。此外,利用访问控制机制对待保护的数据表或列实施访问控制。
[0013]4)数据库用户通过中间件提供的接口向数据库发出敏感数据查询或写入请求。
[0014]5)通过可信度量技术对当前系统环境进行度量,确保当前系统环境安全可信后,根据元数据库中存储的完整性元数据检验用户查询或写入请求中的签名是否正确,以及用户是否为授权用户,检验都通过后,将执行结果返回给用户。
[0015]进一步地,步骤2)中,所述完整性相关信息还包括:HMAC的算法,密钥,密钥使用环境。
[0016]进一步地,步骤3)中,利用数据库的强制访问控制机制或基于角色的访问控制机制为待保护的数据表或列以及授权用户分配特殊的安全标记或角色,使待保护的数据表或列仅能被上述授权用户访问,从而防止其他用户非故意地篡改这些敏感数据的完整性。
[0017]进一步地,步骤5)中,对于数据库用户发出的敏感数据写入请求,在检验都通过后,查询数据库中是否已经存在该敏感数据,如果已经有对应的敏感数据,则检查已有的敏感数据的签名是否正确,并计算该已有的敏感数据的当前完整性值,然后与元数据库中的签名的完整性值进行比较,如果一致,则接着计算要写入的敏感数据的完整性值,并用安全芯片签名密钥进行签名保护,然后将该敏感数据及其完整性签名值写入数据库。若数据库中还没有该敏感数据,则直接计算该敏感数据的完整性值,并用安全芯片签名密钥进行签名保护,然后将敏感数据及其完整性签名值写入数据库,并返回执行结果。
[0018]进一步地,步骤5)中,对于数据库用户发出的敏感数据查询请求,在检验都通过后,查询数据库中敏感数据及其完整性签名值,验证签名是否正确。若签名正确,则接着计算敏感数据的完整性值,并与元数据库中签名保护的完整性值进行对比,如果一致,则将敏感数据及完整性验证通过的结果同时返回。若上述验证中任何一个没有通过,则返回完整性验证失败的结果。
[0019]一种可信的数据库完整性保护系统,包括:安全芯片、可信度量模块、完整性保护模块、元数据库、完整性配置模块、访问接口模块及数据库操作模块。其中,安全芯片负责构建信任链并生成签名密钥;可信度量模块负责在形成的信任链基础上对系统环境中启动的任意进程或文件进行可信度量;完整性保护模块负责接收完整性配置模块发送的完整性相关信息并处理数据查询/写入请求;元数据库则负责完整性相关信息的存储;访问接口模块负责接收并处理数据库用户的SQL命令;数据库操作模块则负责连接数据库并执行数据库用户的SQL命令;最后,完整性配置模块则负责与安全管理员进行交互,接收完整性相关信息并将其发送给完整性保护模块。
[0020]进一步地,所述信任链中包括可信度量模块、完整性保护模块、完整性配置模块、访问接口模块和数据库操作模块。
[0021]进一步地,所述完整性相关信息包括:待保护的数据表或列和授权用户列表;或待保护的数据表或列,授权用户列表,HMAC的算法,密钥和密钥使用环境。
[0022]该技术的基本原理为:利用安全芯片产生的签名密钥对敏感数据的完整性度量值行签名保护,并指定使用该签名密钥的安全系统环境。利用可信度量模块在签名和验证签名阶段度量系统环境是否是指定的安全系统环境。由于签名验证会对系统的效率造成较大影响,因此该完整性保护技术只能采用中间件方式实现,同时不会采用触发器方式来自动进行完整性验证,以达到不影响工控系统正常运行的目的。也就是说,在应用了本发明的可信数据完整性保护技术后
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1