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

文档序号:9766150阅读:来源:国知局
后,检测用户所属角色,验证其是否具有操作权限;
步骤1.3:通过加解密模块对权限用户的访问数据进行自动的加解密转换。
[0019]所述验证用户身份的合法性的具体步骤为:
步骤2.1:对用户进行解析参数sqlite3ParseUserInfo,从用户传递进来的用户信息参数zUserlnfo中解析出用户名UserName、用户口令UserPwcU数据库名DbName,若用户信息参数zUserlnfo格式正确,执行步骤2.2,否则,系统返回SQLITE_USER_INFO_ERROR的错误提示信息并拒绝此次访问;
步骤2.2:对用户进行身份验证sql i te3AuthUser,查看存储用户信息的权限库SystemDB中的用户信息表UserInfoTB中是否存在解析出的用户名UserName,如果不存在,则身份认证失败,访问结束;如果存在,查看用户口令UserPwd是否匹配,只有用户口令相匹配的合法用户才能通过访问控制模块继续访问数据库所述验证合法用户操作权限的具体步骤为:
步骤3.1:根据RBAC模型将数据库用户分为多级角色,所述多级角色包括一级角色、二级角色、三级角色,所述一级角色具有数据库操作的所有权限,二级角色具有数据库表、视图、触发器、索引的操作权限,三级角色具有数据库表、视图、触发器、索引、数据记录的具体子操作权限(如创建、删除、查询等);SQLite3数据库内核层通过词法分析、语法分析和编译的SQL语句判断合法用户的具体操作事件;
步骤3.2:判断用户信息结构体user_info的角色成员UserRole是否为空,若为空,则终止访问操作,否则由用户所属角色返回相对应的角色码;
步骤3.3:检测用户角色是否为一级角色,如果是一级角色,验证此角色是否具有操作权限op_type,否则,执行步骤3.4 ;
步骤3.4:检测用户角色是否为二级角色,如果是二级角色,验证此角色是否具有操作权限op_type,否则,执行步骤3.5 ;
步骤3.5:检测用户角色是否为三级角色,如果是三级角色,验证此角色是否具有操作权限op_type,否则,执行步骤3.6 ;
步骤3.6:根据权限验证结果,返回相应的权限验证结果码SQLITE_0K(允许访问)或SQLITE_DENY(拒绝访问)或SQLITE_IGNORE,权限验证结束。
[0020]所述加解密转换的具体步骤为:当用户向SQLite3数据库中写入数据时,SQLite3数据库内核层自动选择加密算法将数据的明文信息转换为密文信息,当用户访问数据时,若用户输入密钥正确且访问操作为权限范围内的SQL操作,SQLite3数据库内核层自动选择解密算法将密文信息转换为明文信息,若用户的访问操作为权限范围外的SQL操作,系统阻止用户的SQL操作或显示NULL值(不显示数据信息的真实内容)。
[0021 ]所述数据库内核层为“页面级”的安全存储与访问。所述“页面级”的安全存储与访问是指SQLite3数据库中任何时候数据以一整页的形式存储到存储设备中,整页数据都是加密的;任何时候访问SQLite3数据库中的信息时,SQLite3数据库内核都要调用相应的解密算法把密文形式的数据转换成相应的明文形式的数据。
[0022]本申请的混合的SQLite3安全访问方法,能够有效提高嵌入式数据库SQLite3的安全存储与访问,有效避免合法用户的“越权使用”和非法用户的“权限盗用”;同时,即使数据库文件不幸丢失,第三方也无法得知SQLite3数据库文件中存储的真实信息,达到数据保密的目的。本发明所提供的方法能够为嵌入式数据库SQLite3的访问提供一种多层次、多阶段、可配置的安全访问方法。
[0023]最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解;依然可以对本发明的【具体实施方式】进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
【主权项】
1.一种混合的SQLite3安全访问方法,其特征是,包括以下步骤: 步骤1.1:构建用于加密存储数据库用户信息的权限库;通过身份认证模块验证用户身份的合法性,若身份验证成功,执行步骤1.2,否则,系统返回错误提示信息并拒绝此次访问; 步骤1.2:通过访问控制模块验证合法用户的具体数据库操作执行权限,若权限验证成功,执行步骤I.3,否则,系统返回拒绝访问信息并拒绝此次访问; 首先,根据RBAC模型将数据库用户分为多级角色,通过数据库内核层判断合法用户的具体操作事件,其次,判断用户信息结构体的角色成员,获得用户所属角色对应的角色码,然后,检测用户所属角色,验证其是否具有操作权限; 步骤1.3:通过加解密模块对权限用户的访问数据进行自动的加解密转换。2.根据权利要求1所述的混合的SQLite3安全访问方法,其特征是:所述验证用户身份的合法性的具体步骤为: 步骤2.1:对用户进行解析参数,解析出用户的用户信息参数,所述用户信息参数包括用户名、用户口令和数据库名,若用户信息参数格式正确,执行步骤2.2,否则,系统返回错误提示信息并拒绝此次访问; 步骤2.2:对用户进行身份验证,验证权限库存储的用户名中是否存在解析出的用户名,若存在,验证解析出的用户口令与权限库中储存的用户口令是否匹配,若匹配,则为合法用户,否则,用户身份验证失败并拒绝此次访问。3.根据权利要求1所述的混合的SQLite3安全访问方法,其特征是:所述验证合法用户操作权限的具体步骤为: 步骤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,权限验证结束。4.根据权利要求3所述的混合的SQLite3安全访问方法,其特征是:所述一级角色具有数据库操作的所有权限,二级角色具有数据库表、视图、触发器、索引的操作权限,三级角色具有数据库表、视图、触发器、索引、数据记录的具体子操作权限。5.根据权利要求1所述的混合的SQLite3安全访问方法,其特征是:所述加解密转换的具体步骤为:当用户向数据库中写入数据时,数据库内核层自动选择加密算法将数据的明文信息转换为密文信息,当用户访问数据时,若用户输入密钥正确且访问操作为权限范围内的SQL操作,数据库内核层自动选择解密算法将密文信息转换为明文信息,若用户的访问操作为权限范围外的SQL操作,系统阻止用户的SQL操作或显示NULL值。6.根据权利要求5所述的混合的SQLite3安全访问方法,其特征是:所述数据库内核层为“页面级”的安全存储与访问。
【专利摘要】本发明公开了一种混合的SQLite3安全访问方法,该方法包括在应用层建立身份认证模块和访问控制模块,在物理存储阶段建立加解密模块。在应用层首先通过身份认证模块验证用户身份的合法性;当用户身份合法时,通过访问控制模块来验证用户所属角色的权限大小及范围,从而决定是否满足用户所要求的对SQLite3数据库的操作;当用户在对SQLite3数据库的数据进行访问之前,要通过加解密模块实现数据的解密,由密文形式解密为明文形式。本发明有效避免合法用户的“越权使用”和非法用户的“权限盗用”,为嵌入式数据库SQLite3的访问提供一种多层次、多阶段、可配置的安全访问方法。
【IPC分类】G06F21/60, G06F21/31, G06F21/62
【公开号】CN105528556
【申请号】CN201510876694
【发明人】岳春生, 田梅, 孙红胜, 马晨欣, 胡泽明, 程娟, 李建军, 万方杰, 贺靖卿, 梁少勋
【申请人】中国人民解放军信息工程大学
【公开日】2016年4月27日
【申请日】2015年12月3日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1