一种网关数据交互方法、装置、计算机设备及存储介质与流程

文档序号:24346120发布日期:2021-03-19 12:29阅读:86来源:国知局
一种网关数据交互方法、装置、计算机设备及存储介质与流程

本发明涉及数据库网关安全领域,尤其涉及一种网关数据交互方法、装置、计算机设备及存储介质。



背景技术:

大数据时代的数据处理和分析需要通过多数据库互通聚合来完成复杂的计算逻辑,数据库的互通是云计算中的常见需求。数据库网关(databasegateway)是一种用于数据库代理,拥有数据库访问控制、数据库权限管理、数据库访问追溯等功能的数据库管理组件,可实现数据库间互通。但因数据库网关暴露在公网环境下,因此非常容易遭受攻击。攻击形式包括但不限于黑客、病毒、rootkit等恶意软件,在应用层、操作系统层、硬件层对数据库网关展开攻击。用户在使用过程中往往难以察觉到数据库已经遭到窃取,从而形成高级长期威胁(apt,advancedpersistentthreat)。此外,来自内部人员的恶意或者无意的非授权访问也可能造成数据泄漏。

现有的数据库网关端保护方案,基于虚拟化技术的系统资源隔离和监控,如hypervisor为数据库网关端构建一个隔离的空间运行,但hypervisor技术自身的漏洞可能会威胁到整个系统;基于tpm(trustedplatformmodule,可信平台模块)的可信架构在程序加载时进行完整性度量,但却难以保证程序在运行时仍然是可信的;基于病毒查杀,如云平台的agent等,通过实时检测进出流量、指令、内存及文件等,进行威胁监测,但基于病毒查杀的方案在数据库网关端的大数据量情景下,对资源侵占较高且对未知威胁应对能力弱。

大多数数据库网关和数据库交互的保护方案不适用于arm处理器平台。armtrustzone是arm推出的旨在以硬件为安全强制保障的安全技术。trustzone将应用程序分别放置在普通区域和安全区域运行,需要保护的内容将在安全区域内收到保护。

本发明针对目前逐渐增多的arm架构服务器和arm架构个人计算机和移动设备,提出一种只要cpu(centralprocessingunit,中央处理器)可信,就确保数据库网关运行时安全的数据库网关和数据库交互方案,提高数据库网关端对未知威胁的防御能力,使数据库网关更安全。



技术实现要素:

本发明实施例提供一种网关数据交互方法、装置、计算机设备及存储介质,以解决在大数据时代下,arm架构中数据库网关易被攻击、数据库端的数据易被泄露或窃取的的问题。

根据本申请的一方面提供一种网关数据交互方法,所述方法应用于数据库网关端,所述数据库网关端被划分为安全区域和非安全区域,包括以下步骤:

所述数据库网关端非安全区域将接收来自用户端的用户请求和用户身份信息通过第一代理转发至所述数据库网关端安全区域,所述第一代理控制所述数据网关端安全区域运行,并控制所述数据库网关端非安全区域睡眠;

所述数据库网关端安全区域接收所述用户请求和所述用户身份信息,并对所述用户请求和用户身份信息进行验证;

所述用户请求和所述用户身份信息验证通过后,所述数据库网关端安全区域向数据库端安全区域间发起远程证明;

远程证明成功后,数据库网关端安全区域将所述用户请求发送至所述数据库端安全区域,供所述数据库端安全区域执行所述用户请求;

接收来自所述数据库端安全区域根据请求结果进行处理的第一处理结果时,所述第一代理控制所述数据网关端非安全区域运行,并控制所述数据库网关端安全区域睡眠,通过所述数据库网关端非安全区域接收所述第一处理结果;

所述第一代理控制所述数据库网关端安全区域运行,并控制所述数据库网关端非安全区域睡眠,将所述第一处理结果通过第一代理转发至所述数据库网关端安全区域;

所述数据库网关端安全区域接收所述第一处理结果并将所述第一处理结果通过第一代理转发至所述数据库网关端非安全区域,所述第一代理控制所述数据库网关端非安全区域运行,并控制所述数据库网关端安全区域睡眠;

所述数据库网关端非安全区域将所述第一处理结果返回给所述用户端。

根据本申请的一方面提供一种网关数据交互方法,所述方法应用于数据库端,所述数据库端被划分为安全区域和非安全区域,包括以下步骤:

接收到数据库网关端安全区域向所述数据库端安全区域间发起的远程证明时,所述数据库端安全区域与所述数据库网关端安全区域进行远程证明;

远程证明成功后,所述数据库端安全区域接收所述数据库网关端安全区域发送的用户请求;

所述数据库端安全区域将所述用户请求通过第二代理转发至所述数据库端非安全区域,所述第二代理控制所述数据端非安全区域运行,并控制所述数据库端安全区域睡眠;

所述数据库端非安全区域调用数据库执行所述用户请求,得到第一处理结果;

所述数据库将所述第一处理结果通过第二代理转发至所述数据库端安全区域,所述第二代理控制所述数据端安全区域运行,并控制所述数据库端非安全区域睡眠;

所述数据库端安全区域将所述第一处理结果发送至所述数据库网关端非安全区域,供所述数据库网关端非安全区域将所述第一处理结果返回给用户端。

根据本申请的一方面提供一种网关数据第一交互装置,包括:

第一接收模块,用于所述数据库网关端非安全区域将接收来自用户端的用户请求和用户身份信息通过第一代理转发至所述数据库网关端安全区域,所述第一代理控制所述数据网关端安全区域运行,并控制所述数据库网关端非安全区域睡眠;

第一验证模块,用于所述数据库网关端安全区域接收所述用户请求和所述用户身份信息,并对所述用户请求和用户身份信息进行验证;

第一远程证明模块,用于所述用户请求和所述用户身份信息验证通过后,所述数据库网关端安全区域向数据库端安全区域间发起远程证明;

第一发送模块,用于远程证明成功后,数据库网关端安全区域将所述用户请求发送至所述数据库端安全区域,供所述数据库端安全区域执行所述用户请求;

第一代理模块,用于接收来自所述数据库端安全区域根据请求结果进行处理的第一处理结果时,所述第一代理控制所述数据网关端非安全区域运行,并控制所述数据库网关端安全区域睡眠,通过所述数据库网关端非安全区域接收所述第一处理结果;

第二代理模块,用于所述第一代理控制所述数据库网关端安全区域运行,并控制所述数据库网关端非安全区域睡眠,将所述第一处理结果通过第一代理转发至所述数据库网关端安全区域;

第二接收模块,用于所述数据库网关端安全区域接收所述第一处理结果并将所述第一处理结果通过第一代理转发至所述数据库网关端非安全区域,所述第一代理控制所述数据库网关端非安全区域运行,并控制所述数据库网关端安全区域睡眠;

第二发送模块,用于所述数据库网关端非安全区域将所述第一处理结果返回给所述用户端。

根据本申请的一方面提供一种网关数据第二交互装置,包括:

第二远程证明模块,用于接收到数据库网关端安全区域向所述数据库端安全区域间发起的远程证明时,所述数据库端安全区域与所述数据库网关端安全区域进行远程证明;

第三接收模块,用于远程证明成功后,所述数据库端安全区域接收所述数据库网关端安全区域发送的用户请求;

第三代理模块,用于所述数据库端安全区域将所述用户请求通过第二代理转发至所述数据库端非安全区域,所述第二代理控制所述数据端非安全区域运行,并控制所述数据库端安全区域睡眠;

调用数据库执行模块,用于所述数据库端非安全区域调用数据库执行所述用户请求,得到第一处理结果;

第四代理模块,用于所述数据库将所述第一处理结果通过第二代理转发至所述数据库端安全区域,所述第二代理控制所述数据端安全区域运行,并控制所述数据库端非安全区域睡眠;

第四发送模块,用于所述数据库端安全区域将所述第一处理结果发送至所述数据库网关端非安全区域,供所述数据库网关端非安全区域将所述第一处理结果返回给用户端。

一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述网关数据交互方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述网关数据交互方法的步骤。

本发明提出的网关数据交互方法、装置、计算机设备及存储介质通过将数据库网关端、数据库端划分为安全区域与非安全区域,数据库网关端安全区域与数据库端安全区域进行远程证明构建可信环境,通过代理控制并切换安全区域与非安全区域运行或睡眠,以解决在大数据时代下,arm架构中数据库网关易被攻击、数据库端的数据易被泄露或窃取的的问题。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一实施例中网关数据交互方法的应用环境示意图;

图2是本申请一实施例中网关数据交互方法,应用于数据库网关端,数据库网关端被划分为安全区域和非安全区域的流程示意图;

图3是本申请一实施例中网关数据交互方法,应用于数据库端,数据库端被划分为安全区域和非安全区域的流程示意图;

图4是本申请一实施例中网关数据第一交互装置的结构示意图;

图5是本申请一实施例中中网关数据第二交互装置的结构示意图;

图6是本申请一实施例中计算机设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请提供的网关数据交互方法,可应用在如图1的应用环境中。

具体地,所述应用环境包括但不限于第一计算机设备网关端设备11、第一计算机设备数据库端设备12和用户端10。

在一实施例中,如图1所示,提供一种网关数据交互方法,应用于图1的第一计算机设备网关端设备。

在一实施例中,如图2所示,提供一种网关数据交互方法,应用于数据库网关端,所述数据库网关端被划分为安全区域和非安全区域的流程示意图,包括以下步骤s101至s108。

示例性地,需要保存在数据库网关端安全区域的数据包括数据库网关端的配置信息及网关负载程序,所述网关负载程序包括与数据库网关端非安全区域的通信接口以及业务逻辑,其中业务逻辑可拓展数据库网关端的功能,包括数据库网关端访问控制、数据库网关端用量计量、数据库网关端权限管理等。

示例性地,数据库网关端非安全区域存储安全区域的一部分加密的密封数据。

步骤s101,所述数据库网关端非安全区域将接收来自用户端的用户请求和用户身份信息通过第一代理转发至所述数据库网关端安全区域,所述第一代理控制所述数据网关端安全区域运行,并控制所述数据库网关端非安全区域睡眠。

具体地,用户能且只能通过向数据库网关端发送用户请求来获得请求结果,数据库网关端会决定是否处理用户请求及是否将数据库端的返回结果返回给用户。

具体地,用户端首先通过rsa(rivest-shamir-adleman)算法或diffie-hellman(迪菲-赫尔曼)算法建立用户端和数据库网关端间的安全通道,再通过安全信道将用户请求和用户身份信息发送至数据库网关端非安全区域。

具体地,数据库网关端安全区域和非安全区域进行通信需要通过第一代理,数据库网关端安全区域/非安全区域将信息存入内存并触发smc(securemonitorcall,安全监控指令)异常使得arm处理器的cpu进入monitor模式,monitor模式中第一代理通过判断arm处理器的scr(secureconfigurationregister,安全配置寄存器)中对应的值来确定请求来自非安全区域侧还是安全区域侧和发送目标是非安全区域侧还是安全区域侧,控制信息发送方睡眠,信息接收方运行。

步骤s102,所述数据库网关端安全区域接收所述用户请求和所述用户身份信息,并对所述用户请求和用户身份信息进行验证。

具体地,数据库网关端设备对用户请求和用户身份信息进行验证,对于验证通过的用户请求,若用户请求需要调用数据库,数据库网关端设备与至少一个请求相关数据库端设备尝试进行远程证明并建立安全信道的请求。对于不合法请求,通过第一代理控制数据库网关端安全区域睡眠,非安全区域运行并结束此次用户请求。

步骤s103,所述用户请求和所述用户身份信息验证通过后,所述数据库网关端安全区域向数据库端安全区域间发起远程证明。

具体地,远程证明过程中的消息通过内存传递,需要经过数据库网关端非安全区域和数据库端非安全区域和网络间进行传递。

可选地,远程证明过程中可以设置远程证明过期时间,在过期时间内,数据库网关端没有收到数据库端对第一度量值和第一签名信息验证通过的反馈,可以跳过该用户请求。

步骤s104,远程证明成功后,数据库网关端安全区域将所述用户请求发送至所述数据库端安全区域,供所述数据库端安全区域执行所述用户请求。

具体地,数据库网关端安全区域将用户请求发送至数据库端,并等待数据库端返回对该用户请求的请求结果。

步骤s105,接收来自所述数据库端安全区域根据请求结果进行处理的第一处理结果时,所述第一代理控制所述数据网关端非安全区域运行,并控制所述数据库网关端安全区域睡眠,通过所述数据库网关端非安全区域接收所述第一处理结果。

步骤s106,所述第一代理控制所述数据库网关端安全区域运行,并控制所述数据库网关端非安全区域睡眠,将所述第一处理结果通过第一代理转发至所述数据库网关端安全区域。

步骤s107,所述数据库网关端安全区域接收所述第一处理结果并将所述第一处理结果通过第一代理转发至所述数据库网关端非安全区域,所述第一代理控制所述数据库网关端非安全区域运行,并控制所述数据库网关端安全区域睡眠。

具体地,数据库网关端安全区接收第一处理结果,并将第一处理结果处理为更适于下方模块接收的结果,通过第一代理将第一处理结果发送至数据库网关端非安全区域。

步骤s108,所述数据库网关端非安全区域将所述第一处理结果返回给所述用户端。

需要特别说明的是,所述数据库网关端可应用于多个数据库端,与多个数据库端分别进行远程证明并建立安全信道,实现与多个数据库端进行数据安全交互的目的。

在本实施例中,数据库网关端接收并验证用户端发送的用户请求和用户身份信息,对验证通过的用户请求,对用户请求相关的数据库端进行远程证明,远程证明成功后,数据库网关端接收数据库端对用户请求的请求结果并将请求结果返回给用户端。在此过程中,远程证明过程在数据库网关端安全区域/数据库端安全区域进行,保证了数据交互的环境可靠性,保证了网关数据交互的安全性,奖励数据库网关工作时收到恶意威胁导致数据泄露的风险。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

在一实施例中,步骤s103,所述用户请求和所述用户身份信息验证通过后,所述数据库网关端安全区域向数据库端安全区域间发起远程证明包括以下步骤s1031至s1036。

s1031,所述数据库网关端安全区域向数据库端安全区域发起远程证明。

s1032,建立所述数据库网关端安全区域和所述数据库端安全区域间的第一安全信道。

s1033,所述数据库网关端对自身的可信计算基进行度量得到第一度量值,使用数据库网关端的证明证书对所述第一度量值进行签名生成第一签名信息。

具体地,所述第一度量值是度量数据库网关端的可信程度,所述数据库网关端的证明证书是通过arm处理器cpu中的硬件密钥通过相应算法派生得到,派生算法与具体的arm处理器cpu型号相关,证明证书会被秘密存储,只有数据库网关端安全区域可以获取。

s1034,所述数据库网关端安全区域将所述第一度量值和所述第一签名信息经所述第一安全信道发送至所述数据库端安全区域,供所述数据库端安全区域对所述第一度量值和所述第一签名信息进行验证,并在所述第一度量值和所述第一签名信息验证通过时反馈第二度量值和第二签名信息。

s1035,所述数据库网关端安全区域接收到所述数据库端安全区域发送的第二度量值和第二签名信息时,对所述第二度量值和所述第二签名信息进行验证。

具体地可分为以下步骤:

所述数据库网关端安全区域通过第一代理将所述第二度量值和所述第二签名信息发送至所述数据库网关端非安全区域,所述第一代理控制所述数据库网关端非安全区域运行,并控制所述数据库网关端安全区域睡眠。

所述数据库网关端非安全区域对所述第二度量值和所述第二签名信息进行验证,验证通过则生成第二验证报告并通过第一代理将所述第二验证报告发送至所述数据库网关端安全区域。

所述第一代理控制所述数据库网关端安全区域运行,并控制所述数据库网关端非安全区域睡眠,所述数据库网关端安全区域接收所述第二验证报告时确定所述数据库端可信,将所述用户请求发送至所述数据库端安全区域。

s1036,所述第二度量值和所述第二签名信息验证通过时,所述远程证明成功,数据库网关端安全区域将所述用户请求发送至所述数据库端安全区域。

在一实施例中,如图4所示,提供一种网关数据第一交互装置,包括:

第一接收模块40,用于所述数据库网关端非安全区域将接收来自用户端的用户请求和用户身份信息通过第一代理转发至所述数据库网关端安全区域,所述第一代理控制所述数据网关端安全区域运行,并控制所述数据库网关端非安全区域睡眠;

第一验证模块41,用于所述数据库网关端安全区域接收所述用户请求和所述用户身份信息,并对所述用户请求和用户身份信息进行验证;

第一远程证明模块42,用于所述用户请求和所述用户身份信息验证通过后,所述数据库网关端安全区域向数据库端安全区域间发起远程证明;

第一发送模块43,用于远程证明成功后,数据库网关端安全区域将所述用户请求发送至所述数据库端安全区域,供所述数据库端安全区域执行所述用户请求;

第一代理模块44,用于接收来自所述数据库端安全区域根据请求结果进行处理的第一处理结果时,所述第一代理控制所述数据网关端非安全区域运行,并控制所述数据库网关端安全区域睡眠,通过所述数据库网关端非安全区域接收所述第一处理结果;

第二代理模块45,用于所述第一代理控制所述数据库网关端安全区域运行,并控制所述数据库网关端非安全区域睡眠,将所述第一处理结果通过第一代理转发至所述数据库网关端安全区域;

第二接收模块46,用于所述数据库网关端安全区域接收所述第一处理结果并将所述第一处理结果通过第一代理转发至所述数据库网关端非安全区域,所述第一代理控制所述数据库网关端非安全区域运行,并控制所述数据库网关端安全区域睡眠;

第二发送模块47,用于所述数据库网关端非安全区域将所述第一处理结果返回给所述用户端。

进一步地,第一远程模块42包括:

远程证明发起单元,用于所述数据库网关端安全区域向数据库端安全区域发起远程证明;

第一安全信道建立单元,用于建立所述数据库网关端安全区域和所述数据库端安全区域间的第一安全信道;

第一验证信息生成单元,用于所述数据库网关端对自身的可信计算基进行度量得到第一度量值,使用数据库网关端的证明证书对所述第一度量值进行签名生成第一签名信息;

第一发送单元,用于所述数据库网关端安全区域将所述第一度量值和所述第一签名信息经所述第一安全信道发送至所述数据库端安全区域,供所述数据库端安全区域对所述第一度量值和所述第一签名信息进行验证,并在所述第一度量值和所述第一签名信息验证通过时反馈第二度量值和第二签名信息;

第一验证单元,用于所述数据库网关端安全区域接收到所述数据库端安全区域发送的第二度量值和第二签名信息时,对所述第二度量值和所述第二签名信息进行验证;

第二发送单元,用于所述第二度量值和所述第二签名信息验证通过时,所述远程证明成功,数据库网关端安全区域将所述用户请求发送至所述数据库端安全区域。

进一步地,第一验证单元还包括:

第一代理单元,用于所述数据库网关端安全区域通过第一代理将所述第二度量值和所述第二签名信息发送至所述数据库网关端非安全区域,所述第一代理控制所述数据库网关端非安全区域运行,并控制所述数据库网关端安全区域睡眠;

第二验证单元,用于所述数据库网关端非安全区域对所述第二度量值和所述第二签名信息进行验证,验证通过则生成第二验证报告并通过第一代理将所述第二验证报告发送至所述数据库网关端安全区域;

第二代理单元,用于所述第一代理控制所述数据库网关端安全区域运行,并控制所述数据库网关端非安全区域睡眠,所述数据库网关端安全区域接收所述第二验证报告时确定所述数据库端可信,将所述用户请求发送至所述数据库端安全区域。

其中上述模块/单元中的“第一”和“第二”的意义仅在于将不同的模块/单元加以区分,并不用于限定哪个模块/单元的优先级更高或者其它的限定意义。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式。

关于网关数据第一交互装置的具体限定可以参见上文中对于网关数据交互方法,所述方法应用于数据库网关端,所述数据库网关端被划分为安全区域和非安全区域的限定,在此不再赘述。上述网关数据第一交互装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述网关数据第一交互装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中网关数据交互方法,所述方法应用于数据库网关端,所述数据库网关端被划分为安全区域和非安全区域的步骤,例如图2所示的步骤s101至步骤s108及该方法的其它扩展和相关步骤的延伸。或者,处理器执行计算机程序时实现上述实施例中网关数据第一交互装置的各模块/单元的功能,例如图4所示模块40至模块47的功能。为避免重复,这里不再赘述。

所述处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。

所述存储器可以集成在所述处理器中,也可以与所述处理器分开设置。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中网关数据交互方法,所述方法应用于数据库网关端,所述数据库网关端被划分为安全区域和非安全区域的步骤,例如图2所示的步骤s101至步骤s108及该方法的其它扩展和相关步骤的延伸。或者,计算机程序被处理器执行时实现上述实施例中网关数据第一交互装置的各模块/单元的功能,例如图4所示模块40至模块47的功能。为避免重复,这里不再赘述。

在一实施例中,如图1所示,提供一种网关数据交互方法,应用于图1的第二计算机设备数据库端设备。

在一实施例中,如图3所示,提供一种网关数据交互方法,所述方法应用于数据库端,所述数据库端被划分为安全区域和非安全区域的流程示意图,包括以下步骤s201至s206。

示例性地,数据库网关端非安全区域存储安全区域的一部分加密的密封数据。

s201,接收到数据库网关端安全区域向所述数据库端安全区域间发起的远程证明时,所述数据库端安全区域与所述数据库网关端安全区域进行远程证明。

具体地,数据库网关端安全区域和数据库端安全区域首先通过rsa(rivest-shamir-adleman)算法或diffie-hellman算法建立用户端和数据库网关端间的安全通道,再通过安全信道将用户请求和用户身份信息发送至数据库网关端非安全区域。

具体地,数据库端安全区域和非安全区域进行通信需要通过第二代理,数据库端安全区域/非安全区域将信息存入内存并触发smc异常使得arm处理器的cpu进入monitor模式,monitor模式中第二代理通过判断arm处理器的scr寄存器中对应的值来确定请求来自非安全区域侧还是安全区域侧和信息发送目标是非安全区域侧还是安全区域侧,控制信息发送方睡眠,信息接收方运行。

s202,远程证明成功后,所述数据库端安全区域接收所述数据库网关端安全区域发送的用户请求。

s203,所述数据库端安全区域将所述用户请求通过第二代理转发至所述数据库端非安全区域,所述第二代理控制所述数据端非安全区域运行,并控制所述数据库端安全区域睡眠。

s204,所述数据库端非安全区域调用数据库执行所述用户请求,得到第一处理结果。

s205,所述数据库将所述第一处理结果通过第二代理转发至所述数据库端安全区域,所述第二代理控制所述数据端安全区域运行,并控制所述数据库端非安全区域睡眠。

s206,所述数据库端安全区域将所述第一处理结果发送至所述数据库网关端非安全区域,供所述数据库网关端非安全区域将所述第一处理结果返回给用户端。

在本实施例中,数据库端与数据库网关端远程证明成功后,数据库端安全区域接收来自数据库网关端的用户请求,通过第二代理将用户请求发送至数据库端非安全区域并控制数据库端非安全区域运行,即调用数据库执行用户请求得到请求结果,所述数据库通过第二代理将所述请求结果发送至数据库端安全区域共所述数据库端安全区域对请求结果进行处理,数据库端安全区域将处理后的第一处理结果发送至数据库网关端。

可选地,数据库端非安全区域向数据库端安全区域发起本地可信证明验证请求并对数据库端安全区域返回的结果进行验证以判断安全世界是否可信。应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

在一实施例中,步骤s201,接收到数据库网关端安全区域向所述数据库端安全区域间发起的远程证明时,所述数据库端安全区域与所述数据库网关端安全区域进行远程证明包括以下步骤s2011至s2014。

s2011,建立所述数据库端安全区域和所述数据库网关端安全区域间的第二安全信道。

s2012,所述数据库端安全区域通过所述第二安全信道接收所述数据库网关端安全区域发送的第一度量值和第一签名信息,并对所述第一度量值和所述第一签名信息进行验证。

具体地,可分为以下步骤:

所述数据库端安全区域通过第二代理将所述第一度量值和所述第一签名信息转发至所述数据库端非安全区域,所述第二代理控制所述数据库端非安全区域运行,并控制所述数据库端安全区域睡眠。

所述数据库网关端非安全区对所述第一度量值和所述第一签名信息进行验证,验证通过则生成第一验证报告并通过第二代理将所述第一验证报告转发至所述数据库端安全区域。

所述第二代理控制所述数据库端安全区域运行,并控制所述数据库端非安全区域睡眠,所述数据库端安全区域接收所述第一验证报告时确认所述数据库网关端可信,将所述第二度量值和所述第二签名信息发送至所述数据库网关端安全区域。

s2013,所述第一度量值和所述第一签名信息验证通过时,所述数据库端安全区域对自身可信计算基进行度量得到第二度量值,使用数据库端的证明证书对所述第二度量值进行签名生成第二签名信息。

具体地,所述第二度量值是度量数据库网关端的可信程度,所述数据库端的证明证书是通过arm处理器cpu中的硬件密钥通过相应算法派生得到,派生算法与具体的arm处理器cpu型号相关,证明证书会被秘密存储,只有数据库端安全区域可以获取。

s2014,所述数据库端安全区域经所述第二安全信道将所述第二度量值和所述第二签名信息发送至所述数据库网关端安全区域,供所述数据库网关端安全区域对所述第二度量值和所述第二签名信息进行验证,并在所述第二度量值和所述第二签名信息验证通过时所述远程证明成功。在一实施例中,如图5所示,提供一种网关数据第二交互装置,包括:

第二远程证明模块50,用于接收到数据库网关端安全区域向所述数据库端安全区域间发起的远程证明时,所述数据库端安全区域与所述数据库网关端安全区域进行远程证明;

第三接收模块51,用于远程证明成功后,所述数据库端安全区域接收所述数据库网关端安全区域发送的用户请求;

第三代理模块52,用于所述数据库端安全区域将所述用户请求通过第二代理转发至所述数据库端非安全区域,所述第二代理控制所述数据端非安全区域运行,并控制所述数据库端安全区域睡眠;

调用数据库执行模块53,用于所述数据库端非安全区域调用数据库执行所述用户请求,得到第一处理结果;

第四代理模块54,用于所述数据库将所述第一处理结果通过第二代理转发至所述数据库端安全区域,所述第二代理控制所述数据端安全区域运行,并控制所述数据库端非安全区域睡眠。

第四发送模块55,用于所述数据库端安全区域将所述第一处理结果发送至所述数据库网关端非安全区域,供所述数据库网关端非安全区域将所述第一处理结果返回给用户端。

进一步地,第二远程证明模块50还包括:

第二安全信道建立单元,用于建立所述数据库端安全区域和所述数据库网关端安全区域间的第二安全信道。

第三验证单元,用于所述数据库端安全区域通过所述第二安全信道接收所述数据库网关端安全区域发送的第一度量值和第一签名信息,并对所述第一度量值和所述第一签名信息进行验证。

第二验证信息生成单元,用于所述第一度量值和所述第一签名信息验证通过时,所述数据库端安全区域对自身可信计算基进行度量得到第二度量值,使用数据库端的证明证书对所述第二度量值进行签名生成第二签名信息。

第三发送单元,用于所述数据库端安全区域经所述第二安全信道将所述第二度量值和所述第二签名信息发送至所述数据库网关端安全区域,供所述数据库网关端安全区域对所述第二度量值和所述第二签名信息进行验证,并在所述第二度量值和所述第二签名信息验证通过时确认所述远程证明成功。

进一步地,所述第三验证单元还包括以下单元:

第三代理单元,用于所述数据库端安全区域通过第二代理将所述第一度量值和所述第一签名信息转发至所述数据库端非安全区域,所述第二代理控制所述数据库端非安全区域运行,并控制所述数据库端安全区域睡眠;

第四验证单元,用于所述数据库网关端非安全区对所述第一度量值和所述第一签名信息进行验证,验证通过则生成第一验证报告并通过第二代理将所述第一验证报告转发至所述数据库端安全区域;

第四发送单元,用于所述第二代理控制所述数据库端安全区域运行,并控制所述数据库端非安全区域睡眠,所述数据库端安全区域接收所述第一验证报告时确认所述数据库网关端可信,将所述第二度量值和所述第二签名信息发送至所述数据库网关端安全区域。

其中上述模块/单元中的“第二”、“第三”等的意义仅在于将不同的模块/单元加以区分,并不用于限定哪个模块/单元的优先级更高或者其它的限定意义。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式。

关于网关数据第二交互装置,所述装置的具体限定可以参见上文中对于网关数据交互方法,所述方法应用与数据库端,所述数据库端被划分为安全区域和非安全区域的限定,在此不再赘述。上述网关数据第二交互装置,所述装置的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述网关数据第二交互装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

在一实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中一种网关数据交互方法,所述方法应用于数据库端,所述数据库端被划分为安全区域和非安全区域的步骤,例如图3所示的步骤s201至步骤s206及该方法的其它扩展和相关步骤的延伸。或者,处理器执行计算机程序时实现上述实施例中网关数据第二交互装置的各模块/单元的功能,例如图5所示模块50至模块55的功能。为避免重复,这里不再赘述。

所述处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。

所述存储器可以集成在所述处理器中,也可以与所述处理器分开设置。在一实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中网关数据交互方法,所述方法应用于数据库端,所述数据库端被划分为安全区域和非安全区域的步骤,例如图3所示的步骤s201至步骤s206及该方法的其它扩展和相关步骤的延伸。或者,计算机程序被处理器执行时实现上述实施例中网关数据第二交互装置的各模块/单元的功能,例如图5所示模块50至模块55的功能。为避免重复,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

在一实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储网关数据交互方法中涉及到的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种网关数据交互方法。

在一实施例中,如图1所示,用户端10通过socket、http、rpc、ipc等协议和网络将用户请求和用户身份信息发送至第一计算机设备网关端设备11非安全区域,通过第一计算机设备网关端设备11的代理将用户请求和用户身份信息转发至第一计算机设备网关端设备11安全区域进行验证,验证通过,对需要调用数据库的用户请求,第一计算机设备网关端设备11向相关第二计算机设备数据库端设备12发起远程证明请求建立第一计算机设备网关端设备11和第二计算机设备数据库端设备12间的安全信道,双方通过验证对方对自身可信计算基的度量值及对度量值进行签名的签名信息完成远程证明,第一计算机设备网关端设备11安全区域通过socket、http、rpc、ipc等协议和网络将用户请求发送至第二计算机设备数据库端设备12安全区域,数据库安全区域通过第二计算机设备数据库端设备12的代理将用户请求发送至数据库非安全区域供第二计算机设备数据库端设备12非安全区域调用数据库执行用户请求。用户请求的执行结果经第二计算机设备数据库端设备12安全区域进行处理返回给数据网关端,第一计算机设备网关端设备11将用户请求返回给用户端10。

可选地,第一计算机设备网关端设备11包括但不限于含有arm处理器的平板电脑等移动计算设备、塔式的非移动计算设备、机架的高性能计算设备、云架构的服务器,云架构中单个数据库网关端可以包括例如单独或一起进行操作的多个服务器。第二计算机设备数据库端设备12包括但不限于含有arm处理器的平板电脑等移动计算设备、塔式的非移动计算设备、机架的高性能计算设备、云架构的服务器,云架构中单个数据库端可以包括例如单独或一起进行操作的多个服务器;也可以是一种具体的数据库系统,如关系型数据库、非关系型数据库、行数据库、表数据库、图数据库等数据库软件,数据库软件所在操作系统和计算机硬件及网络组成的数据库系统。网络13包括但不限于局域网(lan)、广域网(wan)、全域网(gan)等。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1