一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据解密的方法、装置、设备及存储介质与流程

2022-06-30 00:21:47 来源:中国专利 TAG:


1.本技术涉及互联网通信技术领域,尤其涉及一种数据解密的方法、装置、设备及存储介质。


背景技术:

2.随着互联网技术的发展,图像、视频和其他多媒体内容的增加,被广泛使用的超文本传输协议(hyper text transfer protocol,http)已不能满足复杂数据的传输;目前,为了满足复杂数据的传输,基于用户数据传输协议(user datagram protocol,udp)的低时延的互联网传输协议(quick udp internet connection,quic)被提出来。
3.为了保证数据传输的安全性,在进行数据传输的过程中,quic传输协议会将应用层数据和传输层信息进行加密,采用加密的quic数据进行传输。但是,由于与quic传输协议的配套支持不完善,应用层数据和传输层信息经过加密后,在传输过程中无法解密出有效信息;例如:无法解密出对端接收到了的哪些数据,即无法确定数据是否丢包,以及无法解密出传输的真实数据内容,即无法保证数据传输的准确性。
4.因此,如何对加密quic数据进行解密,实现数据丢包监测,保证数据传输内容的准确性是目前需要解决的问题。


技术实现要素:

5.本技术提供一种数据解密的方法、装置、设备及存储介质,用以实现对加密quic数据进行解密处理,实现数据丢包监测,保证数据传输内容的准确性。
6.第一方面,本技术实施例提供一种数据解密的方法,该方法包括:
7.获取终端设备与服务器协商的密钥信息,其中密钥信息中包括预主密钥;
8.基于终端设备与服务器协商的通用规则,根据预主密钥,生成终端设备与服务器之间的会话密钥;
9.获取终端设备与服务器之间传输的加密quic数据;
10.通过会话密钥对加密quic数据进行解密处理,获得相应的明文数据,并对明文数据进行数据完整性分析。
11.在一种可能的实现方式中,预主密钥是终端设备或服务器根据自身生成的随机值,以及对端发送的公钥随机值生成的。
12.在一种可能的实现方式中,密钥信息中还包括终端随机数和服务器随机数;
13.根据预主密钥,生成终端设备与服务器之间的会话密钥,具体包括:
14.根据预主密钥、终端随机数和服务器随机数,进行伪随机化处理,生成伪随机化密钥;
15.对伪随机化密钥进行密钥派生处理,将伪随机化密钥扩展到指定长度,生成会话密钥。
16.在一种可能的实现方式中,获取终端设备与服务器之间传输的加密quic数据,包
括:
17.在终端设备与服务器会话过程中,抓取终端设备与服务器之间,通过quic协议传输的会话数据包,并将会话数据包的文件格式转换为目标文件格式;
18.根据目标文件格式,解析会话数据包,获取终端设备与服务器之间传输的加密会话数据字节流;
19.将加密会话数据字节流转换为quic格式,获取加密quic数据。
20.在一种可能的实现方式中,将加密会话数据字节流转换为quic格式,获取加密quic数据之后,通过会话密钥对加密quic数据进行解密处理之前,还包括:
21.通过如下方式中的之一或组合,对加密quic数据进行校验处理:
22.读取加密quic数据中各个会话数据字节的公共标识,并分别校验公共标识是否在指定范围内;
23.读取加密quic数据对应的quic版本号,并根据quic版本号校验加密quic数据是否为正确版本;
24.读取加密quic数据中的连接标识,并将连接标识与当前会话的基准标识进行匹配;
25.读取加密quic数据对应的包编号,并校验包编号是否在目标范围内。
26.在一种可能的实现方式中,通过会话密钥对加密quic数据进行解密处理,获得相应的明文数据之后,还包括:
27.针对明文数据中包含的各个帧数据,分别识别各个帧数据各自对应的数据类型;
28.针对各个数据类型,分别确定相应的帧处理方式,并基于确定的帧处理方式,对相应的帧数据进行解析处理,获取相应的解析数据。
29.在一种可能的实现方式中,通过会话密钥对加密quic数据进行解密处理,获得相应的明文数据之后,还包括:
30.采用目标展示方式,展示明文数据;
31.其中,目标展示方式包括文本格式、日志文件格式和交互图格式。
32.第二方面,本技术实施例提供一种数据解密的装置,该装置包括:
33.第一获取单元,用于获取终端设备与服务器协商的密钥信息,其中密钥信息中包括预主密钥;
34.生成单元,用于基于终端设备与服务器协商的通用规则,根据预主密钥,生成终端设备与服务器之间的会话密钥;
35.第二获取单元,用于获取终端设备与服务器之间传输的加密quic数据;
36.解密单元,用于通过会话密钥对加密quic数据进行解密处理,获得相应的明文数据,并对明文数据进行数据完整性分析。
37.在一种可能的实现方式中,预主密钥是终端设备或服务器根据自身生成的随机值,以及对端发送的公钥随机值生成的。
38.在一种可能的实现方式中,密钥信息中还包括终端随机数和服务器随机数;生成单元具体用于:
39.根据预主密钥、终端随机数和服务器随机数,进行伪随机化处理,生成伪随机化密钥;
40.对伪随机化密钥进行密钥派生处理,将伪随机化密钥扩展到指定长度,生成会话密钥。
41.在一种可能的实现方式中,第二获取单元具体用于:
42.在终端设备与服务器会话过程中,抓取终端设备与服务器之间,通过quic协议传输的会话数据包,并将会话数据包的文件格式转换为目标文件格式;
43.根据目标文件格式,解析会话数据包,获取终端设备与服务器之间传输的加密会话数据字节流;
44.将加密会话数据字节流转换为quic格式,获取加密quic数据。
45.在一种可能的实现方式中,第二获取单元将加密会话数据字节流转换为quic格式,获取加密quic数据之后,通过会话密钥对加密quic数据进行解密处理之前,还用于:
46.通过如下方式中的之一或组合,对加密quic数据进行校验处理:
47.读取加密quic数据中各个会话数据字节的公共标识,并分别校验公共标识是否在指定范围内;
48.读取加密quic数据对应的quic版本号,并根据quic版本号校验加密quic数据是否为正确版本;
49.读取加密quic数据中的连接标识,并将连接标识与当前会话的基准标识进行匹配;
50.读取加密quic数据对应的包编号,并校验包编号是否在目标范围内。
51.在一种可能的实现方式中,解密单元还用于:
52.通过会话密钥对加密quic数据进行解密处理,获得相应的明文数据之后针对明文数据中包含的各个帧数据,分别识别各个帧数据各自对应的数据类型;
53.针对各个数据类型,分别确定相应的帧处理方式,并基于确定的帧处理方式,对相应的帧数据进行解析处理,获取相应的解析数据。
54.在一种可能的实现方式中,解密单元还用于:
55.通过会话密钥对加密quic数据进行解密处理,获得相应的明文数据之后,采用目标展示方式,展示明文数据;
56.其中,目标展示方式包括文本格式、日志文件格式和交互图格式。
57.第三方面,本技术实施例提供一种数据解密的设备,包括:存储器和处理器,其中,存储器,用于存储计算机指令;处理器,用于执行计算机指令以实现本技术实施例提供的数据解密的方法的步骤。
58.第四方面,本技术实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令被处理器执行时实现本技术实施例提供的数据解密的方法的步骤。
59.第五方面,本技术实施例提供一种计算机程序产品,其包括计算机指令,计算机指令存储在计算机可读存储介质中;当电子设备的处理器从计算机可读存储介质读取计算机指令时,处理器执行计算机指令,使得电子设备执行本技术实施例提供的数据解密的方法的步骤。
60.本技术有益效果如下:
61.在本技术实施例提供的数据解密的方案中:首先,获取终端设备与服务器协商的
用于生成会话密钥的预主密钥;接着,基于终端设备与服务器协商的通用规则,根据预主密钥,生成终端设备与服务器之间的会话密钥,由于采用与终端设备和服务器相同的规则生成会话密钥,因此生成的会话密钥可对终端设备与服务器之间传输的加密quic数据进行解密处理;在生成会话密钥后,采用该会话密钥对获取的终端设备与服务器之间传输的加密quic数据进行解密处理,获得相应的明文数据,并对明文数据进行数据完整性分析;
62.实现对quic数据的解密处理,获取相应的明文数据,弥补了基于quic协议传输的数据无法被离线解密的问题,使得quic在离线解密功能上与http对齐;进一步,对解密获得的明文数据进行完整性分析,可确定数据传输过程中应用层对应的真实数据内容,以及终端设备与服务器在传输层对应的数据收发情况,并基于数据收发情况,可以确定终端设备与服务器在数据传输过程中各自对应的问题定位,其中包括是否发生数据包丢失、数据收发延迟,以及丢失的具体数据包的编号,可实现数据丢包检测,以保证数据传输内容的准确性。
63.本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。本技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
64.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
65.图1为相关技术中一种采用http协议传输的加密http数据的示意图;
66.图2为相关技术中一种获取加密http数据对应的解密密钥的示意图;
67.图3为相关技术中一种对加密http数据进行解密后获得真实数据内容的示意图;
68.图4为本技术实施例提供的一种应用场景示意图;
69.图5为本技术实施例提供的一种数据解密的方法流程图;
70.图6为本技术实施例提供的一种生成会话密钥的示意图;
71.图7为本技术实施例提供的一种获取加密会话数据字节流的示意图;
72.图8为本技术实施例提供的一种针对加密quic数据进行解密处理的方法流程图;
73.图9为本技术实施例提供的一种展示加密quic数据对应的明文数据内容的示意图;
74.图10为本技术实施例提供的一种采用文本格式展示明文数据的示意图;
75.图11为本技术实施例提供的一种采用日志文件格式展示明文数据的示意图;
76.图12为本技术实施例提供的一种采用交互图格式展示明文数据的示意图;
77.图13为本技术实施例提供的一种数据解密的具体实施方法流程图;
78.图14为本技术实施例提供的一种数据解密装置结构图;
79.图15为本技术实施例提供的一种电子设备结构图;
80.图16为本技术实施例提供的另一种电子设备结构图。
具体实施方式
81.为了使本技术的目的、技术方案及有益效果更加清楚明白,以下将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术部分实施例,并不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
82.为了便于本领域技术人员更好地理解本技术的技术方案,下面对本技术涉及的部分概念进行介绍。
83.quic是一种基于udp的低时延的互联网传输层协议,quic传输协议很好地解决了传输层信息和应用层数据面临的各种需求,包括处理更多的连接,安全性,和低延迟。quic融合了包括传输控制协议(transmission control protocol,tcp),安全传输层协议(transport layer security,tls),http/2等协议的特性,但基于udp传输。
84.hkdf是一种特定的密钥派生函数(kdf),是基于hmac的kdf,可以应用于各种协议和应用程序的构建。由于kdf是密码系统的基本组成部分,主要用于获取一些原始的密钥材料,并从中派生出一个或多个安全强度很大的密钥,因此hkdf的主要目的是使用原始的密钥材料,派生出一个或多个能达到密码学强度的密钥,以保证随机性。其中,hkdf包含两个过程,分别为提取extract和扩展expand,提取即使用原始的密钥材料,派生出一个符合密码学强度的伪随机密钥,扩展即使用提取出来的伪随机密钥,扩展出指定长度的密钥。
85.其中,hmac是密钥相关的哈希运算消息认证码,hmac运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。
86.dump在计算机领域为转储;由于程序在计算机中运行时,在内存、cpu、i/o等设备上的数据都是动态的,容易丢失的,也就是说数据使用完或者发生异常就会丢掉,若想得到某些时刻的数据,就需要把数据转储(dump)为静态的形式,例如采用文件的形式存储。
87.pcap文件是常用的数据报存储格式,可以理解为就是一种文件格式,只不过里面的数据是按照特定格式存储的。
88.qlog做为一个日志记录工具,为方便监测调查问题的原因。
89.云技术(cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
90.云技术(cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
91.下文中所用的词语“示例性”的意思为“用作例子、实施例或说明性”。作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
92.文中的术语“第一”、“第二”仅用于描述目的,而不能理解为明示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个特征,在本技术实施例的描述中,除非另有说明,“多个”的含
义是两个或两个以上。
93.下面对本技术实施例的设计思想进行简要介绍:
94.随着互联网技术的发展,图像、视频和其他多媒体内容的增加,被广泛使用的超文本传输协议已不能满足复杂数据的传输;目前,为了满足复杂数据的传输,quic传输协议被提出来。
95.为了保证数据传输的安全性,在进行数据传输的过程中,quic传输协议会将应用层数据和传输层信息进行加密,并采用加密quic数据进行传输。
96.但是,quic传输协议对应的加密quic数据,不会像采用http传输协议对应的加密http数据一样,可结合浏览器和抓包工具离线解密https/http2传输协议对应的加密http数据,以还原真实数据内容。
97.通常在数据传输过程中,通过wireshark等抓包工具,抓取https会话数据包,并查看后得到的是加密http数据,如图1所示,为相关技术中一种采用http协议传输的加密http数据的示意图;
98.然后,对抓取的加密http数据进行解密,在相关技术中,对https/http2传输协议对应的加密http数据进行解密时,主要是将浏览器里的密钥(ssl key)导出,并将该ssl key设置在wireshark中,如图2所示,为相关技术中一种wireshark获取加密http数据对应的解密密钥的示意图;wireshark在获取到ssl key后,会根据ssl key对https/http2传输协议对应的加密http数据进行解密处理,解密后即可得到真实的数据内容,如图3所示,为相关记住中一种对加密http数据进行解密后获得真实数据内容的示意图。
99.也就是说,相关技术中只能对https/http2等使用了tls密码套件的传输协议进行离线解密。而由于quic使用了quiccrypto握手及加解密方法,导致与quic传输协议的配套支持不完善,应用层数据和传输层信息经过加密后,在传输过程中无法解密出有效信息;例如:无法解密出对端接收到了的哪些数据,即无法确定数据是否丢包,以及无法解密出真实数据,即无法保证数据传输的准确性。
100.因此,如何对加密quic数据进行解密,实现数据丢包检测,保证数据传输内容的准确性是目前需要解决的问题。
101.有鉴于此,本技术实施例提供一种针对加密quic数据进行离线解密的技术方案,在终端设备与服务器会话过程中,抓取通过quic传输协议传输的加密会话数据包后,离线还原出加密会话数据包,在应用层对应的真实数据内容与传输层对应的各种信息,使得quic在离线解密功能上与http对齐,并可基于解密获得的明文数据,分析出quic传输协议传输过程中的问题定位,例如丢包分析、延迟分析等。
102.在本技术实施例中,首先,获取终端设备与服务器协商的用于生成会话密钥的预主密钥;接着,基于终端设备与服务器协商的通用规则,根据预主密钥,生成终端设备与服务器之间的会话密钥,由于采用与终端设备和服务器相同的规则生成会话密钥,因此生成的会话密钥可对终端设备与服务器之间传输的加密quic数据进行解密处理;在生成会话密钥后,采用该会话密钥对获取的终端设备与服务器之间传输的加密quic数据进行解密处理,获得相应的明文数据,并对明文数据进行数据完整性分析;
103.实现对quic数据的解密处理,获取相应的明文数据,弥补了基于quic协议传输的数据无法被离线解密的问题,使得quic在离线解密功能上与http对齐;进一步,对解密获得
的明文数据进行完整性分析,可确定数据传输过程中应用层对应的真实数据内容,以及终端设备与服务器在传输层对应的数据收发情况,并基于数据收发情况,可以确定终端设备与服务器在数据传输过程中各自对应的问题定位,其中包括是否发生数据包丢失、数据收发延迟,以及丢失的具体数据包的编号,可实现数据丢包检测,以保证数据传输内容的准确性。
104.以下结合说明书附图对本技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本技术,并不用于限定本技术,并且在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
105.请参考图4,图4为本技术实施例的应用场景示意图。该应用场景中包括多个终端设备410和一个服务器420,终端设备410与服务器420之间可以通过通信网络进行通信。
106.在一种可选的实施方式中,通信网络可以是有线网络或无线网络。因此,终端设备410和服务器420可以通过有线或无线通信方式进行直接或间接地连接。比如,终端设备410可以通过无线接入点与服务器420间接地连接,或发终端设备410通过因特网与服务器420直接地连接,本技术在此不做限制。
107.在本技术实施例中,终端设备410包括但不限于手机、平板电脑、笔记本电脑、台式电脑、电子书阅读器、智能语音交互设备、智能家电、车载终端等设备;终端设备上可以安装有各种客户端,该客户端可以是应用程序(例如浏览器、游戏软件等),也可以是网页、小程序等;
108.服务器420则是与客户端相对应的后台服务器。服务器420可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
109.在终端设备410与服务器420在通信连接后,终端设备410与服务器420之间可以通过quic传输协议进行数据传输,为了保证传输的数据的安全性,在传输过程中对应用层数据和传输层信息进行加密处理。
110.为了对基于quic传输协议传输的加密quic数据进行解密处理,以分析出基于quic传输协议进行数据传输过程中的问题定位,需要对终端设备410与服务器420之间传输的加密quic数据进行解密处理,本技术实施例,提出了一种数据包解密工具,以对加密quic数据进行解密。
111.需要说明的是,本技术实施例中的数据解密的方法可由部署在电子设备中的数据包解密工具执行,该电子设备可以为服务器或者终端设备,即,该方法可以由服务器或者终端设备单独执行,其中终端设备或服务器可以为图4中所示的终端设备410以及服务器420,也可以为出图4中所示的终端设备410和服务器420以外的其他终端设备或其他服务器。
112.图4所示只是举例说明,实际上终端设备410和服务器420的数量不受限制,在本技术实施例中不做具体限定。
113.本技术实施例中,当服务器420的数量为多个时,多个服务器420可组成为一区块链,而服务器420为区块链上的节点;如本技术实施例所公开的查看应用数据方法,其中所涉及的应用数据可保存于区块链上。
114.并且,本技术实施例可应用于各种场景中的数据解密,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等各种场景。
115.基于上述应用场景,下面结合上述描述的应用场景,根据附图来描述本技术示例性实施方式提供的数据解密的方法,需要注意的是,上述应用场景仅是为了便于理解本技术的精神和原理而示出,本技术的实施方式在此方面不受任何限制。
116.请参考图5,图5示例性提供本技术实施例中一种数据解密的方法流程图,应用于数据包解密工具中,该方法中包括:
117.步骤s500,获取终端设备与服务器协商的密钥信息,其中密钥信息中包括预主密钥。
118.为了保证终端设备与服务器数据传输的安全性,通常对终端设备与服务器之间传输的数据进行加密处理,然后,在对端接收到加密数据后,由对端进行解密,以获取实际传输的真实数据内容,因此该过程就需要终端设备与服务器进行密钥协商,以实现对接收加密数据进行解密处理的能力。
119.但是,若终端设备和服务器在密钥协商过程中,仅对简单的公钥-私钥进行协商,在采用公钥进行加密后,采用相应的私钥对加密数据进行解密处理,即可获取实际传输的真实数据内容;此时,在公钥-私钥被截取后,也会对数据的安全性造成影响。
120.因此,本技术实施例中提出一种生成预主密钥(premaster-key)的方式,即终端设备与服务器在进行密钥协商过程中,终端设备与服务器交换一些公开信息,且终端设备与服务器分别通过公开信息,采用数学计算的方式,得到密钥。此过程中并没有直接交换公钥-私钥,保证密钥传输的安全性,进一步保证数据传输的安全性。
121.在一种可能的实现方式中,本技术实施例中的预主密钥是终端设备或服务器根据自身生成的随机值,以及对端发送的公钥随机值,采用椭圆曲线算法生成,并通过dump技术,将生成的预主密钥转存为文件等静态形式后输出的。因此,该数据包解密工具即可获取终端设备与服务器的预主密钥。
122.其中,终端设备和服务器根据自身生成的随机值,以及对端发送的公钥随机值,采用椭圆曲线算法生成预主密钥的具体流程如下:
123.1)终端设备随机生成随机值a,计算fa(x,y)=a*q(x,y),将fa(x,y)发送至服务器,其中fa(x,y)为终端设备向服务器发送的公钥随机值。
124.2)服务器随机生成随机值b,计算fb(x,y)=b*q(x,y)。将fb(x,y)发送至终端设备,其中fb(x,y)为服务器向终端设备发送的公钥随机值。
125.3)终端设备计算key1(x,y)=a*(b*q(x,y))。
126.4)服务器计算key2(x,y)=b*(a*q(x,y))。
127.key1=key2=key,取key的x向量作为预主密钥。其中,q(x,y)为公认的某个椭圆曲线算法的基点。
128.需要说明的是,椭圆曲线算法仅是一种示例性说明,任何可用于生成预主密钥的数据计算方式都适用于本技术。
129.步骤s501,基于终端设备与服务器协商的通用规则,根据预主密钥,生成终端设备与服务器之间的会话密钥。
130.在一种可能的实现方式中,密钥信息中还包括终端随机数和服务器随机数;其中,
终端随机数和服务器随机数是通过对实时抓取的协商数据包进行解密获得的。
131.在本技术实施例中,在对加密quic数据进行解密时,会话密钥仅是解密过程中的一个必要条件,除会话密钥外,还需有加解密算法等信息,不同的加解密算法对应的解密操作是不一样的,且在生成会话密钥时,除了预主密钥外,还需要协商数据包的配合;因此,本技术实施例中还要抓取的协商数据包,并通过协商数据包准确得出加解密算法及会话密钥。
132.具体的,在终端设备与服务器建立通信连接过程中,获取终端设备与服务器之间传输的协商数据包,并对协商数据包进行解析处理,获取协商数据包中的协商数据内容,其中,协商数据内容包括:终端随机数(client nonce)、服务器随机数(server nonce)、quic协议版本、加密算法、服务器配置(server config)等。
133.需要说明的是,协商数据包是终端设备与服务器建立通信连接过程中传输的数据包,本领域技术人员还将协商数据包称为握手数据包。
134.在获取协商数据包中的协商数据内容后,基于终端设备与服务器之间传输的协商数据包中的终端随机数(client nonce)、服务器随机数(server nonce)及预主密钥,进行hkdf密钥派生和随机化处理,生成会话密钥。
135.在进行hkdf密钥派生和随机化处理,生成会话密钥的过程中:
136.首先,采用hkdf中的extract技术,根据预主密钥、终端随机数和服务器随机数,进行伪随机化处理,生成伪随机化密钥;然后,采用hkdf中的expand技术,对上一步生成的伪随机化密钥进行密钥派生处理,将伪随机化密钥扩展到指定长度,生成会话密钥。
137.请参考图6,图6示例性提供本技术实施例中一种生成会话密钥的示意图。
138.其中,图6中示出了采用随机生成的随机数、对端生成公钥(pubs)随机数、以及生成的私钥,通过椭圆曲线算法进行离散对数计算,生成预主密钥;
139.在生成预主密钥后,导出预主密钥,将导出的预主密钥作为hkdf会话密钥派生的参数注入,在基于预主密钥生成会话密钥时,除了预主密钥外,还包括终端随机数(client nonce)、服务器随机数(server nonce)、quic协议版本、加密算法、服务器配置(server config)等参数注入,并基于注入的参数进行hkdf-extract随机化密钥,接着,进行hkdf-expand生成指定长度,以生成前向安全会话密钥。
140.需要说明的时,本技术实施例中采用离线方式生成会话密钥,因为会话密钥比较长,若在线生成并导出会话密钥,将占用较大空间,因此,提出一种采用离线生成会话密钥的方式,这样可节省在线导出密钥时占用的空间。
141.步骤s502,获取终端设备与服务器之间传输的加密quic数据。
142.在本技术实施例中,主要是对终端设备与服务器之间传输的加密quic数据进行解密处理,因此,需要获取终端设备与服务器之间传输的加密quic数据。
143.在获取终端设备与服务器之间传输的加密quic数据时:
144.首先,通过抓包工具,在终端设备与服务器进行会话过程中,实时抓取终端设备与服务器之间,通过quic协议传输的会话数据包,并将会话数据包的文件格式转换为目标文件格式;其中,抓包工具可为类型tcpdump的抓包工具,目标文件格式为pcap文件格式;
145.接着,将实时抓取的通过quic协议传输的会话数据包转换成可被解密的加密会话数据字节流;示例性的,根据pcap文件格式,解析pcap文件格式对应的pcap文件,遍历得到
会话数据;解析会话数据的二三层头部,从会话数据中剥离其中的ip层、udp层头部,获取udp数据包;从udp数据包中获取终端设备与服务器之间传输的真实会话数据字节流,其中,真实会话数据字节流处于加密状态,因此又称加密会话数据字节流;请参考图7,图7示例性提供本技术实施例中一种获取加密会话数据字节流的示意图;
146.在获取到加密会话数据字节流和会话密钥后,即可进行应用层数据解密和传输层协议数据解析。
147.在本技术实施例中,通过预先设计的关键函数,对加密会话数据字节流进行解密处理,以还原出真实的数据内容和传输信息。
148.其中,关键函数中包括:包处理函数(processpacket)、头部处理函数(processpublicheader函数及processdatapacket)、数据解密函数(decryptpayload)、以及帧处理函数(processframedata)。
149.由于对加密会话数据字节流进行解密处理过程中,需要获取终端设备与服务器之间传输的加密会话数据字节流对应的加密quic数据,因此,最后对获取到的加密会话数据字节流通过包处理函数(processpacket),将加密会话数据字节流转换成quic格式,获取加密quic数据。
150.步骤s503,通过会话密钥对加密quic数据进行解密处理,获得相应的明文数据,并对明文数据进行数据完整性分析。
151.请参考图8,图8示例性提供本技术实施例中一种针对加密quic数据进行解密处理的方法流程图。
152.从图8中可知,本技术实施例中,首先,通过包处理函数(processpacket)对获取的加密会话数据字节流进行格式转换,生成加密quic数据;
153.接着,采用头部处理函数(processpublicheader函数及processdatapacket)对加密quic数据进行校验处理;具体的,对加密quic数据进行校验处理,主要执行:
154.读取加密quic数据中各个会话数据字节的公共标识(public flag),并分别校验公共标识是否在指定范围内;
155.读取加密quic数据对应的quic版本号,并根据quic版本号校验加密quic数据是否为正确版本;
156.读取加密quic数据中的连接标识(connection id),并将连接标识与当前会话的基准标识进行匹配;一般的,连接标识通常为8字节,并在确定连接标识与当前会话的基准标识不匹配后,确定加密quic数据为重新通信连接过程中的数据,或加密quic数据为错误数据;
157.读取加密quic数据对应的包编号(packet_number),并校验包编号是否在目标范围内;
158.之后,通过数据解密函数(decryptpayload),结合会话密钥进行数据包的解密,获得明文的数据;请参考图9,图9示例性提供本技术实施例中一种展示加密quic数据对应的明文数据内容的示意图;
159.最后,采用帧处理函数(processframedata),对加密quic数据对应的明文数据中包含的各个帧数据进行处理;
160.由于明文数据是由一个个帧组成,不同类型的帧进入不同的帧处理函数,通过帧
处理函数,解析帧数据并还原出相应的真实数据;
161.在一种可能的实现方式中,通过会话密钥对加密quic数据进行解密处理,获得相应的明文数据之后,针对明文数据中包含的各个帧数据,分别识别各个帧数据各自对应的数据类型;并针对各个数据类型,分别确定相应的帧处理方式,并基于确定的帧处理方式,对相应的帧数据进行解析处理,获取相应的解析数据,请参考图8,其中帧数据包括有应答帧数据(processackframe)、复位帧数据(processbstframe)、关闭帧数据(processcloseframe)等。
162.在本技术实施例中,通过会话密钥对加密quic数据进行解密处理,获得相应的明文数据之后,采用目标展示方式,展示明文数据,以基于展示的明文数据,对明文数据进行完整性分析,分析加密quic数据在传输过程中的问题定位,例如:数据包丢失、数据收发延迟等;
163.在本技术实施例中,提出了三种展示明文数据的方式,分别为采用文本格式展示、采用日志文件格式展示和采用交互图格式展示;具体展示方式请参考图10~图12,图10~图12分别给出了采用不同展示方式展示明文数据的示意图。
164.需要说明的是,日志文件格式展示和交互图格式展示都是基于文本格式转换而来的,例如:采用日志文件格式展示时,在文本格式的基础上,将文本格式转换为qlog格式;再例如:采用交互图格式展示时,在文本格式的基础上,结合开元qvis工具,将文本格式转换为交互图格式展示,可更加直观的对数据进行分析,确定是否丢包等。
165.请参考图13,图13示例性提供本技术实施例中一种数据解密的具体实施方法流程图;
166.从图13中可知,在终端设备与服务器在建立通信连接的过程中,本技术实施例中提供的数据包解密工具通过抓包工具,抓取协商数据包,并对协商数据包进行解析,获取终端随机数和服务器随机数;然后,基于终端随机数、服务器随机数以及从服务端获取的预主密钥,参考当前加密算法,进行前向安全密钥计算,生成终端设备与服务器之间的会话密钥;其中,终端随机数是解析终端发送的inchoate client hello消息获得的,服务器随机数是解析服务器发送的rejection消息获得的。
167.在终端设备与服务器会话过程中,本技术实施例提供的数据解密工具通过抓包工具,抓取会话数据包,并对会话数据包进行解析处理,确定加密会话字节流,并将加密会话字节流进行quic格式转换,生成加密quic数据;然后,导入会话密钥生成解密套件,对加密quic数据进行解密处理,输出解密数据即明文数据,最后对明文数据中包含的帧数据进行帧处理;
168.最后,基于明文数据进行结果分析,采用文本格式、日志文件格式、交互图格式展示。
169.在本技术中,获取终端设备与服务器协商的用于生成会话密钥的预主密钥;基于终端设备与服务器协商的通用规则,根据预主密钥,生成终端设备与服务器之间的会话密钥,由于采用与终端设备和服务器相同的规则生成会话密钥,因此生成的会话密钥可对终端设备与服务器之间传输的加密quic数据进行解密处理;在生成会话密钥后,采用该会话密钥对获取的终端设备与服务器之间传输的加密quic数据进行解密处理,获得相应的明文数据,并对明文数据进行数据完整性分析;实现对quic数据的解密处理,获取相应的明文数
据,弥补了基于quic协议传输的数据无法被离线解密的问题,使得quic在离线解密功能上与http对齐;进一步,对解密获得的明文数据进行完整性分析,可确定数据传输过程中应用层对应的真实数据内容,以及终端设备与服务器在传输层对应的数据收发情况,并基于数据收发情况,可以确定终端设备与服务器在数据传输过程中各自对应的问题定位,其中包括是否发生数据包丢失、数据收发延迟,以及丢失的具体数据包的编号,可实现数据丢包检测,以保证数据传输内容的准确性。
170.与本技术上述方法实施例基于同一发明构思,本技术实施例中还提供了一种数据解密的装置,装置解决问题的原理与上述实施例的方法相似,因此装置的实施可以参见上述方法的实施,重复之处不再赘述。
171.请参考图14,图14示例性提供本技术实施例提供一种数据解密的装置1400,该数据解密的装置1400包括:
172.第一获取单元1401,用于获取终端设备与服务器协商的密钥信息,其中所述密钥信息中包括预主密钥;
173.生成单元1402,用于基于终端设备与服务器协商的通用规则,根据预主密钥,生成终端设备与服务器之间的会话密钥;
174.第二获取单元1403,用于获取终端设备与服务器之间传输的加密quic数据;
175.解密单元1404,用于通过会话密钥对加密quic数据进行解密处理,获得相应的明文数据,并对明文数据进行数据完整性分析。
176.在一种可能的实现方式中,预主密钥是终端设备或服务器根据自身生成的随机值,以及对端发送的公钥随机值生成的。
177.在一种可能的实现方式中,密钥信息中还包括终端随机数和服务器随机数;生成单元1402具体用于:
178.根据预主密钥、终端随机数和服务器随机数,进行伪随机化处理,生成伪随机化密钥;
179.对伪随机化密钥进行密钥派生处理,将伪随机化密钥扩展到指定长度,生成会话密钥。
180.在一种可能的实现方式中,第二获取单元1403具体用于:
181.在终端设备与服务器会话过程中,抓取终端设备与服务器之间,通过quic协议传输的会话数据包,并将会话数据包的文件格式转换为目标文件格式;
182.根据目标文件格式,解析会话数据包,获取终端设备与服务器之间传输的加密会话数据字节流;
183.将加密会话数据字节流转换为quic格式,获取加密quic数据。
184.在一种可能的实现方式中,第二获取单元1403还用于:
185.将加密会话数据字节流转换为quic格式,获取加密quic数据之后,通过会话密钥对加密quic数据进行解密处理之前,通过如下方式中的之一或组合,对加密quic数据进行校验处理:
186.读取加密quic数据中各个会话数据字节的公共标识,并分别校验公共标识是否在指定范围内;
187.读取加密quic数据对应的quic版本号,并根据quic版本号校验加密quic数据是否
为正确版本;
188.读取加密quic数据中的连接标识,并将连接标识与当前会话的基准标识进行匹配;
189.读取加密quic数据对应的包编号,并校验包编号是否在目标范围内。
190.在一种可能的实现方式中,解密单元1404还用于:
191.通过会话密钥对加密quic数据进行解密处理,获得相应的明文数据之后针对明文数据中包含的各个帧数据,分别识别各个帧数据各自对应的数据类型;
192.针对各个数据类型,分别确定相应的帧处理方式,并基于确定的帧处理方式,对相应的帧数据进行解析处理,获取相应的解析数据。
193.在一种可能的实现方式中,解密单元1404还用于:
194.通过会话密钥对加密quic数据进行解密处理,获得相应的明文数据之后,采用目标展示方式,展示明文数据;
195.其中,目标展示方式包括文本格式、日志文件格式和交互图格式。
196.为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本技术时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
197.所属技术领域的技术人员能够理解,本技术的各个方面可以实现为系统、方法或程序产品。因此,本技术的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
198.在介绍了本技术示例性实施方式的数据解密的方法和装置之后,接下来,介绍根据本技术的另一示例性实施方式的用于数据解密的电子设备。
199.与本技术上述方法实施例基于同一发明构思,本技术实施例中还提供了一种电子设备,该电子设备可以是服务器。在该实施例中,电子设备的结构可以如图15所示,包括存储器1501,通讯模块1503以及一个或多个处理器1502。
200.存储器1501,用于存储处理器1502执行的计算机程序。存储器1501可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。
201.存储器1501可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,ram);存储器1501也可以是非易失性存储器(non-volatile memory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd);或者存储器1501是能够用于携带或存储具有指令或数据结构形式的期望的计算机程序并能够由计算机存取的任何其他介质,但不限于此。存储器1501可以是上述存储器的组合。
202.处理器1502,可以包括一个或多个中央处理单元(central processing unit,cpu)或者为数字处理单元等等。处理器1502,用于调用存储器1501中存储的计算机程序时实现上述数据解密的方法。
203.通讯模块1503用于与终端设备和其他服务器进行通信。
204.本技术实施例中不限定上述存储器1501、通讯模块1503和处理器1502之间的具体连接介质。本技术实施例在图15中以存储器1501和处理器1502之间通过总线1504连接,总
线1504在图15中以粗线描述,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1504可以分为地址总线、数据总线、控制总线等。为便于描述,图15中仅用一条粗线描述,但并不描述仅有一根总线或一种类型的总线。
205.存储器1501中存储有计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于实现本技术实施例的数据解密方法。处理器1502用于执行上述的数据解密方法。
206.在另一种实施例中,电子设备也可以是其他电子设备,如终端设备。在该实施例中,电子设备的结构可以如图16所示,包括:通信组件1610、存储器1620、显示单元1630、摄像头1640、传感器1650、音频电路1660、蓝牙模块1670、处理器1680等部件。
207.通信组件1610用于与服务器进行通信。在一些实施例中,可以包括电路无线保真(wireless fidelity,wifi)模块,wifi模块属于短距离无线传输技术,电子设备通过wifi模块可以帮助用户收发信息。
208.存储器1620可用于存储软件程序及数据。处理器1680通过运行存储在存储器1620的软件程序或数据,从而执行终端设备110的各种功能以及数据处理。存储器1620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。存储器1620存储有使得终端设备110能运行的操作系统。本技术中存储器1620可以存储操作系统及各种应用程序,还可以存储执行本技术实施例数据解密方法的代码。
209.显示单元1630还可用于显示由用户输入的信息或提供给用户的信息以及终端设备110的各种菜单的图形用户界面(graphical user interface,gui)。具体地,显示单元1630可以包括设置在终端设备110正面的显示屏1632。其中,显示屏1632可以采用液晶显示器、发光二极管等形式来配置。显示单元1630可以用于显示本技术实施例中的明文数据等。
210.显示单元1630还可用于接收输入的数字或字符信息,产生与终端设备110的用户设置以及功能控制有关的信号输入,具体地,显示单元1630可以包括设置在终端设备110正面的触摸屏1631,可收集用户在其上或附近的触摸操作,例如点击按钮,拖动滚动框等。
211.其中,触摸屏1631可以覆盖在显示屏1632之上,也可以将触摸屏1631与显示屏1632集成而实现终端设备110的输入和输出功能,集成后可以简称触摸显示屏。本技术中显示单元1630可以显示应用程序以及对应的操作步骤。
212.摄像头1640可用于捕获静态图像,用户可以将摄像头1640拍摄的图像通过应用发布评论。摄像头1640可以是一个,也可以是多个。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给处理器1680转换成数字图像信号。
213.终端设备还可以包括至少一种传感器1650,比如加速度传感器1651、距离传感器1652、指纹传感器1653、温度传感器1654。终端设备还可配置有陀螺仪、气压计、湿度计、温度计、红外线传感器、光传感器、运动传感器等其他传感器。
214.音频电路1660、扬声器1661、传声器1662可提供用户与终端设备110之间的音频接口。音频电路1660可将接收到的音频数据转换后的电信号,传输到扬声器1661,由扬声器1661转换为声音信号输出。终端设备110还可配置音量按钮,用于调节声音信号的音量。另
一方面,传声器1662将收集的声音信号转换为电信号,由音频电路1660接收后转换为音频数据,再将音频数据输出至通信组件1610以发送给比如另一终端设备110,或者将音频数据输出至存储器1620以便进一步处理。
215.蓝牙模块1670用于通过蓝牙协议来与其他具有蓝牙模块的蓝牙设备进行信息交互。例如,终端设备可以通过蓝牙模块1670与同样具备蓝牙模块的可穿戴电子设备(例如智能手表)建立蓝牙连接,从而进行数据交互。
216.处理器1680是终端设备的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器1620内的软件程序,以及调用存储在存储器1620内的数据,执行终端设备的各种功能和处理数据。在一些实施例中,处理器1680可包括一个或多个处理单元;处理器1680还可以集成应用处理器和基带处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,基带处理器主要处理无线通信。可以理解的是,上述基带处理器也可以不集成到处理器1680中。本技术中处理器1680可以运行操作系统、应用程序、用户界面显示及触控响应,以及本技术实施例的数据解密方法。另外,处理器1680与显示单元1630耦接。
217.在一些可能的实施方式中,本技术提供的数据解密的方法的各个方面还可以实现为一种程序产品的形式,其包括计算机程序,当程序产品在电子设备上运行时,计算机程序用于使电子设备执行本说明书上述描述的根据本技术各种示例性实施方式的数据解密的方法中的步骤。
218.程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
219.本技术的实施方式的程序产品可以采用便携式紧凑盘只读存储器(cd-rom)并包括计算机程序,并可以在计算装置上运行。然而,本技术的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被命令执行系统、装置或者器件使用或者与其结合使用。
220.可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行系统、装置或者器件使用或者与其结合使用的程序。
221.可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
222.应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
223.此外,尽管在附图中以特定顺序描述了本技术方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
224.本领域内的技术人员应明白,本技术实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用计算机程序的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
225.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
226.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献