CN105791258A - 一种数据传输方法、终端及开放平台 - Google Patents
一种数据传输方法、终端及开放平台 Download PDFInfo
- Publication number
- CN105791258A CN105791258A CN201410838776.0A CN201410838776A CN105791258A CN 105791258 A CN105791258 A CN 105791258A CN 201410838776 A CN201410838776 A CN 201410838776A CN 105791258 A CN105791258 A CN 105791258A
- Authority
- CN
- China
- Prior art keywords
- key
- encryption
- open platform
- signature
- terminal
- 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
Landscapes
- Storage Device Security (AREA)
Abstract
本发明涉及计算机技术领域,本发明实施例提供一种数据传输方法、终端及开放平台,包括:终端获取签名密钥和加密密钥;终端根据待传输数据生成发送数据摘要,根据所述签名密钥对所述发送数据摘要进行加密得到用户签名;根据所述加密密钥对所述待传输数据进行加密,并将加密后的待传输数据与所述用户签名进行封装,得到加密数据报文;将所述加密数据报文发送给开放平台。根据本发明实施例提供的方法及装置,实现了终端和开放平台之间数据传输的保密性,克服了现有技术中,终端和开放平台数据通讯加密技术无法抵抗重放和中间人攻击等问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据传输方法、终端及开放平台。
背景技术
随着互联网应用及服务的日益普及,消费者模式的不断变迁,日新月异的互联网创新模式已向IT运营领域不断渗透。受到Apple公司应用商城成功模式的影响,电信运营商开始研究和逐步推出基于电信能力的开放性平台。通过电信运营商的电信能力开放平台可以降低开发和业务运营门槛,同时引入的第三方开发者可以丰富开放平台中应用的数量和种类,在提高用户粘性的同时,也增加了运营商的经济收入,但是开放平台的一系列安全问题成为了国内外平台发展的隐患。
尤其,开放平台和开发者之间如何进行安全的数据传输,仍然是一个需要解决的问题。
发明内容
本发明实施例提供一种数据传输方法、终端及开放平台,用以解决如何在开放平台和开发者之间进行安全的数据传输的问题。
本发明实施例提供一种数据传输方法,包括:
终端获取签名密钥和加密密钥;
终端根据待传输数据生成发送数据摘要,根据所述签名密钥对所述发送数据摘要进行加密得到用户签名;
根据所述加密密钥对所述待传输数据进行加密,并将加密后的待传输数据与所述用户签名进行封装,得到加密数据报文;
将所述加密数据报文发送给开放平台。
较佳的,所述终端获取签名密钥和加密密钥,还包括:
所述终端获取与所述签名密钥对应的第一密钥标识;
所述终端获取与所述加密密钥对应的第二密钥标识;
所述加密数据报文的报头中还包括所述第一密钥标识与所述第二密钥标识,以便所述开放平台根据所述第一密钥标识获取与所述第一密钥标识对应的解签名密钥,以及根据所述第二密钥标识获取与所述第二密钥标识对应的解密密钥。
较佳的,所述终端获取签名密钥和加解密密钥,包括:
所述终端判断终端签名密钥缓存池中是否存在有效的签名密钥;
若存在,则在所述终端签名密钥缓存池中获取所述签名密钥,否则,通过所述开放平台获取所述签名密钥;
所述终端判断终端加密密钥缓存池中是否存在有效的加密密钥;
若存在,则在所述终端加密密钥缓存池中获取所述加密密钥,否则,通过所述开放平台获取所述加密密钥。
较佳的,所述终端获取签名密钥和加解密密钥,包括:
所述终端向所述开放平台发送经过主密钥加密的签名密钥请求消息,并接收所述开放平台发送的所述签名密钥,所述签名密钥为所述开放平台在根据相应的主密钥解密所述签名密钥请求消息后从开放平台签名密钥缓存池中获取到的;
所述终端向所述开放平台发送经过主密钥加密的加密密钥请求消息,并接收所述开放平台发送的所述加密密钥,所述加密密钥为所述开放平台在根据相应的主密钥解密所述签名密钥请求消息后从开放平台加解密密钥缓存池中获取到的。
本发明实施例还一种数据传输方法,该方法包括:
开放平台接收终端发送的加密数据报文;
所述开放平台根据存储的所述终端的解密密钥对接收到的所述加密数据报文进行解密获得终端传输的数据报文,并对所述数据报文进行摘要,得到接收数据摘要;
所述开放平台根据存储的所述终端的解签名密钥对所述加密数据报文中的用户签名进行解密,获得发送数据摘要,并通过比较所述发送数据摘要与所述接收数据摘要对所述终端传输的所述加密数据报文进行验证。
较佳的,所述开放平台根据存储的所述终端的解密密钥对接收到的所述加密数据报文进行解密获得终端传输的数据报文,包括:
所述开放平台根据所述加密数据报文的报头中的第二密钥标识确定出与所述第二密钥标识对应的解密密钥;
所述开放平台通过所述解密密钥对所述加密数据报文进行解密获得所述终端传输的数据报文;
所述根据存储的所述终端的解签名密钥对所述加密数据报文中的用户签名进行解密,包括:
所述开放平台根据所述加密数据报文的报头中的第二密钥标识确定出与所述第二密钥标识对应的解签名密钥;
所述开放平台通过所述解签名密钥对所述用户签名进行解密。
较佳的,还包括:
所述开放平台接收所述终端发送的通过主密钥加密的签名密钥请求消息,并根据存储的相应的主密钥解密所述签名密钥请求消息后获取签名密钥,并使用所述相应的主密钥将所述签名密钥加密后发送给所述终端;和/或,
所述开发平台接收所述终端发送的通过主密钥加密的加密密钥请求消息,并根据存储的相应的主密钥解密所述加密密钥请求消息后获取加密密钥并使用所述相应的主密钥将所述加密密钥加密后发送给所述终端。
较佳的,所述根据存储的相应的主密钥解密所述签名密钥请求消息后获取签名密钥,包括:
所述开放平台判断开放平台签名密钥缓存池中是否存在有效的签名密钥,若存在,则在所述开放平台签名密钥缓存池中获取所述签名密钥,否则,所述开放平台生成新的签名密钥存放在所述开放平台签名密钥缓存池中,并获取所述签名密钥;
所述根据存储的相应主密钥解密所述加密密钥请求消息后获取加密密钥,包括:
所述开放平台判断开放平台加密密钥缓存池中是否存在有效的加密密钥,若存在,则在所述开放平台加密密钥缓存池中确定出所述加密密钥,否则,所述开放平台生成新的加密密钥存放在所述开放平台加密密钥缓存池中,并确定出所述加密密钥。
本发明实施例提供一种终端,包括:
获取单元,用于获取签名密钥和加密密钥;
用户签名确定单元,用于根据待传输数据生成发送数据摘要,根据所述签名密钥对所述发送数据摘要进行加密得到用户签名;
加密数据报文确定单元,用于根据所述加密密钥对所述待传输数据进行加密,并将加密后的待传输数据与所述用户签名进行封装,得到加密数据报文;
发送单元,用于将所述加密数据报文发送给开放平台。
较佳的,所述获取单元还用于:
获取与所述签名密钥对应的第一密钥标识;
获取与所述加密密钥对应的第二密钥标识;
所述加密数据报文的报头中还包括所述第一密钥标识与所述第二密钥标识,以便所述开放平台根据所述第一密钥标识获取与所述第一密钥标识对应的解签名密钥,以及根据所述第二密钥标识获取与所述第二密钥标识对应的解密密钥。
较佳的,所述获取单元用于:
判断终端签名密钥缓存池中是否存在有效的签名密钥;
若存在,则在所述终端签名密钥缓存池中获取所述签名密钥,否则,通过所述开放平台获取所述签名密钥;
判断终端加密密钥缓存池中是否存在有效的加密密钥;
若存在,则在所述终端加密密钥缓存池中获取所述加密密钥,否则,通过所述开放平台获取所述加密密钥。
较佳的,所述获取单元用于:
向所述开放平台发送经过主密钥加密的签名密钥请求消息,并接收所述开放平台发送的所述签名密钥,所述签名密钥为所述开放平台在根据相应的主密钥解密所述签名密钥请求消息后从开放平台签名密钥缓存池中获取到的;
向所述开放平台发送经过主密钥加密的加密密钥请求消息,并接收所述开放平台发送的所述加密密钥,所述加密密钥为所述开放平台在根据相应的主密钥解密所述签名密钥请求消息后从开放平台加解密密钥缓存池中获取到的。
本发明实施例提供一种开放平台,包括:
接收单元,用于接收终端发送的加密数据报文;
解密单元,用于根据存储的所述终端的解密密钥对接收到的所述加密数据报文进行解密获得终端传输的数据报文,并对所述数据报文进行摘要,得到接收数据摘要;
验证单元,用于根据存储的所述终端的解签名密钥对所述加密数据报文中的用户签名进行解密,获得发送数据摘要,并通过比较所述发送数据摘要与所述接收数据摘要对所述终端传输的所述加密数据报文进行验证。
较佳的,所述解密单元用于:
根据所述加密数据报文的报头中的第二密钥标识确定出与所述第二密钥标识对应的解密密钥;
通过所述解密密钥对所述加密数据报文进行解密获得所述终端传输的数据报文;
所述解密单元还用于:
根据所述加密数据报文的报头中的第二密钥标识确定出与所述第二密钥标识对应的解签名密钥;
通过所述解签名密钥对所述用户签名进行解密。
较佳的,所述接收单元还用于:
接收所述终端发送的通过主密钥加密的签名密钥请求消息,并根据存储的相应的主密钥解密所述签名密钥请求消息后获取签名密钥,并使用所述相应的主密钥将所述签名密钥加密后发送给所述终端;和/或,
接收所述终端发送的通过主密钥加密的加密密钥请求消息,并根据存储的相应的主密钥解密所述加密密钥请求消息后获取加密密钥并使用所述相应的主密钥将所述加密密钥加密后发送给所述终端。
较佳的,所述接收单元还用于:
判断开放平台签名密钥缓存池中是否存在有效的签名密钥,若存在,则在所述开放平台签名密钥缓存池中获取所述签名密钥,否则,所述开放平台生成新的签名密钥存放在所述开放平台签名密钥缓存池中,并获取所述签名密钥;
判断开放平台加密密钥缓存池中是否存在有效的加密密钥,若存在,则在所述开放平台加密密钥缓存池中确定出所述加密密钥,否则,所述开放平台生成新的加密密钥存放在所述开放平台加密密钥缓存池中,并确定出所述加密密钥。
本发明实施例中,终端通过签名密钥对待传输数据进行签名获得用户签名,同时通过加密密钥对待传输数据进行加密,实现了终端和开放平台之间数据传输的保密性,克服了现有技术中,终端和开放平台数据通讯加密技术无法抵抗重放和中间人攻击等问题。同时本发明实施例中,开放平台在接收到用户发送的加密数据报文后,根据解密密钥对加密数据报文进行解密,得到数据报文,从而保证了传输的数据报文的保密性;对数据报文进行摘要得到接收数据摘要,并根据解签名密钥对用户签名解密得到发送数据摘要,比较接收数据摘要与发送数据摘要的一致性判断传输的数据报文是否被更改。由于签名密钥以及加密密钥的存在,有效的解决了开放平台和终端之间进行安全的数据传输的问题。
附图说明
图1为本发明实施例提供的一种数据传输方法流程图;
图2为本发明实施例提供的另一种数据传输方法流程图;
图3为本发明实施例提供的一种终端结构图;
图4为本发明实施例提供的一种开放平台结构图。
具体实施方式
下面结合说明书附图对本发明实施例做详细描述。
如图1所示,本发明实施例提供的一种数据传输方法流程图,该方法包括:
步骤101:终端获取签名密钥和加解密密钥;
步骤102:终端根据待传输数据生成发送数据摘要,根据所述签名密钥对所述发送数据摘要进行加密得到用户签名;
步骤103:根据所述加密密钥对所述待传输数据进行加密,并将加密后的待传输数据与所述用户签名进行封装,得到加密数据报文;
步骤104:将所述加密数据报文发送给开放平台。
本发明实施例中,终端和开放平台之间会使用三种相对应的密钥:主密钥、签名密钥与解签名密钥、加密密钥和解密密钥。每一种密钥都至少包括以下属性:
密钥值;
密钥标识,每个密钥都有一个唯一的标识,终端和开放平台可以根据密钥标识确定出对应的密钥;
密钥有效期开始时间;密钥有效期结束时间;为了保证数据的安全,为每个密钥设定一个有效期,终端或者开放平台只能使用处于密钥有效期内的密钥进行加密;
密钥状态为有效或无效,用来指示终端或者开放平台确定出该密钥是否仍然有效,如果为无效状态,则不能使用该密钥;
密钥类型,用来指示终端或者开放平台确定该密钥的类型,可以为预共享密钥类型(Pre-Sharedkey,PSK)等;
密钥算法类型,可以为3DES、DES(数据加密标准,dataencryptionstandard)以及AES等加密算法。
当终端在开放平台注册时,开放平台会给该终端分配一个主密钥,主密钥是对称密钥。在终端发送消息给开放平台之前,开放平台需要对终端进行身份验证。具体的,终端生成一个随机数,采用主密钥对该随机数进行加密后,发送给开放平台。开放平台接收到加密后的随机数,采用主密钥对该加密后的随机数进行解密,当开放平台解密获得一个随机数后,就可以确认该终端是合法的终端。主密钥是在传输过程中为签名密钥和加解密密钥做加密所使用的密钥。主密钥是通过HTTPS(超文本传输协议,HyperTextTransferProtocol)协议传输的,所以主密钥的安全性可以得到保证,由于主密钥是安全的,所以主密钥是长期有效,并且可以重置的。在加密签名密钥和加密密钥时,主密钥选用对称加密算法,一般选用3DES、DES或者AES等加密算法。另主密钥可以在开发者门户中获取。签名密钥是在传输报文中做签名所使用的密钥,加密密钥是在传输报文中为数据报文加密所使用的密钥。签名密钥和加密密钥都是由开放平台生成并颁发的。
在步骤101中,终端在确定所需的签名密钥时,首先在终端签名密钥缓存池中确认是否存在有效的签名密钥。终端签名密钥缓存池是保存在终端处,里面存放了很多开放平台颁发的签名密钥,如果终端发现终端签名密钥缓存池中没有有效的签名密钥,终端会向开放平台申请新的签名密钥。具体的,终端判断终端签名密钥缓存池中是否存在有效的签名密钥;若存在,则在所述终端签名密钥缓存池中确定出所述签名密钥,否则,通过所述开放平台确定所述签名密钥。终端在确定终端签名密钥缓存池中存在有效的签名密钥后,通过随机选择的方式获得一个签名密钥。
终端没有从终端签名密钥缓存池中获取到签名密钥,则通过主密钥加密的签名密钥请求消息向开放平台申请签名密钥。在终端发送请求消息给开放平台之前,开放平台需要对终端进行身份验证。当开放平台确认该终端是合法的终端后,终端开始向开放平台申请新的签名密钥。
具体的,终端向开放平台发送经过主密钥加密的签名密钥请求消息,以便所述开放平台根据所述签名密钥请求消息在开放平台签名密钥缓存池中确定出所述签名密钥,并接收所述开放平台发送的通过相应主密钥加密后的所述签名密钥。
开放平台接收终端发送的通过主密钥加密的签名密钥请求消息,并根据所述签名密钥请求消息将确定出的所述签名密钥发送给所述终端。具体的,开放平台判断开放平台签名密钥缓存池中是否存在有效的签名密钥,若存在,则在所述开放平台签名密钥缓存池中确定出所述签名密钥,否则,所述开放平台生成新的签名密钥存放在所述开放平台签名密钥缓存池中,并确定出所述签名密钥;所述开放平台将确定出的所述签名密钥通过相应主密钥加密后发送给所述终端。
终端在获得开放平台发送的通过相应主密钥加密的签名密钥后,将签名密钥存放在终端签名密钥缓存池中。为了保证签名密钥的安全,签名密钥只短期有效,在一定时间后签名密钥将失效,不能被使用,需要重新申请签名密钥,这样即使签名密钥泄漏也不能再被冒用。
同样的,终端在确定所需的加密密钥时,首先在终端加密密钥缓存池中确认是否存在有效的加密密钥。终端加密密钥缓存池是保存在终端处,里面存放了很多来自开放平台的加密密钥,如果终端发现终端加密密钥缓存池中没有有效的加密密钥,终端会向开放平台申请新的加密密钥。具体的,终端判断终端加密密钥缓存池中是否存在有效的加密密钥;若存在,则在所述终端加密密钥缓存池中确定出加密密钥,否则,通过所述开放平台确定所述加密密钥。终端在确定终端加密密钥缓存池中存在有效的加密密钥后,通过随机选择的方式获得一个加密密钥。
终端没有从终端加密密钥缓存池中获取到加密密钥,则通过主密钥加密的加密密钥请求消息向开放平台申请加密密钥。主密钥是由开放平台分配给终端的。在终端发送请求消息给开放平台之前,开放平台需要对终端进行身份验证。具体验证方法和上述描述相同,在此不再赘述。当终端被开放平台验证通过后,终端开始向开放平台申请新的签名密钥。
具体的,终端向开放平台发送经过主密钥加密的加密密钥请求消息,以便所述开放平台根据所述加密密钥请求消息在开放平台加密密钥缓存池中确定出所述加密密钥,并接收所述开放平台发送的通过相应主密钥加密后的加密密钥。
开放平台接收终端发送的通过主密钥加密的加密密钥请求消息,并根据所述加密密钥请求消息将确定出的所述加密密钥发送给所述终端。具体的,开放平台判断开放平台加密密钥缓存池中是否存在有效的加密密钥,若存在,则在所述开放平台加密密钥缓存池中确定出所述加密密钥,否则,所述开放平台生成新的加密密钥存放在所述开放平台加密密钥缓存池中,并确定出所述加密密钥;所述开放平台将确定出的所述加密密钥通过相应主密钥加密后发送给所述终端。
终端在获得开放平台发送的通过相应主密钥加密的加密密钥后,将加密密钥存放在终端加密密钥缓存池中。为了保证加密密钥的安全,加密密钥只短期有效,在一定时间后加密密钥将失效,不能被使用,需要重新申请加密密钥,这样即使加密密钥泄漏也不能再被用来解密传输的数据。
在步骤102中,终端根据确定出的签名密钥对待传输数据进行签名得到用户签名,具体的,首先,终端采用一种摘要算法从待传输数据中生成一个128位的散列值,一般采用的摘要算法为MD5(讯息摘要5,MessageDigest5),该散列值一般称为报文摘要,此处为发送数据摘要;然后,终端用签名密钥对该散列值进行加密,产生一个摘要密文,这就是终端的用户签名;最后,终端将该用户签名和加密后的待传输数据一起发送给开放平台。终端还可以采用其他方式对待传输数据进行签名得到用户签名,在此并不限定。
同时,终端还根据确定出的加密密钥对待传输数据进行加密,将加密后的待传输数据及用户签名封装为加密数据报文。具体的,终端将第一密钥标识、所述第二密钥标识以及用户签名封装在加密数据报文的报头中。由于签名密钥对应的第一密钥标识,以及加密密钥对应的第二密钥标识封装在加密数据报文的报头中,所以开放平台在接收到终端发送的加密数据报文后,根据该第一密钥标识获取对应的解签名密钥,并解密出用户签名。同样的,开放平台根据该第二密钥标识获取对应的解密密钥,并解密加密数据报文获得终端传输的数据。
在步骤103中,终端将加密数据报文发送给开放平台。终端可以是通过有线传输的方式发送加密数据报文,也可以是无线传输的方式发送加密数据报文,在此并不做任何限定。
如图2所示,本发明实施例提供的另一种数据传输方法流程图,该方法包括:
步骤201:开放平台接收终端发送的加密数据报文;
步骤202:开放平台根据存储的所述终端的解密密钥对接收到的所述加密数据报文进行解密获得终端传输的数据报文,并对所述数据报文进行摘要,得到接收数据摘要;
步骤203::开放平台根据存储的所述终端的解签名密钥对所述加密数据报文中的用户签名进行解密,获得发送数据摘要,并通过比较所述发送数据摘要与所述接收数据摘要对所述终端传输的所述加密数据报文进行验证。
在步骤202中,开放平台根据加密数据报文的报头中的第一密钥标识再确定出与该第一密钥标识对应的解签名密钥,相应的,开放平台根据第二密钥标识确定出解密密钥。开放平台根据第二密钥标识确定出终端采用的解密密钥,并对该加密数据报文进行解密,获得终端传输的数据报文,并采用与终端相同的摘要算法对该数据报文进行计算,获得一个128位的散列值,即接收数据摘要;
在步骤203中,开放平台根据确定出的解签名密钥对用户签名解密。具体的,开放平台从终端接收到加密数据报文后,从加密数据报文的报头中获得终端的用户签名;开放平台根据第一密钥标识确定出终端采用的签名密钥,并对该用户签名进行解密,获得一个128位的散列值,即发送数据摘要;如果开放平台获得接收数据摘要和发送数据摘要相同,那么开放平台就能确认加密数据报文是由终端发送的且完整的数据报文。
签名密钥和加密密钥是由开放平台生成并颁发给终端的。终端在本地的终端签名密钥缓存池存放了部分签名密钥,在本地的终端加密密钥缓存池中存放了部分加密密钥。当终端确定终端签名密钥缓存池中没有有效的签名密钥后,会向开放平台发送签名密钥请求消息,申请新的签名密钥。同样的,当终端确定终端加密密钥缓存池中没有有效的加密密钥后,会向开放平台发送加密密钥请求消息,申请新的加密密钥。
开放平台接收到签名密钥请求消息后,在开放平台签名密钥缓存池中确定出签名密钥,如果开放平台签名密钥缓存池中没有有效的签名密钥,开放平台会生成新的签名密钥,并存放在开放平台签名密钥缓存池中。开放平台将从开放平台签名密钥缓存池中确定出的签名密钥通过相应主密钥加密后发送给终端。开放平台接收到加密密钥请求消息后,通过同样的方式确定出加解密密钥,并发送给终端。
下面通过具体的实施例,详细描述终端和开放平台之间是如何交换签名密钥或者加密密钥的。
实施例一
步骤一:终端在终端签名密钥缓存池中确认是否存在有效的签名密钥,如果存在,则随机选取一个签名密钥;否则,转到步骤二;
步骤二:终端通过主密钥加密发送签名密钥请求消息给开放平台;
步骤三:开放平台根据接收到的终端发送的签名密钥请求消息,在开放平台签名密钥缓存池中确定是否存在有效的签名密钥;若存在,则确定出签名密钥,并转到步骤五;否则转到步骤四;
步骤四:开放平台生成新的签名密钥,存放在开放平台签名密钥缓存池中,并确定出签名密钥;
步骤五:开放平台将确定出的签名密钥通过相应主密钥加密发送给终端;
步骤六:终端将接收到的签名密钥存放在终端签名密钥缓存池中,并根据在签名密钥缓存池中确定出的签名密钥对待传输数据进行签名得到用户签名。
实施例二
步骤一:终端在终端加密密钥缓存池中确认是否存在有效的加密密钥,如果存在,则随机选取一个加密密钥;否则,转到步骤二;
步骤二:终端通过主密钥加密发送加密密钥请求消息给开放平台;
步骤三:开放平台根据接收到的终端发送的加密密钥请求消息,在开放平台加密密钥缓存池中确定是否存在有效的加密密钥;若存在,则确定出加密密钥,并转到步骤五;否则转到步骤四;
步骤四:开放平台生成新的加密密钥,存放在开放平台加密密钥缓存池中,并确定出加密密钥;
步骤五:开放平台将确定出的加密密钥通过主密钥加密后发送给终端;
步骤六:终端将接收到的加解密密钥存放在终端加密密钥缓存池中,并根据在加密密钥缓存池中确定出的加密密钥对待传输数据进行加密。
针对上述方法流程,本发明实施例还提供一种终端和开放平台,该终端和开放平台的具体内容可以参照上述方法实施,在此不再赘述。
如图3所示,本发明实施例提供一种终端,包括:
获取单元301,用于获取签名密钥和加密密钥;
用户签名确定单元302,用于根据待传输数据生成发送数据摘要,根据所述签名密钥对所述发送数据摘要进行加密得到用户签名;
加密数据报文确定单元303,用于根据所述加密密钥对所述待传输数据进行加密,并将加密后的待传输数据与所述用户签名进行封装,得到加密数据报文;
发送单元304,用于将所述加密数据报文发送给开放平台。
较佳的,所述获取单元301还用于:
获取与所述签名密钥对应的第一密钥标识;
获取与所述加密密钥对应的第二密钥标识;
所述加密数据报文的报头中还包括所述第一密钥标识与所述第二密钥标识,以便所述开放平台根据所述第一密钥标识获取与所述第一密钥标识对应的解签名密钥,以及根据所述第二密钥标识获取与所述第二密钥标识对应的解密密钥。
较佳的,所述获取单元301用于:
判断终端签名密钥缓存池中是否存在有效的签名密钥;
若存在,则在所述终端签名密钥缓存池中获取所述签名密钥,否则,通过所述开放平台获取所述签名密钥;
判断终端加密密钥缓存池中是否存在有效的加密密钥;
若存在,则在所述终端加密密钥缓存池中获取所述加密密钥,否则,通过所述开放平台获取所述加密密钥。
较佳的,所述获取单元301用于:
向所述开放平台发送经过主密钥加密的签名密钥请求消息,并接收所述开放平台发送的所述签名密钥,所述签名密钥为所述开放平台在根据相应的主密钥解密所述签名密钥请求消息后从开放平台签名密钥缓存池中获取到的;
向所述开放平台发送经过主密钥加密的加密密钥请求消息,并接收所述开放平台发送的所述加密密钥,所述加密密钥为所述开放平台在根据相应的主密钥解密所述签名密钥请求消息后从开放平台加解密密钥缓存池中获取到的。
如图4所示,本发明实施例提供一种开放平台,包括:
接收单元401,用于接收终端发送的加密数据报文;
解密单元402,用于根据存储的所述终端的解密密钥对接收到的所述加密数据报文进行解密获得终端传输的数据报文,并对所述数据报文进行摘要,得到接收数据摘要;
验证单元403,用于根据存储的所述终端的解签名密钥对所述加密数据报文中的用户签名进行解密,获得发送数据摘要,并通过比较所述发送数据摘要与所述接收数据摘要对所述终端传输的所述加密数据报文进行验证。
较佳的,所述解密单元402用于:
根据所述加密数据报文的报头中的第二密钥标识确定出与所述第二密钥标识对应的解密密钥;
通过所述解密密钥对所述加密数据报文进行解密获得所述终端传输的数据报文;
所述解密单元还402用于:
根据所述加密数据报文的报头中的第二密钥标识确定出与所述第二密钥标识对应的解签名密钥;
通过所述解签名密钥对所述用户签名进行解密。
较佳的,所述接收单元401还用于:
接收所述终端发送的通过主密钥加密的签名密钥请求消息,并根据存储的相应的主密钥解密所述签名密钥请求消息后获取签名密钥,并使用所述相应的主密钥将所述签名密钥加密后发送给所述终端;和/或,
接收所述终端发送的通过主密钥加密的加密密钥请求消息,并根据存储的相应的主密钥解密所述加密密钥请求消息后获取加密密钥并使用所述相应的主密钥将所述加密密钥加密后发送给所述终端。
较佳的,所述接收单元401还用于:
判断开放平台签名密钥缓存池中是否存在有效的签名密钥,若存在,则在所述开放平台签名密钥缓存池中获取所述签名密钥,否则,所述开放平台生成新的签名密钥存放在所述开放平台签名密钥缓存池中,并获取所述签名密钥;
判断开放平台加密密钥缓存池中是否存在有效的加密密钥,若存在,则在所述开放平台加密密钥缓存池中确定出所述加密密钥,否则,所述开放平台生成新的加密密钥存放在所述开放平台加密密钥缓存池中,并确定出所述加密密钥。
综上所述,本发明实施例中,终端通过签名密钥对待传输数据进行签名获得用户签名,同时通过加密密钥对待传输数据进行加密,实现了终端和开放平台之间数据传输的保密性,克服了现有技术中,终端和开放平台数据通讯加密技术无法抵抗重放和中间人攻击等问题。同时本发明实施例中,开放平台在接收到用户发送的加密数据报文后,根据解密密钥对加密数据报文进行解密,得到数据报文,从而保证了传输的数据报文的保密性;对数据报文进行摘要的得到接收数据摘要,并根据解签名密钥对用户签名解密得到发送数据摘要,比较接收数据摘要与发送数据摘要的一致性判断传输的数据报文是否被更改。由于签名密钥以及加解密密钥的存在,有效的解决了开放平台和终端之间进行安全的数据传输的问题。同时签名密钥和加解密密钥都是具有时效性,只在有效期限内有效,因此即使签名密钥或者加解密密钥被泄露,也能避免更大的损失。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存放介质(包括但不限于磁盘存放器和光学存放器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存放在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存放器中,使得存放在该计算机可读存放器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (16)
1.一种数据传输方法,其特征在于,该方法包括:
终端获取签名密钥和加密密钥;
终端根据待传输数据生成发送数据摘要,根据所述签名密钥对所述发送数据摘要进行加密得到用户签名;
根据所述加密密钥对所述待传输数据进行加密,并将加密后的待传输数据与所述用户签名进行封装,得到加密数据报文;
将所述加密数据报文发送给开放平台。
2.如权利要求1所述的方法,其特征在于,所述终端获取签名密钥和加密密钥,还包括:
所述终端获取与所述签名密钥对应的第一密钥标识;
所述终端获取与所述加密密钥对应的第二密钥标识;
所述加密数据报文的报头中还包括所述第一密钥标识与所述第二密钥标识,以便所述开放平台根据所述第一密钥标识获取与所述第一密钥标识对应的解签名密钥,以及根据所述第二密钥标识获取与所述第二密钥标识对应的解密密钥。
3.如权利要求1所述的方法,其特征在于,所述终端获取签名密钥和加解密密钥,包括:
所述终端判断终端签名密钥缓存池中是否存在有效的签名密钥;
若存在,则在所述终端签名密钥缓存池中获取所述签名密钥,否则,通过所述开放平台获取所述签名密钥;
所述终端判断终端加密密钥缓存池中是否存在有效的加密密钥;
若存在,则在所述终端加密密钥缓存池中获取所述加密密钥,否则,通过所述开放平台获取所述加密密钥。
4.如权利要求1所述的方法,其特征在于,所述终端获取签名密钥和加解密密钥,包括:
所述终端向所述开放平台发送经过主密钥加密的签名密钥请求消息,并接收所述开放平台发送的所述签名密钥,所述签名密钥为所述开放平台在根据相应的主密钥解密所述签名密钥请求消息后从开放平台签名密钥缓存池中获取到的;
所述终端向所述开放平台发送经过主密钥加密的加密密钥请求消息,并接收所述开放平台发送的所述加密密钥,所述加密密钥为所述开放平台在根据相应的主密钥解密所述签名密钥请求消息后从开放平台加解密密钥缓存池中获取到的。
5.一种数据传输方法,其特征在于,该方法包括:
开放平台接收终端发送的加密数据报文;
所述开放平台根据存储的所述终端的解密密钥对接收到的所述加密数据报文进行解密获得终端传输的数据报文,并对所述数据报文进行摘要,得到接收数据摘要;
所述开放平台根据存储的所述终端的解签名密钥对所述加密数据报文中的用户签名进行解密,获得发送数据摘要,并通过比较所述发送数据摘要与所述接收数据摘要对所述终端传输的所述加密数据报文进行验证。
6.如权利要求5所述的方法,其特征在于,所述开放平台根据存储的所述终端的解密密钥对接收到的所述加密数据报文进行解密获得终端传输的数据报文,包括:
所述开放平台根据所述加密数据报文的报头中的第二密钥标识确定出与所述第二密钥标识对应的解密密钥;
所述开放平台通过所述解密密钥对所述加密数据报文进行解密获得所述终端传输的数据报文;
所述根据存储的所述终端的解签名密钥对所述加密数据报文中的用户签名进行解密,包括:
所述开放平台根据所述加密数据报文的报头中的第二密钥标识确定出与所述第二密钥标识对应的解签名密钥;
所述开放平台通过所述解签名密钥对所述用户签名进行解密。
7.如权利要求5所述的方法,其特征在于,还包括:
所述开放平台接收所述终端发送的通过主密钥加密的签名密钥请求消息,并根据存储的相应的主密钥解密所述签名密钥请求消息后获取签名密钥,并使用所述相应的主密钥将所述签名密钥加密后发送给所述终端;和/或,
所述开发平台接收所述终端发送的通过主密钥加密的加密密钥请求消息,并根据存储的相应的主密钥解密所述加密密钥请求消息后获取加密密钥并使用所述相应的主密钥将所述加密密钥加密后发送给所述终端。
8.如权利要求7所述的方法,其特征在于,所述根据存储的相应的主密钥解密所述签名密钥请求消息后获取签名密钥,包括:
所述开放平台判断开放平台签名密钥缓存池中是否存在有效的签名密钥,若存在,则在所述开放平台签名密钥缓存池中获取所述签名密钥,否则,所述开放平台生成新的签名密钥存放在所述开放平台签名密钥缓存池中,并获取所述签名密钥;
所述根据存储的相应主密钥解密所述加密密钥请求消息后获取加密密钥,包括:
所述开放平台判断开放平台加密密钥缓存池中是否存在有效的加密密钥,若存在,则在所述开放平台加密密钥缓存池中确定出所述加密密钥,否则,所述开放平台生成新的加密密钥存放在所述开放平台加密密钥缓存池中,并确定出所述加密密钥。
9.一种终端,其特征在于,包括:
获取单元,用于获取签名密钥和加密密钥;
用户签名确定单元,用于根据待传输数据生成发送数据摘要,根据所述签名密钥对所述发送数据摘要进行加密得到用户签名;
加密数据报文确定单元,用于根据所述加密密钥对所述待传输数据进行加密,并将加密后的待传输数据与所述用户签名进行封装,得到加密数据报文;
发送单元,用于将所述加密数据报文发送给开放平台。
10.如权利要求9所述的终端,其特征在于,所述获取单元还用于:
获取与所述签名密钥对应的第一密钥标识;
获取与所述加密密钥对应的第二密钥标识;
所述加密数据报文的报头中还包括所述第一密钥标识与所述第二密钥标识,以便所述开放平台根据所述第一密钥标识获取与所述第一密钥标识对应的解签名密钥,以及根据所述第二密钥标识获取与所述第二密钥标识对应的解密密钥。
11.如权利要求9所述的终端,其特征在于,所述获取单元用于:
判断终端签名密钥缓存池中是否存在有效的签名密钥;
若存在,则在所述终端签名密钥缓存池中获取所述签名密钥,否则,通过所述开放平台获取所述签名密钥;
判断终端加密密钥缓存池中是否存在有效的加密密钥;
若存在,则在所述终端加密密钥缓存池中获取所述加密密钥,否则,通过所述开放平台获取所述加密密钥。
12.如权利要求9所述的终端,其特征在于,所述获取单元用于:
向所述开放平台发送经过主密钥加密的签名密钥请求消息,并接收所述开放平台发送的所述签名密钥,所述签名密钥为所述开放平台在根据相应的主密钥解密所述签名密钥请求消息后从开放平台签名密钥缓存池中获取到的;
向所述开放平台发送经过主密钥加密的加密密钥请求消息,并接收所述开放平台发送的所述加密密钥,所述加密密钥为所述开放平台在根据相应的主密钥解密所述签名密钥请求消息后从开放平台加解密密钥缓存池中获取到的。
13.一种开放平台,其特征在于,包括:
接收单元,用于接收终端发送的加密数据报文;
解密单元,用于根据存储的所述终端的解密密钥对接收到的所述加密数据报文进行解密获得终端传输的数据报文,并对所述数据报文进行摘要,得到接收数据摘要;
验证单元,用于根据存储的所述终端的解签名密钥对所述加密数据报文中的用户签名进行解密,获得发送数据摘要,并通过比较所述发送数据摘要与所述接收数据摘要对所述终端传输的所述加密数据报文进行验证。
14.如权利要求13所述的开放平台,其特征在于,所述解密单元用于:
根据所述加密数据报文的报头中的第二密钥标识确定出与所述第二密钥标识对应的解密密钥;
通过所述解密密钥对所述加密数据报文进行解密获得所述终端传输的数据报文;
所述解密单元还用于:
根据所述加密数据报文的报头中的第二密钥标识确定出与所述第二密钥标识对应的解签名密钥;
通过所述解签名密钥对所述用户签名进行解密。
15.如权利要求13所述的开放平台,其特征在于,所述接收单元还用于:
接收所述终端发送的通过主密钥加密的签名密钥请求消息,并根据存储的相应的主密钥解密所述签名密钥请求消息后获取签名密钥,并使用所述相应的主密钥将所述签名密钥加密后发送给所述终端;和/或,
接收所述终端发送的通过主密钥加密的加密密钥请求消息,并根据存储的相应的主密钥解密所述加密密钥请求消息后获取加密密钥并使用所述相应的主密钥将所述加密密钥加密后发送给所述终端。
16.如权利要求15所述的开放平台,其特征在于,所述接收单元还用于:
判断开放平台签名密钥缓存池中是否存在有效的签名密钥,若存在,则在所述开放平台签名密钥缓存池中获取所述签名密钥,否则,所述开放平台生成新的签名密钥存放在所述开放平台签名密钥缓存池中,并获取所述签名密钥;
判断开放平台加密密钥缓存池中是否存在有效的加密密钥,若存在,则在所述开放平台加密密钥缓存池中确定出所述加密密钥,否则,所述开放平台生成新的加密密钥存放在所述开放平台加密密钥缓存池中,并确定出所述加密密钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410838776.0A CN105791258A (zh) | 2014-12-26 | 2014-12-26 | 一种数据传输方法、终端及开放平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410838776.0A CN105791258A (zh) | 2014-12-26 | 2014-12-26 | 一种数据传输方法、终端及开放平台 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105791258A true CN105791258A (zh) | 2016-07-20 |
Family
ID=56389168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410838776.0A Pending CN105791258A (zh) | 2014-12-26 | 2014-12-26 | 一种数据传输方法、终端及开放平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105791258A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106161472A (zh) * | 2016-09-05 | 2016-11-23 | 上海前隆金融信息服务有限公司 | 一种数据加密的方法、装置及系统 |
CN106972919A (zh) * | 2017-03-29 | 2017-07-21 | 北京奇虎科技有限公司 | 一种密钥协商方法和装置 |
CN107391974A (zh) * | 2017-07-19 | 2017-11-24 | 北京深思数盾科技股份有限公司 | 一种软件保护装置数据的备份方法及装置 |
CN107707536A (zh) * | 2017-09-26 | 2018-02-16 | 武汉默联股份有限公司 | 商业健康保险直赔直付系统与商保公司之间数据传输方法及系统 |
CN110519309A (zh) * | 2019-10-15 | 2019-11-29 | 中国建设银行股份有限公司 | 数据传输方法、装置、终端、服务器及存储介质 |
CN110650016A (zh) * | 2019-09-02 | 2020-01-03 | 南京南瑞继保电气有限公司 | 一种实现交直流控制保护系统网络数据安全的方法 |
CN113031626A (zh) * | 2020-05-15 | 2021-06-25 | 东风柳州汽车有限公司 | 基于自动驾驶的安全认证方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102025505A (zh) * | 2010-12-16 | 2011-04-20 | 浪潮(北京)电子信息产业有限公司 | 一种基于aes算法的加密、解密方法及装置 |
-
2014
- 2014-12-26 CN CN201410838776.0A patent/CN105791258A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102025505A (zh) * | 2010-12-16 | 2011-04-20 | 浪潮(北京)电子信息产业有限公司 | 一种基于aes算法的加密、解密方法及装置 |
Non-Patent Citations (1)
Title |
---|
叶清: "《高等学校信息安全专业规划教材 网络安全原理》", 1 May 2014, 武汉大学出版社 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106161472A (zh) * | 2016-09-05 | 2016-11-23 | 上海前隆金融信息服务有限公司 | 一种数据加密的方法、装置及系统 |
CN106972919A (zh) * | 2017-03-29 | 2017-07-21 | 北京奇虎科技有限公司 | 一种密钥协商方法和装置 |
CN106972919B (zh) * | 2017-03-29 | 2020-04-24 | 北京奇虎科技有限公司 | 一种密钥协商方法和装置 |
CN107391974A (zh) * | 2017-07-19 | 2017-11-24 | 北京深思数盾科技股份有限公司 | 一种软件保护装置数据的备份方法及装置 |
CN107707536A (zh) * | 2017-09-26 | 2018-02-16 | 武汉默联股份有限公司 | 商业健康保险直赔直付系统与商保公司之间数据传输方法及系统 |
CN110650016A (zh) * | 2019-09-02 | 2020-01-03 | 南京南瑞继保电气有限公司 | 一种实现交直流控制保护系统网络数据安全的方法 |
CN110519309A (zh) * | 2019-10-15 | 2019-11-29 | 中国建设银行股份有限公司 | 数据传输方法、装置、终端、服务器及存储介质 |
CN110519309B (zh) * | 2019-10-15 | 2022-02-25 | 中国建设银行股份有限公司 | 数据传输方法、装置、终端、服务器及存储介质 |
CN113031626A (zh) * | 2020-05-15 | 2021-06-25 | 东风柳州汽车有限公司 | 基于自动驾驶的安全认证方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107294937B (zh) | 基于网络通信的数据传输方法、客户端及服务器 | |
CN105791258A (zh) | 一种数据传输方法、终端及开放平台 | |
CN108683501B (zh) | 基于量子通信网络的以时间戳为随机数的多次身份认证系统和方法 | |
CN106603485A (zh) | 密钥协商方法及装置 | |
WO2018127081A1 (zh) | 一种加密密钥获取方法及系统 | |
EP3476078B1 (en) | Systems and methods for authenticating communications using a single message exchange and symmetric key | |
CN108768930A (zh) | 一种数据的加密传输方法 | |
CN105245341A (zh) | 远程身份认证方法和系统以及远程开户方法和系统 | |
CN109194656A (zh) | 一种配电无线终端安全接入的方法 | |
CN107005577B (zh) | 指纹数据的处理方法及处理装置 | |
JP2016511620A5 (zh) | ||
CN104219041A (zh) | 一种适用于移动互联网的数据传输加密方法 | |
KR101706117B1 (ko) | 휴대용 단말기에서 다른 휴대용 단말기를 인증하는 장치 및 방법 | |
WO2017016447A1 (zh) | 二维码掩膜加密和解密方法及系统 | |
CN113806772A (zh) | 基于区块链的信息加密传输方法及装置 | |
CN104243494B (zh) | 一种数据处理方法 | |
CN109309566B (zh) | 一种认证方法、装置、系统、设备及存储介质 | |
CN104901935A (zh) | 一种基于cpk的双向认证及数据交互安全保护方法 | |
CN109150526A (zh) | 密钥协商方法、设备、终端、存储介质以及系统 | |
CN110753321A (zh) | 一种车载tbox与云服务器的安全通信方法 | |
CN112672342B (zh) | 数据传输方法、装置、设备、系统和存储介质 | |
CN104243439A (zh) | 文件传输处理方法、系统及终端 | |
CN109005184A (zh) | 文件加密方法及装置、存储介质、终端 | |
CN104092551B (zh) | 一种基于rsa算法的安全密钥传输方法 | |
CN104579680A (zh) | 一种安全分发种子的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160720 |