一种数据传输方法、装置、电子设备及存储介质与流程

文档序号:21982705发布日期:2020-08-25 19:19阅读:234来源:国知局
一种数据传输方法、装置、电子设备及存储介质与流程

本申请涉及数据加密和计算机安全的技术领域,具体而言,涉及一种数据传输方法、装置、电子设备及存储介质。



背景技术:

web服务(webservice)是一种服务导向架构的技术,通过标准的web协议提供服务,目的是保证不同平台的应用服务可以互操作;web服务也是一个软件系统,用以支持网络间不同机器的互动操作的网络服务;网络服务通常是许多应用程序接口所组成的,网络服务能够透过网络,具体例如:透过国际互联网的远程服务器端,并执行客户所提交服务的请求。

目前,在服务端为客户端提供web服务的过程中,服务端和客户端的通信过程容易受到中间人(maninthemiddle,mitm)攻击,这里的mitm又被称为中间层攻击或者中间者攻击,是指通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”,mitm攻击是一种间接的入侵攻击,通过mitm攻击可以实现信息窃取和信息篡改等非法目的;也就是说,服务端与客户端进行通信的安全性比较低。



技术实现要素:

本申请实施例的目的在于提供一种数据传输方法、装置、电子设备及存储介质,用于改善服务端与客户端进行通信的安全性比较低的问题。

本申请实施例提供了一种数据传输方法,应用于电子设备,包括:获得第一明文数据;对第一明文数据进行可变长压缩处理和加密处理,获得二进制的第一密文数据;使用应用层协议向终端设备发送第一密文数据。在上述的实现过程中,通过结合可变长压缩处理和加密处理,获得二进制的第一密文数据,并在网络中传输加密的二进制流形式的第一密文数据,使得第一密文数据中的具体参数名称和参数内容难以被攻击者识别,从而降低了被攻击者注入的概率,从而提高了服务端与客户端进行通信的安全性,有效地改善了服务端与客户端进行通信的安全性比较低的问题。

可选地,在本申请实施例中,对第一明文数据进行可变长压缩处理和加密处理,获得二进制的第一密文数据,包括:对第一明文数据进行可变长压缩处理,获得二进制压缩数据;将二进制压缩数据进行加密处理,获得第一密文数据。在上述的实现过程中,通过对第一明文数据进行可变长压缩处理,获得二进制压缩数据;将二进制压缩数据进行加密处理,获得第一密文数据;在网络中传输加密的二进制流形式的第一密文数据,使得第一密文数据中的具体参数名称和参数内容难以被攻击者识别,从而降低了被攻击者注入的概率,从而提高了服务端与客户端进行通信的安全性,有效地改善了服务端与客户端进行通信的安全性比较低的问题。

可选地,在本申请实施例中,对第一明文数据进行可变长压缩处理和加密处理,获得二进制的第一密文数据,包括:对第一明文数据进行加密处理,获得二进制加密数据;对二进制加密数据进行可变长压缩处理,获得第一密文数据。在上述的实现过程中,通过对第一明文数据进行加密处理,获得二进制加密数据;对二进制加密数据进行可变长压缩处理,获得第一密文数据;在网络中传输加密的二进制流形式的第一密文数据,使得第一密文数据中的具体参数名称和参数内容难以被攻击者识别,从而降低了被攻击者注入的概率,从而提高了服务端与客户端进行通信的安全性,有效地改善了服务端与客户端进行通信的安全性比较低的问题。

可选地,在本申请实施例中,使用应用层协议向终端设备发送第一密文数据,包括:将第一密文数据以本地消息方式转发给电子设备的扩展程序;使用电子设备的扩展程序向终端设备发送第一密文数据,以使终端设备发送针对第一密文数据回应的第二密文数据。在上述的实现过程中,通过将第一密文数据以本地消息方式转发给电子设备的扩展程序;使用电子设备的扩展程序向终端设备发送第一密文数据,以使终端设备发送针对第一密文数据回应的第二密文数据;在网络中传输加密的二进制流形式的第一密文数据,使得第一密文数据中的具体参数名称和参数内容难以被攻击者识别,从而降低了被攻击者注入的概率,从而提高了服务端与客户端进行通信的安全性。

可选地,在本申请实施例中,在使用电子设备的扩展程序向终端设备发送第一密文数据之后,还包括:使用电子设备的扩展程序接收终端设备发送的第二密文数据;对第二密文数据进行解压处理和解密处理,获得第二明文数据,第二明文数据与第二密文数据是对应的。在上述的实现过程中,通过使用电子设备的扩展程序接收终端设备发送的第二密文数据;对第二密文数据进行解压处理和解密处理,获得第二明文数据,第二明文数据与第二密文数据是对应的;在网络中传输加密的二进制流形式的第一密文数据,使得第一密文数据中的具体参数名称和参数内容难以被攻击者识别,从而降低了被攻击者注入的概率,从而提高了服务端与客户端进行通信的安全性。

可选地,在本申请实施例中,获得第一明文数据,包括:接收终端设备发送的第一明文数据;使用应用层协议向终端设备发送第一密文数据,包括:使用应用层协议向终端设备传输第一密文数据,以使终端设备对第一密文数据进行解压和解密获得第一明文数据。在上述的实现过程中,通过接收终端设备发送的第一明文数据;使用应用层协议向终端设备发送第一密文数据,从而有效地提高了终端设备获得第一明文数据的速度。

可选地,在本申请实施例中,应用层协议包括:超文本传输协议、超文本传输协议第二版或超文本传输安全协议。

本申请实施例还提供了一种数据传输装置,应用于电子设备,包括:数据获得模块,用于获得第一明文数据;压缩加密模块,用于对第一明文数据进行可变长压缩处理和加密处理,获得二进制的第一密文数据;数据发送模块,用于使用应用层协议向终端设备发送第一密文数据。

可选地,在本申请实施例中,压缩加密模块,包括:第一变长压缩模块,用于对第一明文数据进行可变长压缩处理,获得二进制压缩数据;第一加密处理模块,用于将二进制压缩数据进行加密处理,获得第一密文数据。

可选地,在本申请实施例中,压缩加密模块,包括:第二加密处理模块,用于对第一明文数据进行加密处理,获得二进制加密数据;第二变长压缩模块,用于对二进制加密数据进行可变长压缩处理,获得第一密文数据。

可选地,在本申请实施例中,数据发送模块,包括:密文数据转发模块,用于将第一密文数据以本地消息方式转发给电子设备的扩展程序;密文数据发送模块,用于使用电子设备的扩展程序向终端设备发送第一密文数据,以使终端设备发送针对第一密文数据回应的第二密文数据。

可选地,在本申请实施例中,数据发送模块,还包括:密文数据接收模块,用于使用电子设备的扩展程序接收终端设备发送的第二密文数据;数据解压解密模块,用于对第二密文数据进行解压处理和解密处理,获得第二明文数据,第二明文数据与第二密文数据是对应的。

可选地,在本申请实施例中,数据传输装置,还包括:明文数据接收模块,用于接收终端设备发送的第一明文数据;明文数据使用应用层协议向终端设备传输第一密文数据,以使终端设备对第一密文数据进行解压和解密获得第一明文数据。

本申请实施例还提供了一种电子设备,包括:处理器和存储器,存储器存储有处理器可执行的机器可读指令,机器可读指令被处理器执行时执行如上面描述的方法。

本申请实施例还提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上面描述的方法。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出的本申请实施例提供的数据传输方法的流程示意图;

图2示出的本申请实施例提供的本地消息工作机制的示意图;

图3示出的本申请实施例提供的电子设备与终端设备或服务器进行数据传输的示意图;

图4示出的本申请实施例提供的多次迭代封套操作的示意图;

图5示出的本申请实施例提供的数据传输装置的结构示意图;

图6示出的本申请实施例提供的电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述。

在介绍本申请实施例提供的数据传输方法之前,先介绍本申请实施例所涉及的一些概念:

明文(plaintext),又被称为明文数据,在密码学中是指传送方想要接收方获得的可读信息;明文经过加密所产生的信息被称为密文,而密文经过解密还原得来的信息被称为明文。

密文(ciphertext或cyphertext),又被称为密文数据,是指明文经过加密算法所产生的数据;因为密文是一种除非使用恰当的算法进行解密,人类或计算机不可以直接阅读理解的明文的形态,所以可以被理解为加密的信息;解密与加密是相对的,即一种使密文转化为明文的过程。

统一资源定位符(uniformresourcelocator,url),又被称为统一资源定位器、定位地址或url地址,俗称网页地址或简称网址,是因特网上标准资源的地址,如同在网络上的门牌;其中,统一资源定位符的标准格式例如:[协议类型]://[服务器地址]:[端口号]/[资源层级unix文件路径][文件名]?[查询]#[片段id];统一资源定位符的完整格式例如:[协议类型]://[访问资源需要的凭证信息]@[服务器地址]:[端口号]/[资源层级unix文件路径][文件名]?[查询]#[片段id],这里的[访问凭证信息]、[端口号]、[查询]、[片段id]都属于选填项。

加密算法,又称加解密算法,是指对数据进行加密和解密的算法,一般的加密算法包括:对称加密算法和非对称加密算法;对称加密算法是指指加密和解密使用相同密钥的加密算法,也就是说,加密和解密时使用的通信双方均知晓的加密密码。

高级加密标准(advancedencryptionstandard,aes),在密码学中又称rijndael加密法,是一种区块加密标准;这个标准用来替代原先的des,已经被多方分析且广为全世界所使用。

应用层(applicationlayer)位于开放式系统互联(opensysteminterconnect,osi)模型的第七层;应用层直接和应用程序接口结合,并提供常见的网络应用服务;应用层也向第六层表示层发出请求。

应用程序接口(applicationprogramminginterface,api),又称为应用编程接口,是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

脚本对象简谱(javascriptobjectnotation,json)是一种轻量级的数据交换格式;json基于ecmascript(欧洲计算机协会制定的js规范)的一个子集,json采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得json成为理想的数据交换语言;易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

服务器是指通过网络提供计算服务的设备,服务器例如:x86服务器以及非x86服务器,非x86服务器包括:大型机、小型机和unix服务器。当然在具体的实施过程中,上述的服务器可以具体选择大型机或者小型机,这里的小型机是指采用精简指令集计算(reducedinstructionsetcomputing,risc)、单字长定点指令平均执行速度(millioninstructionspersecond,mips)等专用处理器,主要支持unix操作系统的封闭且专用的提供计算服务的设备;这里的大型机,又名大型主机,是指使用专用的处理器指令集、操作系统和应用软件来提供计算服务的设备。

需要说明的是,本申请实施例提供的数据传输方法可以被电子设备执行,这里的电子设备是指具有执行计算机程序功能的设备终端或者上述的服务器,设备终端例如:智能手机、个人电脑(personalcomputer,pc)、平板电脑、个人数字助理(personaldigitalassistant,pda)、移动上网设备(mobileinternetdevice,mid)、人工智能物联网(artificialintelligenceinternetofthings,简称:aiot)设备、网络交换机或网络路由器等。

在介绍本申请实施例提供的数据传输方法之前,先介绍该数据传输方法适用的应用场景,这里的应用场景包括但不限于:使用该数据传输方法进行数据传输,例如:文件传送和消息发送,或者使用该数据传输方法防御mitm攻击,以加强数据传输过程中的机密性(confidentiality)、完整性(integrity)和可用性(availability)等;或者使用该数据传输方法在金融互联网领域,例如:使用在终端设备的金融优盾上,这里的金融优盾是用来通过硬件加密和软件加密的方式来加强已安装金融优盾的终端设备与服务器之间的通信安全。

在具体的实践过程中,还可以将上述的数据传输方法应用于星际文件系统(interplanetaryfilesystem,ipfs)、点对点(peertopeer,p2p)协议通信两端、短报文的物联网(internetofthings,iot)网络、web3.0网络和区块链网络节点之间的通信两端等场景,其中,这里的ipfs是指一个旨在创建持久且分布式存储和共享文件的网络传输协议,ipfs是一种内容可寻址的对等超媒体分发协议;在ipfs网络中的节点将构成一个分布式文件系统;这里的p2p协议又称对等式网络,是无中心服务器、依靠用户群(peers)交换信息的互联网体系,p2p的作用在于,减低以往网路传输中的节点,以降低资料遗失的风险;这里的web3.0网络、是指一个安全的、可公开和可封闭的网络;具体例如:使用ipfs存储网络以及区块链模式实现的网络。

请参见图1示出的本申请实施例提供的数据传输方法的流程示意图;该数据传输方法可以应用于电子设备,该方法通过结合可变长压缩处理、加密处理和隐藏参数的二进制技术手段来加强电子设备与其它设备数据传输以及通信的安全性,该方法可以包括如下步骤:

步骤s110:获得第一明文数据。

第一明文数据,是指需要传输的原始数据,具体例如:可以是网页请求数据,即统一资源定位符,也可以是服务器响应返回的数据,为了便于理解和说明,下面以明文数据是统一资源定位符为例进行说明。

上述的第一明文数据例如可以是网页请求数据,这里的网页请求数据可以包括:多个参数和参数对应的赋值;网页请求数据例如:https://a.com/s?ie=utf-8&wd=china,当然在具体的实践过程中,还包括更多的参数和赋值,这里为了便于说明和理解,仅举了两个参数和赋值的例子,那么这里的“ie=utf-8&wd=china”可以理解为第一明文数据;其中,https代表协议类型,a.com代表服务器域名地址,这里的s代表资源层级unix文件路径和文件名中具体的请求动作,这里的请求动作例如是搜索,即s为search的简写,ie为具体的编码格式,这里的编码格式为utf-8格式,wd是指搜索的关键词,这里的关键词是china。

上述步骤s110的第一种实施方式可以包括:第一种方式,获取预先存储的第一明文数据,具体例如:从文件系统中获取第一明文数据,或者从数据库中获取第一明文数据;第二种方式,其他终端设备向电子设备发送第一明文数据,然后电子设备从其他终端设备接收第一明文数据;第三种方式,使用浏览器等软件获取互联网上的第一明文数据,或者使用其它应用程序访问互联网获得第一明文数据。

在步骤s110之后,执行步骤s120:对第一明文数据进行可变长压缩处理和加密处理,获得二进制的第一密文数据。

可变长压缩处理,是指使用可变长度的压缩算法对目标数据进行计算,这里的可变长度的压缩算法具体例如:zstandard算法又称zstd算法,或者谷歌私有的br算法等等;其中,这里的zstandard(或zstd)算法是由facebook的yanncollet开发的一个无损数据压缩算法。

上述步骤s120的第一种实施方式,先进行可变长压缩处理,再进行加密处理,这里的第一种实施方式可以包括如下步骤:

步骤s121:对第一明文数据进行可变长压缩处理,获得二进制压缩数据。

上述步骤s121中的对第一明文数据进行可变长压缩处理的实施方式例如:若第一明文数据为“ie=utf-8&wd=china”,使用可变长度的压缩算法对第一明文数据进行可变长压缩处理,则获得二进制压缩数据使用十六进制表示为“69653d7574662d382677643d4368696e”。在具体的实践过程中,还可以在上述的第一明文数据中加入校验参数,例如:在url传入的数据中加上md5校验,那么第一明文数据为“ie=utf-8&wd=china&md5=1db17f6738dd8094ecfa0307171e9aa3”,这里的md5可以让通信对端进行校验,从而保证数据在网络传输的过程中被修改后能够被发现,确保了数据的完整性和防修改。

步骤s122:将二进制压缩数据进行加密处理,获得第一密文数据。

上述步骤s122的实施方式例如:使用des、3des、rc4、rc5、rc6和aes等对称加密算法对提交数据中的所有参数和赋值进行加密,获得第一密文数据;具体例如:将提交数据中的二进制压缩数据进行至少一次rc4加密,具体例如:对“69653d7574662d382677643d4368696e”进行rc4加密,获得第一密文数据例如“u2fsdgvkx18td7jfhgjr21r2ix4uorvregx”。在具体的发送过程中,可以采用一个基础的http标准格式来提交,具体例如:“https://a.com/s?data=u2fsdgvkx18td7jfhgjr21r2ix4uorvregx”的形式提交;当然,也可以采用其它的统一资源定位符格式“https://a.com/u2fsdgvkx18td7jfhgjr21r2ix4uorvregx”的形式提交。

在上述的实现过程中,通过对第一明文数据进行可变长压缩处理,获得二进制压缩数据;将二进制压缩数据进行加密处理,获得第一密文数据;在网络中传输加密的二进制流形式的第一密文数据,使得第一密文数据中的具体参数名称和参数内容难以被攻击者识别,从而降低了被攻击者注入的概率,从而提高了服务端与客户端进行通信的安全性,有效地改善了服务端与客户端进行通信的安全性比较低的问题。

上述步骤s120的第二种实施方式,先进行加密处理,再进行可变长压缩处理,步骤s120的第二种实施方式可以包括如下步骤:

步骤s123:对第一明文数据进行加密处理,获得二进制加密数据。

上述步骤s123中的对第一明文数据进行加密处理实施方式例如:若第一明文数据为“ie=utf-8&wd=china”,对第一明文数据进行rc4加密处理,即对“ie=utf-8&wd=china”进行rc4加密处理,获得二进制加密数据为“u2fsdgvkx18gw2sigacsk8x9h+actvqnfvtn6espq8ka”。

在具体的实施过程中,上述的步骤s122和步骤s123还可以采用openssl来对二进制压缩数据或者第一明文数据进行加密,这里的openssl是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连线者的身份;在计算机网络上,这个程序包被广泛地应用在互联网的网页服务器上;openssl的主要库是以c语言所写成,实现了基本的加密功能。

步骤s124:对二进制加密数据进行可变长压缩处理,获得第一密文数据。

上述步骤s124的实施方式例如:若二进制加密数据具体为“u2fsdgvkx18gw2sigacsk8x9h+actvqnfvtn6espq8ka”,那么对该二进制加密数据进行可变长压缩处理,那么获得的第一密文数据为“u2fsdgvkx18mtqjav3p6j8gzwqhf7+rnkh51+essfn5+5gngvrcq66wn1fdfhch6kou03see80yybt0l”。

在上述的实现过程中,通过对第一明文数据进行加密处理,获得二进制加密数据;对二进制加密数据进行可变长压缩处理,获得第一密文数据;在网络中传输加密的二进制流形式的第一密文数据,使得第一密文数据中的具体参数名称和参数内容难以被攻击者识别,从而降低了被攻击者注入的概率,从而提高了服务端与客户端进行通信的安全性,有效地改善了服务端与客户端进行通信的安全性比较低的问题。

在步骤s120之后,执行步骤s130:使用应用层协议向终端设备发送第一密文数据。

应用层协议,是指工作在应用层(applicationlayer)的协议;这里的应用层协议包括:超文本传输协议(hypertexttransferprotocol,http)、超文本传输协议第二版(http2.0)或超文本传输安全协议(hypertexttransferprotocolsecure,https);这里的http协议是一个简单的请求响应协议,http协议通常运行在传输控制协议(transmissioncontrolprotocol,tcp)之上的协议;这里的http2.0是超文本传输协议第2版,简称为h2(即基于tls/1.2或以上版本的加密连接)或h2c(非加密连接),是http协议的第二个主要版本;这里的https协议是一种通过计算机网络进行安全通信的传输协议。

在具体的实践过程中,上述的http2.0可以采用nginxhttp2.0及chrome浏览器来配合实现,上述的可变长压缩处理也可以根据chrome最新版本对压缩数据流的支持情况来具体设置,具体地,可以采用gzip,deflate和google的brotli等等压缩算法,具体地,可以基于rsa4096位的sha-2512证书在服务器上搭建服务端,该服务端可以支持tls1.3tls、aes_256、gcm和sha384相关算法。

上述步骤s130中的使用应用层协议向终端设备发送第一密文数据的实施方式可以包括如下步骤:

步骤s131:将第一密文数据以本地消息方式转发给电子设备的扩展程序。

请参见图2示出的本申请实施例提供的本地消息工作机制的示意图;本地消息(nativemessaging),是指在chrome浏览器中,能够让网络页面(webpage)调用本地应用程序接口(nativeapi)的技术;具体例如:网络页面(webpage)、浏览器中的扩展程序(extension)和本地消息主机(nativemessaginghost)三者之间用utf-8编码的json字符串通讯。网络页面与扩展程序之间进行消息交换(messageexchange),扩展程序和本地消息主机之间进行消息交换,最后由本地消息主机访问本地操作系统的应用程序接口;其中,扩展程序通过标准输入流(stdin)将消息发送给本地消息主机,本地消息主机通过标准输出流(stdout)将消息返回给扩展程序,若在访问的过程中遇到错误信息,可以通过标准错误流(stderr)返回给chrome浏览器。

上述步骤s131中的将第一密文数据以本地消息方式转发给电子设备的扩展程序的实施方式例如:将第一密文数据以本地消息方式转发给电子设备的本地消息主机,本地消息主机再通过标准输出流(stdout)将第一密文数据发送给扩展程序(extension);其中,执行上述转发第一密文数据的文件可以采用二进制执行文件的形式,具体例如:采用exe格式或者app格式的文件。

步骤s132:使用电子设备的扩展程序向终端设备发送第一密文数据,以使终端设备发送针对第一密文数据回应的第二密文数据。

上述步骤s132的实施方式例如:使用电子设备的扩展程序通过网络页面(webpage)的方式向终端设备发送第一密文数据,以使终端设备发送针对第一密文数据回应的第二密文数据;其中,网络页面(webpage)可以具体采用异步javascript和xml(asynchronousjavascriptandxml,ajax)技术来向终端设备发送第一密文数据,这里的ajax是指一种创建交互式网页应用的网页开发技术,也是一种用于创建快速动态网页的技术,在无需重新加载整个网页的情况下,能够发送通信数据并根据通信数据来更新部分网页的技术。

在本申请实施例中,在使用电子设备的扩展程序向终端设备发送第一密文数据之后,还可以对接收到的密文进行解密,以获得终端设备发送的明文数据,从而完成数据传输通信过程,这里的对接收到的密文进行解密可以包括如下步骤:

步骤s133:使用电子设备的扩展程序接收终端设备发送的第二密文数据。

上述的步骤s133的实施方式例如:使用电子设备的chrome浏览器通过网络页面(webpage)接受接收终端设备发送的第二密文数据,并使用网络页面与扩展程序进行消息交换(messageexchange)的机制,将第二密文数据传递给扩展程序(extension)。在上述的实现过程中,通过将第一密文数据以本地消息方式转发给电子设备的扩展程序;使用电子设备的扩展程序向终端设备发送第一密文数据,以使终端设备发送针对第一密文数据回应的第二密文数据;在网络中传输加密的二进制流形式的第一密文数据,使得第一密文数据中的具体参数名称和参数内容难以被攻击者识别,从而降低了被攻击者注入的概率,从而提高了服务端与客户端进行通信的安全性。

步骤s134:对第二密文数据进行解压处理和解密处理,获得第二明文数据,第二明文数据与第二密文数据是对应的。

其中,该步骤s134的实施原理和实施方式与步骤s120的实施原理和实施方式是相似或类似的,区别仅在于,步骤s134的实施过程是步骤s120的逆过程,即步骤s134是解压和解密处理,具体可以是先解压再解密,也可以是先解密再解压,根据与通信的终端设备协商而定,然而步骤s120是压缩和加密处理,两个步骤是相对应的。因此,这里不再对该步骤的实施方式和实施原理进行说明,如有不清楚的地方,可以参考对步骤s120的描述。在上述的实现过程中,通过使用电子设备的扩展程序接收终端设备发送的第二密文数据;对第二密文数据进行解压处理和解密处理,获得第二明文数据,第二明文数据与第二密文数据是对应的;在网络中传输加密的二进制流形式的第一密文数据,使得第一密文数据中的具体参数名称和参数内容难以被攻击者识别,从而降低了被攻击者注入的概率,从而提高了服务端与客户端进行通信的安全性。

在上述的实现过程中,通过结合可变长压缩处理和加密处理,获得二进制的第一密文数据,并在网络中传输加密的二进制流形式的第一密文数据,同时也极大地屏蔽http基础协议的诸多弊端,不暴露任何url业务相关明文信息,使得第一密文数据中的具体参数名称和参数内容难以被攻击者识别,从而降低了被攻击者注入的概率,从而提高了服务端与客户端进行通信的安全性,有效地改善了服务端与客户端进行通信的安全性比较低的问题。

请参见图3示出的本申请实施例提供的电子设备与终端设备或服务器进行数据传输的示意图;可选地,在本申请实施例中,上述的电子设备还可以通过密文数据与终端设备进行数据传输,包括:

步骤s210:电子设备接收终端设备或服务器发送的第一明文数据。

上述步骤s210的实施方式例如:电子设备通过传输控制协议(transmissioncontrolprotocol,tcp)接收终端设备发送的第一明文数据(text/plain1);其中,这里的tcp协议又名网络通讯协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议;在因特网协议族中,tcp层是位于ip层之上,应用层之下的中间层;不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是ip层不提供这样的流机制,而是提供不可靠的包交换。

步骤s220:电子设备对第一明文数据进行可变长压缩处理和加密处理,获得二进制的第一密文数据。

上述步骤s220的实施方式例如:对第一明文数据进行可变长压缩处理,获得二进制压缩数据;将二进制压缩数据进行加密处理,获得第一密文数据;其中,在对第一明文数据进行可变长压缩处理的过程中,每次压缩都会输出不同(或者变化)长度的压缩数据,在将二进制压缩数据进行加密处理的过程中,还可以动态地增加混淆算法或者私有加密算法,以增加第一密文数据的安全性。

请参见图4示出的本申请实施例提供的多次迭代封套操作的示意图;上述步骤s220的实施方式又例如:电子设备可以使用“多次迭代,多重封套”,即多次迭代封套操作来加强与终端设备的通信安全,或电子设备与服务器的通信安全;具体例如:对第一明文数据进行第一次可变长压缩处理,获得输出的二进制压缩数据,使用ccf11表示这里的二进制压缩数据,下面的ccf开头的字符均表示经过压缩处理或者加密处理后的数据;然后对ccf11进行第一次加密处理,获得ccf12;上述的可变长压缩处理和加密处理可以被称为迭代封套操作,如果只采用一次迭代封套操作,则可以将ccf12确定为第一密文数据;同理地,如果需要采用更多次的迭代封套操作,则可以继续对ccf12进行第二次加密处理,获得二进制加密数据ccf21,然后对ccf21进行第二次可变长压缩处理,获得ccf22;如果只采用二次迭代封套操作,则可以将ccf22确定为第一密文数据;采用两次以上的迭代封套操作可以按照上述的方法依次类推,上述的操作可以用下面的字符表示:

第一次迭代封套操作:明文数据->ccf11->ccf12=>第一密文数据;

第二次迭代封套操作:ccf12->ccf21->ccf22=>第一密文数据;

第三次迭代封套操作:ccf22->ccf31->ccf32=>第一密文数据;

……;

第n次迭代封套操作:ccf[n-1]2>ccfn1->ccfn2=>第一密文数据;

同理地,与迭代封套操作对应的迭代解套操作的实施方式与实施原理类似,因此这里不再赘述,迭代解套操作包括:可变长解压处理和解密处理,可以理解的是,在通信过程中的迭代封套操作的次数和迭代解套操作的次数是相同的。

在实际应用过程中,上述的迭代封套操作的次数,可以根据具体的应用场景、算力、功耗、时延要求和保密程度来具体设置,即采用多少次迭代封套操作处理后的密文数据进行通信;上述的每次迭代封套操作中的可变长压缩处理和加密处理的先后顺序,可以根据通信的双方要求或者商议确定,具体例如:在输出的密文数据的首两个字节中定义可变长压缩处理和加密处理的先后顺序,当然,也可以在首两个字节中定义具体的算法名称编码;若每次迭代封套操作需要5毫秒完成,那么3次迭代封套操作需要20毫秒以内完成,在物联网领域,仅需要在60毫秒之内响应通信对端方即可,在增强了通信双方的安全性的前提下,同时也满足了物联网领域的通信要求。

在具体的实施过程中,上述的可变长压缩算法、可变长解压算法、加密算法和解密算法可以采用公开算法,具体例如:zstandard算法等,也可以采用非公开算法,或者非公有压缩算法及加密算法,具体例如谷歌私有的br算法等等。当然,为了加快算法的运算速度,也可以将上述的算法逻辑应用于硬件硅片之内,例如:将上述算法使用硬件的方式实现,应用于现成可编程门阵列(fieldprogrammablegatearray,fpga)或专用集成电路(applicationspecificintegratedcircuit,asic),或者将上述算法内置于系统级芯片(systemonchip,soc)、中央处理器(centralprocessingunit,cpu)、数字信号处理(digitalsignalprocess,dsp)芯片或者图形处理单元(graphicsprocessingunit,gpu)芯片中。

步骤s230:电子设备使用应用层协议向终端设备或服务器传输第一密文数据,以使终端设备对第一密文数据进行解压和解密获得第一明文数据。

上述步骤s230的实施方式例如:电子设备将第一密文数据以二进制数组(binaryarray)或者二进制流的方式转发给本地消息(nativemessage)处理,本地消息(nativemessage)将第一密文数据以二进制数组或者二进制流的方式转发给浏览器,浏览器将第一密文数据以二进制数组或者二进制流的方式发送给终端设备或服务器;在具体的实施过程中,可以是完全传输加密二进制,具体例如:将加密二进制转换成16进制asiic字符,这里的16进制asiic字符可以被浏览器显示,便于应用层协议获取字节流边界。

在上述的实现过程中,转换后的密文数据在传输过程中不会过大地增加通信流量,更加有效地增加了密文数据被中间者截获或破译的难度,第一密文数据始终是以二进制数组或者二进制流的方式处理的,增加了攻击者破译密文数据的难度,从而提高了电子设备与终端设备或服务器通信过程的安全性。同时,通过接收终端设备发送的第一明文数据;使用应用层协议向终端设备发送第一密文数据,从而有效地提高了终端设备获得第一明文数据的速度。

请参见图5示出的本申请实施例提供的数据传输装置的结构示意图;本申请实施例提供了一种数据传输装置300,应用于电子设备,包括:

数据获得模块310,用于获得第一明文数据。

压缩加密模块320,用于对第一明文数据进行可变长压缩处理和加密处理,获得二进制的第一密文数据。

数据发送模块330,用于使用应用层协议向终端设备发送第一密文数据。

可选地,在本申请实施例中,压缩加密模块,包括:

第一变长压缩模块,用于对第一明文数据进行可变长压缩处理,获得二进制压缩数据。

第一加密处理模块,用于将二进制压缩数据进行加密处理,获得第一密文数据。

可选地,在本申请实施例中,压缩加密模块,还可以包括:

第二加密处理模块,用于对第一明文数据进行加密处理,获得二进制加密数据。

第二变长压缩模块,用于对二进制加密数据进行可变长压缩处理,获得第一密文数据。

可选地,在本申请实施例中,数据发送模块,包括:

密文数据转发模块,用于将第一密文数据以本地消息方式转发给电子设备的扩展程序。

密文数据发送模块,用于使用电子设备的扩展程序向终端设备发送第一密文数据,以使终端设备发送针对第一密文数据回应的第二密文数据。

可选地,在本申请实施例中,数据发送模块,还包括:

密文数据接收模块,用于使用电子设备的扩展程序接收终端设备发送的第二密文数据。

数据解压解密模块,用于对第二密文数据进行解压处理和解密处理,获得第二明文数据,第二明文数据与第二密文数据是对应的。

可选地,在本申请实施例中,数据传输装置,还包括:

明文数据接收模块,用于接收终端设备发送的第一明文数据。

明文数据使用应用层协议向终端设备传输第一密文数据,以使终端设备对第一密文数据进行解压和解密获得第一明文数据。

应理解的是,该装置与上述的数据传输方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置的操作系统(operatingsystem,os)中的软件功能模块。

请参见图6示出的本申请实施例提供的电子设备的结构示意图。本申请实施例提供的一种电子设备400,包括:处理器410和存储器420,存储器420存储有处理器410可执行的机器可读指令,机器可读指令被处理器410执行时执行如上的方法。

本申请实施例还提供了一种存储介质430,该存储介质430上存储有计算机程序,该计算机程序被处理器410运行时执行如上的方法。

其中,存储介质430可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammablereadonlymemory,简称eprom),可编程只读存储器(programmablered-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。

本申请实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请实施例的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请实施例各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

以上的描述,仅为本申请实施例的可选实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1