一种应用程序通信处理系统、设备、装置及方法

文档序号:10555403阅读:448来源:国知局
一种应用程序通信处理系统、设备、装置及方法
【专利摘要】本发明公开一种应用程序通信处理系统、设备、装置及方法。该应用程序通信处理系统包括:客户端和服务端,所述客户端,生成包含请求信息、签名信息和会话密钥的请求消息,其中在生成过程中使用客户端私钥证书、会话密钥和服务端公钥证书进行签名和加密处理;向服务端发送所述请求消息;接收所述服务端解析请求消息后发送的响应消息;所述服务端,对接收的所述客户端发送的请求消息进行解析,向所述客户端发送响应消息,其中所述服务端在解析请求消息过程中使用服务端私钥证书和客户端公钥证书进行解密和验证处理。本发明提供的方案,能提高应用程序通信安全性。
【专利说明】
一种应用程序通信处理系统、设备、装置及方法
技术领域
[0001]本发明涉及移动互联网技术领域,具体涉及一种应用程序通信处理系统、设备、装置及方法。
【背景技术】
[0002]随着移动互联网应用的不断发展,越来越多的用户使用移动APP(AppliCat1n,移动应用程序)进行网上购物和游戏娱乐,享受移动互联网带来的便利体验。应用软件开发商在开发移动APP时,必须保证用户使用App的安全,确保用户隐私信息和交易信息的安全,防止信息的泄露和篡改,避免用户和APP开发商的损失。目前移动APP的通信安全处理方法,主要是客户端与服务端通信时使用HTTPS( (Hyper Text Transfer Protocol over SecureSocket Layer,基于安全套接字层的超文本传输协议))和签名机制,其中通过HTTPS协议可以保障传输链路的保密性,通过签名机制则可以确保信息不会被篡改。
[0003]但是,上述处理方法还不能有效防范系统方法劫持和中间人攻击,例如安卓底层系统方法劫持问题或中间人攻击问题。其中所说的安卓底层系统方法劫持问题,是指例如安卓移动终端Root后,可以对java.security.Signature签名方法进行劫持;其中所说的中间人攻击问题,是指例如移动终端注入中间人证书作为可信证书,修改DNS(Domain NameSystem,域名系统),指向中间人服务器。
[0004]因此现有技术的方法在应用程序通信安全性方面有待提高。

【发明内容】

[0005]为解决上述技术问题,本发明提供一种应用程序通信处理系统、设备、装置及方法,能提高应用程序通信安全性。
[0006]根据本发明的一个方面,提供一种应用程序通信处理系统,包括:客户端和服务端,
[0007]所述客户端,生成包含请求信息、签名信息和会话密钥的请求消息,其中在生成过程中使用客户端私钥证书、会话密钥和服务端公钥证书进行签名和加密处理,向服务端发送所述请求消息,接收所述服务端解析请求消息后发送的响应消息;
[0008]所述服务端,对接收的所述客户端发送的请求消息进行解析,向所述客户端发送响应消息,其中所述服务端在解析请求消息过程中使用服务端私钥证书和客户端公钥证书进行解密和验证处理。
[0009]优选的,所述服务端在响应消息的生成过程中使用服务端私钥证书和所述会话密钥进行签名和加密处理,所述客户端对从服务端接收的响应消息进行解析,其中在解析响应消息过程中使用所述会话密钥和服务端公钥证书进行解密和验证处理。
[0010]根据本发明的另一个方面,提供一种客户端设备,包括:存储器和处理器;
[0011]所述存储器在本地存储客户端私钥证书、会话密钥和服务端公钥证书;
[0012]所述处理器,生成包含请求信息、签名信息和会话密钥的请求消息,其中在生成过程中使用所述存储器存储的客户端私钥证书、会话密钥和服务端公钥证书进行签名和加密处理,向服务端发送所述请求消息,接收所述服务端解析请求消息后发送的响应消息。
[0013]优选的,所述处理器对从服务端接收的响应消息进行解析,其中在解析响应消息过程中使用所述会话密钥和服务端公钥证书进行解密和验证处理。
[0014]根据本发明的另一个方面,提供一种服务端设备,包括:存储器和处理器;
[0015]所述存储器,在本地存储服务端私钥证书和客户端公钥证书;
[0016]所述处理器,对接收的客户端发送的请求消息进行解析,得到所述请求消息中包含的请求信息、签名信息和会话密钥,向所述客户端发送响应消息,其中所述处理器在解析请求消息过程中使用所述存储器存储的服务端私钥证书和客户端公钥证书进行解密和验证处理。
[0017]优选的,所述处理器在响应消息的生成过程中使用服务端私钥证书和所述会话密钥进行签名和加密处理。
[0018]根据本发明的另一个方面,提供一种应用程序通信处理装置,包括:
[0019]生成模块,用于生成包含请求信息、签名信息和会话密钥的请求消息,其中在生成过程中使用存储的客户端私钥证书、会话密钥和服务端公钥证书进行签名和加密处理;
[0020]发送模块,用于向服务端发送所述生成模块的请求消息;
[0021 ]接收模块,用于接收所述服务端解析请求消息后发送的响应消息。
[0022]优选的,所述装置还包括:解析模块,用于对所述接收模块从服务端接收的响应消息进行解析,其中在解析响应消息过程中使用所述会话密钥和服务端公钥证书进行解密和验证处理。
[0023]优选的,所述生成模块包括:
[0024]签名子模块,用于使用客户端私钥证书对请求信息进行签名得到签名信息;
[0025]信息加密子模块,用于使用生成的会话密钥对请求信息和所述签名信息进行加密;
[0026]密钥加密子模块,使用服务端公钥证书对会话密钥进行加密;
[0027]组合子模块,用于生成经过所述签名子模块、信息加密子模块和密钥加密子模块处理的包含请求信息、签名信息和会话密钥的请求消息。
[0028]优选的,所述生成模块还包括:密钥生成子模块,用于在每次会话通信时动态生成会话密钥。
[0029]优选的,所述解析模块包括:
[0030]解密子模块,用于在解析响应消息过程中,使用所述会话密钥对响应消息进行解密得到响应信息和签名信息;
[0031]验证子模块,用于使用服务端公钥证书对所述签名信息进行验证处理。
[0032]根据本发明的另一个方面,提供一种应用程序通信处理装置,包括:
[0033]接收模块,用于接收客户端发送的请求消息,所述请求消息包含请求信息、签名信息和会话密钥;
[0034]解析模块,用于对接收模块接收的请求消息进行解析,得到所述请求消息中包含的请求信息、签名信息和会话密钥,其中所述解析模块在解析请求消息过程中使用服务端私钥证书和客户端公钥证书进行解密和验证处理;
[0035]发送模块,用于向所述客户端发送响应消息。
[0036]优选的,所述装置还包括:生成模块,用于生成响应消息,所述生成模块在响应消息的生成过程中使用服务端私钥证书和所述会话密钥进行签名和加密处理。
[0037]优选的,所述解析模块包括:
[0038]密钥解密子模块,用于使用服务端私钥证书进行解密得到所述会话密钥;
[0039]信息解密子模块,用于使用所述会话密钥对请求消息进行解密得到所述请求信息和所述签名信息;
[0040]验证子模块,用于使用客户端公钥证书对所述签名信息进行验证处理。
[0041 ]优选的,所述生成模块包括:
[0042]签名子模块,用于在响应消息的生成过程中,使用服务端私钥证书对响应信息进行签名得到签名信息;
[0043]信息加密子模块,用于使用所述会话密钥对响应信息和所述签名信息进行加密。
[0044]根据本发明的另一个方面,提供一种应用程序通信处理方法,包括:
[0045]生成包含请求信息、签名信息和会话密钥的请求消息,其中在生成过程中使用客户端私钥证书、会话密钥和服务端公钥证书进行签名和加密处理;
[0046]向服务端发送所述请求消息;
[0047]接收所述服务端解析请求消息后发送的响应消息,其中所述服务端在解析请求消息过程中使用服务端私钥证书和客户端公钥证书进行解密和验证处理。
[0048]优选的,所述方法还包括:对接收的响应消息进行解析,其中所述服务端在响应消息的生成过程中使用服务端私钥证书和所述会话密钥进行签名和加密处理,其中在解析响应消息过程中使用所述会话密钥和服务端公钥证书进行解密和验证处理。
[0049]优选的,所述在生成过程中使用客户端私钥证书、会话密钥和服务端公钥证书进行签名和加密处理,包括:使用客户端私钥证书对所述请求信息进行签名得到签名信息,使用生成的会话密钥对所述请求信息和所述签名信息进行加密,使用服务端公钥证书对会话密钥进行加密。
[0050]优选的,所述其中所述服务端在解析请求消息过程中使用服务端私钥证书和客户端公钥证书进行解密和验证处理包括:所述服务端使用服务端私钥证书进行解密得到所述会话密钥,使用所述会话密钥对请求消息进行解密得到所述请求信息和所述签名信息,使用客户端公钥证书对所述签名信息进行验证处理。
[0051]优选的,所述其中所述服务端在响应消息的生成过程中使用服务端私钥证书和所述会话密钥进行签名和加密处理,其中在解析响应消息过程中使用所述会话密钥和服务端公钥证书进行解密和验证处理,包括:
[0052]其中所述服务端在响应消息的生成过程中,使用服务端私钥证书对响应信息进行签名得到签名信息,使用所述会话密钥对响应信息和所述签名信息进行加密;
[0053]其中在解析响应消息过程中,使用所述会话密钥对响应消息进行解密得到响应信息和签名信息,使用服务端公钥证书对所述签名信息进行验证处理。
[0054]优选的,使用所述会话密钥进行加密或解密时采用高级加密标准AES算法;或者,
[0055]使用服务端公钥证书对会话密钥进行加密或使用服务端私钥证书进行解密得到所述会话密钥时采用RSA算法;或者,
[0056]所述进行签名得到签名信息或对所述签名信息进行验证处理时采用RSA算法。
[0057]优选的,所述会话密钥在每次会话通信时动态生成。
[0058]可以发现,本发明实施例的技术方案,通信的双方是分别把各自的公钥证书存储到对方进行使用,客户端发起的请求消息是使用了客户端私钥证书、会话密钥和服务端公钥证书进行签名和加密处理,服务端在解析请求消息过程中是使用服务端私钥证书和客户端公钥证书进行解密和验证处理,由于请求消息只能使用服务端私钥证书才能解密,因此可以保证请求消息中的会话密钥sKey的绝对安全,除了通信的双方即客户端和服务端,任何人都无法获知会话密钥;而没有会话密钥就无法获取请求消息中的请求信息,因此可以提尚通?目安全性。
[0059]进一步的,本发明实施例中,所述服务端可以在响应消息的生成过程中使用服务端私钥证书和所述会话密钥进行签名和加密处理,客户端可以在解析响应消息过程中使用所述会话密钥和服务端公钥证书进行解密和验证处理,也就是说,客户端也需要使用服务端的公钥证书进行签名验证,这样可以提高通信安全性。
[0060]进一步的,本发明实施例的所述会话密钥可以是在每次会话通信时动态生成,也就是说该密钥可以只在一次请求响应过程中使用,是在每次客户端向服务端发起请求的响应通信过程中动态产生的,并且只在该会话过程使用,下次通信过程将重新生成,这样可以进一步提高通信安全性。
【附图说明】
[0061]通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
[0062]图1是根据本发明的一个实施例的一种应用程序通信处理系统的示意性方框图;
[0063]图2是根据本发明的一个实施例的一种客户端设备的示意性方框图;
[0064]图3是根据本发明的一个实施例的一种服务端设备的示意性方框图;
[0065]图4是根据本发明的一个实施例的一种应用程序通信处理装置的示意性方框图;
[0066]图5是根据本发明的一个实施例的另一种应用程序通信处理装置的示意性方框图;
[0067]图6是根据本发明的一个实施例的一种应用程序通信处理方法的示意性流程图;
[0068]图7是根据本发明的一个实施例的一种应用程序通信处理方法的另一示意性流程图。
【具体实施方式】
[0069]下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0070]本发明提供一种应用程序通信处理系统,能提高应用程序通信安全性。
[0071]图1是根据本发明的一个实施例的一种应用程序通信处理系统的示意性方框图。
[0072]如图1所示,在一种应用程序通信处理系统10中包括:客户端11和服务端12。
[0073]所述客户端11,生成包含请求信息、签名信息和会话密钥的请求消息,其中在生成过程中使用客户端私钥证书、会话密钥和服务端公钥证书进行签名和加密处理,向服务端12发送所述请求消息,接收所述服务端12解析请求消息后发送的响应消息。
[0074]所述服务端12,对接收的所述客户端11发送的请求消息进行解析,向所述客户端11发送响应消息,其中所述服务端12在解析请求消息过程中使用服务端私钥证书和客户端公钥证书进行解密和验证处理。
[0075]其中,所述服务端12在响应消息的生成过程中使用服务端私钥证书和所述会话密钥进行签名和加密处理,所述客户端11对从服务端12接收的响应消息进行解析,其中在解析响应消息过程中使用所述会话密钥和服务端公钥证书进行解密和验证处理。
[0076]图2是根据本发明的一个实施例的一种客户端设备的示意性方框图。
[0077]如图2所示,在一种客户端设备20中可以包括:存储器21和处理器22。
[0078]所述存储器21在本地存储客户端私钥证书、会话密钥和服务端公钥证书;
[0079]所述处理器22,生成包含请求信息、签名信息和会话密钥的请求消息,其中在生成过程中使用所述存储器21存储的客户端私钥证书、会话密钥和服务端公钥证书进行签名和加密处理,向服务端发送所述请求消息,接收所述服务端解析请求消息后发送的响应消息。
[0080]其中,所述处理器22对从服务端接收的响应消息进行解析,其中在解析响应消息过程中使用所述会话密钥和服务端公钥证书进行解密和验证处理。
[0081]图3是根据本发明的一个实施例的一种服务端设备的示意性方框图。
[0082]如图3所示,在一种服务端设备30中可以包括:存储器31和处理器32。
[0083]所述存储器31在本地存储服务端私钥证书和客户端公钥证书。
[0084]所述处理器32,对接收的客户端发送的请求消息进行解析,得到所述请求消息中包含的请求信息、签名信息和会话密钥,向所述客户端发送响应消息,其中所述处理器32在解析请求消息过程中使用所述存储器31存储的服务端私钥证书和客户端公钥证书进行解密和验证处理。
[0085]其中,所述处理器32在响应消息的生成过程中使用服务端私钥证书和所述会话密钥进行签名和加密处理。
[0086]客户端设备中的处理器22,可以作为一个独立的装置结构,该独立的装置结构可以称为一种应用程序通信处理装置,该应用程序通信处理装置可以包括多个子模块,下文将结合图4对该应用程序通信处理装置结构进行详细说明。
[0087]图4是根据本发明的一个实施例的一种应用程序通信处理装置的示意性方框图。该应用程序通信处理装置可以应用于客户端设备中。
[0088]如图4所示,在一种应用程序通信处理装置40中可以包括:生成模块41、发送模块42、接收模块43。
[0089]生成模块41,用于生成包含请求信息、签名信息和会话密钥的请求消息,其中在生成过程中使用存储的客户端私钥证书、会话密钥和服务端公钥证书进行签名和加密处理。
[0090]发送模块42,用于向服务端发送所述生成模块41的请求消息。
[0091 ]接收模块43,用于接收所述服务端解析请求消息后发送的响应消息。
[0092]其中,所述装置还包括:解析模块44。
[0093]解析模块44,用于对所述接收模块43从服务端接收的响应消息进行解析,其中在解析响应消息过程中使用所述会话密钥和服务端公钥证书进行解密和验证处理。
[0094]其中,所述生成模块41可以包括:签名子模块411、信息加密子模块412、密钥加密子模块413、组合子模块414。
[0095]签名子模块411,用于使用客户端私钥证书对请求信息进行签名得到签名信息。
[0096]信息加密子模块412,用于使用生成的会话密钥对请求信息和所述签名信息进行加密。
[0097]密钥加密子模块413,使用服务端公钥证书对会话密钥进行加密。
[0098]组合子模块414,用于生成经过所述签名子模块411、信息加密子模块412和密钥加密子模块413处理的包含请求信息、签名信息和会话密钥的请求消息。
[0099]所述生成模块41还可以包括:密钥生成子模块414。
[0100]密钥生成子模块414,用于在每次会话通信时动态生成会话密钥。
[0101]其中,所述解析模块44可以包括:解密子模块441、验证子模块442。
[0102]解密子模块441,用于在解析响应消息过程中,使用所述会话密钥对响应消息进行解密得到响应信息和签名信息。
[0103]验证子模块442,用于使用服务端公钥证书对所述签名信息进行验证处理。
[0104]从该实施例可以看出,本发明实施例的技术方案,通信的双方是分别把各自的公钥证书存储到对方进行使用,客户端发起的请求消息是使用了客户端私钥证书、会话密钥和服务端公钥证书进行签名和加密处理,服务端在解析请求消息过程中是使用服务端私钥证书和客户端公钥证书进行解密和验证处理,由于请求消息只能使用服务端私钥证书才能解密,因此可以保证请求消息中的会话密钥sKey的绝对安全,除了通信的双方即客户端和服务端,任何人都无法获知会话密钥;而没有会话密钥就无法获取请求消息中的请求信息,因此可以提高通信安全性。
[0105]服务端设备中的处理器32,可以作为一个独立的装置结构,该独立的装置结构可以称为一种应用程序通信处理装置,该应用程序通信处理装置可以包括多个子模块,下文将结合图5对该应用程序通信处理装置结构进行详细说明。
[0106]图5是根据本发明的一个实施例的另一种应用程序通信处理装置的示意性方框图。该应用程序通信处理装置可以应用于服务端设备中。
[0107]如图5所示,在一种应用程序通信处理装置50中可以包括:接收模块51、解析模块52、发送模块53。
[0108]接收模块51,用于接收客户端发送的请求消息,所述请求消息包含请求信息、签名信息和会话密钥。
[0109]解析模块52,用于对接收模块51接收的请求消息进行解析,得到所述请求消息中包含的请求信息、签名信息和会话密钥,其中所述解析模块52在解析请求消息过程中使用服务端私钥证书和客户端公钥证书进行解密和验证处理。
[0110]发送模块53,用于向所述客户端发送响应消息。
[0111]所述装置还可以包括:生成模块54。
[0112]生成模块54,用于生成响应消息,所述生成模块54在响应消息的生成过程中使用服务端私钥证书和所述会话密钥进行签名和加密处理。
[0113]所述解析模块52可以包括:密钥解密子模块521、信息解密子模块522、验证子模块523。
[0114]密钥解密子模块521,用于使用服务端私钥证书进行解密得到所述会话密钥。
[0115]信息解密子模块522,用于使用所述会话密钥对请求消息进行解密得到所述请求信息和所述签名信息。
[0116]验证子模块523,用于使用客户端公钥证书对所述签名信息进行验证处理。
[0117]其中,所述生成模块54可以包括:签名子模块541、信息加密子模块542。
[0118]签名子模块541,用于在响应消息的生成过程中,使用服务端私钥证书对响应信息进行签名得到签名信息。
[0119]信息加密子模块542,用于使用所述会话密钥对响应信息和所述签名信息进行加
LU O
[0120]上述详细介绍了本发明的一种应用程序通信处理系统、设备及装置,以下介绍本发明对应的应用程序通信处理方法。
[0121]图6是根据本发明的一个实施例的一种应用程序通信处理方法的示意性流程图。
[0122]如图6所示,在步骤601中,生成包含请求信息、签名信息和会话密钥的请求消息,其中在生成过程中使用客户端私钥证书、会话密钥和服务端公钥证书进行签名和加密处理。
[0123]该步骤中,可以由应用程序通信处理装置使用客户端私钥证书对所述请求信息进行签名得到签名信息,使用生成的会话密钥对所述请求信息和所述签名信息进行加密,使用服务端公钥证书对会话密钥进行加密。
[0124]在步骤602中,向服务端发送所述请求消息。
[0125]在步骤603中,接收所述服务端解析请求消息后发送的响应消息,其中所述服务端在解析请求消息过程中使用服务端私钥证书和客户端公钥证书进行解密和验证处理。
[0126]该步骤中,所述服务端可以使用服务端私钥证书进行解密得到所述会话密钥;使用所述会话密钥对请求消息进行解密得到所述请求信息和所述签名信息,使用客户端公钥证书对所述签名信息进行验证处理。
[0127]其中所述服务端在响应消息的生成过程中可以使用服务端私钥证书和所述会话密钥进行签名和加密处理,例如使用服务端私钥证书对响应信息进行签名得到签名信息,使用所述会话密钥对响应信息和所述签名信息进行加密。
[0128]需说明的是,上述步骤还可以包括:对接收的响应消息进行解析,其中在解析响应消息过程中使用所述会话密钥和服务端公钥证书进行解密和验证处理。例如,其中在解析响应消息过程中,使用所述会话密钥对响应消息进行解密得到响应信息和签名信息,使用服务端公钥证书对所述签名信息进行验证处理。
[0129]还需说明的是,上述过程中,使用所述会话密钥进行加密或解密时可以采用AES(Advanced Encrypt1n Standard,高级加密标准)算法;或者,使用服务端公钥证书对会话密钥进行加密或使用服务端私钥证书进行解密得到所述会话密钥时可以采用RSA(RSA是算法提出者三人姓氏开头字母的组合,RSA是目前最有影响力的公钥加密算法)算法;或者,所述进行签名得到签名信息或对所述签名信息进行验证处理时可以采用RSA算法。
[0130]可以发现,本发明实施例的技术方案,通信的双方是分别把各自的公钥证书存储到对方进行使用,客户端发起的请求消息是使用了客户端私钥证书、会话密钥和服务端公钥证书进行签名和加密处理,服务端在解析请求消息过程中是使用服务端私钥证书和客户端公钥证书进行解密和验证处理,由于请求消息只能使用服务端私钥证书才能解密,因此可以保证请求消息中的会话密钥sKey的绝对安全,除了通信的双方即客户端和服务端,任何人都无法获知会话密钥;而没有会话密钥就无法获取请求消息中的请求信息,因此可以提尚通?目安全性。
[0131]图7是根据本发明的一个实施例的一种应用程序通信处理方法的另一示意性流程图。
[0132]图7相对于图6更详细描述了本发明实施例的技术方案,并通过客户端与服务端的交互描述本发明实施例方案。
[0133]本发明实施例预先为客户端的APP分配一对数字证书(公钥证书:appPubKey,私钥证书:appPr iKey),为服务端也分配一对数字证书(公钥证书:gwPubKey,私钥证书:gwPriKey)。在使用时,客户端和服务端是分别把各自的公钥证书存储到对方进行使用。所以,在APP的客户端存储APP的客户端私钥证书(appPriKey)和服务端公钥证书(gwPubKey),在服务端存储APP的客户端公钥证书(appPubKey)和服务端私钥证书(gwPriKey)。另外,在客户端向服务端发起交易请求时,可以产生动态会话密钥sKey。该实施例通过设定的加密和签名方法,可以有效保障通信信息的安全,防止伪造和篡改,有效防范系统方法劫持和中间人攻击的问题。
[0134]具体的,如图7所示,包括步骤:
[0135]在步骤701中,客户端读取存储的证书信息。
[0136]该步骤中,客户端的APP可以通过读取预存的证书图片获取APP的客户端私钥证书(appPriKey)和服务端公钥证书(gwPubKey)。
[0137]在步骤702中,客户端生成进行签名和加密处理的请求消息。
[0138]客户端向服务端发起请求时,会生成进行签名和加密处理的请求消息,请求消息在下文中可以指请求密文reqData。
[0139]其中,请求消息需进行签名和加密处理,算法可以如下:
[OMO] 请求密文reqData =随机会话密钥密文+请求信息密文
[0141]随机会话密钥密文=RSA_ENC( sKey,gwPubKey)
[0142]请求信息密文=AES_ENC(请求信息 data+RSA_SIGN( data,appPr iKey), sKey)
[0143]格式说明:
[0144]会话密钥sKey:动态随机生成的128位密钥,用于请求信息的AES对称加密;
[0145]随机会话密钥密文:表示使用服务端的公钥证书对sKey进行1024位RSA算法的非对称加密,得到密文RSA_ENC( sKey,gwPubKey),该密文只有使用服务端私钥(gwPriKey)才能解密;
[ΟΙ46]请求彳目息密文:表不使用sKey对“请求彳目息+签名彳目息”进彳丁 128位AES算法的对称加密;
[0147]RSA_SIGN(data ,appPriKey):表示对请求信息data使用APP的客户端私钥证书(appPriKey)进行RSA证书签名;
[0148]+:表示把两个密文信息通过竖线符号“ I ”进行字符串拼接。
[0149]在步骤703中,向服务端发送请求消息。
[0150]客户端可以通过HTTP( (HyperText Transfer Protocol,超文本传输协议)协议将经过签名和加密的请求密文(reqData)发送给服务端。由于请求密文已经经过加密保护,因此,无需HTTPS协议,也可以保证信息的保密性。
[0151]另外,可以通过现有技术获取服务端域名对应的IP(Internet Protocol,网络协议)地址,直接通过IP地址向服务端发起HTTP请求,从而也可以防止DNS劫持。
[0152]在步骤704中,服务端对接收的请求消息进行解密和签名验证。
[0153]服务端接收到客户端的请求消息后,先读取存储在服务端的客户端公钥证书(appPubKey)和服务端私钥证书(gwPriKey),然后对请求消息进行解密和签名验证处理,包括:
[0154]I)分解出随机会话密钥密文和请求信息密文。
[0155]2)通过服务端私钥证书(gwPriKey),对随机会话密钥密文进行RSA解密,获取会话密钥sKey。
[0156]由于只能使用服务端私钥证书才能解密,因此可以保证会话密钥sKey的绝对安全,除了 APP客户端和服务端,任何人都无法获知该密钥;并且,该密钥可以只在一次请求响应过程中使用,也就是说,会话密钥sKey,是在每次客户端向服务端发起请求的响应通信过程中动态产生的,并且只在该会话过程使用,下次通信过程将重新生成,这样也可以提高通信安全性。
[0157]sKey = RSA_DEC(随机会话密钥密文,gwPriKey)
[0158]格式说明:
[0159]RSA_DEC:进行RSA算法的非对称解密。
[0160]3)使用会话密钥sKey对请求信息密文进行AES解密。
[0161 ] data+s ign=AES_DEC (请求信息 data+RSA_SIGN( data ,appPriKey), sKey)
[0162]格式说明:
[0163]AES_DEC:进行AES算法的对称解密;
[0164]data:请求信息
[0165]sign:请求信息的签名
[0166]4)使用APP的客户端公钥证书(appPubKey)对请求消息中的签名信息进行验证。
[0167]签名验证结果=RSA_VERIFY(请求信息data ,appPubKey,sign)
[0168]格式说明:
[0169]RSA_VERIFY:使用APP的客户端公钥证书(appPubKey)对请求信息data和签名信息进行签名验证。
[0170]在步骤705中,服务端生成进行签名和加密处理的响应消息。
[0171]服务端处理完请求消息后,需要向客户端反馈结果响应消息,响应消息在下文中可以指响应密文rspData,可以对响应消息进行签名和加密处理,算法可以如下:
[0172]响应密文rspData=AES_ENC(响应信息data+RSA_SIGN(data,gwPriKey),sKey)
[0173]格式说明:
[0174]会话密钥sKey:客户端发起请求时动态生成的128位密钥;
[0175]AES_ENC:表示使用sKey对“响应信息+签名信息”进行AES算法的对称加密;
[0176]RSA_SIGN:表示对响应信息data,使用服务端私钥(gwPriKey)进行RSA证书签名得到签名信息;
[0177]+:表示把两个密文信息通过竖线符号“I”进行字符串拼接。
[0178]在步骤706中,向客户端发送响应消息。
[0?79 ]服务端将生成的响应密文(rspData)返回给客户端。
[0180]在步骤707中,客户端对接收的响应消息进行解密和签名验证。
[0181]客户端接收到服务端的响应密文(rspData)后,根据读取的存储在客户端的服务端公钥证书(gwPubKey)对响应密文(rspData)进行解密和签名验证处理,包括:
[0182]I)使用会话密钥sKey对响应密文进行AES解密;
[0183]data+sign=AES_DEC(响应信息data+RSA_SIGN(data,gwPriKey),sKey)
[0184]格式说明:
[0185]AES_DEC:进行AES算法的对称解密;
[0186]data:响应信息
[0187]sign:响应信息的签名,RSA_SIGN( data ,gwPriKey)。
[0188]2)使用服务端公钥证书(gwPubKey)对响应信息data进行签名验证。
[0189]签名验证结果=RSA_VERIFY(响应信息data ,appPubKey,sign)
[0190]格式说明:
[0191]RSA_VERIFY:使用服务端公钥证书(gwPubKey)对响应信息data和签名信息进行签名验证。也就是说,客户端也需要使用服务端的公钥证书才能进行签名验证,这样可以提高通信安全性。
[0192]可以发现,本发明实施例方案,提出了移动APP的客户端与服务端的应用程序通信处理方法,可以有效保证传输过程的信息安全,防范系统签名方法劫持和中间人攻击,保障传输信息的保密性,防伪造、防篡改,支持HTTP协议,也可以防DNS劫持。
[0193]以下进一步通过一个应用实施例进行说明。
[0194]以下将以单机游戏支付场景为例,描述本发明实施例方案可以防范系统底层方法劫持和中间人攻击,确保信息传输安全。
[0195]现有技术中,对于普通的APP客户端与服务端的通信,一般经常使用HTTPS协议和RSA签名机制进行信息保护。当APP客户端向服务端查询订单支付结果时,返回的信息就非常关键,它将决定一笔订单是否支付成功;如果此时黑客通过DNS劫持或中间人攻击,将获得明文的请求信息和签名信息,而如果了解到响应签名信息的拼装方式,将可以重新生成响应信息和签名,从而向客户端返回错误的信息。此时如果客户端进行正常的签名验证,将会发现签名验证失败;为了使签名验证通过,黑客可以对移动终端进行Root操作,然后对java.security.Signature签名方法进行劫持,所有的签名验证都返回成功结果,从而可以轻松绕过签名验证机制,实现信息的篡改和伪造,使没有支付成功的订单在客户端得到成功的结果,从而免费得到游戏道具。
[0196]应用本发明实施例的方案,则可以解决上述问题。本发明实施例方案,对传输过程中的信息采用动态生成的会话密钥(sKey)进行AES加密,该密钥由客户端动态随机生成,并通过服务端的公钥证书(gwPubKey)进行RSA加密,只有服务端使用私钥证书(gwPriKey)才能解密,因此黑客无法获得,也就无法随意读取请求信息,并构造期望的响应信息;同时,所有信息都经过加密处理,也可以有效保证信息的机密性,防止信息篡改和伪造。
[0197]上文中已经参考附图详细描述了根据本发明的技术方案。
[0198]此外,根据本发明的方法还可以实现为一种计算机程序,该计算机程序包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。或者,根据本发明的方法还可以实现为一种计算机程序产品,该计算机程序产品包括计算机可读介质,在该计算机可读介质上存储有用于执行本发明的上述方法中限定的上述功能的计算机程序。本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
[0199]附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0200]以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
【主权项】
1.一种应用程序通信处理系统,其特征在于,包括:客户端和服务端, 所述客户端,生成包含请求信息、签名信息和会话密钥的请求消息,其中在生成过程中使用客户端私钥证书、会话密钥和服务端公钥证书进行签名和加密处理,向服务端发送所述请求消息,接收所述服务端解析请求消息后发送的响应消息; 所述服务端,对接收的所述客户端发送的请求消息进行解析,向所述客户端发送响应消息,其中所述服务端在解析请求消息过程中使用服务端私钥证书和客户端公钥证书进行解密和验证处理。2.根据权利要求1所述的系统,其特征在于: 所述服务端在响应消息的生成过程中使用服务端私钥证书和所述会话密钥进行签名和加密处理; 所述客户端对从服务端接收的响应消息进行解析,其中在解析响应消息过程中使用所述会话密钥和服务端公钥证书进行解密和验证处理。3.一种客户端设备,其特征在于,包括:存储器和处理器; 所述存储器在本地存储客户端私钥证书、会话密钥和服务端公钥证书; 所述处理器,生成包含请求信息、签名信息和会话密钥的请求消息,其中在生成过程中使用所述存储器存储的客户端私钥证书、会话密钥和服务端公钥证书进行签名和加密处理,向服务端发送所述请求消息,接收所述服务端解析请求消息后发送的响应消息。4.根据权利要求3所述的客户端设备,其特征在于: 所述处理器对从服务端接收的响应消息进行解析,其中在解析响应消息过程中使用所述会话密钥和服务端公钥证书进行解密和验证处理。5.一种服务端设备,其特征在于,包括:存储器和处理器; 所述存储器,在本地存储服务端私钥证书和客户端公钥证书; 所述处理器,对接收的客户端发送的请求消息进行解析,得到所述请求消息中包含的请求信息、签名信息和会话密钥,向所述客户端发送响应消息,其中所述处理器在解析请求消息过程中使用所述存储器存储的服务端私钥证书和客户端公钥证书进行解密和验证处理。6.根据权利要求5所述的服务端设备,其特征在于: 所述处理器在响应消息的生成过程中使用服务端私钥证书和所述会话密钥进行签名和加密处理。7.一种应用程序通信处理装置,其特征在于,包括: 生成模块,用于生成包含请求信息、签名信息和会话密钥的请求消息,其中在生成过程中使用存储的客户端私钥证书、会话密钥和服务端公钥证书进行签名和加密处理; 发送模块,用于向服务端发送所述生成模块的请求消息; 接收模块,用于接收所述服务端解析请求消息后发送的响应消息。8.根据权利要求7所述的装置,其特征在于,所述装置还包括: 解析模块,用于对所述接收模块从服务端接收的响应消息进行解析,其中在解析响应消息过程中使用所述会话密钥和服务端公钥证书进行解密和验证处理。9.根据权利要求7所述的装置,其特征在于,所述生成模块包括: 签名子模块,用于使用客户端私钥证书对请求信息进行签名得到签名信息; 信息加密子模块,用于使用生成的会话密钥对请求信息和所述签名信息进行加密; 密钥加密子模块,使用服务端公钥证书对会话密钥进行加密; 组合子模块,用于生成经过所述签名子模块、信息加密子模块和密钥加密子模块处理的包含请求信息、签名信息和会话密钥的请求消息。10.根据权利要求9所述的装置,其特征在于,所述生成模块还包括: 密钥生成子模块,用于在每次会话通信时动态生成会话密钥。11.根据权利要求8所述的装置,其特征在于,所述解析模块包括: 解密子模块,用于在解析响应消息过程中,使用所述会话密钥对响应消息进行解密得到响应信息和签名信息; 验证子模块,用于使用服务端公钥证书对所述签名信息进行验证处理。12.一种应用程序通信处理装置,其特征在于,包括: 接收模块,用于接收客户端发送的请求消息,所述请求消息包含请求信息、签名信息和会话密钥; 解析模块,用于对接收模块接收的请求消息进行解析,得到所述请求消息中包含的请求信息、签名信息和会话密钥,其中所述解析模块在解析请求消息过程中使用服务端私钥证书和客户端公钥证书进行解密和验证处理; 发送模块,用于向所述客户端发送响应消息。13.根据权利要求12所述的装置,其特征在于,所述装置还包括: 生成模块,用于生成响应消息,所述生成模块在响应消息的生成过程中使用服务端私钥证书和所述会话密钥进行签名和加密处理。14.根据权利要求12所述的装置,其特征在于,所述解析模块包括: 密钥解密子模块,用于使用服务端私钥证书进行解密得到所述会话密钥; 信息解密子模块,用于使用所述会话密钥对请求消息进行解密得到所述请求信息和所述签名信息; 验证子模块,用于使用客户端公钥证书对所述签名信息进行验证处理。15.根据权利要求13所述的装置,其特征在于,所述生成模块包括: 签名子模块,用于在响应消息的生成过程中,使用服务端私钥证书对响应信息进行签名得到签名信息; 信息加密子模块,用于使用所述会话密钥对响应信息和所述签名信息进行加密。16.一种应用程序通信处理方法,其特征在于,包括: 客户端生成包含请求信息、签名信息和会话密钥的请求消息,其中在生成过程中使用客户端私钥证书、会话密钥和服务端公钥证书进行签名和加密处理; 向服务端发送所述请求消息; 接收所述服务端解析请求消息后发送的响应消息,其中所述服务端在解析请求消息过程中使用服务端私钥证书和客户端公钥证书进行解密和验证处理。17.根据权利要求16所述的方法,其特征在于,所述方法还包括: 对接收的响应消息进行解析,其中所述服务端在响应消息的生成过程中使用服务端私钥证书和所述会话密钥进行签名和加密处理,其中在解析响应消息过程中使用所述会话密钥和服务端公钥证书进行解密和验证处理。18.根据权利要求16所述的方法,其特征在于,所述在生成过程中使用客户端私钥证书、会话密钥和服务端公钥证书进行签名和加密处理,包括: 使用客户端私钥证书对所述请求信息进行签名得到签名信息,使用生成的会话密钥对所述请求信息和所述签名信息进行加密,使用服务端公钥证书对会话密钥进行加密。19.根据权利要求16所述的方法,其特征在于,所述其中所述服务端在解析请求消息过程中使用服务端私钥证书和客户端公钥证书进行解密和验证处理包括: 所述服务端使用服务端私钥证书进行解密得到所述会话密钥,使用所述会话密钥对请求消息进行解密得到所述请求信息和所述签名信息,使用客户端公钥证书对所述签名信息进行验证处理。20.根据权利要求17所述的方法,其特征在于,所述其中所述服务端在响应消息的生成过程中使用服务端私钥证书和所述会话密钥进行签名和加密处理,其中在解析响应消息过程中使用所述会话密钥和服务端公钥证书进行解密和验证处理,包括: 其中所述服务端在响应消息的生成过程中,使用服务端私钥证书对响应信息进行签名得到签名信息,使用所述会话密钥对响应信息和所述签名信息进行加密; 其中在解析响应消息过程中,使用所述会话密钥对响应消息进行解密得到响应信息和签名信息,使用服务端公钥证书对所述签名信息进行验证处理。21.根据权利要求18至20任一项所述的方法,其特征在于: 使用所述会话密钥进行加密或解密时采用高级加密标准AES算法;或者, 使用服务端公钥证书对会话密钥进行加密或使用服务端私钥证书进行解密得到所述会话密钥时采用RSA算法;或者, 所述进行签名得到签名信息或对所述签名信息进行验证处理时采用RSA算法。22.根据权利要求16至20任一项所述的方法,其特征在于,所述会话密钥在每次会话通信时动态生成。
【文档编号】H04L9/08GK105915342SQ201610518325
【公开日】2016年8月31日
【申请日】2016年7月1日
【发明人】郭艺强
【申请人】广州爱九游信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1