一种混合的SQLite3安全访问方法技术

技术编号:14620816 阅读:71 留言:0更新日期:2017-02-10 12:37
本发明专利技术公开了一种混合的SQLite3安全访问方法,该方法包括在应用层建立身份认证模块和访问控制模块,在物理存储阶段建立加解密模块。在应用层首先通过身份认证模块验证用户身份的合法性;当用户身份合法时,通过访问控制模块来验证用户所属角色的权限大小及范围,从而决定是否满足用户所要求的对SQLite3数据库的操作;当用户在对SQLite3数据库的数据进行访问之前,要通过加解密模块实现数据的解密,由密文形式解密为明文形式。本发明专利技术有效避免合法用户的“越权使用”和非法用户的“权限盗用”,为嵌入式数据库SQLite3的访问提供一种多层次、多阶段、可配置的安全访问方法。

【技术实现步骤摘要】

本专利技术涉及计算机网络安全
,特别是涉及一种混合的SQLite3安全访问方法
技术介绍
随着社会信息化、网络化和智能化的发展,计算机体积越来越小,功能越来越强大,单个芯片的处理能力越来越强。为了满足社会应用的需求,嵌入式系统与嵌入式数据库应运而生,并且在计算机领域中拥有广阔的发展空间。SQLite是D.RichardHipp用C语言开发实现的一种开源的、嵌入式关系型数据库。目前,已经发展到了版本3。嵌入式数据库SQLite3具有零配置、开源、便携、易用、紧凑和可靠等特点。嵌入式数据库SQLite3没有独立运行的进程,与所服务的应用程序在应用程序进程空间内共生共存,其代码嵌入应用程序中,作为托管它的程序的一部分。然而,开源的SQLite3数据库却并没有实现相应的安全存储功能。由于其使用单个文件存储数据库的所有内容,所以任何得到SQLite3数据库文件的用户都能通过相应的方式,甚至使用文本编辑器就可以访问甚至修改SQLite3数据库记录。另一方面,SQLite3只是简单的依靠操作系统对文件的访问权限来控制对数据库的访问;也就是说,只要是通过操作系统认证的用户就可以通过API接口函数或者一些数据库查看工具访问甚至修改SQLite3数据库记录。因此,SQLite3数据库的使用,会存在下列2个问题:1)用户访问SQLite3数据库时,存在“越权使用、权限滥用、权限盗用”等现象;2)SQLite3数据库中存储的数据信息随数据库文件的丢失而泄露,无法达到数据保密的目的。
技术实现思路
本专利技术的目的是克服现有技术的不足,设计出一种混合的SQLite3安全访问方法,有效控制了合法用户的授权访问,阻止非法用户的越权使用,提高了SQLite3数据库的访问控制能力,保证了SQLite3数据库数据的安全性。为达到上述目的,本专利技术所采用的技术方案是:一种混合的SQLite3安全访问方法,包括以下步骤:步骤1.1:构建用于加密存储数据库用户信息的权限库;通过身份认证模块验证用户身份的合法性,若身份验证成功,执行步骤1.2,否则,系统返回错误提示信息并拒绝此次访问;步骤1.2:通过访问控制模块验证合法用户的具体数据库操作执行权限,若权限验证成功,执行步骤1.3,否则,系统返回拒绝访问信息并拒绝此次访问;首先,根据RBAC模型将数据库用户分为多级角色,通过数据库内核层判断合法用户的具体操作事件,其次,判断用户信息结构体的角色成员,获得用户所属角色对应的角色码,然后,检测用户所属角色,验证其是否具有操作权限;步骤1.3:通过加解密模块对权限用户的访问数据进行自动的加解密转换。所述验证用户身份的合法性的具体步骤为:步骤2.1:对用户进行解析参数,解析出用户的用户信息参数,所述用户信息参数包括用户名、用户口令和数据库名,若用户信息参数格式正确,执行步骤2.2,否则,系统返回错误提示信息并拒绝此次访问;步骤2.2:对用户进行身份验证,验证权限库存储的用户名中是否存在解析出的用户名,若存在,验证解析出的用户口令与权限库中储存的用户口令是否匹配,若匹配,则为合法用户,否则,用户身份验证失败并拒绝此次访问。所述验证合法用户操作权限的具体步骤为:步骤3.1:根据RBAC模型将数据库用户分为多级角色,所述多级角色包括一级角色、二级角色、三级角色,数据库内核层通过词法分析、语法分析和编译的SQL语句判断合法用户的具体操作事件;步骤3.2:判断用户信息结构体的角色成员是否为空,若为空,则终止访问操作,否则由用户所属角色返回相对应的角色码;步骤3.3:检测用户角色是否为一级角色,如果是一级角色,验证此角色是否具有操作权限,否则,执行步骤3.4;步骤3.4:检测用户角色是否为二级角色,如果是二级角色,验证此角色是否具有操作权限,否则,执行步骤3.5;步骤3.5:检测用户角色是否为三级角色,如果是三级角色,验证此角色是否具有操作权限,否则,执行步骤3.6;步骤3.6:根据权限验证结果,返回相应的权限验证结果码SQLITE_OK或SQLITE_DENY或SQLITE_IGNORE,权限验证结束。进一步地,所述一级角色具有数据库操作的所有权限,二级角色具有数据库表、视图、触发器、索引的操作权限,三级角色具有数据库表、视图、触发器、索引、数据记录的具体子操作权限。所述加解密转换的具体步骤为:当用户向数据库中写入数据时,数据库内核层自动选择加密算法将数据的明文信息转换为密文信息,当用户访问数据时,若用户输入密钥正确且访问操作为权限范围内的SQL操作,数据库内核层自动选择解密算法将密文信息转换为明文信息,若用户的访问操作为权限范围外的SQL操作,系统阻止用户的SQL操作或显示NULL值。进一步地,所述数据库内核层为“页面级”的安全存储与访问。本专利技术的积极有益效果:本专利技术能够有效提高嵌入式数据库SQLite3的安全存储与访问,有效避免合法用户的“越权使用”和非法用户的“权限盗用”;同时,即使数据库文件不幸丢失,第三方也无法得知SQLite3数据库文件中存储的真实信息,达到数据保密的目的。本专利技术所提供的方法能够为嵌入式数据库SQLite3的访问提供一种多层次、多阶段、可配置的安全访问方法。附图说明图1为本专利技术的逻辑框图图2为本专利技术的访问控制流程图图3为本专利技术验证用户身份合法性的流程图图4为本专利技术验证合法用户操作权限的流程图。具体实施方式下面结合附图具体说明本专利技术的具体实施方式。参见图1,本申请的混合的SQLite3安全访问方法,构建了一个权限库SystemDB,用于存储数据库用户的相关信息;权限库SystemDB中的所有数据信息加密存储,以保证用户信息的安全性,其只能由数据库管理员即一级角色来访问,其他用户不能访问。本申请在应用层增加了身份认证模块和访问控制模块,在物理存储阶段增加了加解密模块。在应用层首先通过身份认证模块验证用户身份的合法性;当用户身份合法时,SQLite3数据库在编译SQL语句时,通过访问控制模块来验证用户所属角色的权限大小及范围,从而决定是否满足用户所要求的对SQLite3数据库的操作;当用户在对SQLite3数据库的数据进行访问之前,要通过加解密模块实现数据的解密,由密文形式解密为明文形式,从而实现真正的访问SQLite3数据库。身份认证模块是一个可适配的接口模块,是处于应用层之上的最基本的安全机制,由用户名/口令的机制实现,主要包含两个阶段:解析参数sqlite3ParseUserInfo和身份验证sqlite3AuthUser。当身份验证成功即为合法用户时,身份认证模块返回SQLITE_OK正确结果码;当身份验证失败即为不合法用户时,身份认证模块返回SQLITE_USER_INFO_ERROR错误结果码。访问控制模块是根据RBAC模型将数据库用户分为多级角色,所述多级角色包括一级角色、二级角色、三级角色。根据SQLite3本文档来自技高网...

【技术保护点】
一种混合的SQLite3安全访问方法,其特征是,包括以下步骤:步骤1.1:构建用于加密存储数据库用户信息的权限库;通过身份认证模块验证用户身份的合法性,若身份验证成功,执行步骤1.2,否则,系统返回错误提示信息并拒绝此次访问;步骤1.2:通过访问控制模块验证合法用户的具体数据库操作执行权限,若权限验证成功,执行步骤1.3,否则,系统返回拒绝访问信息并拒绝此次访问;首先,根据RBAC模型将数据库用户分为多级角色,通过数据库内核层判断合法用户的具体操作事件,其次,判断用户信息结构体的角色成员,获得用户所属角色对应的角色码,然后,检测用户所属角色,验证其是否具有操作权限;步骤1.3:通过加解密模块对权限用户的访问数据进行自动的加解密转换。

【技术特征摘要】
1.一种混合的SQLite3安全访问方法,其特征是,包括以下步骤:
步骤1.1:构建用于加密存储数据库用户信息的权限库;通过身份认证模块验证用户身份的合法性,若身份验证成功,执行步骤1.2,否则,系统返回错误提示信息并拒绝此次访问;
步骤1.2:通过访问控制模块验证合法用户的具体数据库操作执行权限,若权限验证成功,执行步骤1.3,否则,系统返回拒绝访问信息并拒绝此次访问;
首先,根据RBAC模型将数据库用户分为多级角色,通过数据库内核层判断合法用户的具体操作事件,其次,判断用户信息结构体的角色成员,获得用户所属角色对应的角色码,然后,检测用户所属角色,验证其是否具有操作权限;
步骤1.3:通过加解密模块对权限用户的访问数据进行自动的加解密转换。
2.根据权利要求1所述的混合的SQLite3安全访问方法,其特征是:所述验证用户身份的合法性的具体步骤为:
步骤2.1:对用户进行解析参数,解析出用户的用户信息参数,所述用户信息参数包括用户名、用户口令和数据库名,若用户信息参数格式正确,执行步骤2.2,否则,系统返回错误提示信息并拒绝此次访问;
步骤2.2:对用户进行身份验证,验证权限库存储的用户名中是否存在解析出的用户名,若存在,验证解析出的用户口令与权限库中储存的用户口令是否匹配,若匹配,则为合法用户,否则,用户身份验证失败并拒绝此次访问。
3.根据权利要求1所述的混合的SQLite3安全访问方法,其特征是:所述验证合法用户操作权限的具体步骤为:
步骤3.1:根据RBAC模型将数据库用户分为多级角色,所述多级角色包括一级角色、二级角色、三级角色,数据库内核层通过词法分...

【专利技术属性】
技术研发人员:岳春生田梅孙红胜马晨欣胡泽明程娟李建军万方杰贺靖卿梁少勋
申请(专利权)人:中国人民解放军信息工程大学
类型:发明
国别省市:河南;41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1