CN116961973A - 数据传输方法、装置、电子设备及计算机可读存储介质 - Google Patents

数据传输方法、装置、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN116961973A
CN116961973A CN202211476272.XA CN202211476272A CN116961973A CN 116961973 A CN116961973 A CN 116961973A CN 202211476272 A CN202211476272 A CN 202211476272A CN 116961973 A CN116961973 A CN 116961973A
Authority
CN
China
Prior art keywords
key
terminal
server
public key
preset
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
Application number
CN202211476272.XA
Other languages
English (en)
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
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 CN202211476272.XA priority Critical patent/CN116961973A/zh
Publication of CN116961973A publication Critical patent/CN116961973A/zh
Pending legal-status Critical Current

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/0435Network 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
    • 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/0442Network 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
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请提供了一种数据传输方法、装置、电子设备及计算机可读存储介质;涉及人工智能的数据处理;方法包括:接收终端发送的请求消息,其中,请求消息携带第一密文数据、终端公钥及终端公钥的版本号,第一密文数据是终端基于第一对称密钥对第一业务数据进行加密处理得到的,第一对称密钥是终端基于终端私钥和服务器预下发的预置服务器公钥进行密钥计算处理得到的;基于预置服务器公钥和版本号查询得到预置服务器公钥对应的预置服务器私钥;基于预置服务器私钥以及终端公钥进行密钥计算处理,得到第一对称密钥;基于第一对称密钥对第一密文数据进行解密处理,得到第一业务数据。通过本申请,能够保障数据传输安全,降低终端与服务器交互的延迟损失。

Description

数据传输方法、装置、电子设备及计算机可读存储介质
技术领域
本申请涉及通信技术,尤其涉及一种数据传输方法、装置、电子设备及计算机可读存储介质。
背景技术
应用层加密协商算法每次用户在发起业务请求前均需要增加一次额外的密钥交换请求才能进行后续的应用层加密流程,在移动网络或网络覆盖率较差的地区,容易出现因传输链路过长或耗时过大导致的丢包等问题,对用户体验影响较大;用户的交换密钥在后端进行一段时间的缓存,则会引入复杂的密钥存储与轮换机制,导致业务复杂度提升。
由于终端与服务器需要通过移动网络进行密钥交互,导致业务复杂度高,当终端与服务器传输链路过长时;密钥实时协商过程产生的往返时延(1RTT,Round-Trip Time)延迟损耗过高,导致用户交互体验较差。
发明内容
本申请实施例提供一种数据传输方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够保障数据传输安全,减小终端与服务器交互的延迟。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种数据传输方法,应用于服务器,所述方法包括:
接收终端发送的请求消息,其中,所述请求消息携带第一密文数据、终端公钥以及终端公钥的版本号,所述第一密文数据是所述终端基于第一对称密钥对第一业务数据进行加密处理得到的,所述第一对称密钥是所述终端基于终端私钥和所述服务器预下发的预置服务器公钥进行密钥计算处理得到的;
基于所述预置服务器公钥和所述终端公钥的版本号查询得到所述预置服务器公钥对应的预置服务器私钥;
基于所述预置服务器私钥以及所述终端公钥进行所述密钥计算处理,得到所述第一对称密钥;
基于所述第一对称密钥对所述第一密文数据进行解密处理,得到所述第一业务数据。
本申请实施例提供一种数据传输方法,应用于终端,所述方法包括:
生成终端密钥对,所述终端密钥对包括终端公钥和终端私钥;
基于服务器预下发的预置服务器公钥以及所终端私钥进行密钥计算处理,得到第一对称密钥;
基于所述第一对称密钥对第一业务数据进行加密处理,得到第一密文数据;
生成请求消息,其中,所述请求消息包括所述第一密文数据、所述终端公钥以及所述预置服务器公钥的版本号;
向所述服务器发送所述请求消息。
在上述方案中,所述终端中预置第一证书,所述第一证书包括第一公钥,所述服务器中预置第二证书,所述第二证书包括所述第一公钥以及与所述第一公钥对应的第一私钥;所述密钥配置消息还携带数字签名;
在所述更新所述终端本地存储的对应所述应用场景的密钥参数之前,所述方法还包括:
基于所述第二证书中的所述第一公钥,对所述数字签名进行解密处理,得到第一哈希值;
确定所述密钥参数的第二哈希值;
响应于所述第一哈希值与所述第二哈希值相同,确定验证所述数字签名成功,转入所述终端本地存储的对应所述应用场景的密钥参数的处理;
所述方法还包括:
响应于所述第一哈希值与所述第二哈希值相同,确定验证所述数字签名失败,屏蔽响应所述密钥配置消息。
在上述方案中,所述服务器中的不同接口关联所述终端的不同业务场景;
所述向所述服务器发送所述请求消息,包括:
确定当前待发送的所述第一业务数据所属的目标业务场景;
向所述服务器中与所述目标业务场景关联的接口,发送请求消息。
在上述方案中,所述基于所述第一对称密钥对第一业务数据进行加密处理,得到第一密文数据,包括:
基于所述第一对称密钥,对包括第一业务数据在内的待加密数据进行非对称加密算法的加密处理,得到第一密文数据;或者,
基于随机密钥算法并结合所述第一对称密钥生成第二对称密钥,基于所述第一对称密钥,对包括第一业务数据以及明文形式的所述第二对称密钥在内的待加密数据,进行非对称加密算法的加密处理,得到第一密文数据。
在上述方案中,在所述加密处理之前,所述方法还包括:
确定当前时间的时间戳;
在所述待加密数据中加入所述时间戳。
在上述方案中,所述终端发送的所述请求消息对应不同的所述终端密钥对,或者,所述终端的不同应用场景对应不同的所述终端密钥对。
本申请实施例提供一种数据传输装置,包括:
消息接收模块,用于接收终端发送的请求消息,其中,所述请求消息携带第一密文数据、终端公钥以及终端公钥的版本号,所述第一密文数据是所述终端基于第一对称密钥对第一业务数据进行加密处理得到的,所述第一对称密钥是所述终端基于终端私钥和服务器预下发的预置服务器公钥进行密钥计算处理得到的;
查询模块,用于基于所述预置服务器公钥和所述终端公钥的版本号查询得到所述预置服务器公钥对应的预置服务器私钥;
密钥计算模块,用于基于所述预置服务器私钥以及所述终端公钥进行所述密钥计算处理,得到所述第一对称密钥;
密文解密模块,用于基于所述第一对称密钥对所述第一密文数据进行解密处理,得到所述第一业务数据。
本申请实施例提供一种数据传输装置,包括:
密钥生成模块,用于生成终端密钥对,所述终端密钥对包括终端公钥和终端私钥;
密钥计算模块,用于基于服务器预下发的预置服务器公钥以及所终端私钥进行密钥计算处理,得到第一对称密钥;
密文加密模块,用于基于所述第一对称密钥对第一业务数据进行加密处理,得到第一密文数据;
消息生成模块,用于生成请求消息,其中,所述请求消息包括所述第一密文数据、所述终端公钥以及所述预置服务器公钥的版本号;
消息发送模块,用于向所述服务器发送所述请求消息。
本申请实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的数据传输方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于被处理器执行时,实现本申请实施例提供的数据传输方法。
本申请实施例提供一种计算机程序产品,包括可执行指令,所述可执行指令被处理器执行时,实现本申请实施例提供的数据传输方法。
本申请实施例具有以下有益效果:
服务器预下发预置服务器公钥至终端,从而使服务器及终端可以计算出作用相同的第一对称密钥,节约了密钥协商环节的时间消耗,且兼顾效率和安全性;将终端公钥、终端公钥对应的版本号、经过第一对称密钥加密的第一密文数据发送至服务器,终端公钥对应的版本号便于后续的终端公钥升级轮换,保障基本的前向安全性;服务器基于预置服务器公钥与终端公钥对应版本号查询预置服务器公钥对应的预置服务器私钥,通过终端公钥与预置服务器私钥进行密钥计算处理得到与终端相同的第一对称密钥进而解密第一密文数据得到第一业务数据;保障了数据传输的安全性,相比与相关技术去除了服务器用户密钥协商的状态存储,降低系统的冗余度以便于维护。
附图说明
图1是本申请实施例提供的数据传输系统100的架构示意图;
图2是本申请实施例提供服务器200的结构示意图;
图3是本申请实施例提供终端400的结构示意图;
图4A至图4F是本申请实施例提供的服务器数据处理流程图;
图5是本申请实施例提供的数据传输方法的流程图;
图6是本申请实施例提供的服务器系统架构示意图;
图7A是本申请实施例提供的服务器与终端交互示意图;
图7B是本申请实施例提供的服务器与终端交互流程示意图;
图7C是本申请实施例提供的配置下发流程示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
可以理解的是,在本申请实施例中,涉及到用户信息等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)密钥,密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥。
2)对称加密算法,发送和接收数据的双方必使用相同的密钥(即对称密钥)对明文进行加密和解密运算的算法。
3)非对称加密算法,非对称加密算法需要两个密钥来进行加密和解密,这两个密钥是公开密钥(public key)和私有密钥(private key);其中公开密钥可以简称为公钥、私有密钥可以简称为私钥。
4)公钥,公钥是与私钥进行加密算法加密数据时,使用的密钥对中的非加密密钥;公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。
5)私钥,私钥加密算法使用单个私钥来加密和解密数据。由于具有密钥的任意一方都可以使用该密钥解密数据,因此必须保护密钥不被未经授权的代理得到。私钥加密又称为非对称加密,私钥加密算法非常快(与公钥算法相比),特别适用于对较大的数据流执行加密转换。
6)密钥(交互)协商,密钥协商机制是(在身份认证的前提下)规避数据泄露的风险。例如,即使有攻击者在窥探终端与服务器的数据传输,终端仍然可以利用“密钥协商机制”与服务器协商出一个只有二者可知的用来对于应用层数据进行加密的密钥(也称“会话密钥”)。
7)远程配置(Remote Config),远程配置是可以通过云计算技术实现,可以无需下载实现创建应用默认值,可以通过远程配置后端程序接口(API,Application ProgrammingInter face)替换应用默认值,并控制何时激活更新后的值。
8)配置下发,服务器通过远程配置向终端传输数据或配置文件,例如终端可以通过配置下发更新终端的预置服务器公钥。
本申请实施例提供一种数据传输方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够保障数据传输安全,降低终端与服务器交互的延迟损失。下面说明本申请实施例提供的数据传输设备的示例性应用,本申请实施例提供的电子设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的用户终端,也可以实施为服务器。下面,将说明电子设备实施为终端或服务器时示例性应用。
参见图1,图1是本申请实施例提供的数据传输系统100的架构示意图,为实现支撑一个数据传输应用,终端(示例性示出了终端400-1和终端400-2)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。
服务器200用于预下发预置服务器公钥至终端,不同业务场景的对应不同的预置服务器公钥且预置服务器公钥拥有对应的版本号,终端(示例性示出了终端400-1和终端400-2)可以根据业务场景发起相应的请求消息;例如终端在账号登录业务场景下,基于账号登录业务的预置服务器公钥、终端私钥对账号登录服务信息进行对称加密得到账号登录业务的请求消息,并发送账号登录业务的请求消息至服务器200。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能电视、智能手表、车载终端等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
本申请实施例可应用于各种场景中的数据传输,例如自动驾驶领域的汽车行驶数据传输,即服务器向车载终端预下发自动驾驶业务场景的预置服务器公钥;车载终端可以基于预置服务器公钥与终端私钥进行密钥协商并对自动驾驶服务数据进行对称加密得到自动驾驶场景的请求消息;车载终端将请求消息发送至服务器。从而形成一种保障安全、提高效率的数据传输方式等。
参见图2,图2是本申请实施例提供服务器200的结构示意图,图2所示的服务器200包括:至少一个处理器210、存储器250、至少一个网络接口220。服务器200中的各个组件通过总线系统240耦合在一起。可理解,总线系统240用于实现这些组件之间的连接通信。总线系统240除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统240。
处理器210可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器250可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器250可选地包括在物理位置上远离处理器210的一个或多个存储设备。
存储器250包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器250旨在包括任意适合类型的存储器。
在一些实施例中,存储器250能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统251,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块252,用于经由一个或多个(有线或无线)网络接口220到达其他计算设备,示例性的网络接口220包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
在一些实施例中,本申请实施例提供的数据传输装置可以采用软件方式实现,图2示出了存储在存储器250中的数据传输装置255,其可以是程序和插件等形式的软件,包括以下软件模块:消息接收模块2551、查询模块2552、密文计算模块2553和密文解密模块2554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
参见图3,图3是本申请实施例提供终端400的结构示意图,图3所示的终端400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的数据传输装置可以采用软件方式实现,图3示出了存储在存储器450中的数据传输装置455,其可以是程序和插件等形式的软件,包括以下软件模块:密钥生成模块4551、密钥计算模块4552、密钥加密模块4553、消息生成模块4554和消息发送模块4555,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
将结合本申请实施例提供的终端或服务器的示例性应用和实施,说明本申请实施例提供的数据传输方法。
参见图4A,图4A是本申请实施例提供的数据传输方法的流程图,可以由上述的服务器执行,将结合图4A示出的步骤进行说明。
在步骤101中,接收终端发送的请求消息。
示例的,请求消息携带第一密文数据、终端公钥以及终端公钥的版本号,第一密文数据是终端基于第一对称密钥对第一业务数据进行对称加密处理得到的,第一对称密钥是终端基于终端私钥和服务器预下发的预置服务器公钥进行密钥计算处理得到的。
在一些示例中,第一密文数据包括用户的隐私数据,例如手机号、登录密码、证件号、个人邮箱等信息,第一密文数据是基于第一对称密钥对第一业务数据进行对称加密处理得到的;终端公钥以及终端公钥对应的版本号是以明文形式发送至服务器的。
在一些示例中,第一密文数据时终端基于第一对称密钥通过对称加密算法对第一业务数据进行加密处理得到的;例如对称加密算法可以是高级加密标准算法(AES,Advanced Enc ryption Standard),对称加密算法可以通过同一个密钥同时进行加密和解密。
在一些示例中,第一对称密钥可以基于终端私钥和服务器预下发的预置服务器公钥通过椭圆曲线迪菲-赫尔曼密钥交换(ECDH,Elliptic Curve Diffie–Hellman keyExchange)进行密钥计算处理得到,ECDH密钥协商算法是是基于椭圆曲线密码体制(ECC,Elliptic CurveCryptosystems)的密钥交换算法(DH,Diffie-Hellman),交换双方可以在不共享任何秘密的情况下协商出一个密钥。
在一些示例中,基于终端私钥A与预置服务器公钥B通过ECDH密钥协商算法,可以协商第一对称密钥表示为skey;终端私钥A与预置服务器公钥B共享曲线参数(椭圆曲线E、阶N、椭圆基点G)。
基于终端私钥A生成随机整数a,根据随机整数a与椭圆基点G的参数相乘计算终端私钥A的数值。
可以基于以下公式计算终端私钥A的数值:
A=a×G (1)
其中A是终端私钥A的数值,a是基于终端私钥A生成的随机整数,G是椭圆基点的参数值。
基于预置服务器公钥B生成随机整数b,根据随机整数b与椭圆基点G的参数相乘计算预置服务器的数值。
B=b×G (2)
其中B是预置服务器公钥B的数值,b是基于预置服务器公钥生成的随机整数,G是椭圆基点的参数值。
终端将终端私钥A进行数据传输至服务器,终端私钥A的数据传输过程可以公开,即攻击者可以获取终端私钥A,由于椭圆曲线的离散对数问题是难题,所以攻击者不可以通过获取的终端私钥A的参数计算出随机整数a;服务器将预置服务器公钥B进行数据传输至终端,同理,预置服务器公钥B的数据传输过程也可以公开。
服务器接收终端发送的终端私钥A,计算随机整数b与终端私钥A的数值作为第一对称密钥skey的数值,终端接收服务器发送的预置服务器公钥B,计算随机整数a与预置服务器公钥B的数值作为第一对称密钥skey的数值;需要说明的是,基于交换律与结合律,终端与服务器可以得到相同的第一对称密钥skey的数值,可以基于以下公式计算第一对称密钥skey的数值:
skey=b×A=b×(a×G)=(b×a)×G=(a×b)×G=a×(b×G)=a×B=skey' (3)
其中,b是基于预置服务器公钥生成的随机整数,a是基于终端私钥A生成的随机整数,A是终端私钥A的数值,B是预置服务器公钥B的数值;为便于区分skey表示服务器的第一对称密钥,skey’表示终端的第一对称密钥,需要说明的是服务器的第一对称密钥skey与终端的第一对称密钥skey’数值相同且都可以用于进行数据加密或解密,即双方得到作用一致的第一对称密钥。
通过本申请实施例,服务器可以获取由终端发送的请求消息,请求消息携带经第一对称密钥加密的密文数据,可以保证数据的安全性;请求消息携带终端公钥,便于服务器后续获取用于解密密文数据的第一对称密钥;请求消息携带终端公钥的版本号,便于获取版本号的对应私钥。
在步骤102中,基于预置服务器公钥和终端公钥的版本号查询得到预置服务器公钥对应的预置服务器私钥。
参见图4B,图4A中的步骤102,可以通过步骤1021至步骤1023实现,下面具体说明。
在步骤1021中,确定目标业务场景。
在一些示例中,服务器中的不同接口关联终端的不同业务场景,目标业务场景是用于接收请求消息的接口关联的业务场景。例如账号登录接口关联终端的账号登录场景,服务器接收到终端发送的请求消息后,将请求消息判断为登录业务场景,则将登录请求消息发送至账号登录接口。
在步骤1022中,基于终端公钥的版本号查询目标业务场景关联的至少一个预置版本的密钥对,得到与终端公钥的版本号关联的目标密钥对。
示例的,目标密钥对包括预置服务器公钥、以及预置服务器公钥对应的预置服务器私钥。
在一些示例中,服务器存储的密钥对可以对应多个不同的业务场景,且每个业务场景关联的密钥对包括多个预置版本的密钥对,可以根据终端公钥的版本号匹配相关联的目标密钥对。
在步骤1023中,从目标密钥对中读取预置服务器私钥。
示例的,目标密钥对与终端所发送的请求消息所对应的接口关联的业务场景、请求消息中携带的终端公钥的版本号相对应,可以根据预置服务器公钥和终端公钥的版本号查询得到目标密钥对中预置服务器公钥对应的预置服务器私钥。
通过本申请实施例,根据请求消息的接口关联的业务场景,基于预置服务器公钥和终端公钥的版本号,查询得到终端中预置服务器公钥对应的预置服务器私钥;使得预置服务器私钥的保密性更强且可以根据版本号与业务场景进行维护。
继续参考图4A,在步骤103中,基于预置服务器私钥以及终端公钥进行密钥计算处理,得到第一对称密钥。
示例的,可以通过ECDH密钥协商算法,基于预置服务器私钥与终端公钥进行密钥计算处理,得到与终端相同的第一对称密钥;密钥计算处理过程与上述步骤101中一致,在此不再赘述。
在一些示例中,服务器可以基于预置服务器私钥与终端公钥通过与终端相同的对称加密算法得到第一对称密钥,终端可以基于预置服务器公钥与终端私钥通过对称加密算法得到第一对称密钥;终端与服务器的第一对称密钥作用相同,且终端与服务器都可以通过第一对称密钥对传输数据进行加密和解密处理。
通过本申请实施例,根据相同的对称加密算法,终端与服务器可以基于终端密钥对与预置服务器密钥对,在不共享任何其他数据的情况下协商出第一对称密钥;且终端与服务器均可以根据第一对称密钥对传输数据进行加密与解密。
在步骤104中,基于第一对称密钥对第一密文数据进行解密处理,得到第一业务数据。
参考图4C,图4A中的步骤104,可以通过步骤1041至步骤1043实现,下面具体说明。
在步骤1041中,基于第一对称密钥对第一密文数据进行解密处理,得到解密结果,其中,解密结果包括第二密文数据。
示例的,服务器可以通过对称加密算法(例如高级加密标准算法),基于第一对称密钥对第一密文数据进行解密处理,获取解密结果;解密结果可以包括第二密文数据。
在一些示例中,解密结果可以包括第二对称密钥,第二对称密钥用于通过对称加密算法解密第二密文数据;解密结果也可以不包括第二对称密钥;当解密结果不包括第二对称密钥时,服务器可以根据与终端相同的对称加密算法(高级加密标准算法)以及相同的第一对称密钥,计算出第二对称密钥,从而对第二密文数据进行解密。
在一些示例中,第二对称密钥可以根据对称加密中的流密码(序列密码)算法得到,终端每次通过高级加密标准算法加密第一密文数据得到第二密文数据,可以根据第一对称密钥生成一个密钥流即第二对称密钥,服务器对第二密文数据的解密过程也是使用同一个第二对称密钥,加密过程包括:终端将第一密文数据与同样长度的第二对称密钥进行异或运算得到第二密文数据。解密过程可以包括:服务器基于第二密文数据与同样的第二对称密钥进行异或运算得到明文即传输数据。其中,每次传输所使用的第二对称密钥不相同,即第二对称密钥是具有随机性的,从而增加破解难度,提升安全性。
在一些示例中,服务器可以通过对称加密算法(例如高级加密标准算法),基于第一对称密钥对第一密文数据进行解密处理,获取解密结果,解密结果除了第二密文数据、第二对称密钥,还包括第一密文数据的生成时间的时间戳。
服务器将时间戳与已响应请求消息携带的时间戳进行比较;响应于比较一致,确定请求消息为重复发送的,并屏蔽响应请求消息;响应于比较不一致,确定请求消息为非重复发送的,确定响应请求消息。
通过本申请实施例,能够根据时间戳防止重复请求或恶意请求,能够提高数据处理的效率以及时效性。
在步骤1042中,基于第二对称密钥对第二密文数据进行的解密处理。
示例的,第二对称密钥以明文形式携带在解密结果中,或者,第二对称密钥是服务器基于与终端相同对称加密算法并结合第一对称密钥生成的。
在一些示例中,服务器基于第二对称密钥对第二密文数据进行解密处理,第二密文数据是终端对用户服务请求数据或用户个人信息等数据基于第二对称密钥通过高级加密标准算法进行加密的;服务器可以通过相同的高级加密标准算法以及第二对称密钥对第二密文数据进行解密处理,其中,第二对称密钥可以是基于高级加密标准算法以及第一对称密钥生成的,由于终端与服务器使用相同对称加密算法(高级加密标准算法)以及相同第一对称密钥,故终端与服务器可以在不进行密钥协商的情况下通过相同的第二对称密钥对数据进行加密或解密处理。
需要说明的是,这里仅示例性的示出了一种对称加密算法即高级加密标准算法,本申请实施例也可以通过其他对称加密算法实现,例如DES TripleDES算法、RC算法、BlowFish算法。
在步骤1043中,响应于基于第二对称密钥成功进行解密处理,将解密处理得到的数据作为第一业务数据。
示例的,服务器响应于通过高级加密标准算法基于第二对称密钥成功解密第二密文数据,第二密文数据包括用户服务请求数据或用户个人信息数据;服务器将解密处理得到的数据作为第一业务数据。
在一些示例中,服务器响应于通过高级加密标准算法基于第二对称密钥未成功进行第二密文数据解密处理,确定请求消息被篡改,并屏蔽响应请求消息。
在一些实施例中,作为步骤1041至步骤1043的替代方案,服务器可以基于第一对称密钥对第一密文数据进行解密处理,直接得到第一业务数据。即第一密文数据就是终端基于第一对称密钥对第一业务数据进行对称加密算法(高级加密标准算法)的加密处理得到的,没有使用第二对称密钥进行双重加密。
通过本申请实施例,可以根据第一密文数据的重要程度,对第一密文数据进行双重加密,即可以对待传输数据基于第一对称密钥通过ECDH算法进行加密得到第一密文数据,对第一密文数据中的重要内容基于第二对称密钥通过AES算法进行二次加密得到第二密文数据,服务器可基于与终端相同的第一对称密钥与对称加密算法进行两次解密得到传输数据;大大提升了数据传输的安全性,且可以根据数据重要程度选择不同的加密方式以提升传输速度。
参见图4D,在图4A示出的步骤104之后,还可以执行步骤105至步骤106,下面说明具体实现方法。
在步骤105中,基于第二对称密钥对第二业务数据进行对称加密算法的加密处理,得到第三密文数据。
示例的,第二业务数据是服务器响应请求消息的数据,是通过对第一业务数据执行所对应的业务场景的业务处理逻辑得到的。
在一些示例中,第二对称密钥以明文形式携带在第一密文数据解密结果中,或者,第二对称密钥是服务器基于随机密钥算法并结合第一对称密钥生成的,第二对称密钥的生成方式与上文相同,在此不再赘述。
在步骤106中,向终端发送响应消息。
示例的,响应消息携带第三密文数据。
在一些示例中,服务器通过高级加密标准算法基于第二对称密钥对第二业务数据进行对称加密处理,得到第三密文数据;服务器将第三密文数据发送至终端,终端可以根据与服务器相同的第二对称密钥以及高级加密标准算法解密第三密文数据获取第二业务数据。
在一些示例中,若终端基于与服务器相同的第二对称密钥以及高级加密标准算法无法解密第三密文数据,则说明第三密文数据在传输中已被篡改,终端可以屏蔽该第三密文数据以保障终端其他数据的安全性。
通过本申请实施例,可以进服务器处理后的业务数据通过加密算法基于与终端相同的第二对称密钥进行加密处理,并传输至终端;提高了由服务器传输至终端的数据安全性,且终端可以通过第二对称密钥以及对应算法进行解密无需额外的加密密钥或对称加密方法,也能够据此验证第三密文数据是否被篡改。
在一些实施例中,请求消息还可以携带数字签名,其中,数字签名是基于与预置服务器公钥对应的预置服务器私钥对哈希值进行加密得到的,哈希值是对终端公钥以及终端公钥的版本号进行哈希映射处理得到的;参考图4E,在图4A示出的步骤102之前,还可以执行步骤107至步骤109,下面具体说明。
在步骤107中,基于预置服务器私钥对数字签名进行解密处理,得到第一哈希值。
示例的,终端与服务器的预置服务器私钥与预置服务器公钥经过同一个证书颁发机构(CA,Certificate Authority)即颁发数字证书的机构进行认证,终端仅有预置服务器公钥,服务器既有预置服务器公钥也有预置服务器私钥;服务器可以通过预置服务器私钥对预置服务器公钥加密的数值签名进行解密处理,得到第一哈希值。
在步骤108中,确定终端公钥以及终端公钥的版本号的第二哈希值。
示例的,服务器将终端公钥的版本号转换为二进制数值,计算终端公钥以及终端公钥的版本号对应二进制数值的哈希值作为第二哈希值。
在步骤109中,响应于第一哈希值与第二哈希值相同,确定验证数字签名成功,并转入步骤102。
示例的,服务器响应于第一哈希值与第二哈希值相同,则说明终端发送至客户端的终端公钥以及终端公钥的版本号未被篡改,即确定验证数字签名成功,
服务器响应于第一哈希值与第二哈希值不同,则说明终端发送至客户端的终端公钥以及终端公钥的版本号有误或者已被篡改,即确定验证数字签名失败,服务器屏蔽相应请求消息。
通过本申请实施例,能够基于数字签名验证终端公钥以及终端公钥对应的版本号;可以防止在传输过程中被篡改以保证数据的安全性。
参考图4F,在一些实施例中,针对终端的多个应用场景,在步骤101之前,还可以执行步骤110和步骤111,下面具体说明。
在步骤110中,预先生成每个应用场景的密钥参数。
示例的,服务器能够根据终端的多个应用场景,预先生成对应终端每个应用场景的预置服务器密钥参数,不同的场景对应不同的密钥参数,密钥参数包括预置服务器公钥、预置服务器公钥适用的应用场景、以及预置服务器公钥的版本号。预置服务器公钥的应用场景可以采用名称或编号的方式与预置服务器公钥以及预置服务器公钥的版本号相对应。
在步骤111中,向终端发送密钥配置消息。
示例的,服务器向终端发送密钥配置信息。
其中,密钥配置消息携带密钥参数,以使终端更新本地存储的对应应用场景的密钥参数。密钥配置消息还可以携带数字签名,数字签名用于供终端基于第二证书验证密钥参数。
在一些实施例中,终端中预置第一证书,第一证书包括第一公钥,服务器中预置第二证书,第二证书包括第一公钥以及与第一公钥对应的第一私钥。示例的,终端中预置的第一证书与服务器中预置的第二证书由同一个证书颁发机构生成。
在一些示例中,在服务器向终端发送密钥配置消息之前,还可以通过以下方式生成数字签名:服务器确定密钥参数的哈希值;服务器基于第一私钥对哈希值进行非对称加密算法(例如ECDSA)的加密处理,得到数字签名。
示例的,服务器可以将任意长度的二进制值(明文)密钥,映射为较短的固定长度的二进制值(哈希值),并且不同的密钥难以映射为相同的哈希值。服务器可以根据非对称加密算法,例如数字签名算法(DSA,Digital Signature Algorithm)对第一私钥进行加密处理,得到数字签名;以保证信息传输的完整性、认证发送者的身份、防止交易中的抵赖发生。
通过本申请实施例,服务器能够针对终端请求消息的不同应用场景,生成每个应用场景对应的密钥参数,密钥参数包括应用场景对应的预置服务器公钥、预置服务器公钥的应用场景、预置服务器公钥的版本号;能够更好的根据应用场景分类密钥,降低系统冗余,便于后期维护。
在一些实施例中,密钥配置消息是当满足配置下发条件时由服务器发送的,配置下发条件包括以下至少之一:
条件1,服务器检测到预置服务器私钥泄露或被破解,更新的方式为泄露或被破解的预置服务器公钥。
示例的,服务器检测到预置服务器私钥已被泄露或破解,并且被泄露或破解的预置服务器私钥是被确定的,服务器主动进行更新对应预置服务器公钥配置下发,终端根据服务器的配置下发内容更新被确定已被泄露或破解的预置服务器私钥。
本申请实施例可以使用人工智能技术实现;人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统,人工智能可以研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能;在数据传输过程中,可以通过人工智能判断数据的被泄露或遭破解概率,以增强数据的安全性。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
在一些示例中,服务器可以基于AI技术预测当前预置服务器私钥是否存在被泄露的风险,即服务器中AI模型基于不同业务场景的预置服务器密钥异常的数据日志进行训练,通过训练后的AI模型,能够基于当前预置服务器私钥的数据日志,标记当前预置服务器私钥的安全状况,即标记数据是否泄露或是否存在泄露风险。
示例的,AI模型可以是神经网络模型、决策树模型等。
示例的,服务器能够响应于AI模型预测的当前预置服务器私钥存在泄露风险或已被泄露,提前向终端进行配置下发,更新存在泄露风险预置服务器私钥对应的预置服务器公钥或者对预置服务器公钥进行全量更新。
示例的,服务器中存储的预置服务器私钥日志可以分为两类,数据传输正常时的预置服务器私钥安全状态的数据日志,与数据传输异常时的预置服务器私钥异常状态的数据日志;其中,服务器AI模型的训练样本为预置服务器私钥异常状态的数据日志,即预置服务器私钥出错、服务器检测到预置服务器私钥遭到破解或泄露等无法正常解密传输数据、造成数据不安全情况下的数据日志。
条件2,终端中的客户端完成启动初始化,更新的方式为全量预置服务器公钥。
示例的,终端中的客户端完成启动初始化,终端将完成初始化的相应通知发送至服务器,服务器根据客户端初始化信息进行预置服务器密钥全量更新配置下发,终端根据服务器的配置下发内容进行全量更新预置服务器公钥。
条件3,终端中的客户端升级到新版本,更新的方式为全量预置服务器公钥。
示例的,终端中的客户端升级到新版本,终端将版本更新的相应通知发送至服务器,服务器根据客户端版本更新信息进行预置服务器密钥全量更新配置下发,终端根据服务器的配置下发内容进行全量更新预置服务器公钥。
在一些示例中,终端设备在每次版本升级或应用启动时,可以根据不同的场景在本地预置多个对应不同场景后端接口,其中每个不同的后端接口对应不同的预置服务端公钥,以及预置服务端公钥对应的版本号;对于相同场景,不同终端公用一套预置服务器公钥,若场景不同则预置服务器公钥不同。若未更新版本已存在对应的预置服务器公钥信息,则使用新的预置服务器公钥替换,同时版本号递增,预置服务器公钥和预置服务器公钥对应的版本号持久化存储在终端包中。在后续对应的接口请求中,使用此预置服务器公钥,以及本地实时生成的终端公钥和终端私钥,进行终端本地的半协商计算出应用层密钥(即对称密钥),用于该后端接口的应用层数据加密。当请求到达服务器后,服务器根据当前处理请求的接口以及终端携带的版本号,实时计算出次用户该次请求的对称密钥,用于解密应用层数据,获取密文数据,进行业务逻辑处理。服务器不再记录用户的会话对称密钥信息,转为全实时计算以降低系统冗余度。
条件4,终端中的操作系统完成启动初始化,更新的方式为全量预置服务器公钥。
示例的,终端中的操作系统完成启动初始化,终端将操作系统完成启动初始化的相应通知发送至服务器,服务器根据客户端操作系统完成初始化信息进行预置服务器密钥全量更新配置下发,终端根据服务器的配置下发内容进行全量更新预置服务器公钥。
条件5,终端中的操作系统升级到新版本,更新的方式为全量预置服务器公钥。
示例的,终端中的操作系统完成版本更新,终端将操作系统完成版本更新的相应通知发送至服务器,服务器根据客户端操作系统版本更新信息进行预置服务器密钥全量更新配置下发,终端根据服务器的配置下发内容进行全量更新预置服务器公钥。
条件6,到达预置服务器公钥的更新周期,更新的方式为更新到达更新周期的预置服务器密钥。
示例的,当服务器检测到终端的预置服务器公钥到达预置服务器公钥的更新周期时,服务器主动进行更新到达更新周期的预置服务器私钥配置下发,终端根据服务器的配置下发内容进行更新到达更新周期的预置服务器密钥。
需要说明的是,服务器在配置下发更新预置服务器密钥时,终端与服务器会实时更新本地预置的接口以及接口的相应密钥,接口与预置服务器密钥的应用场景相对应。终端还预置了预置服务器验证公钥,用于校验预置服务端公钥的数据合法性校验,防止被篡改。
本申请实施例引入远程配置下发的方式,当服务器的预置服务器私钥出现泄漏或被破解的情况时,及时替换终端相对应的预置服务端公钥;在终端每次进行客户端启动或升级时,实时获取服务器的全量预置服务器公钥的配置信息,若存在预置服务器公钥升级的配置,服务器通过配置下发实时更新终端本地预置服务器公钥。同时,终端还预置了预置服务器验证公钥,用于校验预置服务端公钥的数据合法性校验,防止被篡改。
如前所述,实现本申请实施例的数据传输方法的电子设备可以是终端、服务器,又或者是二者的结合。在步骤201至步骤205中各个步骤的执行主体为终端,因此下文中不再重复说明步骤201至步骤205的执行主体。
参见图5,图5是本申请实施例提供的数据传输方法的流程图,可以由上文所述的终端执行,将结合图5示出的步骤进行说明。
在步骤201中,生成终端密钥对,终端密钥对包括终端公钥和终端私钥。
示例的,终端在进行服务请求前会根据服务请求的类型实时生成经椭圆曲线加密算法生成的终端密钥对,终端密钥对包括终端公钥与终端私钥。
在一些示例中,终端通过椭圆曲线加密算法生成随机数字作为终端私钥,将终端私钥乘以椭圆曲线上的预定点,则终端私钥可以根据椭圆曲线进行映射获取其他位置产生的固定点,且在椭圆曲线中每个预定点映射的固定点是唯一的,预定点是可以随机生成的;终端将固定点根据椭圆曲线加密算法转换为终端公钥。
通过本申请实施例,根据终端的服务请求类型生成经过对称加密的终端密钥对,可以保障数据的安全性。
在步骤202中,基于服务器预下发的预置服务器公钥以及所终端私钥进行密钥计算处理,得到第一对称密钥。
终端基于预置服务器公钥以及所终端私钥通过对称加密算法进行密钥计算处理,得到第一对称密钥,通过密钥计算处理得到第一对称密钥过程与上文相同,在此不再赘述。
示例的,服务器中的不同接口能够关联终端的不同业务场景,每个业务场景所对应的预置服务器公钥类型是不同的,且每个业务场景可以对应多个该业务场景类型不同版本的预置服务器公钥。
在一些实例中,服务器中的账号登录接口关联终端对应应用的登录业务场景,终端的登录业务场景中存在由服务器预下发的登录预置服务器公钥,用于与登录业务场景中的登录终端私钥进行密钥计算处理,得到登录第一对称密钥。
通过本申请实施例,能够根据业务场景维护预置服务器公钥,终端与服务器采用预置协商密钥对的方式,降低实时协商产生的延迟损耗,以提升用户的交互体验。
在步骤203中,基于第一对称密钥对第一业务数据进行加密处理,得到第一密文数据。
示例的,终端基于第一对称密钥,对包括第一业务数据在内的待加密数据进行非对称加密算法的加密处理,得到第一密文数据。
在一些示例中,终端基于第一对称密钥通过数字签名算法,对包括第一业务数据在内的待加密数据进行非对称加密算法的加密处理,得到第一密文数据。服务器可以通过由服务器根据预置服务器私钥与终端公钥生成的第一对称密钥以及与终端相同的非对称加密算法解密第一密文数据以获取第一业务数据及其他数据。
示例的,终端基于随机密钥算法并结合所述第一对称密钥生成第二对称密钥,基于所述第一对称密钥,对包括第一业务数据以及明文形式的所述第二对称密钥在内的待加密数据,进行非对称加密算法的加密处理,得到第一密文数据。
在一些示例中,服务器可以通过第一对称密钥解密第一密文数据,以获取第二对称密钥以及第一业务数据;服务器可以通过第二对称密钥对经过服务器处理后的第一业务数据进行再次加密,得到加密服务数据,服务器将加密服务数据发送至终端,终端可以通过预先生成的第二对称密钥对加密服务数据进行解密以获取经服务器处理后的第一业务数据并根据业务场景进行后续操作(例如账号登录、支付验证等)。
服务器或终端均可根据第二对称密钥通过相同的算法对密文数据进行解密或者再次加密。
在一些实施例中,终端在基于第一对称密钥对第一业务数据进行加密处理之前,确定对第一业务数据进行加密处理的时间,将对应当前时间的时间戳、第一业务数据以及第二对称密钥共同进行加密处理得到第一密文数据。
时间戳用于记录终端加密第一业务数据得到密文数据的时间,能够防止重复请求,服务器可以根据密文数据的时间戳判断密文数据的时效性。
需要说明的是,终端可根据当前第一业务数据的业务场景,选择是否加入时间戳或第二加密密钥,与第一业务数据共同进行加密。
例如,在实时支付业务场景中,终端将支付场景下的业务数据与时间戳、第二加密密钥共同进行加密得到支付密文数据并发送至客户端。在应用的版本更新中,终端仅将版本更新场景下的业务数据进行对称加密处理得到更新密文数据并发送至客户端。
通过本申请实施例,终端能够根据第一业务数据的使用场景,以及数据的重要程度,灵活选择是否进行二次加密或者加入时间戳;在保证数据安全性与实时性的同时,可以根据数据类型,提高数据加密速度或安全性。
在步骤204中,生成请求消息,其中,请求消息包括第一密文数据、终端公钥以及预置服务器公钥的版本号。
示例的,终端基于第一密文数据的具体应用业务场景,生成对应的请求消息;请求消息包括第一密文数据、终端公钥以及预置服务器公钥的版本号。
在一些示例中,服务器可以基于终端的请求消息,通过预置服务器公钥的版本号查询对应的预置服务器私钥,通过与终端相同的对称加密算法基于预置服务器私钥与终端公钥生成第一对称公钥用于解密第一密文数据获取第一业务数据。
通过本申请实施例,终端能够根据对应的业务使用场景发送相关请求消息至服务器,服务器可以根据请求消息内容获取对应业务服务数据。
在步骤205中,向服务器发送请求消息。
示例的,终端基于生成的请求消息根据请求消息的业务场景向服务器对应的业务接口发送请求消息。
在一些示例中,服务器接收终端发送的请求消息,根据请求消息的业务类型进行相关处理。
通过本申请实施例,终端能够根据请求信息的业务场景将生成的请求信息发送至服务器对应的业务场景接口,便于终端以及服务器对请求消息进行分类,减小系统冗余度。
在一些实施例中,终端接收服务器发送的密钥配置消息,其中,密钥配置消息携带应用场景的密钥参数,终端的不同场景对应不同的密钥参数,密钥参数包括预置服务器公钥、预置服务器公钥适用的应用场景、以及预置服务器公钥的版本号;
示例的,终端基于密钥配置消息携带的密钥参数,更新本地存储的对应应用场景的密钥参数。
在一些示例中,密钥配置消息是当满足配置下发条件时由服务器发送的,配置下发条件包括以下至少之一:服务器检测到预置服务器私钥泄露或被破解,更新的方式为泄露或被破解的预置服务器公钥;终端中的客户端完成启动初始化,更新的方式为全量预置服务器公钥;终端中的客户端升级到新版本,更新的方式为全量预置服务器公钥;终端中的操作系统完成启动初始化,更新的方式为全量预置服务器公钥;终端中的操作系统升级到新版本,更新的方式为全量预置服务器公钥;终端中存在预置服务器公钥到达预置服务器公钥的更新周期,更新的方式为更新到达更新周期的预置服务器密钥。
通过本申请实施例,可以对业务场景的业务数据进行多重加密以保障用户敏感数据在外网到整个后端链路的数据安全;服务器预下发预置服务器公钥至终端,从而使服务器及终端可以计算出作用相同的第一对称密钥,无需额外的密钥交互流程,减少网络请求耗时,提升用户体验;通过客户端基于终端公钥与终端公钥的版本号查询预置的终端服务器私钥进行对称加密计算,实时得到第一加密密钥或第二加密密钥,无需存储用户会话状态,且根据业务场景接入对应密文数据或密钥,过程简单,维护成本低;通过服务器进行预置服务器公钥的定期或根据需求进行轮换配置下发,能够很好的平衡前向安全性与提高用户体验,避免数据泄露。
下面,将说明本申请实施例提供的数据传输方法在一个实际的应用场景中的示例性应用。
在涉及到用户的产品与应用中,用户数据属于核心资产,需要重点保障部分数据的传输安全与存储安全性。若系统设计不当导致用户数据泄漏,将会影响业务的发展,产生较大的负面影响。
对一些用户密码,身份信息等核心隐私数据,通常会基于HTTPS的链路下,在应用层进行一次额外的数据加密,此时将会涉及到应用层的密钥协商机制与用户状态的存储,整体设计偏定制化且交互流程较为复杂。
本申请实施例基于HTTPS与应用层的自定义协商加密方案的现有问题,设计并实现了一种零往返时间(0RTT,Zero Round Trip Time)的无状态轻量级应用层加密方法。通过多版本密钥配置下发,客户端与服务端采用预制协商密钥对的方式,降低实时协商产生的往返时间延迟损耗,提升网络环境较差下用户的交互体验;同时去除后台用户密钥协商的状态存储,提升整个系统的可用性,降低系统设计的复杂度和维护成本。
参见图6,图6是本申请实施例提供的服务器系统架构示意图,上文的所述服务器可以由服务器集群实现,按照功能划分为多个功能层,每个功能层具体由多个服务器实现,包括接口网关服务器、逻辑层服务器、平台层服务器、存储层服务器。管理服务器可以根据业务场景通过远程配置下发更新预置服务器公钥以及预置服务器公钥对应的版本号至对应服务器(服务器集群)。
示例的,管理服务器可以预先将预置服务器密钥发送至存储层服务器中,预置服务器密钥是存在对应版本号的,预置服务器密钥包括预置服务器公钥与预置服务器私钥,以及验证预置服务器私钥;其中验证预置服务器私钥用于验证由管理服务器配置下发的更新预置服务器公钥的真实性及有效性。
管理服务器可以配置预置服务器密钥中的预置服务器公钥以及预置服务器公钥对应的版本号;管理服务器能够通过远程配置下发的方式更新存储层服务器中的预置服务器公钥以及预置服务器公钥对应的版本号信息。
在一些示例中,管理服务器通过远程配置下发的方式更新预置服务器公钥以及预置服务器公钥对应的版本号信息,即管理服务器通过超文本传输安全协议将更新预置服务器公钥以及预置服务器公钥对应的版本号信息发送至接口网关服务器。更新预置服务器公钥以及预置服务器公钥对应的版本号信息接入网关,通过应用层协议(HTTP,Hyper TextTransfer Pro tocol)传输至接口网关服务器,接口网关服务器API网关封装了应用程序的内部结构,使得服务器之间只需要同网关交互,而不必调用特定的服务。同时API网关为每一类客户端提供了特定的API接口,从而减少客户端与应用程序间的交互次数,简化服务器代码的处理。API网关服务器通过远程过程调用(RPC,Remote Procedure Call)逻辑层服务器进行注册、登录以及密码重置等业务服务操作。逻辑层服务器可以将更新预置服务器公钥与预置服务器公钥相应的版本号发送至平台层服务器,平台层服务器接收更新预置服务器公钥与预置服务器公钥对应的版本号进行密钥管理,平台层服务器调用通过预先存储至存储层服务器的预置服务器密钥中的验证预置服务器私钥,其中存储层服务器具有多个版本的预置服务器私钥(版本号可以表示为V1-Vn),校验更新预置服务器公钥的有效性及真实性,若验证成功则生成对应更新预置服务器公钥与对应更新版本号的更新预置服务器私钥,平台层服务器将更新预置服务器私钥及更新版本号存储至存储层服务器。平台层服务器在验证更新服务器公钥之后,会调用预先存储的预置服务器私钥,通过对称加密算法(例如椭圆曲线加密算法)生成会话密钥,并将会话密钥返回至逻辑层,以完成相关业务服务操作。
参考图7A,图7A是本申请实施例提供的服务器与终端交互示意图,包括终端与服务器,其中服务器包括业务处理系统和密钥计算系统;下面将结合图7B进行具体说明。
参考图7B,图7B是本申请实施例提供的服务器与终端交互流程示意图。
在步骤301中,服务器向终端预置服务器公钥动态升级指令。
示例的,服务器可以通过远程配置对终端下发预置服务器公钥动态升级指令;远程配置是一项云服务,可以无需下载仅通过在线数据传输的方式实现创建应用默认值,客户端通过远程配置替换应用默认值,并可以设定预置服务器公钥升级时间。
在一些示例中,终端预置服务器公钥是经过ECC算法加密的,并且存在对应的版本号和使用场景,每个终端的使用业务场景与服务器业务场景接口向对应;每个业务场景存在一组预置服务器密钥(预置服务器公钥、预置服务器私钥),预置服务器密钥支持按功能接口维度配置。
通过本申请实施例,在终端中引入预置服务器公钥,并将预置服务器密钥以及相应的版本号与业务场景相关联,有利于后期维护。
在步骤302中,终端接收预置服务器公钥动态升级指令,终端实时生成经ECC加密算法处理的终端密钥对。
示例的,预置服务器公钥升级指令可以是由服务器提前下发的,服务器将动态升级指令设置为指定时间触发,终端可以在服务器指定的时间获取更新预置服务器公钥指令及相关信息。
在步骤303中,终端基于终端私钥与预置服务器公钥通过对称加密算法生成对称加密密钥。
示例的,终端可以通过终端密钥对中的终端私钥与服务器预下发的预置服务器公钥通过ECDH算法生成应用层的对称加密密钥。
在一些示例中,终端可以基于终端私钥与预置服务器公钥根据其他对称加密算法(高级加密标准算法)得到应用层的对称加密密钥。
在步骤303中,终端基于对称加密密钥通过高级加密标准算法加密业务服务数据得到密文数据。
示例的,密文数据包括终端用于进行业务请求获取业务服务的数据,例如:登录账号、密码、用户名等。
在一些示例中,密文数据可以包括随机密钥或时间戳,其中随机密钥用于再次加密业务服务数据或解密密文数据,随机密钥是基于对称加密密钥根据加密业务服务数据的加密算法生成的,由于服务器拥有相同作用的对称加密密钥以及相应的加密算法,所以服务器能够自行计算出随机密钥;时间戳用于记录密文数据的生成时间。
通过本申请实施例,可以根据业务服务数据的重要程度通过随机密钥对业务服务数据进行再次加密,或服务器通过计算得到的随机密钥而非对称加密密钥对密文数据进行解密;减少对称加密密钥使用次数以避免泄露;通过时间戳记录密文数据的生成时间,以增强密文数据的时效性并防止重复请求。
在步骤304中,终端将终端公钥、预置服务器公钥对应的版本号、密文数据发送至服务器。
示例的,终端通过终端私钥对版本号、密文数据进行加密处理,得到签名数据(数字签名),服务器可以通过签名数据认证终端身份。
在一些示例中,终端发送账号登录业务场景对应的终端私钥、预置服务器公钥对应的版本号以及密文数据,密文数据包括用户的隐私数据如手机号、密码、证件号等信息。
在步骤305中,服务器接收终端公钥、预置服务器公钥对应的版本号和密文数据。
在一些示例中,服务器的业务系统接收到终端公钥、预置服务器公钥对应的版本号、密文数据还包括终端签名数据;终端签名数据是终端基于终端私钥对终端公钥以及预置服务器公钥对应的版本号进行加密后得到的。
服务器可以通过终端公钥对终端签名数据进行解密获取对应的第一哈希值,服务器能够计算接收到的终端公钥以及预置服务器公钥对应的版本号得到第二哈希值;将第一哈希值与第二哈希值仅对比,若哈希值相同则验证通过。
在步骤306中,服务器基于终端公钥和预置服务器公钥对应的版本号,进行密钥计算处理,得到出对称加密密钥。
示例的,服务器调用密钥计算系统包括密钥分发中心(KDC,Key DistributionCenter)进行密钥计算,服务器调用密钥分发中心中的密钥计算系统,基于终端公钥与预置服务器公钥对应的版本号查询预置服务器私钥,通过与终端相同的加密算法(ECDH算法)得到作用相同的应用层的对称加密密钥;服务器将对称加密密钥由密钥计算系统返回至服务器中的业务处理系统。
示例的,若服务器调用密钥分发中心基于终端公钥与终端公钥对应的版本号,无法获取预置服务器私钥,则说明终端公钥错误或版本号错误,无法获得对称加密密钥,结束请求。
在步骤307中,服务器根据对称加密密钥通过高级加密标准算法对密文数据进行解密处理,得到业务服务数据。
示例的,服务器能够基于与终端用于加密的相同对称加密密钥以及相同的对称加密算法(即高级加密标准算法)对密文数据进行解密,得到业务服务数据。
在一些示例中,解密后的密文数据包括业务服务数据,还可以包括得到密文数据的时间戳以及随机密钥;时间戳用于记录密文数据的生成时间,随机密钥是由终端与服务器共有的对称加密密钥以及相同对称加密算法生成的对称加密密钥,可以用于解密密文数据或再次加密业务服务数据。
在步骤308中,服务器对业务服务数据进行业务逻辑处理,得到服务结果;服务器基于随机密钥通过高级加密标准算法对服务结果进行加密处理,得到服务密文数据。
在一些示例中,例如账号登录场景,业务服务数据时用户用于登录的登录账号及登录密码,服务器可以基于获取的登录账号即账号密码进行登录服务,并得到登录结果(例如登录成功);服务器将登录结果基于高级加密标准算法通过随机密钥进行加密得到服务密文数据。
随机密钥由终端与服务器共有的对称加密密钥通过相同的对称加密算法计算得到,故在不进行随机密钥传输的情况下,终端或服务器也可以自行计算出相同的随机密钥用于解密或加密数据。通过随机密钥也可以验证数据是否被篡改,若被加密数据无法通过随机密钥及相应的加密算法进行解密,则说明被加密数据已变更或对称加密密钥已被破解。
通过本申请实施例,服务器可通过随机密钥加密返回终端的数据,使得降低对称加密密钥的使用次数,以防止泄露,随机密钥也可用于验证数据的安全性。
在步骤309中,服务器将服务密文数据返回至终端。
示例的,终端相应的业务场景的接口可以获取由终端发送的服务密文数据,并实时计算出随机密钥以解密服务密文数据,得到服务结果。
在一些示例中,若服务器无法解密密文数据,或密文数据错误,则返回请求失败以及对应请求失败的原因。
在使用HTTPS进行基础的链路传输保护时,终端可能由于信任了第三方的根证书等问题,会导致用户的请求被中间人代理劫持,用户的所有TLS协商均是和中间人进行的。在使用此优化方案后,即使出现中间人攻击,由于应用层进行了一次额外的加密,攻击者在不知道应用层的加密密钥时,无法解密出加密数据。同时在接入网关后的全内网链路上,由于是剥离了TLS的明文数据,该方案也能保障内部网络被攻击或者人为情况下产生的用户隐私数据泄漏的问题。
通过本申请实施例,终端能够根据业务请求信息实时生成终端密钥对,以保证数据传输的安全性,通过预置服务器公钥与终端私钥进行协商得到对称加密密钥,减少密钥生成请求耗时;能够进行多重加密以保证重要数据的安全性,终端与服务器均通过实时计算密钥的方式解密密文数据,降低了系统冗余且降低了密钥泄露风险;降低了存储成本与业务逻辑复杂性。
参考图7C,图7C是本申请实施例提供的配置下发流程示意图,服务器定期或当收到终端请求时亦或是发现预置服务器私钥已经泄漏时,进行配置检查;若发现预置服务器私钥或预置服务器公钥已更新,则服务器会校验预置服务器私钥、预置服务器公钥、业务场景服务数据;服务器完成校验后通过远程配置(HTTPS)进行数据传输更新终端预置服务器公钥。终端可以通过更新后的预置服务器公钥与服务器进行相应场景的业务服务请求。
示例的,终端在每次客户端版本升级或应用启动时,会根据不同的场景在本地预置多个对应不同场景后端接口,其中每个不同的后端接口对应不同的预置服务端公钥,以及预置服务端公钥对应的版本号;
其中,后端接口对应预置服务端公钥,预置服务端公钥的版本号不断更新,对于相同场景,不同终端公用一套预置服务端公钥,场景不同则预置服务端公钥不同。若当前版本号已存在对应的预置服务器公钥信息,则使用新的公钥替换,同时版本号递增,(预置服务器公钥和对应的版本号)持久化存储在终端中。在后续对应的接口请求中,使用此预置服务器公钥,以及本地实时生成的终端公私钥对,进行本地的半协商计算出应用层加密密钥,用于该后端接口的应用层数据加密。当请求到达服务端后,服务器根据当前处理请求的接口以及预置服务器公钥携带的版本号,调用密钥计算服务中实时计算出终端请求的对称加密密钥,用于解密应用层数据,通过对称加密密钥获取密文数据,进行业务逻辑处理。服务器不再记录对称加密密钥信息,转为全实时计算。
当服务器的预置服务器私钥出现泄漏或被破解的情况时,需要及时替换终端预置服务器公钥。本方案引入远程配置的方式,在终端用户每次启动应用时,实时拉取服务器的全量公钥配置信息,若存在密钥升级的配置,均会实时更新本地相应业务场景接口的预置服务器公钥。为配置下发的更新预置服务器公钥,预置服务器公钥用于验证的数据合法性校验,防止篡改。
在一些实施例中,终端相关业务场景应用启动后,异步拉取服务器的配置下发服务,获取应用场景的密钥升级配置;若检测到有密钥版本的升级,服务端会下发一组对应的密钥信息,密钥信息包括:场景,对应场景的更新预置服务器公钥,更新预置服务器公钥版本号,签名数据;其中,服务器和终端有来自同一个CA证书的认证,服务器有预置服务器私钥及预置服务器公钥;客户端仅有预置服务器公钥;签名数据是服务器通过预置服务器私钥进行加密得到的。
客户端在获取到配置信息后,采用本地预置服务端公钥,验证配置下发的数据合法性,即通过服务器预下发的验证预置服务器公钥校验场景、对应场景的更新预置服务器公钥、更新预置服务器公钥版本号;若校验成功,则更新本地对应场景的预置服务器公钥以及对应版本号。
示例的,终端通过预置服务器公钥解密数字签名得到哈希值、从明文形式的“场景,更新预置服务器公钥,版本号”计算得到的哈希值;判断两个哈希值是否相同;校验成功则更新本地的预置服务器公钥及预置服务器公钥对应版本号。
当终端再次向服务器发起业务请求时,使用终端中对应业务场景的最新版本的预置服务器公钥与终端私钥进行加密协商。
通过本申请实施例,终端与服务器可以通过密钥配置下发的方式,定时或根据需求更新终端预置服务器公钥,以保证数据的安全性。
在一些实施例中,在终端与服务器进行密钥协商时,终端需要拿到预置服务器公钥以及预置服务器公钥的版本号,同时服务器有一个对应版本的预置服务器私钥,以此来进行应用层的加密密钥生成。若对应的预置服务器私钥泄漏,攻击者就可以进行中间人攻击,伪造服务器和终端进行通信,进而获取用户的隐私数据。针对此问题,本申请实施例,通过引入密钥版本机制来进行多版本预置服务器密钥的轮换,若出现泄漏的风险,通过新增新版本预置服务器密钥,同时通过服务器的远程配置下发实时更新终端的预置服务器公钥,进行平滑的升级切换。即使预置服务器私钥被破解或泄露,由于应用层通过HTTPS进行数据传输,数据传输过程能够极大的防止大规模的中间人攻击问题。
在相关技术中,为了保障传输数据的完全前向安全性,终端需要在每次发起业务请求前,需要与服务器先进行一次实时的应用层握手密钥协商请求,实时换取服务端的动态公钥来计算出对称加密密钥,造成了一次实时的外网请求耗时,同时服务器需要存储下此终端的终端公钥,用于业务请求时的对称密钥计算以及解密。由于服务器的私钥存储在密钥管理系统中,整体安全性较高,不会存在需要实时替换的场景,本申请实施例针对实时配置下发的前置流程优化为终端预置服务器公钥,同时提供安全的动态升级能力来避免实时协商以及满足基本数据传输的前向安全能力。
服务器在保证预置服务器私钥的存储安全情况下,由于外网链路以及终端均只会使用和传输预置服务器公钥,即使预置服务器公钥被攻击者拿到,也无法反推出服务器的预置服务端私钥;以保持数据传输的安全性。
通过本申请实施例,对传输数据进行多次加密以及仅传输终端公钥、预置服务器公钥对应版本号、密文数据,保障用户敏感数据在外网到整个后端链路的数据安全;通过服务器预下发的预置服务器公钥使得终端与服务器无需额外的密钥交互流程,减少网络请求耗时,提升用户体验;终端与服务器通过实时计算对称加密密钥并解密传输数据,使得终端与服务器存储用户会话(密钥协商)状态,且密钥对应相关的业务场景接口接入简单、维护成本低;服务器通过预置服务器公钥的按照需求或版本更新轮换配置下发,能够根据业务场景或数据重要程度平衡前向安全性以及用户体验问题。
下面继续说明本申请实施例提供的数据传输装置255的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器240的数据传输装置255中的软件模块可以包括:消息接收模块2551、查询模块2552、密文计算模块2553以及密文解密模块2554、
消息接收模块2551,用于用收终端发送的请求消息,其中,请求消息携带第一密文数据、终端公钥以及终端公钥的版本号,第一密文数据是终端基于第一对称密钥对第一业务数据进行加密处理得到的,第一对称密钥是终端基于终端私钥和服务器预下发的预置服务器公钥进行密钥计算处理得到的;查询模块2552,用于基于预置服务器公钥和终端公钥的版本号查询得到预置服务器公钥对应的预置服务器私钥;密文计算模块2553用于基于预置服务器私钥以及终端公钥进行密钥计算处理,得到第一对称密钥;密文解密模块2554用于基于第一对称密钥对第一密文数据进行解密处理,得到第一业务数据。
在一些实施例中,消息接收模块2551,还用于针对终端的多个应用场景,生成每个应用场景的密钥参数,其中,不同的场景对应不同的密钥参数,密钥参数包括预置服务器公钥、预置服务器公钥适用的应用场景、以及预置服务器公钥的版本号;向终端发送密钥配置消息,其中,密钥配置消息携带密钥参数,以使终端更新本地存储的对应应用场景的密钥参数。
在一些实施例中,消息接收模块2551,还用于预置服务器私钥泄露或被破解,更新的方式为泄露或被破解的预置服务器公钥;终端中的客户端完成启动初始化,更新的方式为全量预置服务器公钥;终端中的客户端升级到新版本,更新的方式为全量预置服务器公钥;终端中的操作系统完成启动初始化,更新的方式为全量预置服务器公钥;终端中的操作系统升级到新版本,更新的方式为全量预置服务器公钥;到达预置服务器公钥的更新周期,更新的方式为更新到达更新周期的预置服务器密钥。
在一些实施例中,查询模块2552,还用于确定目标业务场景,其中,目标业务场景是用于接收请求消息的接口关联的业务场景;基于终端公钥的版本号查询目标业务场景关联的至少一个预置版本的密钥对,得到与终端公钥的版本号关联的目标密钥对,其中,目标密钥对包括预置服务器公钥、以及预置服务器公钥对应的预置服务器私钥;从目标密钥对中读取预置服务器私钥。
在一些实施例中,密文计算模块2553,还用于通过以下方式生成数字签名:确定密钥参数的哈希值;基于第一私钥对哈希值进行加密处理,得到数字签名。
在一些实施例中,密文解密模块2554,还用于基于第一对称密钥对第一密文数据进行解密处理,得到解密结果,其中,解密结果包括第二密文数据;基于第二对称密钥对第二密文数据进行的解密处理,其中,第二对称密钥以明文形式携带在解密结果中,或者,第二对称密钥是服务器基于随机密钥算法并结合第一对称密钥生成的;响应于基于第二对称密钥成功进行解密处理,将解密处理得到的数据作为第一业务数据。
在一些实施例中,密文解密模块2554,还用于将时间戳与已响应请求消息携带的时间戳进行比较;响应于比较一致,确定请求消息为重复发送的,并屏蔽响应请求消息;响应于比较不一致,确定请求消息为非重复发送的,确定响应请求消息。
在一些实施例中,消息接收模块2551,还用于基于第二对称密钥对第二业务数据进行对称加密算法的加密处理,得到第三密文数据,其中,第二对称密钥以明文形式携带在第一密文数据解密结果中,或者,第二对称密钥是服务器基于随机密钥算法并结合第一对称密钥生成的;向终端发送响应消息,其中,响应消息携带第三密文数据;基于预置服务器私钥对数字签名进行解密处理,得到第一哈希值;确定终端公钥以及终端公钥的版本号的第二哈希值;响应于第一哈希值与第二哈希值相同,确定验证数字签名成功,并转入基于预置服务器公钥和终端公钥的版本号查询得到预置服务器公钥对应的预置服务器私钥的处理;响应于第一哈希值与第二哈希值不同,确定验证数字签名失败,屏蔽响应请求消息。
下面继续说明本申请实施例提供的数据传输装置255的实施为软件模块的示例性结构,在一些实施例中,如图3所示,存储在存储器440的数据传输装置455中的软件模块可以包括:密钥生成模块4551、密钥计算模块4552、密钥加密模块4553、消息生成模块4554以及消息发送模块4555。
在一些实施例中,密钥生成模块4551,用于生成终端密钥对,终端密钥对包括终端公钥和终端私钥;密钥计算模4552,用于基于服务器预下发的预置服务器公钥以及所终端私钥进行密钥计算处理,得到第一对称密钥;密文加密模块4553,用于基于第一对称密钥对第一业务数据进行加密处理,得到第一密文数据;消息生成模块4554,用于生成请求消息,其中,请求消息包括第一密文数据、终端公钥以及预置服务器公钥的版本号;消息发送模块4555,用于向服务器发送请求消息。
在一些实施例中,密钥生成模块4551,还用于接收服务器发送的密钥配置消息,其中,密钥配置消息携带应用场景的密钥参数,终端的不同场景对应不同的密钥参数,密钥参数包括预置服务器公钥、预置服务器公钥适用的应用场景、以及预置服务器公钥的版本号;基于密钥配置消息携带的密钥参数,更新终端本地存储的对应应用场景的密钥参数。
在一些实施例中,密钥生成模块4551,还用于预置服务器私钥泄露或被破解,更新的方式为泄露或被破解的预置服务器公钥;终端中的客户端完成启动初始化,更新的方式为全量预置服务器公钥;终端中的客户端升级到新版本,更新的方式为全量预置服务器公钥;终端中的操作系统完成启动初始化,更新的方式为全量预置服务器公钥;终端中的操作系统升级到新版本,更新的方式为全量预置服务器公钥;到达预置服务器公钥的更新周期,更新的方式为更新到达更新周期的预置服务器密钥。
在一些实施例中,密钥计算模块4552还用于,基于第二证书中的第一公钥,对数字签名进行解密处理,得到第一哈希值;确定密钥参数的第二哈希值;响应于第一哈希值与第二哈希值相同,确定验证数字签名成功,转入终端本地存储的对应应用场景的密钥参数的处理;响应于第一哈希值与第二哈希值相同,确定验证数字签名失败,屏蔽响应密钥配置消息。
在一些实施例中,消息发送模块4555还用于,确定当前待发送的第一业务数据所属的目标业务场景;向服务器中与目标业务场景关联的接口,发送请求消息。
在一些实施例中,密文加密模块4553,还用于基于第一对称密钥,对包括第一业务数据在内的待加密数据进行非对称加密算法的加密处理,得到第一密文数据;或者,基于随机密钥算法并结合第一对称密钥生成第二对称密钥,基于第一对称密钥,对包括第一业务数据以及明文形式的第二对称密钥在内的待加密数据,进行非对称加密算法的加密处理,得到第一密文数据。
在一些实施例中,密文加密模块4553,还用于确定当前时间的时间戳;在待加密数据中加入时间戳。
在一些实施例中,消息发送模块4555,还用于终端发送的请求消息对应不同的终端密钥对,或者,终端的不同应用场景对应不同的终端密钥对。
本申请实施例提供一种存储有计算机可执行指令的计算机可读存储介质,其中存储有计算机可执行指令,当计算机可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的数据传输方法,例如,如图4A至图4E示出的数据传输方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarku p Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
综上所述,通过本申请实施例通过本申请实施例,对传输数据进行多次加密以及仅传输预置服务器公钥、终端公钥的版本号、密文数据,保障用户敏感数据在外网到整个后端链路的数据安全;通过服务器预下发的预置服务器公钥使得终端与服务器无需额外的密钥交互流程,减少网络请求耗时,提升用户体验;终端与服务器通过实时计算对称加密密钥并解密传输数据,使得终端与服务器存储用户会话(密钥协商)状态,且密钥对应相关的业务场景接口接入简单、维护成本低;服务器通过预置服务器公钥的按照需求或版本更新轮换配置下发,能够根据业务场景或数据重要程度平衡前向安全性以及用户体验问题。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (15)

1.一种数据传输方法,其特征在于,应用于服务器,所述方法包括:
接收终端发送的请求消息,其中,所述请求消息携带第一密文数据、终端公钥以及终端公钥的版本号,所述第一密文数据是所述终端基于第一对称密钥对第一业务数据进行加密处理得到的,所述第一对称密钥是所述终端基于终端私钥和所述服务器预下发的预置服务器公钥进行密钥计算处理得到的;
基于所述预置服务器公钥和所述终端公钥的版本号查询得到所述预置服务器公钥对应的预置服务器私钥;
基于所述预置服务器私钥以及所述终端公钥进行所述密钥计算处理,得到所述第一对称密钥;
基于所述第一对称密钥对所述第一密文数据进行解密处理,得到所述第一业务数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
针对所述终端的多个应用场景,生成每个所述应用场景的密钥参数,其中,不同的所述场景对应不同的所述密钥参数,所述密钥参数包括所述预置服务器公钥、所述预置服务器公钥适用的应用场景、以及所述预置服务器公钥的版本号;
向所述终端发送密钥配置消息,其中,所述密钥配置消息携带所述密钥参数,以使所述终端更新本地存储的对应所述应用场景的密钥参数。
3.根据权利要求2所述的方法,其特征在于,所述密钥配置消息是当满足配置下发条件时由所述服务器发送的,所述配置下发条件包括以下至少之一:
所述预置服务器私钥泄露或被破解,更新的方式为泄露或被破解的所述预置服务器公钥;
所述终端中的客户端完成启动初始化,所述更新的方式为全量预置服务器公钥;
所述终端中的客户端升级到新版本,所述更新的方式为全量预置服务器公钥;
所述终端中的操作系统完成启动初始化,所述更新的方式为全量预置服务器公钥;
所述终端中的操作系统升级到新版本,所述更新的方式为全量预置服务器公钥;
到达所述预置服务器公钥的更新周期,所述更新的方式为更新到达所述更新周期的所述预置服务器密钥。
4.根据权利要求2所述的方法,其特征在于,
所述终端中预置第一证书,所述第一证书包括第一公钥,所述服务器中预置第二证书,所述第二证书包括所述第一公钥以及与所述第一公钥对应的第一私钥;
所述密钥配置消息还携带数字签名,所述数字签名用于供所述终端基于所述第二证书验证所述密钥参数;
在所述向所述终端发送密钥配置消息之前,所述方法还包括:
通过以下方式生成所述数字签名:
确定所述密钥参数的哈希值;
基于所述第一私钥对所述哈希值进行加密处理,得到所述数字签名。
5.根据权利要求1所述的方法,其特征在于,
所述服务器中的不同接口关联所述终端的不同业务场景;
所述基于所述预置服务器公钥和所述终端公钥的版本号查询得到所述预置服务器公钥对应的预置服务器私钥,包括:
确定目标业务场景,其中,所述目标业务场景是用于接收所述请求消息的所述接口关联的所述业务场景;
基于所述终端公钥的版本号查询所述目标业务场景关联的至少一个预置版本的密钥对,得到与所述终端公钥的版本号关联的目标密钥对,其中,所述目标密钥对包括所述预置服务器公钥、以及所述预置服务器公钥对应的预置服务器私钥;
从所述目标密钥对中读取所述预置服务器私钥。
6.根据权利要求1所述的方法,其特征在于,所述基于所述第一对称密钥对所述第一密文数据进行解密处理,得到所述第一业务数据,包括:
基于所述第一对称密钥对所述第一密文数据进行解密处理,得到解密结果,其中,所述解密结果包括第二密文数据;
基于第二对称密钥对所述第二密文数据进行解密处理,其中,所述第二对称密钥以明文形式携带在所述解密结果中,或者,所述第二对称密钥是所述服务器基于随机密钥算法并结合所述第一对称密钥生成的;
响应于基于所述第二对称密钥成功进行所述解密处理,将所述解密处理得到的数据作为所述第一业务数据;
所述方法还包括:
响应于基于所述第二对称密钥未成功进行所述解密处理,确定所述请求消息被篡改,并屏蔽响应所述请求消息。
7.根据权利要求6所述的方法,其特征在于,
所述解密结果还包括表征第一密文数据的生成时间的时间戳;
所述方法还包括:
将所述时间戳与已响应请求消息携带的时间戳进行比较;
响应于比较一致,确定所述请求消息为重复发送的,并屏蔽响应所述请求消息;
响应于比较不一致,确定所述请求消息为非重复发送的,确定响应所述请求消息。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于第二对称密钥对第二业务数据进行对称加密算法的加密处理,得到第三密文数据,其中,所述第二对称密钥以明文形式携带在所述第一密文数据解密结果中,或者,所述第二对称密钥是所述服务器基于随机密钥算法并结合所述第一对称密钥生成的;
向所述终端发送响应消息,其中,所述响应消息携带所述第三密文数据;
在基于所述预置服务器公钥和所述终端公钥的版本号查询得到所述预置服务器公钥对应的预置服务器私钥之前,所述方法还包括:
基于所述预置服务器私钥对所述数字签名进行解密处理,得到第一哈希值;
确定所述终端公钥以及终端公钥的版本号的第二哈希值;
响应于所述第一哈希值与所述第二哈希值相同,确定验证所述数字签名成功,并转入所述基于所述预置服务器公钥和所述终端公钥的版本号查询得到所述预置服务器公钥对应的预置服务器私钥的处理;
响应于所述第一哈希值与所述第二哈希值不同,确定验证所述数字签名失败,屏蔽响应所述请求消息。
9.一种数据传输方法,其特征在于,应用于终端,所述方法包括:
生成终端密钥对,所述终端密钥对包括终端公钥和终端私钥;
基于服务器预下发的预置服务器公钥以及所终端私钥进行密钥计算处理,得到第一对称密钥;
基于所述第一对称密钥对第一业务数据进行加密处理,得到第一密文数据;
生成请求消息,其中,所述请求消息包括所述第一密文数据、所述终端公钥以及所述预置服务器公钥的版本号;
向所述服务器发送所述请求消息。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
接收所述服务器发送的密钥配置消息,其中,所述密钥配置消息携带所述应用场景的密钥参数,所述终端的不同场景对应不同的所述密钥参数,所述密钥参数包括所述预置服务器公钥、所述预置服务器公钥适用的应用场景、以及所述预置服务器公钥的版本号;
基于所述密钥配置消息携带的所述密钥参数,更新所述终端本地存储的对应所述应用场景的密钥参数。
11.根据权利要求10所述的方法,其特征在于,
所述密钥配置消息是当满足配置下发条件时由所述服务器发送的,所述配置下发条件包括以下至少之一:
所述预置服务器私钥泄露或被破解,所述更新的方式为泄露或被破解的所述预置服务器公钥;
所述终端中的客户端完成启动初始化,所述更新的方式为全量预置服务器公钥;
所述终端中的客户端升级到新版本,更新的方式为全量预置服务器公钥;
所述终端中的操作系统完成启动初始化,所述更新的方式为全量预置服务器公钥;
所述终端中的操作系统升级到新版本,所述更新的方式为全量预置服务器公钥;
到达所述预置服务器公钥的更新周期,所述更新的方式为更新到达所述更新周期的所述预置服务器密钥。
12.一种数据传输装置,其特征在于,所述装置包括:
消息接收模块,用于接收终端发送的请求消息,其中,所述请求消息携带第一密文数据、终端公钥以及终端公钥的版本号,所述第一密文数据是所述终端基于第一对称密钥对第一业务数据进行加密处理得到的,所述第一对称密钥是所述终端基于终端私钥和服务器预下发的预置服务器公钥进行密钥计算处理得到的;
查询模块,用于基于所述预置服务器公钥和所述终端公钥的版本号查询得到所述预置服务器公钥对应的预置服务器私钥;
密钥计算模块,用于基于所述预置服务器私钥以及所述终端公钥进行所述密钥计算处理,得到所述第一对称密钥;
密文解密模块,用于基于所述第一对称密钥对所述第一密文数据进行解密处理,得到所述第一业务数据。
13.一种数据传输装置,其特征在于,所述装置包括:
密钥生成模块,用于生成终端密钥对,所述终端密钥对包括终端公钥和终端私钥;
密钥计算模块,用于基于服务器预下发的预置服务器公钥以及所终端私钥进行密钥计算处理,得到第一对称密钥;
密文加密模块,用于基于所述第一对称密钥对第一业务数据进行加密处理,得到第一密文数据;
消息生成模块,用于生成请求消息,其中,所述请求消息包括所述第一密文数据、所述终端公钥以及所述预置服务器公钥的版本号;
消息发送模块,用于向所述服务器发送所述请求消息。
14.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1-8任一项或者权利要求9-11任一项所述的数据传输方法。
15.一种计算机可读存储介质,其特征在于,存储有可执行指令,所述可执行指令被执行时用于实现权利要求1-8任一项或者权利要求9-11任一项所述的数据传输方法。
CN202211476272.XA 2022-11-23 2022-11-23 数据传输方法、装置、电子设备及计算机可读存储介质 Pending CN116961973A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211476272.XA CN116961973A (zh) 2022-11-23 2022-11-23 数据传输方法、装置、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211476272.XA CN116961973A (zh) 2022-11-23 2022-11-23 数据传输方法、装置、电子设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN116961973A true CN116961973A (zh) 2023-10-27

Family

ID=88460753

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211476272.XA Pending CN116961973A (zh) 2022-11-23 2022-11-23 数据传输方法、装置、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN116961973A (zh)

Similar Documents

Publication Publication Date Title
WO2022206349A1 (zh) 一种信息验证的方法、相关装置、设备以及存储介质
EP4120114A1 (en) Data processing method and apparatus, smart device and storage medium
CN112422532B (zh) 业务通信方法、系统、装置及电子设备
US20200092108A1 (en) Data communication method, device and apparatus, and storage medium
CN108512846B (zh) 一种终端与服务器之间的双向认证方法和装置
US10237073B2 (en) Systems and methods for trusted path secure communication
WO2019120091A1 (zh) 身份认证方法、系统及计算设备
US11736304B2 (en) Secure authentication of remote equipment
US8495383B2 (en) Method for the secure storing of program state data in an electronic device
US10601590B1 (en) Secure secrets in hardware security module for use by protected function in trusted execution environment
EP4231680A1 (en) Identity authentication system, method and apparatus, device, and computer readable storage medium
CN111131416A (zh) 业务服务的提供方法和装置、存储介质、电子装置
CN115473655B (zh) 接入网络的终端认证方法、装置及存储介质
CN113411187A (zh) 身份认证方法和系统、存储介质及处理器
CN110581829A (zh) 通信方法及装置
CN111654503A (zh) 一种远程管控方法、装置、设备及存储介质
Babu et al. Fog‐Sec: Secure end‐to‐end communication in fog‐enabled IoT network using permissioned blockchain system
CN114338091B (zh) 数据传输方法、装置、电子设备及存储介质
WO2022252356A1 (zh) 数据处理方法、装置、电子设备及介质
CN116781292A (zh) 一种数据处理方法、装置、设备以及可读存储介质
CN210745178U (zh) 一种身份认证系统
CN113079506B (zh) 网络安全认证方法、装置及设备
US11856091B2 (en) Data distribution system, data processing device, and program
CN116961973A (zh) 数据传输方法、装置、电子设备及计算机可读存储介质
CN113904830A (zh) 一种spa认证的方法、装置、电子设备和可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication