CN116132075A - 基于虚拟键盘的数据传输方法、装置、介质及设备 - Google Patents
基于虚拟键盘的数据传输方法、装置、介质及设备 Download PDFInfo
- Publication number
- CN116132075A CN116132075A CN202111336458.0A CN202111336458A CN116132075A CN 116132075 A CN116132075 A CN 116132075A CN 202111336458 A CN202111336458 A CN 202111336458A CN 116132075 A CN116132075 A CN 116132075A
- Authority
- CN
- China
- Prior art keywords
- data
- session
- request
- server
- client
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0435—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04886—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
本申请公开了基于虚拟键盘的数据传输方法、装置、介质及设备,涉及数据传输领域,方法包括:在当前应用程序的界面中显示虚拟键盘,响应于基于所述虚拟键盘的输入指令,获取请求数据;确定会话密钥和会话标识,并利用所述会话密钥对所述请求数据进行加密,得到请求密文数据;将所述会话标识和所述请求密文数据发送至所述服务端,并接收所述服务端基于所述请求密文数据返回的响应密文数据以及所述会话标识;根据与所述会话标识对应的所述会话密钥对所述响应密文数据进行解密,得到响应数据。本申请提供的技术方案可以提升键盘数据在传输过程中的安全性。
Description
技术领域
本申请涉及数据传输技术领域,具体涉及基于虚拟键盘的数据传输方法、装置、介质及设备。
背景技术
为了避免在客户端被盗取信息,在需要用户输入登录密码、支付密码等敏感数据以验证身份或权限时,应用程序可以通过虚拟键盘以避免用户使用客户端的系统键盘进行输入,后者更容易被侵入者监听和读取键盘输入数据。
相关技术中,虽然虚拟键盘能够将输入密码动态化,例如对于没有申请证书的网银用户,银行通常会采用动态密码的方式保证用户账户的安全,但是在数据传输过程中也有可能会受到攻击,被网络中间人盗取加密密钥或解密密钥从而破解输入密码,严重影响用户账号的安全或用户资产的安全。故对于基于虚拟键盘的数据传输,其安全性仍有待提高。
发明内容
为了提升数据传输的安全性,本申请提供了基于虚拟键盘的数据传输方法、装置、介质及设备。所述技术方案如下:
第一方面,本申请提供了一种基于虚拟键盘的数据传输方法,应用于客户端,所述方法包括:
在当前应用程序的界面中显示虚拟键盘,响应于基于所述虚拟键盘的输入指令,获取请求数据;
确定会话密钥和会话标识,并利用所述会话密钥对所述请求数据进行加密,得到请求密文数据;所述会话密钥是在所述虚拟键盘初始化时由所述客户端时生成的,所述会话标识为所述客户端与服务端的当前通信标识,所述会话标识是在所述虚拟键盘初始化时所述服务端基于所述会话密钥对应分配的;
将所述会话标识和所述请求密文数据发送至所述服务端,并接收所述服务端基于所述请求密文数据返回的响应密文数据以及所述会话标识;
根据与所述会话标识对应的所述会话密钥对所述响应密文数据进行解密,得到响应数据。
第二方面,本申请提供了一种基于虚拟键盘的数据传输方法,应用于服务端,所述方法包括:
接收客户端发送的会话标识和请求密文数据,所述会话标识为所述客户端与所述服务端的当前通信标识;
确定与所述会话标识对应的会话密钥,并根据所述会话密钥对所述请求密文数据进行解密,得到对应的请求数据;所述会话密钥是在所述虚拟键盘初始化时由所述客户端生成的;所述会话标识是在所述虚拟键盘初始化时所述服务端基于所述会话密钥对应分配的;
基于所述请求数据,确定对应的响应数据,并利用所述会话密钥对所述响应数据进行加密,得到响应密文数据;
将所述响应密文数据和所述会话标识发送至所述客户端,以使所述客户端根据所述会话标识确定对应的所述会话密钥,并利用所述会话密钥对所述响应密文数据进行解密。
第三方面,本申请提供了一种基于虚拟键盘的数据传输装置,应用于客户端,所述装置包括:
数据获取模块,用于在当前应用程序的界面中显示虚拟键盘,响应于基于所述虚拟键盘的输入指令,获取请求数据;
第一会话加密模块,用于确定会话密钥和对应的会话标识,并利用所述会话密钥对所述请求数据进行加密,得到请求密文数据;所述会话密钥是在所述虚拟键盘初始化时由所述客户端时生成的,所述会话标识为所述客户端与服务端的当前通信标识,所述会话标识是在所述虚拟键盘初始化时所述服务端基于所述会话密钥对应分配的;
第一数据收发模块,用于将所述会话标识和所述请求密文数据发送至所述服务端,并接收所述服务端基于所述请求密文数据返回的响应密文数据以及所述会话标识;
第一会话解密模块,用于根据与所述会话标识对应的所述会话密钥对所述响应密文数据进行解密,得到响应数据。
第四方面,本申请提供了一种基于虚拟键盘的数据传输装置,应用于服务端,所述装置包括:
第二数据接收模块,用于接收客户端发送的会话标识和请求密文数据,所述会话标识为所述客户端与所述服务端的当前通信标识;
第二会话解密模块,用于确定与所述会话标识对应的会话密钥,并根据所述会话密钥对所述请求密文数据进行解密,得到对应的请求数据;所述会话密钥是在所述虚拟键盘初始化时由所述客户端生成的;所述会话标识是在所述虚拟键盘初始化时所述服务端基于所述会话密钥对应分配的;
第二会话加密模块,用于基于所述请求数据,确定对应的响应数据,并利用所述会话密钥对所述响应数据进行加密,得到响应密文数据;
第二数据发送模块,用于将所述响应密文数据和所述会话标识发送至所述客户端,以使所述客户端根据所述会话标识确定对应的所述会话密钥,并利用所述会话密钥对所述响应密文数据进行解密。
第五方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现如第一方面或第二方面所述的一种基于虚拟键盘的数据传输方法。
第六方面,本申请提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由所述处理器加载并执行以实现如第一方面或第二方面所述的一种基于虚拟键盘的数据传输方法。
第七方面,本申请提供了一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令被处理器执行时实现如第一方面或第二方面所述的一种基于虚拟键盘的数据传输方法。
本申请提供的基于虚拟键盘的数据传输方法、装置、介质及设备,具有如下技术效果:
本申请提供的方案在虚拟键盘的初始化过程中,客户端与服务端对会话密钥和会话标识进行了协商,从而在数据传输的过程中,除了利用会话密钥对请求数据进行加密得到请求密文数据以及对请求密文数据进行解密、对响应数据进行加密和对响应密文数据进行解密之外,客户端和服务端之间的通信交互都携带有会话标识,以使客户端和服务端根据会话标识确定对应的会话密钥,从而可以对密文数据进行相应的解密操作,在传输过程中无需传输加密的会话密钥。本申请提供的方案使得在数据传输过程中,利用会话标识来确保客户端与服务端之间正常的通信交互,网络中间人无法获取会话密钥,网络中间人同样无法根据会话标识来解密利用会话密钥加密后的数据,能够有效提升数据传输的安全性。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1(1)是本申请实施例提供的一种基于虚拟键盘的数据传输方法的实施环境示意图;
图1(2)是本申请实施例提供的另一种基于虚拟键盘的数据传输方法的实施环境示意图;
图2是本申请实施例提供的一种基于虚拟键盘的数据传输方法的流程示意图;
图3是本申请实施例提供的基于数据中间件的一种基于虚拟键盘的数据传输方法的示意图;
图4是本申请实施例提供的一种初始化虚拟键盘的流程示意图;
图5(1)是本申请实施例提供的一种虚拟键盘的样式示意图;
图5(2)是本申请实施例提供的另一种虚拟键盘的样式示意图;
图6是本申请实施例提供的另一种初始化虚拟键盘的流程示意图;
图7是本申请实施例提供的基于数据中间件的初始化虚拟键盘的流程示意图;
图8是本申请实施例提供的一种基于签名信息进行验证的流程示意图;
图9是本申请实施例提供的一种生成签名信息的流程意图;
图10是本申请实施例提供的一种构建用于生成签名信息的明文数据的流程示意图;
图11是本申请实施例提供的一种基于签名配置信息生成签名信息的流程示意图;
图12是本申请实施例提供的一种基于虚拟键盘的数据传输装置的示意图;
图13是本申请实施例提供的另一种基于虚拟键盘的数据传输装置的示意图;
图14是本申请实施例提供的用于实现一种基于虚拟键盘的数据传输方法的设备的硬件结构示意图。
具体实施方式
为了提升数据传输的安全性,本申请实施例提供了基于虚拟键盘的数据传输方法、装置、介质及设备。下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于理解本申请实施例所述的技术方案及其产生的技术效果,本申请实施例对于涉及到的相关专业名词进行解释:
虚拟键盘:虚拟键盘可以为用户在输入关键信息时提供全面的安全防护,是组件提供的随机分布式虚拟安全键盘,也可称为安全键盘,其从底层、启动前、输入时、输入后等多个维度进行输入数据保护,有效避免重要个人信息泄漏问题。
SM4:原名SMS4.0,是中华人民共和国政府采用的一种分组密码标准,由国家密码管理局于2012年3月21日发布。相关标准为“GM/T 0002-2012《SM4分组密码算法》。
中间件:中间件是一种独立的系统软件服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
数字签名:又称公钥数字签名,是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称密钥加密技术与数字摘要技术的应用。
URL编码:URL encoding,也称作百分号编码,是特定上下文的统一资源定位符(Uniform Resource Locator)的编码机制。
HMAC:Hash-based Message Authentication Code,密钥相关的哈希运算消息认证码;HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。HMAC算法可以用来作加密、数字签名、报文验证等。
MD5信息摘要算法:Message-Digest Algorithm MD5,一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
Base64编码:一种基于64个可打印字符来表示二进制数据的方法,是从二进制到字符的过程,可用于在HTTP(HyperTextTransferProtocol,超文本传输协议)环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。
请参阅图1(1),其为本申请实施例提供的一种基于虚拟键盘的数据传输方法的实施环境示意图,如图1(1)所示,该实施环境可以至少包括客户端01和服务器02。
具体的,所述客户端01可以包括智能手机、台式电脑、平板电脑、笔记本电脑、车载终端、数字助理、智能可穿戴设备、监控设备及语音交互设备等类型的设备,也可以包括运行于设备中的软体,例如一些服务商提供给用户的网页页面,也可以为该些服务商提供给用户的应用。具体的,在虚拟键盘初始化过程中,所述客户端01可以用于随机生成会话密钥,并利用与当前应用程序对应的客户端公钥对会话密钥进行加密,得到密文密钥;以及所述客户端01将该密文密钥发送至所述服务器02,并接收所述服务器02返回的与该会话密钥对应的会话标识。具体地,在数据传输过程中,所述客户端01可以用于获取请求数据,以及利用在虚拟键盘初始化过程生成的会话密钥对请求数据进行加密,得到请求密文数据;以及所述客户端01可以用于将请求密文数据和在虚拟键盘初始化过程中协商得到的会话标识发送至所述服务器02;以及所述客户端01还可以用于利用会话密钥对所述服务器02返回的响应密文数据进行解密,得到与请求数据对应的响应数据。
具体的,所述服务器02可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器。所述服务器02可以包括有网络通信单元、处理器和存储器等等。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。具体的,在虚拟键盘初始化过程中,所述服务器02可以用于根据与应用程序对应的服务器私钥对接收的密文密钥进行解密得到会话密钥,保存该会话密钥并为该会话密钥分配一个会话标识,以及将该会话标识发送至所述客户端01,完成客户端与服务器之间会话密钥与会话标识的协商。具体地,在数据传输过程中,所述服务器02可以用于根据接收到的会话标识确定对应的会话密钥,并利用会话密钥对请求密文数据进行解密得到请求数据,并将基于请求数据得到的响应数据加密后发送给所述客户端01。
请参阅图1(2),其为本申请实施例提供的另一种基于虚拟键盘的数据传输方法的实施环境示意图,如图1(2)所示,该实施环境可以至少包括客户端01、服务器02和数据中间件03。
具体的,所述客户端01可以包括智能手机、台式电脑、平板电脑、笔记本电脑、车载终端、数字助理、智能可穿戴设备、监控设备及语音交互设备等类型的设备,也可以包括运行于设备中的软体,例如一些服务商提供给用户的网页页面,也可以为该些服务商提供给用户的应用。具体的,在基于虚拟键盘的数据传输过程中,所述客户端01可以用于显示应用程序的界面以及在界面中显示虚拟键盘,以及获取请求数据,并将请求数据发送至所述数据中间件03。
具体地,所述数据中间件03可以是位于客户机服务器的操作系统之上的系统软件服务程序,管理计算资源和网络通信。具体的,在基于虚拟键盘的数据传输过程中,所述数据中间件03根据所述客户端01发送的请求数据生成对应的签名信息;所述数据中间件03根据在虚拟键盘初始化过程中所述客户端01与所述服务器02协商后确定的会话密钥对请求数据进行加密得到请求密文数据;以及所述数据中间件03将客户端与服务器协商后确定的会话标识和请求密文数据一起发送至所述服务器02;所述数据中间件03还可以基于会话标识,将所述服务器02返回的响应密文数据发送至对应的所述客户端01。
具体的,所述服务器02可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器。所述服务器02可以包括有网络通信单元、处理器和存储器等等。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。具体的,在基于虚拟键盘的数据传输过程中,所述服务器02可以用于接收所述数据中间件02发送的会话标识和请求密文数据,所述服务器02根据该会话标识确定对应的会话密钥,并利用该会话密钥对请求密文数据进行解密,得到请求数据,基于请求数据进行处理,得到响应数据,所述服务器02利用会话密钥对响应数据进行加密,并将加密后的响应密文数据和会话标识一起发送至所述数据中间件03。
本申请实施例还可以结合云技术实现,云技术(Cloud technology)是指在广域网或局域网内将硬件、软件及网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术,也可理解为基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术及应用技术等的总称。云技术需要以云计算作为支撑。云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。具体地,所述服务器02和数据库位于云端,所述服务器02可以是实体机器,也可以是虚拟化机器。
以下介绍本申请提供的一种基于虚拟键盘的数据传输方法。图2是本申请实施例提供的一种基于虚拟键盘的数据传输方法的流程图,本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。请参照图2,本申请实施例提供的一种基于虚拟键盘的数据传输方法可以包括如下步骤:
S210:客户端在当前应用程序的界面中显示虚拟键盘,响应于基于虚拟键盘的输入指令,获取请求数据。
在本申请实施例中,在当前应用程序需要用户输入敏感数据时,可以提供应用程序所带的虚拟键盘,虚拟键盘可以是当前应用程序的功能控件,可以以一定数据类型和字符排序次序显示在当前界面中,从而用户可以通过虚拟键盘输入敏感数据。当虚拟键盘监听到用户的输入,触发输入指令,客户端响应于输入指令,获取对应的请求数据,请求数据用于服务端对请求事件进行处理。
在本申请的一个实施例中,请求数据可以包括输入数据和参数数据。其中输入数据为用户基于初始化完成后的虚拟键盘输入的数据,如身份证号码、登录密码、支付密码等敏感数据;参数数据可以包括请求事件的请求参数,还可以包括公共参数,示例性的,以支付请求事件为例,当用户输入支付密码后,请求参数可以包括交易订单号、交易金额、货币种类、商家标识、商品标识等对应的参数名和参数值,公共参数可以包括时间戳、随机字符串、应用程序标识、签名方法、签名版本号等对应的参数名和参数值,输入数据即为用户输入的支付密码。
S220:客户端确定会话密钥和会话标识,并利用会话密钥对请求数据进行加密,得到请求密文数据;将会话标识和请求密文数据发送至服务端。
其中,会话密钥是在虚拟键盘初始化时由客户端时生成的,会话标识为客户端与服务端的当前通信标识,会话标识是在虚拟键盘初始化时服务端基于所述会话密钥对应分配的。
在本申请的一个实施例中,在虚拟键盘的初始化完成后,客户端存储服务端对会话密钥分配的会话标识。
可行的,客户端采用该会话密钥对请求数据进行对称加密,得到密文数据,加密算法可以采用SM4算法。
S230:服务端确定与会话标识对应的会话密钥,并根据会话密钥对请求密文数据进行解密,得到对应的请求数据。
在本申请的一个实施例中,在完成虚拟键盘的初始化后,服务端构建会话密钥和对应的会话标识的映射关系,并将该映射关系进行存储。在接收到会话标识和请求密文数据后,基于会话标识确定对应的会话密钥,进而利用会话密钥对请求密文数据进行解密。
由于客户端对请求数据的加密和服务端对请求数据的解密所使用的是相同的会话密钥,故客户端和服务端所采用的密码算法为对称密码算法。可行的,服务端采用SM4算法和会话密钥对请求密文数据进行对称解密,得到请求数据。
S240:服务端基于请求数据,确定对应的响应数据,并利用会话密钥对响应数据进行加密,得到响应密文数据,并将响应密文数据和会话标识发送至客户端。
服务端基于请求数据,对请求数据所指示的请求事件进行处理,将处理结果作为对应的响应数据,进而利用会话密钥和对称加密算法对响应数据进行对称加密,得到响应密文数据。
可行的,服务端采用SM4算法和会话密钥对响应数据进行对称加密,得到响应密文数据。
S250:客户端根据与会话标识对应的会话密钥对响应密文数据进行解密,得到响应数据。
当客户端接收到服务端发送的会话标识和响应密文数据时,根据会话标识确定与之相对应的会话密钥,同时利用该会话密钥和以及服务端所采用的对称加密算法相对应的解密算法,对响应密文数据进行解密,得到响应数据,响应数据表征服务端的处理结果。
进一步地,客户端根据解密后的响应数据显示基于虚拟键盘输入后的事件处理结果,如支付成功或失败、账号登录成功或失败等。
在上述实施例中,在基于虚拟键盘传输数据的过程中,除了利用会话密钥对数据进行加解密之外,客户端和服务端之间的通信交互都携带有会话标识,以使解密的一端可以根据会话标识确定对应的会话密钥,从而在传输过程中无需传输加密的会话密钥,网络中间人也就无法获取会话密钥,同样无法根据会话标识来解密利用会话密钥加密后的数据,能够有效提升数据传输的安全性。
在本申请的另一个实施例中,基于图1(2)所示的实施环境,数据中间件作为客户端的代理服务端,可以将数据传输的过程进行分离,利用数据中间件,本申请提供的一种基于虚拟键盘的数据传输方法中的数据传输或数据加解密的步骤可以由数据中间件执行。示例性的,图3所示,数据中间件存储有会话标识,数据中间件确定对应的会话标识,该会话标识与客户端和服务端的通信和当前应用程序相对应,数据中间件将请求密文数据和会话标识一起发送至对应的服务端,并接收来自服务端返回的响应密文数据和会话标识,并根据会话标识将响应密文数据转发至对应的客户端。可以理解的是,数据中间件可以为其所支持的应用程序提供通信支持和应用支持,主要是向应用程序提供标准接口和标准封装服务,能够满足大量应用需求,支持分布式的计算。
在本申请的一个实施例中,会话密钥是在虚拟键盘初始化时由客户端时生成的,会话标识为客户端与服务端的当前通信标识,会话标识是在虚拟键盘初始化时服务端基于所述会话密钥对应分配的。也即,在执行基于虚拟键盘的数据传输之前,首先初始化该虚拟键盘。
具体地,如图4所示,虚拟键盘的初始化过程可以包括以下步骤:
S410:客户端响应于虚拟键盘的初始化指令,随机生成会话密钥。
在本申请实施例中,该应用程序提供了自制的虚拟键盘,以避免用户使用客户端的系统键盘进行输入,后者更容易被侵入者监听和读取键盘输入数据。客户端根据服务端下发的针对该应用程序的数字证书,解析得到在客户端加载虚拟键盘时的键盘数据类型、排列顺序和其他参数等。图5(1)和图5(2)示出了两种不同样式的虚拟键盘,图5(1)中示出了以26个英文字符为数据类型的虚拟键盘,图5(2)中示出了以身份证数字为数据类型的虚拟键盘且数字随机排列。此外,在服务端下发的数字证书中,还包括了用于对通信数据进行加密的客户端公钥,相应的服务端私钥由服务端保存。
在本申请实施例中,虚拟键盘的初始化过程除了在客户端加载虚拟键盘并以一定样式显示,还包括了会话密钥和会话标识的协商过程,以提升数据传输过程中的安全性。
具体地,可以由客户端使用伪随机数生成器生成一个会话密钥,该会话密钥用于对客户端与服务端之间的通信进行加密和解密,或者客户端可以根据当前场景的参数随机生成一个会话密钥,当前场景的参数可以包括但不限于时间戳、IP地址(InternetProtocol Address,互联网协议地址)、用户账号等。
在本申请的一个实施例中,该会话密钥为客户端与服务端之间的临时通信密钥,可以存储在客户端的内存中,降低了客户端本地数据被窃取的风险。此外,当客户端与服务端的当前通信连接关闭时,该会话密钥随之失效,不同连接阶段的会话密钥是不同的,为后续数据传输的安全性提供了进一步保障。
S420:客户端确定应用程序对应的客户端公钥,并利用客户端公钥对会话密钥进行加密,得到密文密钥,并将密文密钥发送至服务端。
在本申请的一个实施例中,客户端从服务端创建并下发的数字证书中获取与该应用程序对应的客户端公钥,对应的服务端私钥由服务端保存,该客户端公钥和该服务端私钥不相同。可选的,还可以通过数字证书指定密钥协商方式和非对称加密算法等,可以在不影响业务的情况下升级加密方案。
在本申请的一个实施例中,利用该客户端公钥对该会话密钥进行非对称加密,得到密文密钥。非对称加密算法可以包括但不限于SM2算法(一种椭圆曲线公钥密码算法)、RSA算法(基于因子分解的密码算法)等。
S430:服务端根据应用程序对应的服务端私钥,对密文密钥进行解密得到会话密钥。
相应的,基于与客户端非对称加密算法对应的解密算法,利用服务端私钥对接收到的密文密钥进行解密,得到该会话密钥。
在本申请的一个实施例中,该会话密钥可以存储在服务端的内存中。此外,当客户端与服务端的当前通信连接关闭时,该会话密钥随之失效,不同连接阶段的会话密钥是不同的,为后续数据传输的安全性提供了进一步保障。
S440:服务端为会话密钥分配对应的会话标识,并将会话标识发送至客户端进行存储。
在本申请实施例中,与会话密钥对应的会话标识可以用于标识客户端与服务端的当前通信状态。服务端为会话密钥分配唯一对应的会话标识后,存储会话标识与会话密钥的映射关系。
在本申请的一个实施例中,会话密钥可以设有过期机制,在预设时间段后或预设事件(如基于虚拟键盘的输入事件)后,该会话密钥会过期失效,客户端与服务端之间需要发起新一轮的密钥协商,并为新的会话密钥重新分配对应的会话标识。即使攻击者窃取了某一次初始化过程中的会话密钥也不能持续使用,可以尽可能降低会话密钥被盗取带来的损失。
进一步地,客户端也可以将该会话标识存储在内存中。
在上述实施例中,在虚拟键盘的初始化过程时,随机生成会话密钥,并利用当前应用程序对应的客户端公钥对该会话密钥进行加密,得到密文密钥;接着将该密文密钥发送至服务端,服务端根据与该应用程序对应的服务端私钥对密文密钥进行解密,获得该会话密钥,并为该会话密钥分配一个会话标识,以及将该会话标识返回至客户端,完成客户端与服务端会话密钥与会话标识的协商;会话密钥和会话标识用于后续客户端与服务端之间的通信交互,使得在通信交互过程中不再需要传输会话密钥,且无法通过会话标识解密通信数据,为数据传输的安全性提供了保障。
在本申请的一个实施例中,虚拟键盘初始化的过程除了会话密钥和会话标识的协商过程,也可以包括基于数据的交互过程,如图6所示,虚拟键盘的初始化过程还可以包括以下步骤:
S610:客户端响应于初始化指令,随机生成会话密钥以及确定初始化请求数据。
在本申请的一个实施例中,初始化请求数据可以用于向服务端请求对关于虚拟键盘加载时的相关参数数据进行响应处理,相关参数数据可以如键盘数据类型、键盘排列顺序、显示样式参数等;或者,初始化请求数据也可以用于验证服务端是否处于正常工作状态或验证服务端的加解密功能是否正常运行,该初始化请求数据可以是虚拟键盘的初始化时间戳等。
S620:客户端确定应用程序对应的客户端公钥,并利用客户端公钥对会话密钥进行加密,得到密文密钥。
在本申请的一个实施例中,客户端从服务端创建并下发的数字证书中获取与该应用程序对应的客户端公钥,对应的服务端私钥由服务端保存,该客户端公钥和该服务端私钥不相同。可选的,还可以通过数字证书指定密钥协商方式和非对称加密算法等,可以在不影响业务的情况下升级加密方案。
在本申请的一个实施例中,利用该客户端公钥对该会话密钥进行非对称加密,得到密文密钥。非对称加密算法可以包括但不限于SM2算法(一种椭圆曲线公钥密码算法)、RSA算法(基于因子分解的密码算法)等。
S630:客户端利用会话密钥对初始化请求数据进行加密,得到初始化请求密文数据,并将密文密钥和初始化请求密文数据发送至服务端。
在一种可行的实施方式中,客户端采用SM4算法和会话密钥对初始化请求数据进行对称加密,得到初始化请求密文数据。
进一步地,将密文密钥和初始化请求密文数据进行封装,生成初始化请求,并发送至服务端。
S640:服务端根据应用程序对应的服务端私钥,对密文密钥进行解密得到会话密钥。
相应的,基于与客户端非对称加密算法对应的解密算法,利用服务端私钥对接收到的密文密钥进行解密,得到该会话密钥。
在本申请的一个实施例中,该会话密钥可以存储在服务端的内存中。此外,当客户端与服务端的当前通信连接关闭时,该会话密钥随之失效,不同连接阶段的会话密钥是不同的,为后续数据传输的安全性提供了进一步保障。
S650:服务端根据会话密钥对初始化请求密文数据进行解密,得到初始化请求数据,并基于初始化请求数据生成初始化响应数据。
由于客户端对数据的加密和服务端对数据的解密所使用的是相同的会话密钥,故客户端和服务端所采用的密码算法为对称密码算法。可行的,服务端采用SM4算法和会话密钥对初始化请求密文数据进行对称解密,得到初始化请求数据。
进而,可以基于初始化请求数据,对其所指示的初始化请求事件进行处理,将处理结果作为初始化响应数据。事件处理逻辑可以基于通信协议和请求响应机制预设配置。
在一种可行的实施方式中,服务器端采用SM4算法和会话密钥对初始化请求密文数据进行对称解密,得到初始化请求数据。
S660:服务端为会话密钥分配对应的会话标识。
会话标识为客户端与服务端的当前通信标识,用于标识客户端与服务端的通信交互。
可行的,服务端从可用的会话标识中随机选取空闲状态的会话标识来与会话密钥匹配,或者是再次生成新的会话标识来与会话密钥匹配。
进一步地,服务端将会话密钥与会话标识的映射关系进行存储。服务端与客户端完成了会话密钥的协商,也即在后续的预设时间内,均使用该会话密钥对数据进行加解密。
S670:服务端根据会话密钥对初始化响应数据进行加密,得到初始化响应密文数据,并将会话标识和初始化响应密文数据发送至客户端。
服务端利用会话密钥对初始化响应数据进行对称加密,得到初始化响应密文数据。可行的,服务端采用SM4算法和会话密钥对初始化响应数据进行对称加密。
服务端与客户端完成了会话标识的协商,也即在后续的预设时间内,均使用该会话标识来判断数据发送对象和接收对象。
S680:客户端存储会话标识,以及根据会话密钥对初始化响应密文数据进行解密,得到初始化响应数据,并根据初始化响应数据,完成虚拟键盘的初始化。
在一种可行的实施方式中,客户端可以采用SM4算法和会话密钥对初始化响应密文数据进行对称解密,得到初始化响应数据。
优选地,客户端可以将会话标识存储在内存中,降低数据被盗的风险。
在本申请的一个实施例中,初始化请求数据是用于向服务端请求返回关于虚拟键盘加载时的相关参数数据,如键盘数据类型、键盘排列顺序、显示样式参数等,则根据解密后的初始化响应数据确定相关参数数据,根据相关参数数据完成虚拟键盘的初始化。
在本申请的一个实施例中,初始化请求数据是用于验证服务端是否处于正常工作状态或验证服务端的加解密功能是否正常运行,则可以根据解密后的初始化响应数据进行验证,若初始化请求数据与初始化响应数据满足预设通信协议,则可以判断服务端当前处于正常工作状态且加解密功能运行正常。
在本申请的另一个实施例中,基于图1(2)所示的实施环境,本申请提供的一种基于虚拟键盘的数据传输方法中虚拟键盘的初始化过程中的数据传输或数据加解密可以由数据中间件执行。在本申请实施例的基础上,还可以根据应用需求或架构设计,规划基于客户端-数据中间件-服务端的数据传输或处理方式,本申请实施例对此不作限定。
示例性的,如图7所示,服务端将会话标识发送至数据中间件,并由数据中间件将该会话标识进行存储,以支持后续的通信交互。此外,数据中间件还可以保存服务端下发不同应用程序的数字证书,以使客户端确定与应用程序对应的客户端公钥。数据中间件可以为其所支持的应用程序提供通信支持和应用支持,主要是向应用程序提供标准接口和标准封装服务,能够满足大量应用需求,支持分布式的计算。
在本申请的一个实施例中,在对数据进行加密的基础上,还可以构建签名信息以使服务端对传输数据的真实性进行验证。具体地,如图8所示,所述方法还可以包括:
S810:基于请求数据确定对应的签名信息。
可以理解的还是,签名信息(也称数字签名)是附加在请求数据上的一些数据,或是对请求数据所作的变换,允许接收数据的服务端利用签名信息确认请求数据的来源或输入数据的完整性与真实性,防止被人进行伪造。
具体地,基于请求数据进行数字摘要和非对称加密,从而得到对应的签名信息。
可以理解的是,一套数字签名通常定义了两种互补的运算,一个用于签名,另一个用于验证。
S820:根据请求密文数据和签名信息,生成应用请求,并将会话标识和应用请求发送至服务端。
具体地,将请求密文数据和签名信息进行封装,也即将上述数据和信息封装在协议头和协议尾,可以理解为是对请求密文数据和签名信息的打包,从而得到应用请求。
S830:服务端基于应用请求中的签名信息,对应用请求中请求密文数据进行验证,得到验签结果,验签结果指示请求密文数据是否被篡改。
相应地,服务端对应用请求进行解封装,获取到其中的请求密文数据和签名信息。
具体地,服务端对签名信息进行非对称解密,得到其中数字摘要内容,可以对解密后得到的请求数据进行相同的摘要提取,将两个数字摘要内容进行比对,若一致,则表明原始数据也即请求密文数据未被篡改,若不一致则表明原始数据的真实性还有待进一步确认。示例性,摘要提取技术可以使用哈希算法。
在一种可行的实施方式中,请求数据包括参数数据和输入数据,如图9所示,所述基于请求数据确定对应的签名信息,可以包括以下步骤:
S811:根据参数数据中的参数名以及对应于参数名的参数值,得到第一字符信息。
在本申请的一个实施例中,将参数数据中的参数名和对应的参数值转换成统一的字符串格式,并拼接成完整的第一字符信息。具体地,如图10所示,可以包括以下步骤:
S8111:对参数名以及对应于参数名的参数值进行编码,得到目标参数名以及对应于目标参数名的目标参数值;目标参数名和目标参数值为字符格式。
可行地,对参数名和参数值进行URL编码,得到字符格式的目标参数名和对应的目标参数值。
参数数据可以包括请求事件的请求参数,还可以包括公共参数,示例性的,以支付请求事件为例,当用户输入支付密码后,请求参数可以包括交易订单号、交易金额、货币种类、商家标识、商品标识等对应的参数名和参数值,公共参数可以包括时间戳、随机字符串、应用程序标识、签名方法、签名版本号等对应的参数名和参数值。
S8113:根据目标参数名,确定目标参数名的排列顺序。
可行地,按照各目标参数名的首个字符在26个英文字母中的次序对各目标参数名进行排序,确定排列顺序。
S8115:基于排列顺序,对目标参数名和对应于目标参数名的目标参数值进行拼接,得到第一字符信息。
示例性的,目标参数名的排列顺序为目标参数名1、目标参数名2和目标参数名3,则对目标参数名和对应于目标参数名的目标参数值进行拼接,得到的第一字符信息可以表示为:目标参数名1=目标参数值1&目标参数名2=目标参数值2&目标参数名3=目标参数值3。
S813:将所述第一字符串信息和所述输入数据进行拼接,得到第二字符信息。
可行地,将输入数据中的字符依次取出拼接在第一字符串信息后面,得到第二字符信息。本申请实施例中对输入数据拼接在第一字符串信息前面或是后面不作限定。
S815:对所述第二字符信息进行加密和编码,得到所述签名信息。
基于第二字符信息,采用签名方法进行加密以及采用编码方法进行编码,得到签名参数值,将签名参数名(sign)和签名参数值(signvalue)作为一组签名参数,也即得到签名信息。具体地,如图11所示,可以包括以下步骤:
S8151:根据所述参数数据,确定签名配置信息,所述签名配置信息包括签名算法和签名密钥。
可行地,在参数数据中可以包括签名方法、签名版本号等数据,根据签名方法参数值确定所指定的签名算法,签名算法可以包括但不限于HMAC算法、MD5信息摘要算法等。在参数数据中还可以包括应用程序标识,根据该应用程序标识确定对应于该应用程序的签名密钥,该签名密钥可以在虚拟键盘初始化时被服务端下发。此外,签名配置信息还可以包括签名版本号,用于升级安全方案时通过控制签名版本号更新签名配置信息。
S8153:根据所述签名配置信息对所述第二字符信息进行加密,得到第三字符信息。
可行地,使用签名配置信息中指定的签名算法和签名密钥对应第二字符信息进行加密,得到第三字符信息,该第三字符信息相当于是第二字符信息的数字摘要,第三字符信息可以表现为二进制数据字符串。
S8155:对所述第三字符信息进行编码,得到签名参数值,将所述签名参数值和签名参数名作为所述签名信息。
可行地,对第三字符信息进行base64编码和URL编码得到签名参数值(signvalue)。
在本申请的另一个实施例中,基于图1(2)所示的实施环境,数据中间件作为客户端的代理服务端,可以执行签名信息的构造。示例性的,在构造签名信息过程中,数据中间件从客户端获取并保存输入数据和参数数据。数据中间件中保存有不同应用程序的数字证书,基于数字证书中限定的与当前应用程序对应的签名配置信息,根据输入数据和参数数据生成签名信息,具体过程可参考步骤S810-S830,此处不再赘述。此外,数据中间件还可以对密文数据、签名信息和参数数据进行封装,生成发送至服务端的应用请求。数据中间件还存储有会话标识,将应用请求和对应的会话标识一起发送至服务端,并接收来自服务端返回的结果数据和会话标识。可以理解的是,数据中间件可以为其所支持的应用程序提供通信支持和应用支持,主要是向应用程序提供标准接口和标准封装服务,能够满足大量应用需求,支持分布式的计算。
由上述实施例可知,本申请提供的方案在虚拟键盘的初始化过程中,客户端与服务端对会话密钥和会话标识进行了协商,从而在数据传输的过程中,除了利用会话密钥对请求数据进行加密得到请求密文数据以及对请求密文数据进行解密、对响应数据进行加密和对响应密文数据进行解密之外,客户端和服务端之间的通信交互都携带有会话标识,以使客户端和服务端根据会话标识确定对应的会话密钥,从而可以对密文数据进行相应的解密操作,在传输过程中无需传输加密的会话密钥。本申请提供的方案使得在数据传输过程中,利用会话标识来确保客户端与服务端之间正常的通信交互,网络中间人无法获取会话密钥,网络中间人同样无法根据会话标识来解密利用会话密钥加密后的数据,能够有效提升数据传输的安全性。
本申请实施例提供了一种基于虚拟键盘的数据传输装置1200,如图12所示,所述装置1200可以包括:
数据获取模块1210,用于在当前应用程序的界面中显示虚拟键盘,响应于基于所述虚拟键盘的输入指令,获取请求数据;
第一会话加密模块1220,用于确定会话密钥和对应的会话标识,并利用所述会话密钥对所述请求数据进行加密,得到请求密文数据;所述会话密钥是在所述虚拟键盘初始化时由所述客户端时生成的,所述会话标识为所述客户端与服务端的当前通信标识,所述会话标识是在所述虚拟键盘初始化时所述服务端基于所述会话密钥对应分配的;
第一数据收发模块1230,用于将所述会话标识和所述请求密文数据发送至所述服务端,并接收所述服务端基于所述请求密文数据返回的响应密文数据以及所述会话标识;
第一会话解密模块1240,用于根据与所述会话标识对应的所述会话密钥对所述响应密文数据进行解密,得到响应数据。
在本申请的一个实施例中,所述装置1200还可以包括:
签名信息确定单元,用于基于所述请求数据确定对应的签名信息;
请求生成单元,用于根据所述请求密文数据和所述签名信息,生成应用请求;
第一发送单元,用于将所述会话标识和所述应用请求发送至所述服务端,以使所述服务端基于所述签名信息对所述请求密文数据进行验证。
在本申请的一个实施例中,所述签名信息确定单元可以包括:
第一字符信息生成单元,用于根据所述参数数据中的参数名以及对应于所述参数名的参数值,得到第一字符信息;
第二字符信息生成单元,用于将所述第一字符串信息和所述输入数据进行拼接,得到第二字符信息;
签名信息生成单元,用于对所述第二字符信息进行加密和编码,得到所述签名信息。
在本申请的一个实施例中,所述第一字符信息生成单元可以包括:
编码子单元,用于对所述参数名以及对应于所述参数名的参数值进行编码,得到目标参数名以及对应于所述目标参数名的目标参数值;所述目标参数名和所述目标参数值为字符格式;
排列顺序确定子单元,用于根据所述目标参数名,确定所述目标参数名的排列顺序;
第一字符信息生成子单元,用于基于所述排列顺序,对所述目标参数名和对应于所述目标参数名的目标参数值进行拼接,得到第一字符信息。
在本申请的一个实施例中,所述签名信息生成单元可以包括:
签名配置信息确定子单元,用于根据所述参数数据,确定签名配置信息,所述签名配置信息包括签名算法和签名密钥;
加密子单元,用于根据所述签名配置信息对所述第二字符信息进行加密,得到第三字符信息;
签名信息生成子单元,用于对所述第三字符信息进行编码,得到签名参数值,将所述签名参数值和签名参数名作为所述签名信息。
在本申请的一个实施例中,所述装置1200还可以包括虚拟键盘初始化模块,所述虚拟键盘初始化模块可以包括:
会话密钥生成单元,用于响应于所述虚拟键盘的初始化指令,随机生成所述会话密钥;
会话密钥加密单元,用于确定所述应用程序对应的客户端公钥,并利用所述客户端公钥对所述会话密钥进行加密,得到密文密钥;
第一信息发送单元,用于将所述密文密钥发送至所述服务端,以使所述服务端根据所述应用程序对应的服务端私钥对所述密文密钥进行解密得到所述会话密钥,并为所述会话密钥分配对应的所述会话标识;
第一信息接收单元,用于接收并存储所述服务端返回的所述会话标识,所述会话标识为所述客户端与所述服务端的当前通信标识。
在本申请的一个实施例中,所述虚拟键盘初始化模块还可以包括:
初始化请求数据确定单元,用于响应于所述初始化指令,确定初始化请求数据;
数据加密单元,用于利用所述会话密钥对所述初始化请求数据进行加密,得到初始化请求密文数据;
数据发送单元,用于将所述初始化请求密文数据发送至所述服务端,以使所述服务端根据解密得到的所述会话密钥对所述初始化请求密文数据进行解密得到所述初始化请求数据,并基于所述初始化请求数据生成初始化响应数据;
数据接收单元,用于接收所述服务端返回的初始化响应密文数据,所述初始化响应密文数据是根据所述会话密钥对所述初始化响应数据进行加密得到的;
数据解密单元,用于根据所述会话密钥对所述初始化响应密文数据进行解密,得到所述初始化响应数据;
初始化单元,用于根据所述初始化响应数据,完成所述虚拟键盘的初始化。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例还提供了另一种基于虚拟键盘的数据传输装置1300,如图13所示,所述装置1300可以包括:
第二数据接收模块1310,用于接收客户端发送的会话标识和请求密文数据,所述会话标识为所述客户端与所述服务端的当前通信标识;
第二会话解密模块1320,用于确定与所述会话标识对应的会话密钥,并根据所述会话密钥对所述请求密文数据进行解密,得到对应的请求数据;所述会话密钥是在所述虚拟键盘初始化时由所述客户端生成的;所述会话标识是在所述虚拟键盘初始化时所述服务端基于所述会话密钥对应分配的;
第二会话加密模块1330,用于基于所述请求数据,确定对应的响应数据,并利用所述会话密钥对所述响应数据进行加密,得到响应密文数据;
第二数据发送模块1340,用于将所述响应密文数据和所述会话标识发送至所述客户端,以使所述客户端根据所述会话标识确定对应的所述会话密钥,并利用所述会话密钥对所述响应密文数据进行解密。
在本申请的一个实施例中,所述装置1300还可以包括:
应用请求接收单元,用于接收所述客户端发送的会话标识和应用请求,所述应用请求包括所述请求密文数据和对应的签名信息;
验签单元,用于基于所述签名信息,对所述请求密文数据进行验证,得到验签结果,所述验签结果指示所述请求密文数据是否被篡改。
在本申请的一个实施例中,所述装置1300还可以包括:
密文密钥接收单元,用于在所述虚拟键盘的初始化过程中,接收所述客户端发送的密文密钥,所述密文密钥是所述客户端利用应用程序对应的客户端公钥对所述会话密钥进行加密得到,所述会话密钥是在所述虚拟键盘初始化时由所述客户端生成的;
会话标识分配单元,用于根据所述应用程序对应的服务端私钥,对所述密文密钥进行解密得到所述会话密钥,并为所述会话密钥分配对应的所述会话标识。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的一种基于虚拟键盘的数据传输方法。
图14示出了一种用于实现本申请实施例所提供的一种基于虚拟键盘的数据传输方法的设备的硬件结构示意图,所述设备可以参与构成或包含本申请实施例所提供的装置或系统。如图14所示,设备10可以包括一个或多个(图中采用1002a、1002b,……,1002n来示出)处理器1002(处理器1002可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器1004、以及用于通信功能的传输装置1006。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图14所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,设备10还可包括比图14中所示更多或者更少的组件,或者具有与图14所示不同的配置。
应当注意到的是上述一个或多个处理器1002和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到设备10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器1004可用于存储应用软件的软件程序以及模块,如本申请实施例中所述的方法对应的程序指令/数据存储装置,处理器1002通过运行存储在存储器1004内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种基于虚拟键盘的数据传输方法。存储器1004可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1004可进一步包括相对于处理器1002远程设置的存储器,这些远程存储器可以通过网络连接至设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置1006用于经由一个网络接收或者发送数据。上述的网络具体实例可包括设备10的通信供应商提供的无线网络。在一个实例中,传输装置1006包括一个网络适配器(NetworkInterfaceController,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置1006可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与设备10(或移动设备)的用户界面进行交互。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质可设置于服务器之中以保存用于实现方法实施例中一种基于虚拟键盘的数据传输方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的一种基于虚拟键盘的数据传输方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施方式中提供的一种基于虚拟键盘的数据传输方法。
由上述本申请提供的基于虚拟键盘的数据传输方法、装置、介质及设备的实施例可见:
本申请提供的方案在虚拟键盘的初始化过程中,客户端与服务端对会话密钥和会话标识进行了协商,从而在数据传输的过程中,除了利用会话密钥对请求数据进行加密得到请求密文数据以及对请求密文数据进行解密、对响应数据进行加密和对响应密文数据进行解密之外,客户端和服务端之间的通信交互都携带有会话标识,以使客户端和服务端根据会话标识确定对应的会话密钥,从而可以对密文数据进行相应的解密操作,在传输过程中无需传输加密的会话密钥。本申请提供的方案使得在数据传输过程中,利用会话标识来确保客户端与服务端之间正常的通信交互,网络中间人无法获取会话密钥,网络中间人同样无法根据会话标识来解密利用会话密钥加密后的数据,能够有效提升数据传输的安全性。
需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (14)
1.一种基于虚拟键盘的数据传输方法,其特征在于,应用于客户端,所述方法包括:
在当前应用程序的界面中显示虚拟键盘,响应于基于所述虚拟键盘的输入指令,获取请求数据;
确定会话密钥和会话标识,并利用所述会话密钥对所述请求数据进行加密,得到请求密文数据;所述会话密钥是在所述虚拟键盘初始化时由所述客户端时生成的,所述会话标识为所述客户端与服务端的当前通信标识,所述会话标识是在所述虚拟键盘初始化时所述服务端基于所述会话密钥对应分配的;
将所述会话标识和所述请求密文数据发送至所述服务端,并接收所述服务端基于所述请求密文数据返回的响应密文数据以及所述会话标识;
根据与所述会话标识对应的所述会话密钥对所述响应密文数据进行解密,得到响应数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述请求数据确定对应的签名信息;
根据所述请求密文数据和所述签名信息,生成应用请求;
将所述会话标识和所述应用请求发送至所述服务端,以使所述服务端基于所述签名信息对所述请求密文数据进行验证。
3.根据权利要求2所述的方法,其特征在于,所述请求数据包括参数数据和输入数据,所述基于所述请求数据确定对应的签名信息,包括:
根据所述参数数据中的参数名以及对应于所述参数名的参数值,得到第一字符信息;
将所述第一字符串信息和所述输入数据进行拼接,得到第二字符信息;
对所述第二字符信息进行加密和编码,得到所述签名信息。
4.根据权利要求3所述的方法,其特征在于,所述根据所述参数数据中的参数名以及对应于所述参数名的参数值,得到第一字符信息,包括:
对所述参数名以及对应于所述参数名的参数值进行编码,得到目标参数名以及对应于所述目标参数名的目标参数值;所述目标参数名和所述目标参数值为字符格式;
根据所述目标参数名,确定所述目标参数名的排列顺序;
基于所述排列顺序,对所述目标参数名和对应于所述目标参数名的目标参数值进行拼接,得到第一字符信息。
5.根据权利要求3所述的方法,其特征在于,所述对所述第二字符信息进行加密和编码,得到所述签名信息,包括:
根据所述参数数据,确定签名配置信息,所述签名配置信息包括签名算法和签名密钥;
根据所述签名配置信息对所述第二字符信息进行加密,得到第三字符信息;
对所述第三字符信息进行编码,得到签名参数值,将所述签名参数值和签名参数名作为所述签名信息。
6.根据权利要求1所述的方法,其特征在于,所述会话密钥是在所述虚拟键盘初始化时由所述客户端时生成的,以及所述会话标识是在所述虚拟键盘初始化时所述服务端基于所述会话密钥对应分配的,包括:
响应于所述虚拟键盘的初始化指令,随机生成所述会话密钥;
确定所述应用程序对应的客户端公钥,并利用所述客户端公钥对所述会话密钥进行加密,得到密文密钥;
将所述密文密钥发送至所述服务端,以使所述服务端根据所述应用程序对应的服务端私钥对所述密文密钥进行解密得到所述会话密钥,并为所述会话密钥分配对应的所述会话标识;
接收并存储所述服务端返回的所述会话标识,所述会话标识为所述客户端与所述服务端的当前通信标识。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
响应于所述初始化指令,确定初始化请求数据;
利用所述会话密钥对所述初始化请求数据进行加密,得到初始化请求密文数据;
将所述初始化请求密文数据发送至所述服务端,以使所述服务端根据解密得到的所述会话密钥对所述初始化请求密文数据进行解密得到所述初始化请求数据,并基于所述初始化请求数据生成初始化响应数据;
接收所述服务端返回的初始化响应密文数据,所述初始化响应密文数据是根据所述会话密钥对所述初始化响应数据进行加密得到的;
根据所述会话密钥对所述初始化响应密文数据进行解密,得到所述初始化响应数据;
根据所述初始化响应数据,完成所述虚拟键盘的初始化。
8.一种基于虚拟键盘的数据传输方法,其特征在于,应用于服务端,所述方法包括:
接收客户端发送的会话标识和请求密文数据,所述会话标识为所述客户端与所述服务端的当前通信标识;
确定与所述会话标识对应的会话密钥,并根据所述会话密钥对所述请求密文数据进行解密,得到对应的请求数据;所述会话密钥是在所述虚拟键盘初始化时由所述客户端生成的;所述会话标识是在所述虚拟键盘初始化时所述服务端基于所述会话密钥对应分配的;
基于所述请求数据,确定对应的响应数据,并利用所述会话密钥对所述响应数据进行加密,得到响应密文数据;
将所述响应密文数据和所述会话标识发送至所述客户端,以使所述客户端根据所述会话标识确定对应的所述会话密钥,并利用所述会话密钥对所述响应密文数据进行解密。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的会话标识和应用请求,所述应用请求包括所述请求密文数据和对应的签名信息;
基于所述签名信息,对所述请求密文数据进行验证,得到验签结果,所述验签结果指示所述请求密文数据是否被篡改。
10.根据权利要求8所述的方法,其特征在于,所述会话标识是在所述虚拟键盘初始化时所述服务端基于所述会话密钥对应分配的,包括:
在所述虚拟键盘的初始化过程中,接收所述客户端发送的密文密钥,所述密文密钥是所述客户端利用应用程序对应的客户端公钥对所述会话密钥进行加密得到,所述会话密钥是在所述虚拟键盘初始化时由所述客户端生成的;
根据所述应用程序对应的服务端私钥,对所述密文密钥进行解密得到所述会话密钥,并为所述会话密钥分配对应的所述会话标识。
11.一种基于虚拟键盘的数据传输装置,其特征在于,应用于客户端,所述装置包括:
数据获取模块,用于在当前应用程序的界面中显示虚拟键盘,响应于基于所述虚拟键盘的输入指令,获取请求数据;
第一会话加密模块,用于确定会话密钥和对应的会话标识,并利用所述会话密钥对所述请求数据进行加密,得到请求密文数据;所述会话密钥是在所述虚拟键盘初始化时由所述客户端时生成的,所述会话标识为所述客户端与服务端的当前通信标识,所述会话标识是在所述虚拟键盘初始化时所述服务端基于所述会话密钥对应分配的;
第一数据收发模块,用于将所述会话标识和所述请求密文数据发送至所述服务端,并接收所述服务端基于所述请求密文数据返回的响应密文数据以及所述会话标识;
第一会话解密模块,用于根据与所述会话标识对应的所述会话密钥对所述响应密文数据进行解密,得到响应数据。
12.一种基于虚拟键盘的数据传输装置,其特征在于,应用于服务端,所述装置包括:
第二数据接收模块,用于接收客户端发送的会话标识和请求密文数据,所述会话标识为所述客户端与所述服务端的当前通信标识;
第二会话解密模块,用于确定与所述会话标识对应的会话密钥,并根据所述会话密钥对所述请求密文数据进行解密,得到对应的请求数据;所述会话密钥是在所述虚拟键盘初始化时由所述客户端生成的;所述会话标识是在所述虚拟键盘初始化时所述服务端基于所述会话密钥对应分配的;
第二会话加密模块,用于基于所述请求数据,确定对应的响应数据,并利用所述会话密钥对所述响应数据进行加密,得到响应密文数据;
第二数据发送模块,用于将所述响应密文数据和所述会话标识发送至所述客户端,以使所述客户端根据所述会话标识确定对应的所述会话密钥,并利用所述会话密钥对所述响应密文数据进行解密。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1至10中任一项所述的一种基于虚拟键盘的数据传输方法。
14.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由所述处理器加载并执行以实现如权利要求1至10中任一项所述的一种基于虚拟键盘的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111336458.0A CN116132075A (zh) | 2021-11-12 | 2021-11-12 | 基于虚拟键盘的数据传输方法、装置、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111336458.0A CN116132075A (zh) | 2021-11-12 | 2021-11-12 | 基于虚拟键盘的数据传输方法、装置、介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116132075A true CN116132075A (zh) | 2023-05-16 |
Family
ID=86301368
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111336458.0A Pending CN116132075A (zh) | 2021-11-12 | 2021-11-12 | 基于虚拟键盘的数据传输方法、装置、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116132075A (zh) |
-
2021
- 2021-11-12 CN CN202111336458.0A patent/CN116132075A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110493261B (zh) | 基于区块链的验证码获取方法、客户端、服务器及存储介质 | |
US20210056541A1 (en) | Method and system for mobile cryptocurrency wallet connectivity | |
CN101605137B (zh) | 安全分布式文件系统 | |
CN113691502B (zh) | 通信方法、装置、网关服务器、客户端及存储介质 | |
US8495383B2 (en) | Method for the secure storing of program state data in an electronic device | |
EP2251810B1 (en) | Authentication information generation system, authentication information generation method, and authentication information generation program utilizing a client device and said method | |
CN108199847B (zh) | 数字安全处理方法、计算机设备及存储介质 | |
CN111131416A (zh) | 业务服务的提供方法和装置、存储介质、电子装置 | |
CN109660534B (zh) | 基于多商户的安全认证方法、装置、电子设备及存储介质 | |
CN112565265B (zh) | 物联网终端设备间的认证方法、认证系统及通讯方法 | |
CN114465803B (zh) | 对象授权方法、装置、系统及存储介质 | |
CN114244508B (zh) | 数据加密方法、装置、设备及存储介质 | |
CN117240625B (zh) | 一种涉及防篡改的数据处理方法、装置及电子设备 | |
CN116250209A (zh) | 分布式计算系统中的数据管理和加密 | |
CN112291201A (zh) | 业务请求的传输方法及装置、电子设备 | |
CN112004201A (zh) | 一种短信的发送方法、装置及计算机系统 | |
CN115276978A (zh) | 一种数据处理方法以及相关装置 | |
CN114697113A (zh) | 一种基于硬件加速卡的多方隐私计算方法、装置及系统 | |
Rossudowski et al. | A security privacy aware architecture and protocol for a single smart card used for multiple services | |
CN109450643B (zh) | Android平台上基于native服务实现的签名验签方法 | |
CN116049802A (zh) | 应用单点登陆方法、系统、计算机设备和存储介质 | |
CN113592484B (zh) | 一种账户的开立方法、系统及装置 | |
CN114124440A (zh) | 安全传输方法、装置、计算机设备和存储介质 | |
KR100883442B1 (ko) | 온라인 서비스를 사용하여 직접 증명 비밀키를 디바이스에전달하는 방법 | |
CN116132075A (zh) | 基于虚拟键盘的数据传输方法、装置、介质及设备 |
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 |