安全服务调用方法和安全服务调用系统与流程

文档序号:20020098发布日期:2020-02-25 11:28阅读:213来源:国知局
安全服务调用方法和安全服务调用系统与流程

本申请涉及数据处理技术领域,尤其涉及一种安全服务调用方法和安全服务调用系统。



背景技术:

加密机代理系统是对加密机硬件设施的一层功能和业务代理系统。如图1所示,加密机代理系统适配了不同加密机厂商的私有化协议,为各个业务组提供与具体厂商无关的通用的接口,简化业务系统安全服务调用方式和去除业务系统对具体厂商加密机的依赖。

由于安全服务调用(如数据加解密、数字签名验签等)是一个基本的安全需求,业务系统在与其他外部系统的交互过程中,都会涉及到对报文的签名验签和敏感信息的加解密。数字签名技术用以验证请求报文的来源以及防抵赖,解决数据的可信问题。加解密技术用以在通信过程和存储后的防窃取,解决数据的机密性问题。业务系统处在支付机构和银行之间的交易转接位置,在一笔正常的交易一般会涉及到以下几个步骤:对来自支付机构报文的验签、解密报文内的敏感信息、加密敏感信息、对发往银行的报文进行签名。可以看到一笔交易会有多次的安全调用,因此加密机及加密机代理系统要能提供几倍于各业务系统的并发访问能力和吞吐能力。加密机代理系统处于业务系统和加密机之间,在调用链路上增加了一个环节,因此通过技术手段尽量减弱增加代理层所带来的交易耗时增加具有重大收益。

相关技术中,在业务系统与加密机代理系统之间,加密机代理系统与加密机之间,通常均是采用tcp技术进行通信,即第一步需要建立通信双方的tcp连接,建立的过程需要3次握手过程,在连接建立之后,通过连接进行数据传输。

但是,目前存在的问题是:在节点之间通信每次通信前建立tcp长连接,在通信完成后断开tcp长连接。tcp连接的建立有三次握手过程,tcp连接的关闭需要有四次挥手过程。这种通信方式在业务系统和加密机代理系统、加密机代理系统到加密机通信都要进行tcp的建立连接,造成客户端和服务端之间交互过,耗时较长。



技术实现要素:

本申请的目的旨在至少在一定程度上解决上述的技术问题之一。

为此,本申请的第一个目的在于提出一种安全服务调用方法。该方法可以通过减少tcp连接的每次建立,极大的减少了整体的通信耗时,实现了加密机代理到加密机之间tcp连接的复用,从而提升了加密机代理性能。

本申请的第二个目的在于提出一种安全服务调用系统。

为达到上述目的,本申请第一方面实施例提出的安全服务调用方法,包括:在业务系统欲向加密机代理系统发送数据处理请求时,所述业务系统从第一连接池中获取预先建立的目标第一tcp连接;其中,所述第一连接池设置于所述业务系统;所述业务系统基于所述目标第一tcp连接将所述数据处理请求发送至所述加密机代理系统,其中,所述数据处理请求包括待处理数据;所述加密机代理系统从第二连接池中获取预先建立的目标第二tcp连接;其中,所述第二连接池设置于所述加密机代理系统;所述加密机代理系统基于所述目标第二tcp连接将所述待处理数据发送至对应的目标加密机,以使所述目标加密机对所述待处理数据进行计算处理。

本申请第二方面实施例提出的安全服务调用系统,包括:业务系统、加密机代理系统和加密机,其中,所述业务系统,用于在欲向所述加密机代理系统发送数据处理请求时,从第一连接池中获取预先建立的目标第一tcp连接,并基于所述第一tcp连接将所述数据处理请求发送至所述加密机代理系统;其中,所述第一连接池设置于所述业务系统;所述数据处理请求包括待处理数据;所述加密机代理系统,用于从第二连接池中获取预先建立的目标第二tcp连接,并基于所述目标第二tcp连接将所述待处理数据发送至对应的目标加密机,以使所述目标加密机对所述待处理数据进行计算处理;其中,所述第二连接池设置于所述加密机代理系统。

根据本申请实施例的安全服务调用方法和系统,在业务系统欲向加密机代理系统发送数据处理请求时,通过业务系统从第一连接池中获取预先建立的目标第一tcp连接,业务系统基于目标第一tcp连接将数据处理请求发送至加密机代理系统,其中,数据处理请求包括待处理数据,加密机代理系统从第二连接池中获取预先建立的目标第二tcp连接,并基于目标第二tcp连接将待处理数据发送至对应的目标加密机,以使目标加密机对待处理数据进行计算处理。即采用连接池技术将预先建立的业务系统到加密机代理系统的tcp连接、和加密机代理系统到加密机的tcp连接,放入到各自对应的连接池中进行管理,以便每次发送数据前从相应连接池中获取对应连接,相对于传统建立tcp连接耗时在毫秒数量级而言,本申请从连接池获取连接为本地方法调用,耗时在纳秒级别。通过减少tcp连接的每次建立,极大的减少了整体的通信耗时,实现了加密机代理到加密机之间tcp连接的复用,从而提升了加密机代理性能。

本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,

图1是现有技术中加密机代理系统与业务系统和加密机的连接关系示例图;

图2是现有技术中安全服务调用系统的数据交互示例图;

图3是现有技术中客户端到服务端的tcp连接的建立示意图;

图4是现有技术中客户端到服务端的tcp连接的关闭示意图;

图5是根据本申请一个实施例的安全服务调用方法的流程图;

图6是根据本申请另一个实施例的安全服务调用方法的流程图;

图7是根据本申请一个实施例的安全服务调用系统的交互流程图;

图8是根据本申请一个实施例的安全服务调用系统的结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。

需要说明的是,现有的业务系统与加密机代理系统之间,加密机代理系统与加密机之间,通常均是采用tcp技术进行通信,即第一步需要建立通信双方的tcp连接,建立的过程需要3次握手过程,在连接建立之后,通过连接进行数据传输。例如,如图2所示,通过加密机代理系统一次对加密机的安全服务调用可以分为以下几个步骤:1)业务系统建立到加密机代理系统的tcp连接;2)业务系统通过连接发送数据到加密机代理系统;3)加密机代理系统建立到加密机的tcp连接;4)加密机代理系统发送数据到加密机;5)加密机做计算处理数据;6)加密机将计算后的结果响应给加密机代理系统;7)加密机代理系统接受完数据后关闭到加密机的tcp连接;8)加密机代理系统将结果中转响应给业务系统;9)业务系统接受到结果后关闭到加密机代理系统之间的连接。

可以看出,在节点之间通信每次通信前建立tcp长连接,在通信完成后断开tcp长连接。如图3所示,客户端到服务端的tcp连接的建立有三次握手过程,如图4所示,客户端到服务端的tcp连接的关闭需要有四次挥手过程。现有方案在业务系统和加密机代理系统,加密机代理系统到加密机通信都要进行tcp的建立连接,造成客户端和服务端之间交互多,耗时较长。

为此,本申请提出了一种安全服务调用方法和安全服务调用系统。具体地,下面参考附图描述根据本申请实施例的安全服务调用方法和安全服务调用系统。

图5是根据本申请一个实施例的安全服务调用方法的流程图。需要说明的是,本申请实施例的安全服务调用方法可应用于本申请实施例的安全服务调用系统。其中,该安全服务调用系统可以包括业务系统、加密机代理系统和加密机。在本实施例中,安全服务调用系统的调用链路为业务系统->加密机代理系统->加密机,其中,加密机直接为加密机代理系统提供服务,加密机代理系统直接为业务系统提供服务,加密机代理系统是加密机的客户端,是业务系统的服务提供方。

如图5所示,该安全服务调用方法可以包括:

步骤510,在业务系统欲向加密机代理系统发送数据处理请求时,业务系统从第一连接池中获取预先建立的目标第一tcp连接;其中,第一连接池设置于业务系统。

可选地,在业务处理阶段,业务系统欲通过安全服务调用对业务数据进行某类安全处理(如数据加解密处理,或数字签名验签等)时,可向加密机代理系统发送数据处理请求,并从第一连接池中获取预先建立的目标第一tcp连接。其中,需要说明的是,第一连接池可预先设置于业务系统。作为一种示例,业务系统和加密机代理系统之间可采用开源的dubbo(一个高性能优秀的服务框架)框架进行rpc(一个远程过程调用的抽象,支持负载均衡、容灾和集群功能)通信,dubbo框架使用了netty的连接池技术,即可通过netty的连接池技术在业务系统中创建一个连接池,该连接池用于负责业务系统到加密机代理系统之间的tcp连接管理。

作为一种示例,在业务系统欲向加密机代理系统发送数据处理请求之前,可预先建立业务系统与加密机代理系统之间的第一tcp连接,并将预先建立的第一tcp连接放入业务系统上的第一连接池进行管理,并预先建立加密机代理系统与多个加密机之间的多个第二tcp连接,将预先建立的多个第二tcp连接放入加密机代理系统上的所示第二连接池进行管理。

例如,当安全服务调用系统在启动的初始阶段,或者如果安全服务调用系统采用的是懒加载模式,则在首次调用之前,可预先建立业务系统到加密机代理系统之间的第一tcp连接,并预先建立加密机代理系统到各个加密机之间的第二tcp连接,并将预先建立的第一tcp连接放入第一连接池进行管理,将预先建立的各个第二tcp连接放入第二连接池进行管理。也就是说,在安全服务调用系统启动的初始阶段,或者如果安全服务调用系统采用的是懒加载模式,则在首次调用之前,可预先建立多个客户端到服务端的tcp连接,并将建立好的连接放入对应的连接池进行管理,以便在后续的业务处理阶段使用。

在本申请的实施例中,所述业务系统从第一连接池中获取预先建立的目标第一tcp连接的具体实现过程可如下:通过第一连接池确定第一连接池中处于闲置状态的第一tcp连接,并从处于闲置状态的第一tcp连接中任意选取一个作为目标第一tcp连接。例如,第一连接池中具有预先建立的多个第一tcp连接,业务系统可从该第一连接池中选取一个第一tcp连接作为本次业务系统到加密机代理系统的tcp连接,以便通过该tcp连接完成业务系统将本次的数据处理请求发送给加密机代理系统。

步骤520,业务系统基于目标第一tcp连接将数据处理请求发送至加密机代理系统,其中,数据处理请求包括待处理数据。

也就是说,业务系统可从第一连接池中获取目标第一tcp连接,进而可通过该目标第一tcp连接将该数据处理请求发送给加密机代理系统,以便加密机代理系统将该请求转发给对应的加密机,以使得对应的加密机对该请求中的待处理数据进行相应的计算处理。

步骤530,加密机代理系统从第二连接池中获取预先建立的目标第二tcp连接;其中,第二连接池设置于加密机代理系统。

作为一种示例,数据处理请求还可包括:目标加密机的标识信息。其中,在本示例中,加密机代理系统根据数据处理请求中的标识信息,从第二连接池中获取加密机代理系统与目标加密机之间的目标第二tcp连接。也就是说,加密机代理系统可对应多个加密机,加密机代理系统在接收到业务系统发送的数据处理请求时,可根据该数据处理请求中的标识信息,从该第二连接池中获取适用于与该标识信息对应的加密机的第二tcp连接,并将该第二tcp连接作为加密机代理系统到该目标加密机的tcp连接。

需要说明的是,在本申请的实施例中,加密机代理系统中的第二连接池可使用开源的apache-commons2(提供了一套池技术的规范接口和实现的通用逻辑)作为底层技术而实现的。

步骤540,加密机代理系统基于目标第二tcp连接将待处理数据发送至对应的目标加密机,以使目标加密机对待处理数据进行计算处理。

也就是说,加密机代理系统在从第二连接池中获取到目标第二tcp连接时,可通过该目标第二tcp连接将数据处理请求中的待处理数据发送给对应的目标加密机。该目标加密机在接收到该待处理数据时,可基于自身的安全服务功能对该待处理数据进行计算处理。

在本申请的一个实施例中,在目标加密机对所述待处理数据进行计算处理之后,如图6所示,在如图5所示的基础上,该安全服务调用方法还可包括:

步骤610,目标加密机通过目标第二tcp连接,将计算处理结果的响应数据返回给加密机代理系统。

也就是说,目标加密机在基于自身的安全服务功能对该待处理数据进行计算处理之后,可通过目标第二tcp连接将计算处理结果的响应数据返回给加密机代理系统。

步骤620,加密机代理系统在接收到目标加密机返回的响应数据时,将目标第二tcp连接归还给第二连接池,并通过目标第一tcp连接将响应数返回给业务系统。

也就是说,加密机代理系统在接收到目标加密机返回的响应数据时,可将该目标第二tcp连接归还给第二连接池,以便后续业务处理使用,达到连接的复用;同时,还可通过目标第一tcp连接将响应数返回给业务系统。

步骤630,业务系统在接收到加密机代理系统返回的响应数据时,将目标第一tcp连接归还给第一连接池,以便后续业务处理使用,达到连接的复用。

为了方便本领域技术人员更加了解本申请,下面将结合图7进行说明。

如图7所示,本申请实施例的安全服务调用系统的调用链路可为:业务系统->加密机代理系统->加密机,其中加密机直接为加密机代理系统提供服务,加密机代理系统直接为业务系统提供服务,加密机代理系统是加密机的客户端,是业务系统的服务提供方。

在本申请的实施例中,为了实现tcp的连接复用,在业务系统及加密机代理系统分别增加连接池。业务系统中的连接池负责业务系统到加密机代理系统之间的tcp连接管理,加密机代理系统中的连接池负责加密机代理系统到加密机之间的tcp连接管理。在安全服务调用系统启动的初始阶段(如果采用懒加载模式,则是在首次调用之前),先建立多个客户端到服务端的tcp连接,并将建立好的连接放入连接池进行管理。在后续的业务处理阶段,客户端到服务端的通信之间首先从连接池内获取连接,通过连接发送数据,在获取到服务端的响应后,再将连接归还到连接池以便后续业务处理使用,达到连接的复用。

根据本申请实施例的安全服务调用方法,在业务系统欲向加密机代理系统发送数据处理请求时,通过业务系统从第一连接池中获取预先建立的目标第一tcp连接,业务系统基于目标第一tcp连接将数据处理请求发送至加密机代理系统,其中,数据处理请求包括待处理数据,加密机代理系统从第二连接池中获取预先建立的目标第二tcp连接,并基于目标第二tcp连接将待处理数据发送至对应的目标加密机,以使目标加密机对待处理数据进行计算处理。即采用连接池技术将预先建立的业务系统到加密机代理系统的tcp连接、和加密机代理系统到加密机的tcp连接,放入到各自对应的连接池中进行管理,以便每次发送数据前从相应连接池中获取对应连接,相对于传统建立tcp连接耗时在毫秒数量级而言,本申请从连接池获取连接为本地方法调用,耗时在纳秒级别。通过减少tcp连接的每次建立,极大的减少了整体的通信耗时,实现了加密机代理到加密机之间tcp连接的复用,从而提升了加密机代理性能。

与上述几种实施例提供的安全服务调用方法相对应,本发明的一种实施例还提供一种安全服务调用系统,由于本发明实施例提供的安全服务调用系统与上述几种实施例提供的安全服务调用方法相对应,因此在前述安全服务调用方法的实施方式也适用于本实施例提供的安全服务调用系统,在本实施例中不再详细描述。图8是根据本申请一个实施例的安全服务调用系统的结构示意图。如图8所示,该安全服务调用系统800可以包括:业务系统810、加密机代理系统820和加密机830。

具体地,业务系统810可用于在欲向加密机代理系统820发送数据处理请求时,从第一连接池中获取预先建立的目标第一tcp连接,并基于第一tcp连接将数据处理请求发送至加密机代理系统820;其中,第一连接池设置于业务系统;数据处理请求包括待处理数据。

加密机代理系统820用于从第二连接池中获取预先建立的目标第二tcp连接,并基于目标第二tcp连接将待处理数据发送至对应的目标加密机830,以使目标加密机830对待处理数据进行计算处理;其中,第二连接池设置于加密机代理系统820。

作为一种示例,业务系统810还用于在欲向加密机代理系统820发送数据处理请求之前,预先建立业务系统810与加密机代理系统820之间的第一tcp连接,并将预先建立的第一tcp连接放入业务系统810上的第一连接池进行管理。加密机代理系统820还用于预先建立加密机代理系统820与多个加密机830之间的多个第二tcp连接,并将预先建立的多个第二tcp连接放入加密机代理系统820上的所示第二连接池进行管理。

在本申请的一个实施例中,业务系统810从第一连接池中获取预先建立的目标第一tcp连接的具体实现过程可如下:通过第一连接池确定第一连接池中处于闲置状态的第一tcp连接,并从处于闲置状态的第一tcp连接中任意选取一个作为目标第一tcp连接。

在本申请的一个实施例中,数据处理请求还可包括目标加密机的标识信息。其中,在本申请的实施例中,加密机代理系统820从第二连接池中获取预先建立的目标第二tcp连接的具体实现过程可如下:根据数据处理请求中的标识信息,从第二连接池中获取加密机代理系统与目标加密机之间的目标第二tcp连接。

在本申请的一个实施例中,目标加密机830用于在对待处理数据进行计算处理之后,通过目标第二tcp连接将计算处理结果的响应数据返回给加密机代理系统820。加密机代理系统820还用于在接收到目标加密机830返回的响应数据时,将目标第二tcp连接归还给第二连接池,并通过目标第一tcp连接将响应数返回给业务系统810。业务系统810还用于在接收到加密机代理系统820返回的响应数据时,将目标第一tcp连接归还给第一连接池。

根据本申请实施例的安全服务调用系统,通过业务系统在欲向加密机代理系统发送数据处理请求时,从第一连接池中获取预先建立的目标第一tcp连接,并基于目标第一tcp连接将数据处理请求发送至加密机代理系统,其中,数据处理请求包括待处理数据,加密机代理系统从第二连接池中获取预先建立的目标第二tcp连接,并基于目标第二tcp连接将待处理数据发送至对应的目标加密机,以使目标加密机对待处理数据进行计算处理。即采用连接池技术将预先建立的业务系统到加密机代理系统的tcp连接、和加密机代理系统到加密机的tcp连接,放入到各自对应的连接池中进行管理,以便每次发送数据前从相应连接池中获取对应连接,相对于传统建立tcp连接耗时在毫秒数量级而言,本申请从连接池获取连接为本地方法调用,耗时在纳秒级别。通过减少tcp连接的每次建立,极大的减少了整体的通信耗时,实现了加密机代理到加密机之间tcp连接的复用,从而提升了加密机代理性能。

在本申请的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

在本申请中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

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