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

文档序号:8299372阅读:来源:国知局
,若数据库用户通过中间件的特定接口来访问数据库中的敏感数据,则能获得其完整性验证结果;若数据库用户直接访问数据库中的敏感数据,仅无法获得其完整性验证结果,而不会影响用户对数据的正常访问。
[0023]本发明的有益效果在于:
[0024](一)它将数据库中敏感数据的完整性建立在系统环境可信及硬件安全的基础上,阻止敌手通过破坏系统环境来篡改敏感数据或完整性验证结果。
[0025]( 二)当敏感数据需要进行完整性保护时,本发明会通过可信度量技术来检查当前系统环境是否与敏感数据完整性保护需要的环境相符,真实而可信的度量了敏感数据并对其完整性度量值签名,以确保是对未被篡改的敏感数据进行完整性保护。在进行完整性度量值签名的验证前同样检查了系统环境是否可信,确保验证结果不会被篡改。
[0026](三)进行完整性验证的签名密钥受到硬件安全芯片的加密保护,因此实现了基于硬件的安全。
[0027](四)本发明中的完整性验证是采用中间件方式实现的,而且不是基于触发器方式来自动进行完整性验证,确保了敏感数据的完整性验证的同时也保证了系统的正常运行效率。
[0028](五)本发明中各个模块都是在数据库管理系统之外实现,进而最大程度地减小了对原有数据库管理系统的影响。
[0029](六)基于本发明,可以为工控环境建立一个基于安全芯片的存储敏感数据的安全数据库系统,提高其中的敏感数据完整性保护强度,确保生产计划、工艺流程等敏感数据不会被篡改。
【附图说明】
[0030]图1是本发明可信的数据库完整性保护方法及系统的技术架构示意图;
【具体实施方式】
[0031]下面将对
【发明内容】
中所描述的关键技术模块的具体实施做示例性解释,但不以这种解释限制发明的范围。
[0032]本发明的技术架构参见图1,主要包括安全芯片、可信度量模块、完整性保护模块、元数据库、完整性配置模块、访问接口模块及数据库操作模块。
[0033]首先介绍一下安全芯片模块、可信度量模块这两个基础性模块,本发明需要利用其提供的部分功能,然而模块自身的实现方式则不在本发明考虑范围内。下面将对本发明涉及到的其功能进行解释。
[0034]1.安全芯片
[0035]本发明中需要安全芯片提供的功能或机制主要是度量信任根、密钥保护功能。度量信任根是受安全芯片保护的系统信任链构建的基础。而从该信任根到可信度量模块之间的信任链的构建方式有许多,例如静态度量等。而密钥保护功能则是安全芯片为其产生的密钥提供的安全保护。通常,安全芯片具有一个存储根密钥SRK(Storage Root Key),它在芯片初始化时被建立,并一直保存在芯片中,以防止攻击者获得。SRK能够作为父密钥创建非对称密钥对,并声明此密钥对中私钥的使用环境(通过指定安全芯片中存放的环境度量值实现),并对私钥进行加密,存放在安全芯片外部。在使用这个私钥进行签名或解密时,该私钥必须被载入安全芯片内部使用,即在安全芯片内部由SRK对其解密。从而实现两个目的:第一,密钥的安全性建立在硬件芯片基础上;第二,密钥的使用环境必须符合预期。最后,本发明中提到的安全芯片可以是国产的TCM芯片,也可以是TPM芯片或其他提供了上述功能的软硬件。而本
【发明内容】
中提到的安全芯片的存储根密钥是指由安全芯片产生并保护的用于加解密的公私钥对,并不一定特指SRK。同样,前面提到的签名密钥也是指由安全芯片产生并保护的用于签名的公私钥对。
[0036]2.可信度量模块
[0037]可信度量模块位于操作系统内核层,在系统启动构建信任链的过程中被度量,所以它位于整个系统的TCB中。本发明需要其提供的对系统环境中启动的任意进程进行可信度量,并将度量结果扩展到安全芯片中的功能。
[0038]下面将对本发明的关键模块的【具体实施方式】进行阐述:
[0039]1.完整性配置模块及访问接口模块
[0040]完整性配置模块负责与安全管理员交互,提供完整性保护方面的配置接口,其接收的完整性相关信息包括:待保护的数据表或列,以及其授权用户列表。在
【发明内容】
中描述的是采用签名方式作为保护完整性的方法,因此利用安全芯片产生的同一个签名密钥即可,此处完整性配置模块接收的配置信息就不需要密钥相关信息。除此之外,本发明的实现还可以采用HMAC等带密钥的hash算法来保护完整性,在这种情况下,完整性配置模块接收的配置信息还应该包含HMAC的算法、密钥及密钥使用环境。
[0041]而访问接口模块则负责与数据库用户交互,接收其数据库查询/写入请求。可以采用与普通数据库访问接口相同的格式。即虽然将用户的数据库连接操作、查询操作请求先提交给访问接口模块,但是由完整性保护模块自动判断这些操作是否涉及需要完整性保护的敏感数据,并将查询操作结果及完整性验证结果返回给用户。
[0042]2.完整性保护模块
[0043]该模块以守护进程模式长期运行,处理其他模块提出的带完整性验证的数据库访问请求和配置请求。该模块对外的接口的形式如下:
[0044]I)带完整性验证的访问请求接口
[0045]输入:访问数据库的SQL语句,数据库用户名
[0046]输出:数据库访问接口,完整性验证结果
[0047]2)完整性配置请求接口
[0048]输入:待保护的数据表或列,授权用户列表(或待保护的数据表或列,授权用户列表,HMAC的算法,密钥,密钥使用环境)
[0049]输出:完整性设置操作的结果。
[0050]下面对该完整性保护技术的主要流程进行说明:
[0051]I)初始化流程
[0052]系统必须基于安全芯片实施安全启动,并构建信任链,且信任链中必须包括可信度量模块、完整性保护模块、完整性配置模块、访问接口模块和数据库操作模块。此外,安全芯片必须产生一个签名密钥,该密钥的使用环境指定为此信任链环境。
[0053]2)完整性设置流程
[0054]a)安全管理员将敏感数据的完整性相关信息传输给完整性配置模块。这些信息包括:待保护的数据表或列,以及其授权用户列表。
[0055]b)完整性配置模块接收这些完整性相关信息,并调用完整性保护模块进行处理。
[0056]c)完整性保护模块先收集待保护的数据表或列的当前完整性值,然后从安全芯片获取签名密钥,用其将待保护的数据表或列,及授权用户信息一起进行签名,并将这些信息存入元数据库中。同时,在这些待保护的数据表或列上添加一个属性列用于存储每条记录或其某个属性的完整性签名值。此外,完整性保护模块将利用数据库的强制访问控制机制或基于角色的访问控制机制为这些被保护的数据表或列以及授权用户分配特殊的安全标记或角色,使这些被保护的表或列仅能被这些授权用户访问,从而防止其他用户非故意地篡改这些敏感数据的完整性。
[0057]3)数据完整性保护流程
[0058]数据库用户在向数据库表插入或更新完整性敏感数据时,应该通过中间件提供的访问接口模块,否则将破坏敏感数据的完整性。即数据库用户合法地写入敏感数据的途径只有中间件提供的接口,其他方式都将视为对数据的篡改。
[0059]a)数据库用户通过访问接口模块输入数据的写入请求。
[0060]b)访问接口模块接收请求,并将其传递给完整性保护模块处理。
[0061]c)完整性保护模块查询该敏感数据对应的表或列(即待保护的数据表或列)的完整性元数据,验证签名是否正确。接着检验用户是否是授权
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1