[发明专利]一种适用于移动定位系统的安全分布式数据库交互系统有效
申请号: | 201910382104.6 | 申请日: | 2019-05-09 |
公开(公告)号: | CN109995530B | 公开(公告)日: | 2022-02-15 |
发明(设计)人: | 蒋睿;郭学心;蒋立霄 | 申请(专利权)人: | 东南大学 |
主分类号: | H04L9/08 | 分类号: | H04L9/08;H04L9/06;H04L9/40;H04L9/32 |
代理公司: | 南京众联专利代理有限公司 32206 | 代理人: | 蒋昱 |
地址: | 210096 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 适用于 移动 定位 系统 安全 分布式 数据库 交互 | ||
1.一种适用于移动定位系统的安全分布式数据库交互系统,其特征在于,包括rest数据收发与归属地区分模块(1)、读写分离本地数据库模块(2)、本地密钥协商模块(3)、归属地密钥协商模块(4)、本地数据加解密与完整性保护模块(5)、归属地数据加解密与完整性保护模块(6)和读写分离归属地数据库模块(7);
所述的rest数据收发与归属地区分模块(1)通过设计改进的trie树算法,负责接收与处理来自客户端的请求,加以Json格式化,并进行归属地判断;
所述的rest数据收发与归属地区分模块(1)包括rest监听与协议解析模块(1-1)、数据格式化与归属地判断模块(1-2)和持久层数据访问模块(1-3);负责接收来自客户端的请求,并根据业务需求进行进一步的处理;通过设计改进的trie树算法对归属地进行查找,将结果封装后传输至读写分离本地数据库模块(2);
所述的rest监听与协议解析模块(1-1),基于http协议,提供rest服务,包括处理Get、Post、Put、Delete请求,同时接收客户端发送的服务请求,解析服务请求中的http消息,创建服务名参数,并根据服务名参数访问rest相应服务,将服务处理结果发送至数据格式化与归属地判断模块(1-2);
所述的数据格式化与归属地判断模块(1-2)将消息中所包含的信息处理为Json格式的数据,然后采用改进的trie树算法对Json格式化数据进行归属地查找,并根据查找结果和当前所在地进行比较,将比较结果与用户的身份信息一同发送给持久层数据访问模块(1-3);
所述的持久层数据访问模块(1-3)接收来自数据格式化与归属地判断模块(1-2)的数据信息,并通过改进多线程与队列算法,对连接数据库的连接池进行初始化处理,同时建立与读写分离本地数据库模块(2)的Socket连接,将处理后的数据发送至读写分离本地数据库模块(2)中的持久层数据收发模块(2-1);
所述的读写分离本地数据库模块(2)采用自主设计的基于统计的读写分离算法,进行数据库的操作,并建立本地数据库,完成对本地用户的直接存储,对于非本地用户,创建临时数据表,在本地进行业务处理,并将结果在处理完成之后返回给本地数据加解密与完整性保护模块(5);
所述的读写分离本地数据库模块(2)包括持久层数据收发模块(2-1)、读写分离模块(2-2)、数据存取模块(2-3)、临时数据表创建模块(2-4)以及临时数据表数据存取模块(2-5);通过设计基于统计的读写分离算法,完成对本地用户数据的直接存取,对非本地用户的数据采用基于业务设计的临时数据表,进行本地化处理;实现读库、写库过程中的数据安全同步;
所述的持久层数据收发模块(2-1),接收来自持久层数据访问模块(1-3)的数据信息,并根据数据信息中所包含的身份信息与归属地比较信息决定是否启动临时数据表创建模块(2-4),若比较信息显示用户归属地即为当前所在地,则将用户信息发送至读写分离模块(2-2),否则将用户信息连同临时数据表创建启动信息一起发送至临时数据表创建模块(2-4);
所述的读写分离模块(2-2)接收来自持久层数据收发模块(2-1)的数据,根据自己设计的基于统计的读写分离算法,算法具体如下,对每一种数据服务进行分类,将读操作标记为r,将写操作标记为w,根据读取和写入的数据量进行细分,将单条记录的操作标记为r1和w1,一次操作n条记录的操作标记为r n和wn,n越大优先级越大,对于同一优先级的操作根据时间顺序进行顺序执行,将经过读写分离处理后的读写请求信息发送至数据存取模块(2-3);
所述的数据存取模块(2-3)接收来自读写分离模块(2-2)的读写请求信息,进行分析转化为最终的sql语句,然后高效读出本地数据库从库中的数据,并将处理后的数据写入本地数据库主库,最后将主数据库和从数据库中的数据进行安全同步;
所述的临时数据表创建模块(2-4)接收来自持久层数据收发模块(2-1)的用户信息以及临时数据表创建启动信息,由于接收的用户信息为非本地用户信息,创建临时数据表时需要根据业务建立表的结构,并使用其唯一用户名对表进行命名,使之与服务要求相吻合,确保在高并发情况下,每一个非本地用户的信息都存储在以自己用户名所建立的临时数据表中,最后在一次完整的数据交互后销毁所创建的临时数据表;
所述的临时数据表数据存取模块(2-5)接收来自数据解密与完整性验证模块(5-1)的数据,在临时数据库中进行存取操作,待用户请求服务完成后将数据发送至数据加密与完整性保护模块(5-2);
所述的本地密钥协商模块(3)以预共享密钥为基础设计密钥协商协议,同时确认发送方和接收方的身份,在每次数据库的数据传输过程中,产生一个新的会话密钥;归属地密钥协商模块(4)负责与本地密钥协商模块(3)进行交互,确认双方身份并产生会话密钥;
所述的本地密钥协商模块(3)包括挑战生成模块(3-1)和身份验证与共享密钥计算模块(3-2);通过采用预共享密钥,自主设计密钥协商协议,算法具体如下;
所述的挑战生成模块(3-1),获取系统生成的大素数q及q的本原根a;挑战生成模块产生发送方随机数xA,并计算出发送方密钥协商参数同时生成时间戳信息T1,以及用于本次加密的随机数Rn,最后将发送方身份信息IDA的散列值Hash(IDA)结合密钥协商参数时间戳信息T1以及随机数Rn,使用预共享密钥KAB进行加密得到密文并与发送方身份IDA一起通过互联网发送至归属地密钥协商模块(4);同时将密钥协商参数和Rn一同发送至身份验证与共享密钥计算模块(3-2);
所述的身份验证与共享密钥计算模块(3-2)接收来自应答生成模块(4-1)的消息其中IDB为接收方身份信息,IDA为发送方身份信息,Hash(IDA)为发送方身份信息的散列值,Hash(IDB)是接收方身份信息的散列值,是接收方密钥协商参数,T2是接收方应答生成模块(4-1)产生的时间戳信息,对消息中密文使用预共享密钥KAB进行解密;解密后得到T2,分别对IDA和IDB做Hash运算,将两Hash值进行异或并于解密所得进行比较,若比对结果相同,则根据与xA以及Rn计算出最终的会话共享密钥并将会话共享密钥k和Rn发送至本地数据加解密与完整性保护模块(5);否则终止会话;
所述的归属地密钥协商模块(4)包括应答生成模块(4-1)和归属地身份认证与共享密钥计算模块(4-2);负责与本地密钥协商模块(3)进行交互数据,并依据交互过程中的数据完成对发送方的身份认证,生成最终的会话密钥;
所述的应答生成模块(4-1)产生随机数xB,生成接收方密钥协商参数并将接收方身份IDB的散列值Hash(IDB),发送方身份IDA的散列值Hash(IDA)进行异或,结合应答生成模块(4-1)所生成的时间戳信息T2,使用预共享密钥KAB加密得到密文将密文与接收方身份IDB,发送方身份IDA一同发送至本地身份认证与共享密钥计算模块(3-2);
所述的归属地身份认证与共享密钥计算模块(4-2)接收来自挑战生成模块(3-1)所发送的消息,获得发送者身份信息IDA与密文信息采用预共享密钥KAB对密文信息进行解密,得出发送者身份的散列值Hash(IDA),发送方密钥协商参数时间戳信息T1以及随机数Rn,通过计算发送方身份IDA的散列值,并与解密所得哈希值进行比对,若比对结果相等,则利用应答生成模块(4-1)所产生的随机数xB,与解密所得的发送方密钥协商参数以及Rn共同计算出会话密钥并将会话密钥k和随机数Rn一同发送至归属地数据加解密与完整性保护模块(6);否则,中止此次会话;
所述的本地数据加解密与完整性保护模块(5)通过设计改进的SM4加密算法,负责解密来自归属地数据加解密与完整性保护模块(6)所发送的数据,同时对数据的完整性进行验证,并对来自读写分离本地数据库模块(2)的数据进行加密;
所述的本地数据加解密与完整性保护模块(5)包括数据解密与完整性验证模块(5-1)和数据加密与完整性保护模块(5-2);通过设计改进的SM4算法,在每一次数据库间数据调用过程中,对来自读写分离本地数据库模块(2)的数据明文进行加密,对来自归属地数据加解密与完整性保护模块(6)的密文进行解密;对SM4加密算法进行设计改进,采用32轮迭代非平衡Feistel结构,将原密钥长度和分组长度从128位增加为256位,同时采用一种改进的循环移位S盒掩码算法,在每一轮迭代中对S盒进行循环移位,将循环移位后的S盒与固定值掩码相异或,得到最终S盒;最后加入Hash算法用于数据完整性保护;
所述的数据解密与完整性验证模块(5-1)接收来自归属地数据加密与完整性保护模块(6-2)所发送密文信息其中,密钥为密钥协商所得到会话密钥,MG为来自归属地数据库的明文数据,Hash(MG)为MG的散列值,Rn为本地密钥协商模块(3)中挑战生成模块(3-1)产生的随机数;解密算法采用自主设计并改进的SM4算法,先将保存的Rn与CG进行异或,再使用会话密钥k解密密文消息后得到明文MG和Hash(MG),然后根据MG计算其Hash值Hash(MG),与解密得到的Hash(MG)比对,若比对值相等,则表示数据完整;否则,中止会话;
所述的数据加密与完整性保护模块(5-2)对来自读写分离本地数据库模块(2)的明文M,计算出哈希值Hash(M),然后采用自主改进的SM4算法,将Hash(M)结合明文M一起以会话密钥k进行加密,并与随机数Rn进行异或得到最终密文最后发送至归属地数据解密与完整性验证模块(6-1);
所述的归属地数据加解密与完整性保护模块(6)通过设计改进的SM4加密算法,负责解密来自本地数据加解密与完整性保护模块(5)所发送的数据,加密由读写分离归属地数据库模块(7)发送的数据,并保护数据的完整性,实现与本地数据加解密与完整性保护模块(5)的安全交互;
所述的归属地数据加解密与完整性保护模块(6)与本地数据加解密与完整性保护模块进行交互,包括归属地数据解密与完整性验证模块(6-1),归属地数据加密与完整性保护模块(6-2);
所述的归属地数据解密与完整性验证模块(6-1)接收来自本地数据加密与完整性保护模块(5-2)所发送的加密消息密文其中Rn为挑战生成模块(3-1)生成的随机数,在密钥协商过程中由应答生成模块(4-1)解密所得,进行如下解密:先将密文消息与Rn异或,再使用设计改进的SM4算法以会话密钥进行解密;得到M和Hash(M),对M计算Hash值并与得到的Hash(M)进行比对验证,若比对相等,则会话继续,并将明文数据M发送至读写分离归属地数据库模块(7);否则中止会话;
所述的归属地数据加密与完整性保护模块(6-2)接收来自读写分离归属地数据库模块(7)的数据,通过设计改进的SM4算法采用会话密钥对明文数据MG与明文数据的散列值Hash(MG)进行加密,将得到的密文与Rn,其中密钥协商过程中由归属地密钥协商模块(4)模块解密得出,进行异或得到最终密文将密文发送至本地数据加解密与完整性保护模块(5);
所述的读写分离归属地数据库模块(7)通过设计基于统计的读写分离算法对数据进行高效读写,然后进行格式封装,最后把封装数据发送给归属地数据加解密与完整性保护模块(6);
所述的读写分离归属地数据库模块(7)包括归属地读写分离模块(7-1)和归属地数据存取模块(7-2);通过设计基于统计的读写分离算法,完成对归属地数据库的高效读写;同时当收到归属地数据加解密与完整性保护模块(6)的请求时,将所请求数据发送至归属地数据加解密与完整性保护模块(6);
所述的归属地读写分离模块(7-1)接收来自归属地数据加解密与完整性保护模块(6)所发送的数据信息;采用基于统计的读写分离算法,对数据信息进行分类,将读操作标记为r,将写操作标记为w,根据读取和写入的数据量进行细分,单条记录的操作标记为r1和w1,一次操作n条记录的操作标记为r n和wn,n越大优先级越大,对于同一优先级的操作根据时间顺序进行顺序执行,最后将处理后的信息发送至归属地数据存取模块(7-2);
所述的归属地数据存取模块(7-2)根据归属地读写分离模块(7-1)所发送的请求,将请求解析处理为数据库可执行的sql语句,完成对归属地数据库的高效读取数据、写入或更新数据操作,对于读的操作全部放在从数据库中进行,对于写的操作全部放于主数据库中进行,将主数据库和从数据库中的数据进行安全同步,最后将读出的数据发送至归属地数据加解密与完整性保护模块(6)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910382104.6/1.html,转载请声明来源钻瓜专利网。