CN109995530A - 一种适用于移动定位***的安全分布式数据库交互方法 - Google Patents

一种适用于移动定位***的安全分布式数据库交互方法 Download PDF

Info

Publication number
CN109995530A
CN109995530A CN201910382104.6A CN201910382104A CN109995530A CN 109995530 A CN109995530 A CN 109995530A CN 201910382104 A CN201910382104 A CN 201910382104A CN 109995530 A CN109995530 A CN 109995530A
Authority
CN
China
Prior art keywords
data
module
read
ownership place
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910382104.6A
Other languages
English (en)
Other versions
CN109995530B (zh
Inventor
蒋睿
郭学心
蒋立霄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southeast University
Original Assignee
Southeast University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Southeast University filed Critical Southeast University
Priority to CN201910382104.6A priority Critical patent/CN109995530B/zh
Publication of CN109995530A publication Critical patent/CN109995530A/zh
Application granted granted Critical
Publication of CN109995530B publication Critical patent/CN109995530B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种适用于移动定位***的安全分布式数据库交互方法,包括七大模块;其中rest数据收发与归属地区分模块通过改进trie树算法,接收客户端数据并进行归属地确定;读写分离本地数据库模块设计基于统计的读写分离算法,进行读写分离和临时表的建立;本地密钥协商模块,以预共享密钥为基础设计密钥协商协议,生成会话密钥;归属地密钥协商模块与本地密钥协商模块交互,生成每次会话密钥;本地数据加解密与完整性保护模块通过改进SM4加密算法,负责本地交互数据的加解密;归属地数据加解密与完整性保护模块,通过设计改进SM4加密算法,实现归属地交互数据的加解密;读写分离归属地数据库模块,基于统计读写分离算法实现归属地数据库的读写。

Description

一种适用于移动定位***的安全分布式数据库交互方法
技术领域
本发明涉及计算机网络通信领域、信息安全领域以及分布式数据库领域,特别是涉及一种适用于移动定位***的安全分布式数据库交互方法。
背景技术
本申请所针对的移动定位***所使用的数据库与市面上存在的分布式追踪定位***有一个共同的特点,无法提供安全服务,无法在保证数据机密性和完整性的同时,还要保证高效性。本发明专利所研究的分布式数据库面向开放的互联网进行连接,由于互联网的开放性,各种各样的攻击行为威胁着分布式***数据库的安全。近年来,数据的安全问题频发,例如2014年的携程漏洞事件,任何第三方都可以遍历下载携程安全支付日志,导致大量用户银行卡信息泄露;又如亚马逊卖家listing被劫持事件,通过劫持合法卖家的listing,销售盗版产品;再如2013年发生的信息劫持钓鱼事件,导致全国百万用户感染病毒。在绝大部分情况下,分布式数据库交互的数据内容要求只有符合规定的用户才能够获取。因此,加密算法被应用在了分布式数据库的数据交互中,通过仅有符合条件的用户才能完成数据解密,从而确保安全的数据交互。此外,加密也防止了被拦截数据的泄露。
然而,现有的技术还存在许多常见问题,***的数据交互大多还是明文数据传输,即使采用加密传输也还存在各种问题。比如,如何能够安全且方便地完成对合法用户密钥的分发?如何保证在数据交互时满足一次一密的要求?如何防止各类常见的攻击对数据安全性造成的威胁?如何保障数据来源的可靠性与完整性?如何在尽可能不影响***效率的情况下实现对数据的机密性与完整性保护?针对上述问题虽然存在一些解决方法,但是大部分的方案都无法同时解决上述问题,有的方法可以保证机密性却无法实现高效访问,有的方法可以解决效率问题却无法实现一次一密的要求。
专利申请201410457693.7一种分布式数据库安全访问的方法,该方法通过设置通过通信网络相互连接的节点,所述的节点上存放有分布式数据库的数据,每一个节点还设置有用于数据发送的安全模块和用于接收的安全模块,这样就有效的避免了现有技术还是只能对分布式数据库之间的通信数据的读或写权限操作方面的验证而不是和现在的需要更加详细的访问约束的要求的缺陷。但是该发明存在以下缺陷,第一,在通信过程中,需要保护的数据仍然是以明文的形式进行传递;第二,读写操作放在一起会严重影像数据库的访问效率;第三,对于非本地服务器上的数据库,每个操作都要重新连接,大幅度的降低了效率。
专利申请201410457691.8一种分布式数据库安全存储数据的方法,该方法在用于分布式数据库的数据存储的节点上,当需要对分布式数据库的数据进行存储时,先将整个待加密的数据分为若干随机长度的部分,再用一个随机生成的DES密钥对每一个随机长度的部分进行加密,获得的密文长度,密文数据和DES密钥本身再由RSA公钥加密。这样就有效的避免了现有技术容易受到恶意攻击而导致分布式数据库存储数据不安全的缺陷。但是该发明存在以下缺陷:第一,该加密操作使用两次加密,步骤繁琐且密钥得不到更新;第二,RSA公钥加密,会面临密钥分发的问题;第三,读写数据在同一个库中进行,解密操作过于繁琐,会很大程度降低数据库的访问效率;第四,无法进行身份验证。
专利申请201410601699.7一种基于集群管理器的分布式数据库高可用方法及***,每个数据库组设有主节点和从节点,分布式数据代理中间件部署于代理主服务器和代理从服务器上,主代理服务器通过主连接与个数据库组件的主节点相连,通过从连接与个数据库组的从连接进行连接,主代理服务器内设置主集群管理器,从代理服务器中设置从集群管理器;主集群管理器监管主代理服务器的代理进程,从集群管理器监管从代理服务器的代理进程,主集群管理器和从集群管理器相互监控。但是该发明存在以下缺点:第一,数据库之间数据以明文的形式进行传递,没有安全性;第二,读写操作未分离。
专利申请201510997376.9一种分布式数据库的数据迁移方法与装置,其中所述方法包括:获取数据迁移参数,其中所述数据迁移参数包括:待迁移业务表分片信息,源端服务节点信息以及目标端服务节点信息;以及依据所述数据迁移参数,控制源端服务节点与目标端服务节点之间的数据迁移。通过本发明提供的分布式数据库的数据迁移方案,既能够节省人力资源又能够提升数据迁移的效率,数据迁移也是数据传输的一种。但是改发明依旧存在缺点:数据的传输中没有对传输数据进行安全保护,这样传输的数据很大可能遭受破坏于丢失。
专利申请201611102927.1一种分布式数据库数据传输方法、中间层服务器及***,该分布式数据库传输方法包括:接收客户端发送的数据***请求,所述数据***请求中包括带***的数据;根据分布式数据库***中服务器集群的数据库实例的数目对***的数据进行分割,获得N个数据块,将所述的N个数据块发送至服务器集群中的N个数据库实例中;更新全局***表,所述的全局***表中包括各个数据库实例与各个数据节点的对应关系。本发明实施通过在客户端与数据库实例之间设置中间层服务器,客户端通过所述中间层服务器与所述服务器集群中的数据库实例进行数据传输,对于应用来说是透明的,应用无需改造即可通过中间层服务器实现数据的分布式传输。但是该发明存在一下缺陷:第一,客户端与中间件以及中间件与数据库实例之间传输的数据均为明文,容易造成信息窃取等;第二,中间件需要单独运行在一个服务器之上,增加了***的成本;第三,数据库的存储未实现读写分离,导致读写效率低下;第四,所发送的数据无完整性保护机制,较容易被第三方篡改。
专利申请201010567045.9一种分布式数据库访问方法及***,该分布式数据库访问方法包括:步骤1.Web服务器向代理服务器发送数据库访问请求;步骤2.代理服务器根据预置的解析规则解析该数据库访问请求,并将解析后的数据库访问请求发送至相应的目标数据库;步骤3.代理服务器将目标数据库返回的结果发送至Web服务器,该发明规避了数据库集中管理所带来的费用高,单台数据库故障导致全部瘫痪和不易于扩展等风险。但是该发明存在以下缺陷:第一,所有信息传递均是明文很容易被第三方截获;第二,对于非本地数据库,某一用的每一个请求都需要一次远程连接会消耗大量资源,第三,读写未分离,使得数据库的执行效率大幅度降低。
专利申请201710269347.X一种分布式数据库及其访问方法,数据库包括数据存储节点模块、数据存储节点访问模块和数据切分管理模块;数据切分管理模块用于管理当前使用的数据节点切分规则;记录规则的变更历史;监控数据存储节点模块,在数据节点切分规则发生变化的时候,通知数据存储节点访问模块,当数据存储节点访问模块接收到新的数据时,数据存储节点访问模块对数据根据数据产生时间字段来查找变更时间小于该时间的最新数据节点切分规则,使用最新规则对数据进行哈希计算,获取该数据需要存储的数据存储节点并发送。再增加数据节点或回复失效节点的时候能够避免大量的数据迁移,占据分布式数据库的服务带宽,提高分布式数据库的并发服务能力和可靠性。但是该发明存在以下缺陷:第一,数据库之间的数据传输是明文的形式,很容易收到攻击;第二,读写未分离,降低了数据库的效率。
专利申请201810607688.8本发明公开一种分布式数据集群存储***,该存储***包括:多个存储节点用于存储代理节点发送的带存储数据,所述的存储节点由多个存储实例组成,同一个存储节点中的多个存储实例保存相同的数据,同一个存储节点的多个存储实例都部署在相同的物理服务器上;多个主控服务器用于维护所述存储节点的参数配置信息;所述代理节点用于接收客户端发送的待存储数据,计算所述待存储数据的Hash值并根据所述参数配置信息确定与所述存储数据对应的Hash值和存储节点。本存储***具有构建和维护简单,扩容灵活可靠,高灵活性高可用性的特点。但是改发明存在以下缺陷:第一,数据库之间的信息虽然有Hash验证其完整性却无法保证机密性,更无法防止重放攻击,且传输数据均为明文,易受攻击;第二,数据库未实现读写分离,读写效率较低。
2008年中国过程控制会议论文《一种分布式数据库安全模型》构建了一个较完整的分布式数据库安全模型。模型主要包括三个级别的身份认证,基于角色的多层访问控制,基于安全通信服务的安全通信策略,安全检测和反应。本模型从最基本的安全策略进行建模,有着清晰的分层结构,这为安全评估提供了很大的方便。数据库安全通信服务正是在对数据库与应用程序在通信过程中存在的问题作出深入细致分析的基础上,结合PKI公钥基础设施,对通信链路进行改造使其更安全的一种服务。改论文存在以下缺陷:第一,对于分布式数据库的读写效率低下未作考虑;第二,公钥基础设施实施成本较大,且密钥分发较难;第三,数据传输中无法保证一次一密机制且无完整性保护机制。
2015年硕士论文《分布式数据库关键技术研究与应用》,实现了一种分布式数据库,这样可以管理各个地方的结点并研究分布式数据库的一些关键技术。上述技术是指数据同步、数据加密等方面。所谓数据同步实际上是指复制及维持分散数据库的操作。这类***的架构是基于一系列的递送服务器将报告反馈给中心数据库。通过递送服务器数量的拓展来提升自身的规模。第二项分布式数据库技术为数据加密安全,为了保持用户数据的安全,要进行数据加密以保证用户与服务器处于安全状态。对建立在MySQL基础上的分布式数据库中的各项关键技术加以研究,其中,最重要部分是分析数据同步和文件加密。但是该论文还是存在以下缺陷:第一,论文中仅仅考虑到存储数据的加密,这样的加密无法保证一次一密的产生;第二,论文中没有考虑分布式数据库在进行数据交互的时候对交互的数据进行加密与完整性保护;第三,在效率方面未考虑到读写分离,导致数据库读写效率较低。
期刊《产业与科技论坛》2017.16期论文“分布式数据库***的安全机制”,提出分布式数据库***中的服务器之间,以及服务器与客户机之间都是需要在网络良好的状态下才能进行互相连接的,而这就会存在网络中的一些不良隐患对其造成威胁,例如一些网络黑客对计算机的入侵,会严重影响到***的安全问题,为了防止这种现象的出现,最直接有效的方法就是让用户在登入时先进行身份检验并且对访问进行控制。其中身份验证主要是让用户在进行数据库***之前,先将自己的用户标志、口令或者是密钥卡提交给***,然后***对其提交的信息进行检验,确定其是否与用户的真实身份吻合,在确保用户提交的数据与其真实身份吻合之后,***才能让其进入数据库***中。而访问控制主要是指在用户登录进入数据库***之后,对数据库的访问提交请求时,***就需要对其甄别,检验此用户是否具有访问权限,当用户符合访问的标准时,***才能通过其访问的请求。但是该论文中存在以下缺陷:第一,仅仅在***中加入访问控制只能保证某一台服务器上的数据是安全的,在不同服务器之间,传输的数据信息依然是明文,很容易受到攻击;第二,数据库没有读写分离,处理数据的效率较低;
期刊《现代电子技术》2017.15期论文“分布式数据库安全代理的研究与实现”,该***分别封装了代理客户端以及代理服务端,为其他模块进行调用提供基础,通过组件技术实现代理客户端以及代理服务端的设计,给出设计模型内各模块的运行原理和功能。通过代理客户端中的组件创建同应用程序的接口以及同网络通信客户端的接口实现访问数据库的功能,向代理服务端反馈处理后的访问结果。给出网络通信平台设计过程以及代理客户端、服务端设计过程。经测试表明,分布式数据库安全代理***可实现用户和服务器间的安全通信,可有效实现身份认证,访问性能高,可靠性高。但是该发明存在以下缺陷:第一,服务器之间通信传输的数据是明文,容易受到攻击;第二,数据库中的读写是一起的,大幅度降低了数据库的数据存取效率。
期刊《通信技术》2018.2期论文“基于交换中心的分布式***数据同步技术”提出了一种基于交换中心的分布式数据库***同步方案。方案中,各数据库站点只需要直接与交换中心进行数据交换,可有效避免各数据库站点之间相互维护的麻烦;可灵活配置同步模式和数据下发方式,并有利于以后***的扩充或删减;***采用JAVA相关技术进行开发,具有很好的跨平台适应能力;传输过程采用符合一定格式的XML文本进行传输,很好地解决了异构数据库***间的不兼容性;传输数据按照安全协议数据格式封装,有效保证了数据的安全性、完整性和抗抵赖性。但是改论文存在以下缺陷:第一,未考虑到分布式数据库的读写分离进行高效读写;第二,传输数据按照安全协议数据格式封装,在安全协议被得知的情况下无法保证数据的安全;第三,使用安全协议数据格式封装,每次加密的协议都是相同的,无法达到一次一密的要求。
发明内容
为了解决以上问题,本发明提供一种适用于移动定位***的安全分布式数据库交互方法,通过设计改进的SM4算法对传输的数据进行加密;针对数据库无读写分离且效率低下,设计基于统计的读写分离算法对数据库进行高效的读写;针对数据库之间交互无身份认证、无法实现一次一密,设计基于预共享密钥的密钥交换协议,使得每次会话通信都采用一个会话密钥加密;针对无法实现本地化处理的问题,建立临时表对非本地用户实现本地化处理。本发明方法可针对不同规模的分布式数据库,保证了数据库之间交互数据时的安全,完成对通信的两方数据库的认证,实现读写分离达到数据库的高效存取,同时在加密过程中采用自主设计改进的密钥交换协议,使交换中不会受到中间人攻击,将加密算法模块化以应对数据库规模的变动,扩展性强;另外,通过临时表的建立和使用,将非本地用户的数据保存至临时表并进行相应的业务处理,数据处理完毕后加密返回至非本地数据库实现本地化处理,为达此目的,本发明提供一种适用于移动定位***的安全分布式数据库交互方法,包括rest数据收发与归属地区分模块、读写分离本地数据库模块、本地密钥协商模块、归属地密钥协商模块、本地数据加解密与完整性保护模块、归属地数据加解密与完整性保护模块和读写分离归属地数据库模块;
所述的rest数据收发与归属地区分模块通过设计改进的trie树算法,负责接收与处理来自客户端的请求,加以Json格式化,并进行归属地判断;
所述的读写分离本地数据库模块采用自主设计的基于统计的读写分离算法,进行数据库的操作,通过数据的读写分离保障数据的高可用性,通过同步主从关系保障数据的一致性,并建立本地数据库,完成对本地用户的直接存储,对于非本地用户,创建临时数据表,在本地进行业务处理,并将结果在处理完成之后返回给本地数据加解密与完整性保护模块;
所述的本地密钥协商模块以预共享密钥为基础设计密钥协商协议,同时确认发送方和接收方的身份,在每次数据库的数据传输过程中,产生一个新的会话密钥,并且在密钥分发过程中,可以抵抗中间人攻击与重放攻击;归属地密钥协商模块负责与本地密钥协商模块进行交互,确认双方身份并产生会话密钥;
所述的本地数据加解密与完整性保护模块通过设计改进的SM4加密算法,负责解密来自归属地数据加解密与完整性保护模块所发送的数据,同时对数据的完整性进行验证,并对来自读写分离本地数据库模块的数据进行加密;
所述的归属地数据加解密与完整性保护模块通过设计改进的SM4加密算法,负责解密来自本地数据加解密与完整性保护模块所发送的数据,加密由读写分离归属地数据库模块发送的数据,并保护数据的完整性,实现与本地数据加解密与完整性保护模块的安全交互;
所述的读写分离归属地数据库模块通过设计基于统计的读写分离算法对数据进行高效读写,然后进行格式封装,最后把封装数据发送给归属地数据加解密与完整性保护模块。
作为本发明进一步改进,所述的rest数据收发与归属地区分模块包括rest监听与协议解析模块、数据格式化与归属地判断模块和持久层数据访问模块;负责接收来自客户端的请求,并根据业务需求进行进一步的处理;通过设计改进的trie树算法对归属地进行查找,将结果封装后传输至读写分离本地数据库模块;
所述的rest监听与协议解析模块,基于http协议,提供rest服务,包括处理Get、Post、Put、Delete请求,同时接收客户端发送的服务请求,解析服务请求中的http消息,创建服务名参数,并根据服务名参数访问rest相应服务,将服务处理结果发送至数据格式化与归属地判断模块;
所述的数据格式化与归属地判断模块将消息中所包含的信息处理为Json格式的数据,然后采用改进的trie树算法对Json格式化数据进行归属地查找,并根据查找结果和当前所在地进行比较,将比较结果与该用户的身份信息一同发送给持久层数据访问模块;
所述的持久层数据访问模块接收来自数据格式化与归属地判断模块的数据信息,并通过改进多线程与队列算法,对连接数据库的连接池进行初始化处理,同时建立与读写分离本地数据库模块的Socket连接,将处理后的数据发送至读写分离本地数据库模块中的持久层数据收发模块。
作为本发明进一步改进,所述的读写分离本地数据库模块包括持久层数据收发模块、读写分离模块、数据存取模块、临时表创建模块以及临时表数据存取模块;通过设计基于统计的读写分离算法,完成对本地用户数据的直接存取,对非本地用户的数据采用基于业务设计的临时表,进行本地化处理;实现读库、写库过程中的数据安全同步;
所述的持久层数据收发模块,接收来自持久层数据访问模块的数据信息,并根据数据信息中所包含的身份信息与归属地比较信息决定是否启动临时表创建模块,若比较信息显示该用户归属地即为当前所在地,则将该用户信息发送至读写分离模块,否则将该用户信息连同临时表创建启动信息一起发送至临时表创建模块;
所述的读写分离模块接收来自持久层数据收发模块的数据,根据自己设计的基于统计的读写分离算法,对每一种数据服务进行分类,在数据库的读、写过程中,由于写的时间消耗往往是读的百倍,因此把读、写操作存放在同一数据库中会严重影响读的效率,因此将读、写分开操作可大幅提升数据库的高可用性,将读操作标记为r,将写操作标记为w,根据读取和写入的数据量进行细分,将单条记录的操作标记为r1和w1,一次操作n条记录的操作标记为r n和wn,n越大优先级越大,对于同一优先级的操作根据时间顺序进行顺序执行,将经过读写分离处理后的读写请求信息发送至数据存取模块;
所述的数据存取模块接收来自读写分离模块的读写请求信息,进行分析转化为最终的sql语句,然后高效读出本地数据库从库中的数据,并将处理后的数据写入本地数据库主库,最后将主数据库和从数据库中的数据进行安全同步;
所述的临时表创建模块接收来自持久层数据收发模块的用户信息以及临时表创建启动信息,由于接收的用户信息为非本地用户信息,创建临时表时需要根据业务建立表的结构,并使用其唯一用户名对表进行命名,使之与服务要求相吻合,确保在高并发情况下,每一个非本地用户的信息都存储在以自己用户名所建立的临时表中,最后在一次完整的数据交互后销毁所创建的临时表;
所述的临时表数据存取模块接收来自数据解密与完整性验证模块的数据,在临时数据库中进行存取操作,待用户请求服务完成后将数据发送至数据加密与完整性保护模块。
作为本发明进一步改进,所述的本地密钥协商模块包括挑战生成模块和身份验证与共享密钥计算模块;通过采用预共享密钥,自主设计密钥协商协议,实现在每一次数据库数据交互过程中产生一个新的会话密钥,保证一次一密,而且该密钥协商协议,通过增加身份认证,可以完全抵抗中间人攻击,实现身份保护,同时缓解拒绝服务攻击;
所述的挑战生成模块,获取***生成的大素数q及q的本原根a;挑战生成模块产生发送方随机数xA,并计算出发送方密钥协商参数同时生成时间戳信息T1,以及用于本次加密的随机数Rn,最后将发送方身份信息IDA的散列值Hash(IDA)结合密钥协商参数时间戳信息T1以及随机数Rn,使用预共享密钥KAB进行加密得到密文并与发送方身份IDA一起通过互联网发送至归属地密钥协商模块,此密钥协商机制可以抵御中间人攻击、保护通信双方身份信息;同时将密钥协商参数和Rn一同发送至身份验证与共享密钥计算模块;
所述的身份验证与共享密钥计算模块接收来自应答生成模块的消息其中IDB为接收方身份信息,IDA为发送方身份信息,Hash(IDA)为发送方身份信息的散列值,Hash(IDB)是接收方身份信息的散列值,是接收方密钥协商参数,T2是接收方应答生成模块产生的时间戳信息,对消息中密文使用预共享密钥KAB进行解密;解密后得到T2,分别对IDA和IDB做Hash运算,将两Hash值进行异或并于解密所得进行比较,若比对结果相同,则根据与xA以及Rn计算出最终的会话共享密钥并将会话共享密钥k和Rn发送至本地数据加解密与完整性保护模块;否则终止会话。
作为本发明进一步改进,所述的归属地密钥协商模块包括应答生成模块和归属地身份认证与共享密钥计算模块;负责与本地密钥协商模块进行交互数据,并依据交互过程中的数据完成对发送方的身份认证,生成最终的会话密钥;
所述的应答生成模块产生随机数xB,生成接收方密钥协商参数并将接收方身份IDB的散列值Hash(IDB),发送方身份IDA的散列值Hash(IDA)进行异或,结合应答生成模块所生成的时间戳信息T2,使用预共享密钥KAB加密得到密文将密文与接收方身份IDB,发送方身份IDA一同发送至本地身份认证与共享密钥计算模块;
所述的归属地身份认证与共享密钥计算模块接收来自挑战生成模块所发送的消息,获得发送者身份信息IDA与密文信息采用预共享密钥KAB对密文信息进行解密,得出发送者身份的散列值Hash(IDA),发送方密钥协商参数时间戳信息T1以及随机数Rn,通过计算发送方身份IDA的散列值,并与解密所得哈希值进行比对,若比对结果相等,则利用应答生成模块所产生的随机数xB,与解密所得的发送方密钥协商参数以及Rn共同计算出会话密钥并将会话密钥k和随机数Rn一同发送至归属地数据加解密与完整性保护模块;否则,中止此次会话。
作为本发明进一步改进,所述的本地数据加解密与完整性保护模块包括数据解密与完整性验证模块和数据加密与完整性保护模块;通过设计改进的SM4算法,在每一次数据库间数据调用过程中,对来自读写分离本地数据库模块的数据明文进行加密,对来自归属地数据加解密与完整性保护模块的密文进行解密;对SM4加密算法进行设计改进,采用32轮迭代非平衡Feistel结构,将原密钥长度和分组长度从128位增加为256位,同时采用一种改进的循环移位S盒掩码算法,在每一轮迭代中对S盒进行循环移位,将循环移位后的S盒与固定值掩码相异或,得到最终S盒;最后加入Hash算法用于数据完整性保护,满足一次一密的高安全性要求,并且可以抵御例如抗差分,窃听,能量分析等攻击;
所述的数据解密与完整性验证模块接收来自归属地数据加密与完整性保护模块所发送密文信息其中,密钥为密钥协商所得到会话密钥,MG为来自归属地数据库的明文数据,Hash(MG)为MG的散列值,Rn为本地密钥协商模块中挑战生成模块产生的随机数;解密算法采用自主设计并改进的SM4算法,先将保存的Rn与CG进行异或,再使用会话密钥k解密密文消息后得到明文MG和Hash(MG),然后根据MG计算其Hash值Hash(MG),与解密得到的Hash(MG)比对,若比对值相等,则表示数据完整;否则,中止会话;
所述的数据加密与完整性保护模块对来自读写分离本地数据库模块的明文M,计算出哈希值Hash(M),然后采用自主改进的SM4算法,将Hash(M)结合明文M一起以会话密钥k进行加密,并与随机数Rn进行异或得到最终密文最后发送至归属地数据解密与完整性验证模块。
作为本发明进一步改进,所述的归属地数据加解密与完整性保护模块与本地数据加解密与完整性保护模块进行交互,包括归属地数据解密与完整性验证模块,归属地数据加密与完整性保护模块;通过设计改进的SM4算法,实现在一次一密的密钥基础上,对每一次数据库间的调用数据进行加解密,对来自读写分离归属地数据库模块的数据进行加密,并进行完整性保护;对来自本地数据加解密与完整性保护模块所发送的数据进行解密与完整性验证,在保证高安全性的同时也确保证了接收和发送数据的完整性;
所述的归属地数据解密与完整性验证模块接收来自本地数据加密与完整性保护模块所发送的加密消息密文其中Rn为挑战生成模块生成的随机数,在密钥协商过程中由应答生成模块解密所得,进行如下解密:先将密文消息与Rn异或,再使用设计改进的SM4算法以会话密钥进行解密;得到M和Hash(M),对M计算Hash值并与得到的Hash(M)进行比对验证,若比对相等,则会话继续,并将明文数据M发送至读写分离归属地数据库模块;否则中止会话;
所述的归属地数据加密与完整性保护模块接收来自读写分离归属地数据库模块的数据,通过设计改进的SM4算法采用会话密钥对明文数据MG与明文数据的散列值Hash(MG)进行加密,将得到的密文与Rn,其中密钥协商过程中由归属地密钥协商模块模块解密得出,进行异或得到最终密文将密文发送至本地数据加解密与完整性保护模块。
作为本发明进一步改进,所述的读写分离归属地数据库模块包括归属地读写分离模块和归属地数据存取模块;通过设计基于统计的读写分离算法,完成对归属地数据库的高效读写;同时当收到归属地数据加解密与完整性保护模块的请求时,将所请求数据发送至归属地数据加解密与完整性保护模块;
所述的归属地读写分离模块接收来自归属地数据加解密与完整性保护模块所发送的数据信息;采用基于统计的读写分离算法,对数据信息进行分类,将读操作标记为r,将写操作标记为w,根据读取和写入的数据量进行细分,单条记录的操作标记为r1和w1,一次操作n条记录的操作标记为r n和wn,n越大优先级越大,对于同一优先级的操作根据时间顺序进行顺序执行,最后将处理后的信息发送至归属地数据存取模块;
所述的归属地数据存取模块根据归属地读写分离模块所发送的请求,将请求解析处理为数据库可执行的sql语句,完成对归属地数据库的高效读取数据、写入或更新数据操作,对于读的操作全部放在从数据库中进行,对于写的操作全部放于主数据库中进行,将主数据库和从数据库中的数据进行安全同步,最后将读出的数据发送至归属地数据加解密与完整性保护模块。
本申请一种适用于移动定位***的安全分布式数据库交互方法,其有益效果如下:
针对以上数据库之间通信为明文问题,本发明通过设计改进的SM4算法对传输的数据进行加密;针对数据库无读写分离且效率低下,设计基于统计的读写分离算法对数据库进行高效的读写;针对数据库之间交互无身份认证、无法实现一次一密,设计基于预共享密钥的密钥交换协议,使得一次会话对应一个会话密钥;针对无法实现本地化处理的问题,建立临时表对非本地用户实现本地化处理,并采用读写分离技术实现数据库的高效读写。本发明采用模块化设计,耦合性低,可以对不同规模的数据库实现更好的扩展和应用。数据库采用临时表处理非本地数据,在业务完成后将临时表及时销毁,大幅度减小服务器的压力,并高效实现非本地用户的本地处理。本发明设计rest方式调用服务,直接处理http的请求,简单高效;数据库间的数据交互采用改进的SM4加密算法进行加密传输,同时设计完整性保护方案,通过基于预共享密钥设计的密钥协商协议建立会话密钥,确保数据的机密性与完整性。本发明的***完整、实用便捷,其整体安全性能好,可操作性强,具有良好的扩展性。
附图说明
图1是本发明的整体框图;
图2是本发明的整体原理结构图;
图3是本发明的整体流程图;
图4是本发明的rest数据收发与归属地区分模块结构图;
图5是本发明的读写分离本地数据模块结构图;
图6是本发明的本地密钥协商模块结构图;
图7是本发明的归属地密钥协商模块结构图;
图8是本发明的本地数据加解密与完整性保护模块结构图;
图9是本发明的读写分离归属地数据库模块结构图;
图10是本发明的密钥协商过程原理图;
图11是本发明的加密过程图。
具体实施方式
下面结合附图与具体实施方式对本发明作进一步详细描述:
本发明提供一种适用于移动定位***的安全分布式数据库交互方法,本发明通过设计改进SM4加密算法,采用预共享密钥进行自主设计密钥协商协议,设计基于统计的读写分离算法与具备数据完整性保护的模型提供一种适用于移动定位***的安全分布式数据库交互方法,该方法可应用于移动定位***的分布式数据库,对分布式数据库进行读写分离,对数据库之间交互的数据进行加密,对加密提供一次一密的标准,凭借面向业务设计的临时表对非本地用户进行本地化处理,保障了数据库的高效读写,传输安全,本地化服务,提供了可扩展的模型。另外,在基于预共享密钥的密钥协商中等提供了身份认证,以及协商数据的可靠性。
如图1所示为本发明的整体框图,本发明所提出的一种安全传输高可用分布式数据库交互方法包括:rest数据收发与归属地区分模块1,读写分离本地数据库模块2,本地密钥协商模块3,归属地密钥协商模块4,本地数据加解密与完整性保护模块5,归属地数据加解密与完整性保护模块6,读写分离归属地数据库模块7。rest数据收发与归属地区分模块1使用基于http协议的rest服务,接收并响应客户端发送的服务请求。客户端与该模块通过http协议进行连接,rest数据收发与归属地区分模块1与读写分离本地数据库模块2,本地密钥协商模块3与本地数据加解密与完整性保护模块5均通过socket接口完成数据交互,归属地密钥协商模块4,归属地数据加解密与完整性保护模块6,读写分离归属地数据库7均通过socket接口完成数据交互。
如图2所示为本发明的整体原理结构图,本发明主要包括7大部分:rest数据收发与归属地区分模块1,读写分离本地数据库模块2,本地密钥协商模块3,归属地钥密钥协商模块4,本地数据加解密与完整性保护模块5,归属地数据加解密与完整性保护模块6,读写分离归属地数据库模块7。所述的rest数据收发与归属地区分模块1包括rest监听与协议解析模块1-1,数据格式化与归属地判断模块1-2以及持久层数据访问模块1-3;所述的读写分离本地数据库模块2包括持久层数据收发模块2-1,读写分离模块2-2,数据存取模块2-3,临时表创建模块2-4以及临时表数据存取模块2-5;所述的本地密钥协商模块3包括挑战生成模块3-1,身份认证与共享密钥计算模块3-2;所述的归属地密钥协商模块4包括应答生成模块4-1,归属地身份认证与共享密钥计算模块4-2;所述的本地数据加解密与完整性保护模块5包括数据解密与完整性验证模块5-1,数据加密与完整性保护模块5-2;所述的归属地数据加解密与完整性保护模块6包括归属地数据解密与完整性验证模块6-1,归属地身份认证与共享密钥计算模块6-2;所述的读写分离归属地数据库模块7包括归属地读写分离模块7-1,归属地数据存取模块7-2。
本发明的服务请求流程如图3所示:
第一步,客户端向服务器发送服务请求;***启动,rest监听与协议解析模块1-1在后台运行,监听并接收来自客户端的服务请求http消息,然后对http消息进行解析;
第二步,将解析后的数据与客户端的信息发送至数据格式化与归属地判断模块1-2进行格式化转为Json格式,并设计改进trie树算法对归属地进行查找;
第三步,若请求来自本地用户;对本地用户请求进行响应,并将请求数据通过持久层数据访问模块1-3发送至持久层数据收发模块2-1,通过基于统计的读写分离算法的读写分离模块2-2进行分类,最后由数据存取模块2-4依据分类后的请求进行数据的存取,在存取的同时保证读写数据同步。
第四步,若请求来自非本地用户;则在读写分离本地数据库模块2中启动临时表创建模块2-3创建以用户唯一身份信息为表名,并根据业务设计生成的临时表,用来存取非本地用户的用户信息和业务信息,临时表中存储该用户在本地所办理业务信息,也存储来自本地数据解密与完整性验证模块5-1的数据(数据存储在用户身份与表名相符的临时表中),该部分数据由数据解密与完整性验证模块5-1得到来自归属地加密与完整性保护6-2的密文并通过解密后得到明文MG和Hash(MG),然后对数据进行完整性验证,即对明文重新进行Hash运算,并与得到的Hash(MG)进行比对,若前后两者相等则将MG经由该模块发送至临时表进行存取,并在本地服务器中完成非本地用户的一切合法请求,业务处理完成之后的临时库存储的数据由临时库存取模块2-5发送至数据加密与完整性保护模块5-2,使用本地密钥协商模块3所计算得出的会话密钥与随机数进行加密,将加密后的密文通过互联网发送至归属地数据解密与完整性验证模块6-1,对数据进行解密得到明文M和Hash(M),对M求Hash值并与Hash(M)进行比对,若两者相等,则说明数据完整性未被破坏,明文数据M由归属地数据解密与完整性验证模块6-1发送至读写分离归属地数据库模块7完成数据的存储;
rest数据收发与归属地区分模块1如图4所示,负责监听客户端的服务请求,并对请求进行格式化以及对用户归属地进行查找。所述的数据收发与归属地区分模块1包括rest监听与协议解析模块1-1,数据格式化与归属地区分模块1-2,持久层数据访问模块1-3。所述的rest监听与协议解析模块1-1,rest服务基于http协议,rest服务主要包括Get、Post、Put、Delete,接收客户端发送的服务请求,解析服务请求中的http消息,创建服务名参数,并根据服务名参数访问rest服务对应的服务方法;所述的数据格式化与归属地区分模块1-2将接收到来自rest监听与协议解析模块1-1处理后的数据,将处理后的数据格式化为Json格式,并通过设计改进trie树算法对归属地进行查找,最后将归属地信息与格式化后的信息一并发送至持久层数据访问模块1-3,所述的持久层数据访问模块1-3接收到归属地信息与格式化后的信息后,利用改进多线程与队列算法,对连接数据库的连接池进行初始化,同时建立与读写分离本地数据库模块2的Socket连接,通过此连接将归属地信息与格式化后的信息发送至读写分离本地数据库模块2。
读写分离本地数据库模块2如图5所示,主要负责通过设计基于统计的读写分离算法对数据进行存取,同时针对非本地用户可以根据用户唯一身份信息为表名建立以业务为相应字段的临时表,实现对非本地用户的本地化处理功能;所述的持久层数据收发模块2-1接收持久层数据访问模块1-3所发送的消息并提供数据库的连接入口并根据归属地信息选择将数据发送至读写分离模块2-2或是临时表创建模块2-4,若归属地信息为本地用户则将数据发送至读写分离模块2-2,若是归属地信息为非本地用户则将数据发送至临时表创建模块2-4;所述的读写分离模块2-2直接依据自行设计的基于统计的读写分离算法,对来自持久层数据收发模块的数据进行处理,算法细节为根据数据接收到的来自持久层数据收发模块的操作请求进行读写分离,将读请求标记为r,将写请求标记为w,将单条读操作的记录标记为r1,将批量操作(n条操作)标记为r n,同理将单条写操作标记为w1,批量写操作(n条操作)标记为wn,n越大优先级越高,同等优先级的操作根据请求时间顺序进行响应,这样就可以达到读写效率的大幅度提升,根据算法得出结果发送至数据存取模块2-3;所述的数据存取模块2-3接收到来自读写分离模块2-2的数据后,将数据信息转化为最终需要执行的sql语句,将读操作发送至读库,写操作发送至写库,完成数据的读取,写入,待写入完毕后使用主从复制技术将从数据库的数据进行更新;所述的临时表创建模块2-4接收到来自持久层数据收发模块2-1的数据后,依据用户唯一身份信息为表名,业务信息为字段创建临时表,并将已处理的数据存入用户对应的临时表;所述的临时表存取模块2-5负责与本地数据加解密与完整性保护模块5进行通信,并根据数据走向来读取临时表中的数据,以及将来自数据解密与完整性验证模块的数据存入临时表中。
本地密钥协商模块3如图6所示,负责在每次数据库之间的交互中产生一个新的会话密钥,并且在产生会话密钥的同时,提供通信双方的身份验证,抵御中间人攻击以及重放攻击;所述的本地密钥协商模块3包括挑战生成模块3-1,身份认证与共享密钥计算模块3-2;所述的挑战生成模块3-1负责获取***选择的大素数q和其本原根a,同时生成随机数Rn,以及随机数xA,并计算出发送方密钥协商参数随后发送方将发送方密钥协商参数发送方身份的散列值Hash(IDA)、时间戳T1以及Rn使用预共享密钥KAB进行加密得到密文其中xA为发送方私钥,保密存放,然后发送至归属地密钥协商模块4;所述的身份认证与共享密钥计算模块3-2收到来自归属地密钥协商模块发送的消息后利用预共享密钥KAB进行解密得到接收方协商参数时间戳信息T2等信息,并对接收方的身份进行验证,分别计算IDA的Hash值与IDB的Hash值,然后进行异或,将结果与进行比对,若计算结果相等,则证明通信双方合法,并根据解密得到的接收方协商参数YB、由挑战生成模块3-1所生成的xA与随机数Rn,计算出最终的会话密钥将最终会话密钥k与随机数Rn一起发送至本地数据加解密与完整性保护模块5;
归属地密钥协商模块4如图7所示,负责与本地密钥协商模块进行交互,在每次数据库的交互中产生一个新的会话密钥,且完成对交互双方的身份认证;所述的归属地密钥协商模块7包括应答生成模块7-1,归属地身份认证与共享密钥计算模块7-2;所述的应答生成模块7-1生成随机数xB,并结合q和a产生接收方协商参数xB保密存放,随后将发送至本地密钥协商模块3;所述的归属地身份认证与共享密钥计算模块7-2接收来自挑战生成模块3-1的消息并对其中的密文进行解密得到随机数Rn,并重新计算IDA的Hash值与Hash(IDA)对比,若比对结果相等,则利用xB与解密所得的发送方密钥协商参数以及Rn共同计算出会话密钥并将会话密钥k和随机数Rn一同发送至归属地数据加解密与完整性保护模块6;否则,中止此次会话。
本地数据加解密与完整性保护模块5如图8所示,主要负责与读写分离本地数据库模块2通信并将进出数据库的数据进行解密和加密;所述的本地数据加解密与完整性保护模块5,包括数据解密与完整性验证模块5-1,数据加密与完整性保护模块5-2;所述的数据加密与完整性保护模块5-2接收的本地密钥协商模块3所产生的密钥与随机数Rn,加密之前将对明文M取Hash值得到Hash(M),将M与Hash(M)结合共同使用会话密钥k进行加密得到密文C=Ek(M+Hash(M))再将C与挑战生成模块提供的随机数Rn进行异或得到最终密文信息并将最终密文信息发送至归属地数据解密与完整性验证模块6-1;所述的数据解密与完整性验证模块5-1接收来自归属地数据加密与完整性保护模块6-2的密文数据先通过归属地身份认证与共享密钥计算模块4-2得到随机数Rn与进行异或得到Ek((MG+Hash(MG)),使用会话密钥对密文Ek((MG+Hash(MG))进行解密得到明文MG和Hash(MG),并重新计算MG的Hash值,与Hash(MG)进行比对,若是两者相等,则代表数据完整性未被破坏;否则,终止此次会话。
读写分离归属地数据库模块7如图9所示,负责与归属地加解密与完整性保护模块6进行交互,接收来自归属地数据加解密与完整性保护模块6的数据,所述的归属地读写分离模块6-1通过设计基于统计的读写分离算法,对来自归属地数据加解密与完整性保护模块6的数据进行处理,将处理结果发送至归属地数据存取模块6-2,算法和本地数据库的读写分离算法相同;所述的数据存取模块6-2将归属地读写分离模块6-1的处理结果解析为可执行的sql语句并执行,将数据写入归属地数据库,同时将从归属地数据库中读出的数据发送至归属地数据加解密与完整性保护模块6。
密钥协商具体过程如图10所示,其中Hash(IDA)代表发送方身份的散列值,Hash(IDB)代表接收方身份的散列值,其中KAB代表预共享密钥,q和a代表公开的大素数和该素数的本原根,IDA和IDB代表发送方和接收方的身份,YA和YB表示双方所生成的密钥协商参数;
本地发送方用A表示,归属地接收方用B表示,过程(1)中发送方A发送身份信息IDA,密文接收方B收到过程(1)信息后,首先利用预共享密钥KAB解密密文,得到Hash(IDA),YA,T1,Rn,接收方根据IDA计算其Hash值并与解密得到的Hash(IDA)进行比对,若比对结果相等,则说明发送方身份合法,然后利用q与a结合接收方的应答生成模块生成自己的协商参数若不相等则终止此次会话;过程(2)中接收方B发送发送方A收到后,通过预共享密钥KAB对密文进行解密得到接收方协商参数时间戳信息T2,对IDA和IDB分别计算Hash值后再异或,将计算结果与进行比对,若是两者相等,则证明该信息是合法的,由此双方利用得到的信息,结合自己生成的密钥协商参数xA和xB,以及随机数Rn,最终计算出会话密钥若比对结果不等,则终止此次会话,
本地数据加解密与完整性保护模块和归属地数据加解密与完整性保护模块通信过程如图11所示,数据加密与完整性保护模块5-2(本地A)发送至归属地数据解密与完整性验证模块6-1(归属地B),其中,k为会话密钥,M为明文消息,Rn为随机数。归属地数据解密与完整性验证模块6-1,应用会话密钥k解密收到的密文,获得明文消息M;然后归属地数据加密与完整性保护模块6-2(归属地B),发送至数据解密与完整性验证模块5-1,完成一次会话,其中,k为会话密钥,MG为明文消息,Rn为随机数;数据解密与完整性验证模块5-1(本地A),应用会话密钥k解密收到的密文,可获得明文消息MG。
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作任何其他形式的限制,而依据本发明的技术实质所作的任何修改或等同变化,仍属于本发明所要求保护的范围。

Claims (8)

1.一种适用于移动定位***的安全分布式数据库交互方法,其特征在于,包括rest数据收发与归属地区分模块(1)、读写分离本地数据库模块(2)、本地密钥协商模块(3)、归属地密钥协商模块(4)、本地数据加解密与完整性保护模块(5)、归属地数据加解密与完整性保护模块(6)和读写分离归属地数据库模块(7);
所述的rest数据收发与归属地区分模块(1)通过设计改进的trie树算法,负责接收与处理来自客户端的请求,加以Json格式化,并进行归属地判断;
所述的读写分离本地数据库模块(2)采用自主设计的基于统计的读写分离算法,进行数据库的操作,通过数据的读写分离保障数据的高可用性,通过同步主从关系保障数据的一致性,并建立本地数据库,完成对本地用户的直接存储,对于非本地用户,创建临时数据表,在本地进行业务处理,并将结果在处理完成之后返回给本地数据加解密与完整性保护模块(5);
所述的本地密钥协商模块(3)以预共享密钥为基础设计密钥协商协议,同时确认发送方和接收方的身份,在每次数据库的数据传输过程中,产生一个新的会话密钥,并且在密钥分发过程中,可以抵抗中间人攻击与重放攻击;归属地密钥协商模块(4)负责与本地密钥协商模块(3)进行交互,确认双方身份并产生会话密钥;
所述的本地数据加解密与完整性保护模块(5)通过设计改进的SM4加密算法,负责解密来自归属地数据加解密与完整性保护模块(6)所发送的数据,同时对数据的完整性进行验证,并对来自读写分离本地数据库模块(2)的数据进行加密;
所述的归属地数据加解密与完整性保护模块(6)通过设计改进的SM4加密算法,负责解密来自本地数据加解密与完整性保护模块(5)所发送的数据,加密由读写分离归属地数据库模块(7)发送的数据,并保护数据的完整性,实现与本地数据加解密与完整性保护模块(5)的安全交互;
所述的读写分离归属地数据库模块(7)通过设计基于统计的读写分离算法对数据进行高效读写,然后进行格式封装,最后把封装数据发送给归属地数据加解密与完整性保护模块(6)。
2.根据权利要求1所述的一种适用于移动定位***的安全分布式数据库交互方法,其特征在于:所述的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)。
3.根据权利要求1所述的一种适用于移动定位***的安全分布式数据库交互方法,其特征在于:所述的读写分离本地数据库模块(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条记录的操作标记为rn和wn,n越大优先级越大,对于同一优先级的操作根据时间顺序进行顺序执行,将经过读写分离处理后的读写请求信息发送至数据存取模块(2-3);
所述的数据存取模块(2-3)接收来自读写分离模块(2-2)的读写请求信息,进行分析转化为最终的sql语句,然后高效读出本地数据库从库中的数据,并将处理后的数据写入本地数据库主库,最后将主数据库和从数据库中的数据进行安全同步;
所述的临时表创建模块(2-4)接收来自持久层数据收发模块(2-1)的用户信息以及临时表创建启动信息,由于接收的用户信息为非本地用户信息,创建临时表时需要根据业务建立表的结构,并使用其唯一用户名对表进行命名,使之与服务要求相吻合,确保在高并发情况下,每一个非本地用户的信息都存储在以自己用户名所建立的临时表中,最后在一次完整的数据交互后销毁所创建的临时表;
所述的临时表数据存取模块(2-5)接收来自数据解密与完整性验证模块(5-1)的数据,在临时数据库中进行存取操作,待用户请求服务完成后将数据发送至数据加密与完整性保护模块(5-2)。
4.根据权利要求1所述的一种适用于移动定位***的安全分布式数据库交互方法,其特征在于:所述的本地密钥协商模块(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);否则终止会话。
5.根据权利要求1所述的一种适用于移动定位***的安全分布式数据库交互方法,其特征在于:所述的归属地密钥协商模块(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);否则,中止此次会话。
6.根据权利要求1所述的一种适用于移动定位***的安全分布式数据库交互方法,其特征在于:所述的本地数据加解密与完整性保护模块(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)。
7.根据权利要求1所述的一种适用于移动定位***的安全分布式数据库交互方法,其特征在于:所述的归属地数据加解密与完整性保护模块(6)与本地数据加解密与完整性保护模块进行交互,包括归属地数据解密与完整性验证模块(6-1),归属地数据加密与完整性保护模块(6-2);通过设计改进的SM4算法,实现在一次一密的密钥基础上,对每一次数据库间的调用数据进行加解密,对来自读写分离归属地数据库模块(7)的数据进行加密,并进行完整性保护;对来自本地数据加解密与完整性保护模块(5)所发送的数据进行解密与完整性验证,在保证高安全性的同时也确保证了接收和发送数据的完整性;
所述的归属地数据解密与完整性验证模块(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)。
8.根据权利要求1所述的一种适用于移动定位***的安全分布式数据库交互方法,其特征在于:所述的读写分离归属地数据库模块(7)包括归属地读写分离模块(7-1)和归属地数据存取模块(7-2);通过设计基于统计的读写分离算法,完成对归属地数据库的高效读写;同时当收到归属地数据加解密与完整性保护模块(6)的请求时,将所请求数据发送至归属地数据加解密与完整性保护模块(6);
所述的归属地读写分离模块(7-1)接收来自归属地数据加解密与完整性保护模块(6)所发送的数据信息;采用基于统计的读写分离算法,对数据信息进行分类,将读操作标记为r,将写操作标记为w,根据读取和写入的数据量进行细分,单条记录的操作标记为r1和w1,一次操作n条记录的操作标记为rn和wn,n越大优先级越大,对于同一优先级的操作根据时间顺序进行顺序执行,最后将处理后的信息发送至归属地数据存取模块(7-2);
所述的归属地数据存取模块(7-2)根据归属地读写分离模块(7-1)所发送的请求,将请求解析处理为数据库可执行的sql语句,完成对归属地数据库的高效读取数据、写入或更新数据操作,对于读的操作全部放在从数据库中进行,对于写的操作全部放于主数据库中进行,将主数据库和从数据库中的数据进行安全同步,最后将读出的数据发送至归属地数据加解密与完整性保护模块(6)。
CN201910382104.6A 2019-05-09 2019-05-09 一种适用于移动定位***的安全分布式数据库交互*** Active CN109995530B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910382104.6A CN109995530B (zh) 2019-05-09 2019-05-09 一种适用于移动定位***的安全分布式数据库交互***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910382104.6A CN109995530B (zh) 2019-05-09 2019-05-09 一种适用于移动定位***的安全分布式数据库交互***

Publications (2)

Publication Number Publication Date
CN109995530A true CN109995530A (zh) 2019-07-09
CN109995530B CN109995530B (zh) 2022-02-15

Family

ID=67136212

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910382104.6A Active CN109995530B (zh) 2019-05-09 2019-05-09 一种适用于移动定位***的安全分布式数据库交互***

Country Status (1)

Country Link
CN (1) CN109995530B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112073399A (zh) * 2020-08-28 2020-12-11 华迪计算机集团有限公司 基于双向消息队列的数据交换***
CN112632625A (zh) * 2020-12-31 2021-04-09 深圳昂楷科技有限公司 数据库安全网关***、数据处理方法、电子设备
CN112861188A (zh) * 2021-02-01 2021-05-28 青岛易来智能科技股份有限公司 用于多集群的数据汇集***和方法
CN113242122A (zh) * 2021-04-15 2021-08-10 哈尔滨工业大学 一种基于dh和rsa加密算法的加密方法
CN114070549A (zh) * 2020-07-31 2022-02-18 马上消费金融股份有限公司 一种密钥生成方法、装置、设备和存储介质
US20220182839A1 (en) * 2020-12-09 2022-06-09 U-Blox Ag Secure indoor positioning device, system and method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101051903A (zh) * 2007-03-30 2007-10-10 中山大学 一种符合epc c1g2标准的rfid随机化密钥双向认证方法
CN101383698A (zh) * 2008-10-29 2009-03-11 中国电信股份有限公司 会话密钥分发方法及***
US20090097417A1 (en) * 2007-10-12 2009-04-16 Rajiv Asati System and method for improving spoke to spoke communication in a computer network
CN106649652A (zh) * 2016-12-12 2017-05-10 国网江苏省电力公司检修分公司 基于Hadoop的变电站主设备在线监测***构架方法
JP2018142922A (ja) * 2017-02-28 2018-09-13 日本電信電話株式会社 データ流通システム及びデータ流通方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101051903A (zh) * 2007-03-30 2007-10-10 中山大学 一种符合epc c1g2标准的rfid随机化密钥双向认证方法
US20090097417A1 (en) * 2007-10-12 2009-04-16 Rajiv Asati System and method for improving spoke to spoke communication in a computer network
CN101383698A (zh) * 2008-10-29 2009-03-11 中国电信股份有限公司 会话密钥分发方法及***
CN106649652A (zh) * 2016-12-12 2017-05-10 国网江苏省电力公司检修分公司 基于Hadoop的变电站主设备在线监测***构架方法
JP2018142922A (ja) * 2017-02-28 2018-09-13 日本電信電話株式会社 データ流通システム及びデータ流通方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JIANG RUI: ""Architecture Design of the Internet of Things based on Cloud Computing"", 《2015 SEVENTH INTERNATIONAL CONFERENCE ON MEASURING TECHNOLOGY AND MECHATRONICS AUTOMATION》 *
李宁: ""分布式数据库***中用户身份认证及访问控制研究"", 《中国优秀硕士学位论文全文数据库》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114070549A (zh) * 2020-07-31 2022-02-18 马上消费金融股份有限公司 一种密钥生成方法、装置、设备和存储介质
CN112073399A (zh) * 2020-08-28 2020-12-11 华迪计算机集团有限公司 基于双向消息队列的数据交换***
US20220182839A1 (en) * 2020-12-09 2022-06-09 U-Blox Ag Secure indoor positioning device, system and method
US11553351B2 (en) * 2020-12-09 2023-01-10 U-Blox Ag Secure indoor positioning device, system and method
CN112632625A (zh) * 2020-12-31 2021-04-09 深圳昂楷科技有限公司 数据库安全网关***、数据处理方法、电子设备
CN112861188A (zh) * 2021-02-01 2021-05-28 青岛易来智能科技股份有限公司 用于多集群的数据汇集***和方法
CN113242122A (zh) * 2021-04-15 2021-08-10 哈尔滨工业大学 一种基于dh和rsa加密算法的加密方法

Also Published As

Publication number Publication date
CN109995530B (zh) 2022-02-15

Similar Documents

Publication Publication Date Title
CN109995530A (zh) 一种适用于移动定位***的安全分布式数据库交互方法
CN103636160B (zh) 安全文件共享方法与***
WO2022193985A1 (zh) 一种数据处理方法、装置、设备及存储介质
CN103609059B (zh) 用于安全数据共享的***和方法
CN103563325B (zh) 用于保护数据的***和方法
CN103178965B (zh) 使用多因素或密钥式分散对数据进行保护的***和方法
CN107241360A (zh) 一种数据安全共享交换方法和数据安全共享交换平台***
CN107222482A (zh) 一种基于复合区块链网络的数据管理***及方法
CN106411909A (zh) 对移动中数据进行保护的***和方法
CN103229450A (zh) 用于安全多租户数据存储的***和方法
CN103384196A (zh) 安全数据解析方法和***
CN104079573A (zh) 用于安全保护云中的数据的***和方法
CN103238305A (zh) 用于安全数据储存的加速器***
CN103270516A (zh) 用于安全保护虚拟机计算环境的***和方法
CN104331329B (zh) 支持域管理的移动办公安全***及方法
CN101569132A (zh) 用于分发数据和保护数据安全的***和方法
CN109525570A (zh) 一种面向集团客户的数据分层安全访问控制方法
CN112615847B (zh) 基于区块链的数据共享和隐私保护方法
CN111865609A (zh) 一种基于国密算法的私有云平台数据加解密***
CN110519222A (zh) 基于一次性非对称密钥对和密钥卡的外网接入身份认证方法和***
CN109985390A (zh) 虚拟资产管理方法及***
Cheng et al. Ocean data sharing based on blockchain
CN115834033A (zh) 基于量子密钥的动态口令认证***
CN114329395A (zh) 一种基于区块链的供应链金融隐私保护方法和***
Xu et al. A review of the technology and application of deposit and traceability based on blockchain

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant