CN105553951B - 数据传输方法和装置 - Google Patents

数据传输方法和装置 Download PDF

Info

Publication number
CN105553951B
CN105553951B CN201510903695.9A CN201510903695A CN105553951B CN 105553951 B CN105553951 B CN 105553951B CN 201510903695 A CN201510903695 A CN 201510903695A CN 105553951 B CN105553951 B CN 105553951B
Authority
CN
China
Prior art keywords
terminal
key
data
signature
application program
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.)
Active
Application number
CN201510903695.9A
Other languages
English (en)
Other versions
CN105553951A (zh
Inventor
李轶峰
袁丽娜
王亮
郭计伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201510903695.9A priority Critical patent/CN105553951B/zh
Publication of CN105553951A publication Critical patent/CN105553951A/zh
Priority to PCT/CN2016/102772 priority patent/WO2017097041A1/zh
Priority to US15/710,080 priority patent/US10785019B2/en
Application granted granted Critical
Publication of CN105553951B publication Critical patent/CN105553951B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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/0478Network 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 applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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/045Network 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 hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种数据传输方法和装置。其中,该方法包括:第一终端获取第二终端发送的数据传输请求,其中,数据传输请求中至少携带有使用第二终端的私钥对第二终端的第一交换密钥进行加密得到的第一加密数据;第一终端使用第二终端的公钥对第一加密数据进行解密得到第一交换密钥,并根据第一交换密钥获取第一终端与第二终端的共享密钥;第一终端使用共享密钥对待传输的数据进行加密,得到加密传输数据,并将加密传输数据发送给第二终端。本发明解决了现有的加密算法在数据传输时安全性差的技术问题。

Description

数据传输方法和装置
技术领域
本发明涉及数据处理领域,具体而言,涉及一种数据传输方法和装置。
背景技术
伴随着网络信息的发展,网络影响着人们生活的各个方面,随之而来的安全性的要求也就越来越高,对人们在网络活动上的保密性要求也越来越高,应用数据加密技术,保证了人们在网络活动中对自己的数据和一些相关资料的保密的要求,保证了网络的安全性和保密性。
数据加密技术是数据安全的核心技术,尤其是在当今的电子商务、数字货币、网络银行等各种网络业务的快速的兴起时代,使得如何保护数据安全使之不被窃取、不被篡改或破坏等问题越来越受到人们的重视。解决这些问题的关键就是数据加密技术。所谓加密,就是把“明文”的可读数据转换成“密文”的过程;而解密则是把“密文”恢复为“明文”的过程。加密和解密都要使用密码算法来实现。密码算法是指用于隐藏和显露数据的可计算过程,通常算法越复杂,结果密文就越安全。在加密技术中,密钥是必不可少的,密钥是使密码算法按照一种特定方式运行并产生特定密文的值。
现有技术中的对称算法又叫做传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加/解密的密钥是相同的。这些算法也叫秘密密钥或单密钥算法,它要求发送者和接收者在进行安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄露密钥就意味着任何人都能对消息进行加/解密。因此对称算法就是指加密和解密过程均采用同一把密钥,在对称算法中,只要通信需要保密,密钥就必须保密。
虽然对称算法的效率高,但是密钥的传输需要另外的信道。非对称算法DH可以解决密钥的传输问题,但是该算法的安全性基于有限域上求解离散对数非常困难,并且由于其本身是一个无认证的密钥交换协议,所以还是存在中间人攻击。
具体地,Alice公开发送值a和p给Bob,攻击者Carol截获这些值,随即把自己产生的公开值发给Bob;Bob公开发送值a和p给Alice,又被Carol截获,随即把自己产生的公开值给Alice,在这种情况下,Alice和Bob获取的都是攻击者Carol发送的公开值,Alice和Carol计算出两人之间的共享密钥k1;Bob和Carol计算出两人之间另一个的共享密钥k2。如上所述的,受到中间人Carol攻击后,Alice用密钥k1给Bob发送消息,Carol截获后用k1解密就可读取消息,然后将获得的明文消息用k2加密(加密前对消息可能做某些修改,即主动攻击),然后发给Bob。对Bob发给Alice的消息,Carol用同样的手法读取和修改。
针对上述现有的加密算法在数据传输时安全性差的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据传输方法和装置,以至少解决现有的加密算法在数据传输时安全性差的技术问题。
根据本发明实施例的一个方面,提供了一种数据传输方法,该方法包括:第一终端获取第二终端发送的数据传输请求,其中,数据传输请求中至少携带有使用第二终端的私钥对第二终端的第一交换密钥进行加密得到的第一加密数据;第一终端使用第二终端的公钥对第一加密数据进行解密得到第一交换密钥,并根据第一交换密钥获取第一终端与第二终端的共享密钥;第一终端使用共享密钥对待传输的数据进行加密,得到加密传输数据,并将加密传输数据发送给第二终端。
根据本发明实施例的另一方面,还提供了一种数据传输装置,该装置包括:获取单元,用于获取第二终端发送的数据传输请求,其中,所述数据传输请求中至少携带有使用所述第二终端的私钥对所述第二终端的第一交换密钥进行加密得到的第一加密数据;密钥处理单元,用于使用所述第二终端的公钥对所述第一加密数据进行解密得到所述第一交换密钥,并根据所述第一交换密钥获取第一终端与所述第二终端的共享密钥;加密传输单元,用于使用所述共享密钥对待传输的数据进行加密,得到加密传输数据,并将所述加密传输数据发送给所述第二终端。
在本发明实施例中,在使用DH算法交换第二终端和第一终端的交换密钥(该交换密钥可以为两个终端的DH算法的公开值)时,第二终端用RSA算法加密交换密钥,即自己的私钥加密自己的交换密钥,第一终端用第二终端的公钥解密该交换密钥,以得到第二终端的交换密钥,并获取第二终端与第一终端的共享密钥。在上述过程中,攻击者需首先破解加密后的交换密钥,然后才能进行中间人攻击,增加了破解难度,通过上述方案提供了数据传输过程的安全性,解决了现有技术中现有的加密算法在数据传输时安全性差的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种终端的网络环境示意图;
图2是根据本发明实施例的一种可选的数据传输方法的流程图;
图3是根据本发明实施例的另一种可选的数据传输方法的流程图;
图4是根据本发明实施例的再一种可选的数据传输方法的流程图;
图5是根据本发明实施例的一种可选的数据传输装置的示意图;
图6是根据本发明实施例的另一种可选的数据传输装置的示意图;
图7是根据本发明实施例的终端的内部结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种数据传输方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
可选地,在本实施例中,上述数据传输方法可以应用于如图1所示的第二终端10和第一终端30所构成的硬件环境中,第二终端可以与第一终端通过网络建立连接。其中,第二终端和第一终端上均可以设置处理器、加密装置。
上述网络包括但不限于:广域网、城域网或局域网。优选地,上述的网络为局域网。
在本发明实施例中,涉及的RSA算法的加密方式具体如下:
第二终端构建密钥对儿,该密钥对包括公钥和私钥,第二终端在构建密钥对之后,将公钥公布给第一终端,将私钥保留。第二终端使用第二终端的私钥加密待传输的数据,然后用第二终端的私钥对加密后的数据进行签名生成签名文件,将签名文件和加密后的数据发送至第一终端。
第一终端在接收到签名文件和加密后的数据之后,使用第二终端的公钥和签名文件来验证接收到的加密后的数据是否有效,如果有效,则使用第二终端的公钥对数据解密。
第一终端使用第二终端的公钥加密数据,向发送方(即第二终端)发送经过加密后的数据;第二终端获得加密数据,通过第二终端的私钥解密。
上述第一终端验证接收到的加密后的数据是否有效可以通过如下步骤实现:
第一终端使用第二终端的公钥解密接收到的签名,并使用第二终端的公钥生成加密数据的摘要信息,然后将解密的签名和产生加密数据的摘要信息作对比,若两者相同,则认为收到的加密后的数据有效,若两者不同,则说明接收到的加密后的数据无效,该数据可能被修改过。
本申请实施例中还涉及密钥交换(Diffie-Hellman,即DH)算法,该算法中第二终端A和第一终端B交换密钥,在交换密钥之后,两个终端分别计算两个终端的共享密钥,并使用该共享的密钥加密数据。具体实现方式如下:
在加密待传输数据以进行通信之前,在第二终端A和第一终端B之前,两个终端约定的2个大整数n和g,这两个整数可以公开。
(1)第二终端A随机产生一个大整数a(a需要保密),然后计算Ka=ga mod n。
(2)第一终端B随机产生一个大整数b(b需要保密),然后计算Kb=gbmod n。
(3)第二终端A把Ka和n作为DH算法的公开值发送给第一终端B;第一终端B把Kb和n作为DH算法的公开值发送给第二终端A。
(4)第二终端A计算第二终端与第一终端的共享密钥:K=Kb a mod n。
(5)第一终端B计算第二终端与第一终端的共享密钥:K=Ka b mod n。
上述方式中,由于Kb a mod n=(gbmod n)a mod n=(ga mod n)b mod n,因此可以保证两个终端得到的K是相同的,K即是两个终端的共享密钥。
根据本发明实施例,提供了一种数据传输方法,如图2所示,该方法可以包括如下步骤:
步骤S201:第一终端获取第二终端发送的数据传输请求,其中,数据传输请求中至少携带有使用第二终端的私钥对第二终端的第一交换密钥进行加密得到的第一加密数据。
步骤S203:第一终端使用第二终端的公钥对第一加密数据进行解密得到第一交换密钥,并根据第一交换密钥获取第一终端与第二终端的共享密钥。
其中,该共享密钥可以采用DH算法中的共享密钥的算法获取。
步骤S205:第一终端使用共享密钥对待传输的数据进行加密,得到加密传输数据,并将加密传输数据发送给第二终端。
采用上述实施例,在使用DH算法交换第二终端和第一终端的交换密钥(该交换密钥可以为两个终端的DH算法的公开值)时,第二终端用RSA算法加密交换密钥,即自己的私钥加密自己的交换密钥,第一终端用第二终端的公钥解密该交换密钥,以得到第二终端的交换密钥,并获取第二终端与第一终端的共享密钥。在上述过程中,攻击者需首先破解加密后的交换密钥,然后才能进行中间人攻击,增加了破解难度,通过上述方案提供了数据传输过程的安全性,解决了现有技术中现有的加密算法在数据传输时安全性差的技术问题。
上述DH算法中第二终端A发送给第一终端B的Ka和n即为本申请实施例中第二终端的第一交换密钥。第二终端加密第二终端的第一交换密钥使用的是公开密钥密码RSA算法。
在上述实施例中,第二终端用自己的私钥对DH算法产生的第一交换密钥(即交换文,或公开值)进行加密,生成不可读取的密文Dsk(即上述实施例中的第一加密数据),然后将第一加密数据Dsk传送给第一终端,第一终端在接收到第一加密数据之后,使用第二终端的公钥进行解码Decrypt运算,得到第一交换密钥。可选地,第一终端在接收到该第一加密数据之后,可以使用公钥对该第一加密数据进行签名校验,在校验有效的情况下,解密该第一加密数据。
通过上述实施例,第二终端使用RSA算法加密传输DH算法产生的公开值(即上述实施例中的第一交换密钥),攻击者在拦截该数据传输请求之后,需要先破解RSA算法,才能进行中间人攻击,增加了破解难度。
根据本发明的上述实施例,在将加密传输数据发送给第二终端之前,方法还包括:第一终端向第二终端发送使用第二终端的公钥对第一终端的第二密钥公开值进行加密得到的第二加密数据,其中,第二密钥公开值用于第二终端获取共享密钥。
在将加密传输数据发送给第二终端之后,方法还包括:第二终端使用共享密钥对加密传输数据进行解密,得到待传输的数据,其中,共享密钥是第二终端使用第二终端的私钥对第二加密数据进行解密得到第二密钥公开值,并根据第二密钥公开值获取到的。
具体地,在第一终端使用第二终端的公钥对第一加密数据进行解密得到第一交换密钥之后,第一终端向第二终端发送使用第一终端的私钥对第一终端的第二交换密钥进行加密得到的第二加密数据;第二终端使用第一终端的公钥对第二加密数据进行解密,得到第二交换密钥,并根据第二交换密钥获取共享密钥。
在第一终端将加密后的数据发送给第二终端之后,第二终端使用共享密钥对加密数据进行解密,得到待传输的数据。
需要说明的是,上述DH算法的第一终端B发送给第二终端A的Kb和n即为本申请实施例中第一终端的第二交换密钥。
在上述实施例中,第一终端向第二终端发送第一终端的第二交换密钥时,同样使用第二终端的公钥对第二交换密钥进行加密得到第二加密数据,将该第二加密数据发送给第二终端。第二终端在接收到该第二加密数据之后,使用第二终端的私钥对第二加密数据进行解密,得到第二交换密钥,并根据第二交换密钥获取共享密钥(该共享密钥的获取采用DH算法中的共享密钥的算法)。
通过本发明的上述实施例,第二终端和第一终端在交换各自的交换密钥时,均可以使用RSA算法加密上述两个终端的交换密钥,攻击者在拦截该数据传输请求之后,需要先破解RSA算法,才能进行中间人攻击,增加了破解难度。
进一步地,在第二终端和第一终端均获取共享密钥之后,可以使用该共享密钥加密传输数据。
下面以第二终端为客户端、第一终端为服务器为例,结合图3详述本发明上述实施例。如图3所示,该实施例可以包括如下步骤:
步骤S301:服务器接收客户端发送的数据传输请求,其中,数据传输请求中至少携带有使用RSA算法对客户端的DH算法的公开值进行加密得到的第一加密数据。
步骤S303:服务器对第一加密数据进行解密得到第一交换密钥,并根据第一交换密钥获取服务器与客户端的共享密钥。
其中,该共享密钥可以采用DH算法中的共享密钥的算法获取。
步骤S305:服务器使用RSA算法对服务器的DH算法的公开值进行加密,得到第二加密数据,并将该第二加密数据发送至客户端。
步骤S307:客户端对第二加密数据进行解密得到第二交换密钥,并根据第二交换密钥获取服务器与客户端的共享密钥。
步骤S309:客户端使用该共享密钥对待加密的数据加密,将加密后的数据发送至服务器。
步骤S311:服务器使用该共享密钥对加密后的数据解密,获取解密后的数据。
步骤S313:服务器使用该共享密钥对解密后的数据的响应数据加密,将加密后的响应数据发送客户端。
客户端在接收到该加密后的响应数据之后,可以使用共享密钥解密该加密后的响应数据。
需要说明的是,在该实施例中,服务器和客户端之间何时开始通信以及第一条通信数据何方发起,两个终端可以约定。
根据本发明的上述实施例,数据传输请求还携带有第二终端的验证信息,其中,第一终端使用第二终端的公钥对第一加密数据进行解密得到第一交换密钥可以包括:第一终端通过第二终端的验证信息校验数据传输请求的合法性;若校验出数据传输请求为合法请求,则第一终端使用第二终端的公钥对第一加密数据进行解密得到第一交换密钥。
具体地,在服务器解密第一交换密钥之前,需对该数据传输请求的来源合法性进行验证。可选地,该数据传输请求中除了携带有第一加密数据,还携带有第二终端的验证信息,第一终端通过该验证信息验证该数据传输请求的合法性,若该数据传输请求为合法请求,则第一终端对第一加密数据进行解密。
通过上述实施例,可以有效验证第二终端的合法性,防止被破解的第二终端访问第一终端。
具体地,第一终端通过第二终端的验证信息校验数据传输请求的合法性可以包括:从验证信息中,获取使用第二终端的私钥对安装在第二终端上应用程序的签名进行加密得到的加密签名,其中,应用程序用于生成数据传输请求,应用程序的签名用于记录应用程序的作者信息;使用第二终端的公钥对加密签名进行解密,得到应用程序的签名;基于解密得到的应用程序的签名判断数据传输请求是否合法。
进一步地,基于解密得到的应用程序的签名判断数据传输请求是否合法可以包括:比较解密得到的应用程序的签名与第一终端上预存的应用程序的签名是否一致;若比较出解密得到的应用程序的签名与第一终端上预存的应用程序的签名一致,则确定数据传输请求合法;若比较出解密得到的应用程序的签名与第一终端上预存的应用程序的签名不一致,则确定数据传输请求不合法。
在上述实施例中,第二终端可以使用RSA算法加密传输应用程序的签名,并将该加密后的加密签名携带在数据传输请求中发送至第一终端。在服务器接收到数据出传输请求之后,从数据传输请求中提取加密签名,对其进行解密,得到解密后的应用程序的签名。若该解密后的应用程序的签名与第一终端存储的该应用程序的签名一致,则判断出该输出传输请求的来源合法。
上述实施例中的应用程序可以为android应用程序,则该应用程序的签名可以为android签名文件,由于android签名的唯一性,若攻击者成功破解第二终端,缺乏android签名文件,仍然会被第一终端识别出来是非法请求。在该实施例中,通过应用程序的签名可以进一步保证非法终端无法访问第一终端。
需要进一步说明的是,获取使用第二终端的私钥对安装在第二终端上应用程序的签名进行加密得到的加密签名包括:获取使用第二终端的私钥对应用程序的签名的信息摘要进行加密得到的加密签名。
可选地,在上述实施例中,在使用RSA算法对应用程序的签名加密之前,可以使用MD5算法计算应用程序的签名的MD5值,也即,使用RSA算法对应用程序的签名的MD5值进行加密,得到加密签名,以使该应用程序的签名严格保密。
上述实施例中的应用程序可以为即时通讯程序(如QQ、微信)、智能打车程序、支付程序等,本发明对此不做限制。
需要说明的是,可以使用RSA算法对应用程序的签名和DH算法的公开值作为一个整体进行加密;也可以使用RSA算法分别对应用程序的签名和DH算法的公开值进行加密,本申请对此不做限制。
下面以第二终端为客户端、应用程序为安卓的微信程序、第一终端为微信程序的服务器为例,详述上述实施例。
客户端的微信程序在需要访问服务器的时候,微信程序获取开发者(即程序的作者)在研发微信程序时为微信程序设置的微信安卓签名,使用MD5算法计算该微信安卓签名的MD5值,使用RSA算法对微信安卓签名的MD5值进行加密得到加密签名;在上述加密该微信安卓签名的同时,还可以计算DH算法的公开值,并使用RSA算法对DH算法的公开值进行加密,得到第一加密数据。
在获取加密签名和第一加密数据之后,将该两个数据携带在数据传输请求中,将数据传输请求发送至微信服务器。
微信服务器在接收到数据传输请求之后,并且在对该数据传输请求的签名验证通过之后,对加密签名进行解密,得到解密后的微信安卓签名,若该解密得到的微信安卓签名与微信服务器上记载的微信应程序的签名一致,则确认该数据传输请求为合法请求,则可以对该第一加密数据进行解码,以获取服务器与客户端的共享密钥。
在上述实施例中,由于android签名的唯一性,若攻击者成功破解客户端,但是由于攻击者缺乏android签名文件,仍然会被服务器识别出来是非法请求,通过该验证程序进一步防止被破解的客户端访问服务器。
在一个可选的实施例中,第一终端通过第二终端的验证信息校验数据传输请求的合法性可以包括:从验证信息中获取使用第二终端的私钥对请求时间戳加密得到的加密时间戳,其中,请求时间戳用于记录第二终端生成数据传输请求的时刻;使用第二终端的公钥对加密时间戳进行解密,得到请求时间戳;从数据传输请求中获取第二终端的终端标识;获取第一终端上记录的具有终端标识的记录时间戳;若解密得到的请求时间戳与第一终端上记录的记录时间戳相同,则确定数据传输请求不合法。
可选地,在解密加密时间戳得到请求时间戳之后,可以从第一终端记录的历史信息中查找与该请求时间戳相同的历史时间戳(即上述的记录时间戳),若存在该历史时间戳,且该历史时间戳与请求时间戳对应的终端标识一致,则确认该数据传输请求不合法;反之,合法。
在上述实施例中,为了有效防止第一终端可以被模拟请求攻击,还可以通过数据传输请求中的时间戳对该数据传输请求进行校验。
具体地,可以将第二终端的应用程序在生成数据传输请求时的时间戳进行加密,得到加密时间戳,将该加密时间戳随同数据传输请求一起发送至第一终端。
在上述实施例中,第一终端在接收到该数据传输请求之后,数据传输请求中的加密时间戳进行解密,得到解密后的时间戳。第一终端对于接收到的每个数据传输请求均执行上述的操作,并将解密后的时间戳和发送该数据传输请求的终端标识记录下来。在每获取到一个新的时间戳时,从第一终端记录的时间戳中查找与该新的时间戳的终端标识一致的历史时间戳,若历史时间戳与该新的时间戳也一致,则认为该数据传输请求为非法请求。
可选地,若历史时间戳与新的时间戳一致,还可以确认该历史时间戳对应的历史数据传输请求也为非法请求。
需要说明的是,可以使用RSA算法对应用程序的签名、时间戳以及DH算法的公开值作为一个整体进行加密;也可以使用RSA算法分别对应用程序的签名、时间戳以及DH算法的公开值进行加密,本申请对此不做限制。
在另一个可选的实施例中,第一终端可以基于应用程序的签名和请求时间戳的共同验证结果确定数据传输请求是否为合法请求。
具体地,若解密得到的应用程序的签名与第一终端存储的该应用程序的签名一致、且第一终端上记录的具有终端标识的记录时间戳中不存在与解密得到的请求时间戳相同的时间戳,则确定数据传输请求合法。反之,不合法。
本发明上述实施例中的,第一终端为服务器,第二终端为客户端;或第二终端为服务器,第一终端为客户端。
下面以第一终端为服务器、第二终端为客户端、应用程序为微信应用为例,结合图4详述本发明上述实施例。如图4所示,该实施例可以通过如下步骤实现:
步骤S401:通过微信界面获取数据传输指令。
具体地,用户可以通过操作安装在客户端上微信应用的界面生成该指令,上述的操作可以包括点击操作、长按操作等。
步骤S402:获取微信应用的安卓签名、生成数据传输请求的请求时间戳以及DH算法的公开值。
步骤S403:对安卓签名、请求时间戳和DH算法的公开值进行RSA算法加密,得到加密请求。
步骤S404:对加密请求进行签名,得到请求签名。
步骤S405:将加密请求和请求签名发送至微信服务器。
步骤S406:微信服务器通过请求签名对加密请求进行验证。
验证方式与上述实施例中的验证方式一致,在此不再赘述。
步骤S407:若验证通过,则对加密请求进行解密,得到解密后的安卓签名、请求时间戳和DH算法的公开值。
步骤S408:基于解密后的安卓签名和请求时间戳进行数据传输请求验证。
验证方式与上述实施例中的验证方式一致,在此不再赘述。
步骤S409:若验证数据传输请求为合法请求,则计算DH算法的公开值对应的共享密钥。
步骤S410:服务器将服务器的DH算法公开值发送至客户端。
步骤S411:客户端基于服务器的DH算法公开值计算共享密钥。
步骤S412:使用共享密钥加密待传输数据,得到加密传输数据。
步骤S413:服务器将加密传输数据发送至客户端。
步骤S414:客户端使用共享密钥解密加密传输数据。
在该实施例中未示出服务器与客户端之间的响应数据的发送和接收过程,本申请对服务器与客户端之间的响应数据的发送和接收过程不做限定。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,第一终端,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述数据传输方法的数据传输装置,如图5所示,该装置包括:获取单元51、密钥处理单元53和加密传输单元55。
其中,获取单元51用于获取第二终端发送的数据传输请求,其中,数据传输请求中至少携带有使用第二终端的私钥对第二终端的第一交换密钥进行加密得到的第一加密数据。
密钥处理单元53用于使用第二终端的公钥对第一加密数据进行解密得到第一交换密钥,并根据第一交换密钥获取第一终端与第二终端的共享密钥。
加密传输单元55用于使用共享密钥对待传输的数据进行加密,得到加密传输数据,并将加密传输数据发送给第二终端。
采用上述实施例,在使用DH算法交换第二终端和第一终端的交换密钥(该交换密钥可以为两个终端的DH算法的公开值)时,第二终端用RSA算法加密交换密钥,即自己的私钥加密自己的交换密钥,第一终端用第二终端的公钥解密该交换密钥,以得到第二终端的交换密钥,并获取第二终端与第一终端的共享密钥。在上述过程中,攻击者需首先破解加密后的交换密钥,然后才能进行中间人攻击,增加了破解难度,通过上述方案提供了数据传输过程的安全性,解决了现有技术中现有的加密算法在数据传输时安全性差的技术问题。
上述DH算法中第二终端A发送给第一终端B的Ka和n即为本申请实施例中第二终端的第一交换密钥。第二终端加密第二终端的第一交换密钥使用的是公开密钥密码RSA算法。
在上述实施例中,第二终端用自己的私钥对DH算法产生的第一交换密钥(即交换文,或公开值)进行加密,生成不可读取的密文Dsk(即上述实施例中的第一加密数据),然后将第一加密数据Dsk传送给第一终端,第一终端在接收到第一加密数据之后,使用第二终端的公钥进行解码Decrypt运算,得到第一交换密钥。可选地,第一终端在接收到该第一加密数据之后,可以使用公钥对该第一加密数据进行签名校验,在校验有效的情况下,解密该第一加密数据。
通过上述实施例,第二终端使用RSA算法加密传输DH算法产生的公开值(即上述实施例中的第一交换密钥),攻击者在拦截该数据传输请求之后,需要先破解RSA算法,才能进行中间人攻击,增加了破解难度。
根据本发明的上述实施例,装置还可以包括如图6所示的:密钥加密单元61,用于在将加密传输数据发送给第二终端之前,第一终端向第二终端发送使用第二终端的公钥对第一终端的第二密钥公开值进行加密得到的第二加密数据,其中,第二密钥公开值用于第二终端获取共享密钥。
装置还可以包括:数据解密单元63,用于在将加密传输数据发送给第二终端之后,使用共享密钥对加密传输数据进行解密,得到待传输的数据,其中,共享密钥是第二终端使用第二终端的私钥对第二加密数据进行解密得到第二密钥公开值,并根据第二密钥公开值获取到的。
需要说明的是,上述DH算法的第一终端B发送给第二终端A的Kb和n即为本申请实施例中第一终端的第二交换密钥。
在上述实施例中,第一终端向第二终端发送第一终端的第二交换密钥时,同样使用第二终端的公钥对第二交换密钥进行加密得到第二加密数据,将该第二加密数据发送给第二终端。第二终端在接收到该第二加密数据之后,使用第二终端的私钥对第二加密数据进行解密,得到第二交换密钥,并根据第二交换密钥获取共享密钥(该共享密钥的获取采用DH算法中的共享密钥的算法)。
通过本发明的上述实施例,第二终端和第一终端在交换各自的交换密钥时,均可以使用RSA算法加密上述两个终端的交换密钥,攻击者在拦截该数据传输请求之后,需要先破解RSA算法,才能进行中间人攻击,增加了破解难度。
进一步地,在第二终端和第一终端均获取共享密钥之后,可以使用该共享密钥加密传输数据。
具体地,密钥处理单元可以包括:校验模块,用于通过第二终端的验证信息校验数据传输请求的合法性,其中,数据传输请求还携带有第二终端的验证信息;密钥解密模块,用于若校验出数据传输请求为合法请求,则第一终端使用第二终端的公钥对第一加密数据进行解密得到第一交换密钥。
通过上述实施例,可以有效验证第二终端的合法性,防止被破解的第二终端访问第一终端。
在一个可选的实施例中,校验模块可以包括:签名获取模块,用于从验证信息中,获取使用第二终端的私钥对安装在第二终端上应用程序的签名进行加密得到的加密签名,其中,应用程序用于生成数据传输请求,应用程序的签名用于记录应用程序的作者信息;签名解密模块,用于使用第二终端的公钥对加密签名进行解密,得到应用程序的签名;判断模块,用于基于解密得到的应用程序的签名判断数据传输请求是否合法。
具体地,判断模块可以包括:比较子模块,用于比较解密得到的应用程序的签名与第一终端上预存的应用程序的签名是否一致;合法确定子模块,用于若比较出解密得到的应用程序的签名与第一终端上预存的应用程序的签名一致,则确定数据传输请求合法;非法确定子模块,用于若比较出解密得到的应用程序的签名与第一终端上预存的应用程序的签名不一致,则确定数据传输请求不合法。
上述实施例中的应用程序可以为android应用程序,则该应用程序的签名可以为android签名文件,由于android签名的唯一性,若攻击者成功破解第二终端,缺乏android签名文件,仍然会被第一终端识别出来是非法请求。在该实施例中,通过应用程序的签名可以进一步保证非法终端无法访问第一终端。
需要说明的是,签名获取模块可以包括:签名加密子模块,用于获取使用第二终端的私钥对应用程序的签名的信息摘要进行加密得到的加密签名。
通过上述实施例,可以使该应用程序的签名严格保密。
需要说明的是,可以使用RSA算法对应用程序的签名和DH算法的公开值作为一个整体进行加密;也可以使用RSA算法分别对应用程序的签名和DH算法的公开值进行加密,本申请对此不做限制。
在另一个可选的实施例中,校验模块可以包括:时间戳获取子模块,用于从验证信息中获取使用第二终端的私钥对请求时间戳加密得到的加密时间戳,其中,请求时间戳用于记录第二终端生成数据传输请求的时刻;时间戳解密子模块,用于使用第二终端的公钥对加密时间戳进行解密,得到请求时间戳;标识获取子模块,用于从数据传输请求中获取第二终端的终端标识;读取子模块,用于获取第一终端上记录的具有终端标识的记录时间戳;确定子模块,用于若解密得到的请求时间戳与第一终端上记录的记录时间戳相同,则确定数据传输请求不合法。
在上述实施例中,为了有效防止第一终端可以被模拟请求攻击,还可以通过数据传输请求中的时间戳对该数据传输请求进行校验。
具体地,可以将第二终端的应用程序在生成数据传输请求时的时间戳进行加密,得到加密时间戳,将该加密时间戳随同数据传输请求一起发送至第一终端。
需要说明的是,可以使用RSA算法对应用程序的签名、时间戳以及DH算法的公开值作为一个整体进行加密;也可以使用RSA算法分别对应用程序的签名、时间戳以及DH算法的公开值进行加密,本申请对此不做限制。
在另一个可选的实施例中,第一终端可以基于应用程序的签名和请求时间戳的共同验证结果确定数据传输请求是否为合法请求。
具体地,若解密得到的应用程序的签名与第一终端存储的该应用程序的签名一致、且第一终端上记录的具有终端标识的记录时间戳中不存在与解密得到的请求时间戳相同的时间戳,则确定数据传输请求合法。反之,不合法。
本发明上述实施例中的第一终端为服务器,第二终端为客户端;或第二终端为服务器,第一终端为客户端。
本实施例中所提供的各个模块与方法实施例对应步骤所提供的使用方法相同、应用场景也可以相同。当然,需要注意的是,上述模块涉及的方案可以不限于上述实施例中的内容和场景,且上述模块可以运行在计算机终端或移动终端,可以通过软件或硬件实现。
实施例3
根据本发明实施例,还提供了一种用于实施上述数据传输方法和装置的终端或服务器。
如图7所示,该服务器或终端包括:一个或多个(图中仅示出一个)处理器201、存储器203、以及传输装置205(如上述实施例中的发送装置),如图7所示,该终端还可以包括输入输出设备207。
其中,存储器203可用于存储软件程序以及模块,如本发明实施例中的数据传输方法和装置对应的程序指令/模块,处理器201通过运行存储在存储器203内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据传输方法。存储器203可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器203可进一步包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置205用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置205包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置205为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,存储器203用于存储应用程序。
在本实施例中,上述计算机终端的处理器可以执行数据传输方法中以下步骤:
第一终端获取第二终端发送的数据传输请求,其中,数据传输请求中至少携带有使用第二终端的私钥对第二终端的第一交换密钥进行加密得到的第一加密数据;第一终端使用第二终端的公钥对第一加密数据进行解密得到第一交换密钥,并根据第一交换密钥获取第一终端与第二终端的共享密钥;第一终端使用共享密钥对待传输的数据进行加密,得到加密传输数据,并将加密传输数据发送给第二终端。
采用上述实施例,在使用DH算法交换第二终端和第一终端的交换密钥(该交换密钥可以为两个终端的DH算法的公开值)时,第二终端用RSA算法加密交换密钥,即自己的私钥加密自己的交换密钥,第一终端用第二终端的公钥解密该交换密钥,以得到第二终端的交换密钥,并获取第二终端与第一终端的共享密钥。在上述过程中,攻击者需首先破解加密后的交换密钥,然后才能进行中间人攻击,增加了破解难度,通过上述方案提供了数据传输过程的安全性,解决了现有技术中现有的加密算法在数据传输时安全性差的技术问题。
上述DH算法中第二终端A发送给第一终端B的Ka和n即为本申请实施例中第二终端的第一交换密钥。第二终端加密第二终端的第一交换密钥使用的是公开密钥密码RSA算法。
本领域普通技术人员可以理解,图7所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图7其并不对上述电子装置的结构造成限定。例如,计算机终端还可包括比图7中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图7所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
实施例4
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例所提供的数据传输方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,第一终端获取第二终端发送的数据传输请求,其中,数据传输请求中至少携带有使用第二终端的私钥对第二终端的第一交换密钥进行加密得到的第一加密数据;
S2,第一终端使用第二终端的公钥对第一加密数据进行解密得到第一交换密钥,并根据第一交换密钥获取第一终端与第二终端的共享密钥;
S3,第一终端使用共享密钥对待传输的数据进行加密,得到加密传输数据,并将加密传输数据发送给第二终端。
采用上述实施例,在使用DH算法交换第二终端和第一终端的交换密钥(该交换密钥可以为两个终端的DH算法的公开值)时,第二终端用RSA算法加密交换密钥,即自己的私钥加密自己的交换密钥,第一终端用第二终端的公钥解密该交换密钥,以得到第二终端的交换密钥,并获取第二终端与第一终端的共享密钥。在上述过程中,攻击者需首先破解加密后的交换密钥,然后才能进行中间人攻击,增加了破解难度,通过上述方案提供了数据传输过程的安全性,解决了现有技术中现有的加密算法在数据传输时安全性差的技术问题。
上述DH算法中第二终端A发送给第一终端B的Ka和n即为本申请实施例中第二终端的第一交换密钥。第二终端加密第二终端的第一交换密钥使用的是公开密钥密码RSA算法。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、第一终端或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的第二终端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (14)

1.一种数据传输方法,其特征在于,包括:
第一终端获取第二终端发送的数据传输请求,其中,所述数据传输请求中至少携带有使用所述第二终端的私钥对所述第二终端的第一交换密钥进行加密得到的第一加密数据;
所述第一终端使用所述第二终端的公钥对所述第一加密数据进行解密得到所述第一交换密钥,并根据所述第一交换密钥获取所述第一终端与所述第二终端的共享密钥;
所述第一终端使用所述共享密钥对待传输的数据进行加密,得到加密传输数据,并将所述加密传输数据发送给所述第二终端;
其中,所述数据传输请求还携带有所述第二终端的验证信息,其中,所述第一终端使用所述第二终端的公钥对所述第一加密数据进行解密得到所述第一交换密钥包括:所述第一终端通过所述第二终端的验证信息校验所述数据传输请求的合法性;其中,所述第一终端通过所述第二终端的验证信息校验所述数据传输请求的合法性包括:从所述验证信息中,获取使用所述第二终端的私钥对安装在所述第二终端上应用程序的签名进行加密得到的加密签名,其中,所述应用程序用于生成所述数据传输请求,所述应用程序的签名用于记录所述应用程序的作者信息;使用所述第二终端的公钥对所述加密签名进行解密,得到所述应用程序的签名;基于解密得到的所述应用程序的签名判断所述数据传输请求是否合法。
2.根据权利要求1所述的方法,其特征在于,
在将所述加密传输数据发送给所述第二终端之前,所述方法还包括:所述第一终端向所述第二终端发送使用所述第二终端的公钥对所述第一终端的第二密钥公开值进行加密得到的第二加密数据,其中,所述第二密钥公开值用于所述第二终端获取所述共享密钥;
在将所述加密传输数据发送给所述第二终端之后,所述方法还包括:所述第二终端使用所述共享密钥对所述加密传输数据进行解密,得到所述待传输的数据,其中,所述共享密钥是所述第二终端使用所述第二终端的私钥对所述第二加密数据进行解密得到所述第二密钥公开值,并根据所述第二密钥公开值获取到的。
3.根据权利要求1所述的方法,其特征在于,所述第一终端使用所述第二终端的公钥对所述第一加密数据进行解密得到所述第一交换密钥还包括:
若校验出所述数据传输请求为合法请求,则所述第一终端使用所述第二终端的公钥对所述第一加密数据进行解密得到所述第一交换密钥。
4.根据权利要求1所述的方法,其特征在于,基于解密得到的所述应用程序的签名判断所述数据传输请求是否合法包括:
比较解密得到的所述应用程序的签名与所述第一终端上预存的所述应用程序的签名是否一致;
若比较出解密得到的所述应用程序的签名与所述第一终端上预存的所述应用程序的签名一致,则确定所述数据传输请求合法;
若比较出解密得到的所述应用程序的签名与所述第一终端上预存的所述应用程序的签名不一致,则确定所述数据传输请求不合法。
5.根据权利要求1所述的方法,其特征在于,获取使用所述第二终端的私钥对安装在所述第二终端上应用程序的签名进行加密得到的加密签名包括:
获取使用所述第二终端的私钥对所述应用程序的签名的信息摘要进行加密得到的加密签名。
6.根据权利要求1所述的方法,其特征在于,所述第一终端通过所述第二终端的验证信息校验所述数据传输请求的合法性还包括:
从所述验证信息中获取使用所述第二终端的私钥对请求时间戳加密得到的加密时间戳,其中,所述请求时间戳用于记录所述第二终端生成所述数据传输请求的时刻;
使用所述第二终端的公钥对所述加密时间戳进行解密,得到所述请求时间戳;
从所述数据传输请求中获取所述第二终端的终端标识;
获取所述第一终端上记录的具有所述终端标识的记录时间戳;
若解密得到的所述请求时间戳与所述第一终端上记录的所述记录时间戳相同,则确定所述数据传输请求不合法。
7.根据权利要求1或2所述的方法,其特征在于,所述第一终端为服务器,所述第二终端为客户端;或所述第二终端为服务器,所述第一终端为客户端。
8.一种数据传输装置,其特征在于,包括:
获取单元,用于获取第二终端发送的数据传输请求,其中,所述数据传输请求中至少携带有使用所述第二终端的私钥对所述第二终端的第一交换密钥进行加密得到的第一加密数据;
密钥处理单元,用于使用所述第二终端的公钥对所述第一加密数据进行解密得到所述第一交换密钥,并根据所述第一交换密钥获取第一终端与所述第二终端的共享密钥;
加密传输单元,用于使用所述共享密钥对待传输的数据进行加密,得到加密传输数据,并将所述加密传输数据发送给所述第二终端;
其中,所述密钥处理单元包括:校验模块,用于通过所述第二终端的验证信息校验所述数据传输请求的合法性,其中,所述数据传输请求还携带有所述第二终端的验证信息;
所述校验模块包括:签名获取模块,用于从所述验证信息中,获取使用所述第二终端的私钥对安装在所述第二终端上应用程序的签名进行加密得到的加密签名,其中,所述应用程序用于生成所述数据传输请求,所述应用程序的签名用于记录所述应用程序的作者信息;签名解密模块,用于使用所述第二终端的公钥对所述加密签名进行解密,得到所述应用程序的签名;判断模块,用于基于解密得到的所述应用程序的签名判断所述数据传输请求是否合法。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
密钥加密单元,用于在将所述加密传输数据发送给所述第二终端之前,所述第一终端向所述第二终端发送使用所述第二终端的公钥对所述第一终端的第二密钥公开值进行加密得到的第二加密数据,其中,所述第二密钥公开值用于所述第二终端获取所述共享密钥;
数据解密单元,用于在将所述加密传输数据发送给所述第二终端之后,使用所述共享密钥对所述加密传输数据进行解密,得到所述待传输的数据,其中,所述共享密钥是所述第二终端使用所述第二终端的私钥对所述第二加密数据进行解密得到所述第二密钥公开值,并根据所述第二密钥公开值获取到的。
10.根据权利要求8所述的装置,其特征在于,所述密钥处理单元还包括:
密钥解密模块,用于若校验出所述数据传输请求为合法请求,则所述第一终端使用所述第二终端的公钥对所述第一加密数据进行解密得到所述第一交换密钥。
11.根据权利要求8所述的装置,其特征在于,所述判断模块包括:
比较子模块,用于比较解密得到的所述应用程序的签名与所述第一终端上预存的所述应用程序的签名是否一致;
合法确定子模块,用于若比较出解密得到的所述应用程序的签名与所述第一终端上预存的所述应用程序的签名一致,则确定所述数据传输请求合法;
非法确定子模块,用于若比较出解密得到的所述应用程序的签名与所述第一终端上预存的所述应用程序的签名不一致,则确定所述数据传输请求不合法。
12.根据权利要求8所述的装置,其特征在于,所述签名获取模块包括:
签名加密子模块,用于获取使用所述第二终端的私钥对所述应用程序的签名的信息摘要进行加密得到的加密签名。
13.根据权利要求8所述的装置,其特征在于,所述校验模块还包括:
时间戳获取子模块,用于从所述验证信息中获取使用所述第二终端的私钥对请求时间戳加密得到的加密时间戳,其中,所述请求时间戳用于记录所述第二终端生成所述数据传输请求的时刻;
时间戳解密子模块,用于使用所述第二终端的公钥对所述加密时间戳进行解密,得到所述请求时间戳;
标识获取子模块,用于从所述数据传输请求中获取所述第二终端的终端标识;
读取子模块,用于获取所述第一终端上记录的具有所述终端标识的记录时间戳;
确定子模块,用于若解密得到的所述请求时间戳与所述第一终端上记录的所述记录时间戳相同,则确定所述数据传输请求不合法。
14.根据权利要求8或9所述的装置,其特征在于,所述第一终端为服务器,所述第二终端为客户端;或所述第二终端为服务器,所述第一终端为客户端。
CN201510903695.9A 2015-12-08 2015-12-08 数据传输方法和装置 Active CN105553951B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201510903695.9A CN105553951B (zh) 2015-12-08 2015-12-08 数据传输方法和装置
PCT/CN2016/102772 WO2017097041A1 (zh) 2015-12-08 2016-10-20 数据传输方法和装置
US15/710,080 US10785019B2 (en) 2015-12-08 2017-09-20 Data transmission method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510903695.9A CN105553951B (zh) 2015-12-08 2015-12-08 数据传输方法和装置

Publications (2)

Publication Number Publication Date
CN105553951A CN105553951A (zh) 2016-05-04
CN105553951B true CN105553951B (zh) 2019-11-08

Family

ID=55832887

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510903695.9A Active CN105553951B (zh) 2015-12-08 2015-12-08 数据传输方法和装置

Country Status (3)

Country Link
US (1) US10785019B2 (zh)
CN (1) CN105553951B (zh)
WO (1) WO2017097041A1 (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105553951B (zh) 2015-12-08 2019-11-08 腾讯科技(深圳)有限公司 数据传输方法和装置
CN107040369B (zh) * 2016-10-26 2020-02-11 阿里巴巴集团控股有限公司 数据传输方法、装置及系统
CN109246581A (zh) * 2017-05-17 2019-01-18 北京京东尚科信息技术有限公司 一种通信的方法和装置
CN107172056A (zh) * 2017-05-31 2017-09-15 福建中金在线信息科技有限公司 一种信道安全确定方法、装置、系统、客户端及服务器
CN107315964B (zh) * 2017-06-14 2020-09-25 苏州浪潮智能科技有限公司 一种基于加密机实现加密卷转换的方法
CN109104393B (zh) * 2017-06-20 2021-02-12 山东量子科学技术研究院有限公司 一种身份认证的方法、装置和系统
CN107294712B (zh) * 2017-07-24 2020-01-31 北京中测安华科技有限公司 一种密钥协商的方法及装置
CN107682335B (zh) * 2017-10-09 2020-05-22 平安普惠企业管理有限公司 数据传输方法、服务端以及计算机可读存储介质
WO2019071493A1 (zh) * 2017-10-11 2019-04-18 深圳传音通讯有限公司 一种基于智能终端的自动授权方法及自动授权系统
CN107579999A (zh) * 2017-10-17 2018-01-12 山东渔翁信息技术股份有限公司 数据来源设备的认证方法、装置和网络设备
CN110120927B (zh) * 2018-02-05 2022-03-25 华为技术有限公司 私钥生成的方法和设备
CN108550035B (zh) * 2018-03-20 2022-03-25 中国银行股份有限公司 一种跨境网银交易方法及跨境网银系统
CN108809645A (zh) * 2018-07-24 2018-11-13 南方电网科学研究院有限责任公司 密钥协商的方法、装置及配电自动化系统
CN111160069B (zh) * 2018-11-07 2023-07-18 航天信息股份有限公司 一种活体检测方法及装置
CN109787748A (zh) * 2018-12-29 2019-05-21 青岛海洋科学与技术国家实验室发展中心 基于区块链的潜航器数据共享作业方法、装置及存储介质
CN110035070B (zh) * 2019-03-18 2021-07-23 创新先进技术有限公司 用于拼车的数据处理方法和装置
US11336462B1 (en) * 2019-09-10 2022-05-17 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
CN111711836B (zh) * 2020-04-28 2023-11-28 视联动力信息技术股份有限公司 一种数据传输方法、装置、终端设备和存储介质
CN112333133B (zh) * 2020-07-08 2024-06-07 深圳Tcl新技术有限公司 数据安全传输方法、装置、设备及计算机可读存储介质
CN112688909B (zh) * 2020-09-29 2021-09-21 北京海泰方圆科技股份有限公司 一种数据传输系统、方法、装置、介质和设备
CN112350824B (zh) * 2020-10-27 2022-11-15 杭州安恒信息技术股份有限公司 数据共享交换中的密钥分发方法、系统和计算机设备
CN112257093B (zh) * 2020-11-09 2024-03-26 天冕信息技术(深圳)有限公司 数据对象的鉴权方法、终端及存储介质
CN113194066A (zh) * 2021-03-25 2021-07-30 四川久远银海软件股份有限公司 一种基于安全级别的混合加密方法
CN113301432B (zh) * 2021-05-14 2023-01-06 Vidaa(荷兰)国际控股有限公司 显示设备、终端设备及通信连接方法
CN114172664B (zh) * 2021-12-07 2024-02-09 天融信雄安网络安全技术有限公司 数据加密、数据解密方法、装置、电子设备及存储介质
CN114499875B (zh) * 2021-12-31 2024-05-10 兴业消费金融股份公司 业务数据处理方法、装置、计算机设备和存储介质
CN114553438A (zh) * 2022-03-02 2022-05-27 深圳壹账通智能科技有限公司 数据传输方法、装置、电子设备及存储介质
CN114826763B (zh) * 2022-05-16 2024-08-06 中国电信股份有限公司 数据加密方法、装置、电子设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1331874A (zh) * 1998-10-23 2002-01-16 高通股份有限公司 对于无线系统的预订可移植性
CN101588538A (zh) * 2009-05-14 2009-11-25 刘建 无线局域网鉴别与保密基础结构组播密钥协商方法及系统
CN101741547A (zh) * 2009-12-18 2010-06-16 西安西电捷通无线网络通信有限公司 节点间保密通信方法及系统
CN101741548A (zh) * 2009-12-18 2010-06-16 西安西电捷通无线网络通信有限公司 交换设备间安全连接的建立方法及系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2404126B (en) * 2002-01-17 2005-04-06 Toshiba Res Europ Ltd Data transmission links
GB2384403B (en) * 2002-01-17 2004-04-28 Toshiba Res Europ Ltd Data transmission links
WO2007055337A1 (ja) * 2005-11-11 2007-05-18 Matsushita Electric Industrial Co., Ltd. データ送信装置、データ受信装置及びデータ転送システム
US8510558B2 (en) * 2009-02-17 2013-08-13 Alcatel Lucent Identity based authenticated key agreement protocol
JP2010258795A (ja) * 2009-04-24 2010-11-11 Toshiba Corp 送信装置、受信装置及びコンテンツ送受信方法
CN101588236B (zh) * 2009-07-16 2012-03-14 四川长虹电器股份有限公司 内容安全传输保护设备、系统以及内容安全传输方法
CN102404414B (zh) * 2010-09-17 2016-05-18 中国银联股份有限公司 基于mmc/sd接口的以太网通信系统及方法
CN101986726B (zh) * 2010-10-25 2012-11-07 西安西电捷通无线网络通信股份有限公司 一种基于wapi的管理帧保护方法
TW201218726A (en) * 2010-10-25 2012-05-01 Hon Hai Prec Ind Co Ltd Data transmission security system and method
JP6584956B2 (ja) * 2012-12-21 2019-10-02 アステラス インスティテュート フォー リジェネレイティブ メディシン 多能性幹細胞から血小板を生産するための方法およびその組成物
JP2014175970A (ja) * 2013-03-12 2014-09-22 Fuji Xerox Co Ltd 情報配信システム、情報処理装置及びプログラム
US9485093B2 (en) * 2014-02-10 2016-11-01 Broadcom Corporation Push button configuration pairing
US10338827B2 (en) * 2015-04-17 2019-07-02 Johann George Digitally lending content without reproduction
CN105553951B (zh) * 2015-12-08 2019-11-08 腾讯科技(深圳)有限公司 数据传输方法和装置
US10169252B2 (en) * 2016-07-15 2019-01-01 International Business Machines Corporation Configuring functional capabilities of a computer system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1331874A (zh) * 1998-10-23 2002-01-16 高通股份有限公司 对于无线系统的预订可移植性
CN101588538A (zh) * 2009-05-14 2009-11-25 刘建 无线局域网鉴别与保密基础结构组播密钥协商方法及系统
CN101741547A (zh) * 2009-12-18 2010-06-16 西安西电捷通无线网络通信有限公司 节点间保密通信方法及系统
CN101741548A (zh) * 2009-12-18 2010-06-16 西安西电捷通无线网络通信有限公司 交换设备间安全连接的建立方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Improving the Security of SNMP in Wireless;H. Otrok等;《2005 International Conference on Wireless Networks, Communications and Mobile Computing》;20051231;第1卷;第198-202页 *
运用DH-EKE 增强WTLS 握手协议的安全性;赵跃华等;《计算机工程与设计》;20070430;第28卷(第8期);第1801-1803页 *

Also Published As

Publication number Publication date
US10785019B2 (en) 2020-09-22
US20180013555A1 (en) 2018-01-11
WO2017097041A1 (zh) 2017-06-15
CN105553951A (zh) 2016-05-04

Similar Documents

Publication Publication Date Title
CN105553951B (zh) 数据传输方法和装置
TWI733125B (zh) 多方安全計算方法及裝置、電子設備
US9852300B2 (en) Secure audit logging
EP3047601B1 (en) Technologies for synchronizing and restoring reference templates
US11210658B2 (en) Constructing a distributed ledger transaction on a cold hardware wallet
CN108347419A (zh) 数据传输方法和装置
CN112400299B (zh) 一种数据交互方法及相关设备
CN109067528A (zh) 密码运算、创建工作密钥的方法、密码服务平台及设备
CN108173644A (zh) 数据传输加密方法、装置、存储介质、设备及服务器
JP6138958B2 (ja) 指紋認証による図面管理システム及び図面管理方法
CN110635901B (zh) 用于物联网设备的本地蓝牙动态认证方法和系统
CA3178180A1 (en) Constructing a distributed ledger transaction on a cold hardware wallet
CN108366057A (zh) 一种数据处理方法、客户端及电子设备
KR20150079489A (ko) 실시간 통신 방법 및 시스템
CN109194474A (zh) 一种数据传输方法及装置
CN108449756A (zh) 一种网络密钥更新的系统、方法及装置
CN113868672B (zh) 模组无线固件升级方法、安全芯片和无线固件升级平台
CN110493162A (zh) 基于可穿戴设备的身份认证方法及系统
CN110493367A (zh) 无地址的IPv6非公开服务器、客户机与通信方法
CN114143117A (zh) 数据处理方法及设备
CN113365264B (zh) 一种区块链无线网络数据传输方法、装置及系统
CN111008400A (zh) 数据处理方法、装置及系统
CN104734847A (zh) 面向公钥密码应用的共享对称密钥数据加密和解密方法
CN104253692B (zh) 基于se的密钥管理方法和装置
CN107493281A (zh) 加密通信方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210928

Address after: 518000 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 Floors

Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd.

Address before: 2, 518000, East 403 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District

Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.