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

一种基于数据帧抽取的DoH流量分析方法

2022-11-16 15:13:19 来源:中国专利 TAG:

一种基于数据帧抽取的doh流量分析方法
技术领域
1.本发明涉及信息技术领域,具体涉及一种基于数据帧抽取的doh流量分析方法。


背景技术:

2.域名系统(domain name system,简称dns)是一种分布式网络目录服务,主要用于域名与ip地址的相互映射,承载了互联网上大多数应用的寻址,十分重要。但dns在设计之初缺乏安全性方面考虑,使用udp明文传输报文,资源记录缺少认证和加密机制,容易遭受中间人攻击。
3.dns-over-https(简称doh)是目前最有前景的加密dns技术之一,采用加密的https隧道传输dns数据,旨在保护dns数据的加密性、真实性和完整性,从而保护域名解析安全和用户隐私。自2018年由国际互联网工程任务组(the internet engineering task force,简称ietf)标准化以来(rfc 8484),doh发展十分迅速,目前已被广泛部署。在客户端,主流浏览器和操作系统均已支持配置doh解析功能。在服务端,大型域名解析服务提供商已大规模部署公开doh解析服务。在服务软件上,众多递归dns软件添加doh解析配置项。
4.doh流量指纹识别是一种根据doh流量来推断用户访问的具体网页的技术手段。该方法利用访问不同网页产生的doh流量,结合机器学习算法训练模型,在不解密doh流量的情况下识别用户访问的具体网页,具体实施步骤如下:1)收集用户访问网页产生的doh流量;2)对doh流量进行特征提取;3)利用不同网页的doh流量特征结合机器学习算法训练模型;4)利用模型在不解密前提下识别用户访问的具体网页。但是,由于http/2在doh协议中的广泛使用,doh流量中存在大量未承载数据帧,而仅承载控制帧的tls报文。这类tls报文不提供doh流量指纹识别的有效信息,干扰指纹识别模型的准确性和泛化性。


技术实现要素:

5.本发明的目的在于提供一种基于数据帧抽取的doh流量分析方法,根据doh流量的报文级别加密流量特征通过分类器识别doh流量中承载了数据帧的tls报文,根据流级别加密流量特征通过分类器识别doh流量对应的具体网页,能够提升模型的准确性和泛化性。
6.为达到上述目的,本发明采用如下技术方案:
7.一种基于数据帧抽取的doh流量分析方法,步骤包括:
8.1)访问不同网站捕获对应的doh流量,根据访问的网页对doh流量打标签,构建doh流量数据集;
9.2)通过步骤1)获得doh流量训练数据集,提取其中每个tls报文特征,该tls报文特征为tls报文的长度特征或者时间间隔特征;然后解密doh流量,再对每个tls报文打标签,标注出承载数据帧的tls报文,由全部打标签的tls报文构成tls报文级别数据集;根据tls报文级别数据集和tls报文特征,训练数据帧抽取分类器;
10.3)将步骤2)的承载数据帧的tls报文重组为tls流,并提取tls流特征,构建仅包含数据帧的tls流级别数据集;根据该tls流级别数据集,训练doh流量指纹识别分类器;
11.4)通过步骤1)获得待测试doh流量数据集,提取其中每个tls报文特征;然后将该待测试doh流量数据集和tls报文特征输入到训练好的数据帧抽取分类器进行处理,识别出承载数据帧的tls报文;
12.5)将步骤4)的承载数据帧的tls报文重组为tls流,并提取tls流特征,构建仅包含数据帧的tls流级别数据集;将该tls流级别数据集输入到训练好的doh流量指纹识别分类器进行处理,识别doh流量对应的具体网页。
13.进一步地,通过带有doh解析功能的浏览器,开启doh功能后访问网页生成doh流量;利用流量嗅探工具捕获doh流量。
14.进一步地,对doh流量打标签是指对网页进行编号,以编号作为标签。
15.进一步地,解密doh流量的方法有两种:一种是,配置系统环境变量,在操控浏览器访问网页时,由浏览器自动将通信双方协商好的对称密钥写入该变量指定的文本文件;然后利用对称密钥解密捕获的doh流量;另一种是,通过中间人攻击劫持浏览器和doh服务器的通信,在中间人处获取解密流量。
16.进一步地,提取tls报文特征的方法为:每次单独提取单个tls报文特征,或者同时提取前一个tls报文特征和后一个tls报文特征。
17.进一步地,对tls报文打标签的方法为:根据tls报文是否承载数据帧打标签,包含两类标签;或者根据tls报文承载的帧类型打标签,包含两类或者两类以上标签。
18.进一步地,根据承载数据帧的tls报文的数据包的五元组(协议、源ip、源端口、目的ip、目的端口)和偏移字段信息,将承载数据帧的tls报文重组为tls流。
19.进一步地,tls流特征包括tls流报文长度序列、tls流报文方向序列、tls流总报文数和tls流总报文长度。
20.进一步地,数据帧抽取分类器和doh流量指纹识别分类器所使用的分类算法均为fnn、cnn、rnn、svm、rf及其变体在内的机器学习方法中的一种。
21.进一步地,数据帧抽取分类器和doh流量指纹识别分类器均由监督分类算法、无监督分类算法和半监督分类算法构建。
22.本发明的核心创新包括:帧是针对http/2协议的特殊结构,本发明针对的对象是承载在http/2协议上的dns请求(即doh流量),能够从这些请求里分类识别访问的网页内容信息。本发明的重点在于基于数据帧抽取的二阶段分类。通过训练分类器抽取数据帧,根据tls报文的长度、时间间隔等特征通过分类器分类,从http/2报文中提取出数据帧,并根据数据帧标签重组原始tls报文,进一步通过doh流量指纹识别分类器对重组后的报文进行分类。具体地,本发明提出基于数据帧抽取的doh流量分析方法,其处理过程分为数据帧抽取和doh流量指纹识别两步,第一步是从doh流量中提取报文级别加密流量特征即tls报文特征,结合机器学习方法构建识别承载数据帧tls报文的数据帧抽取分类器,利用该分类器识别数据帧;第二步是将承载了数据帧的tls报文重组成tls流,提取流级别加密流量特征即tls流特征,结合机器学习方法构建doh流量指纹识别分类器,利用该分类器识别doh流量对应的具体网页。
23.本发明与现有技术相比,取得的有益效果是:
24.1、对于doh流量指纹识别任务,仅有承载数据帧的tls报文的特征是指纹识别的有效信息,其他未承载数据帧的tls报文的特征均为干扰信息。本发明通过抽取数据帧,剔除
了用于指纹识别的噪声信息,因而能提升现有doh流量指纹识别技术的准确性。
25.2、由于不同操作系统/浏览器的数据帧组成基本相同,而非数据帧组成差别较大,现有技术在训练分类器时将未承载数据帧的tls报文一同用作分类器训练,因而不同操作系统/浏览器的doh流量所训练的分类器难以相互识别。本发明通过抽取数据帧,剔除了这些非数据帧,使得某操作系统/浏览器下的doh流量所训练得到的分类器能识别另一操作系统/浏览器下doh流量的指纹,因而使得不同操作系统/浏览器的doh流量所训练的分类器能做到相互识别,提升了现有doh流量指纹识别技术的泛化性。
附图说明
26.图1是本发明实施例的基于数据帧抽取的doh流量分析方法流程图。
具体实施方式
27.为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。
28.图1所示为本发明实施例提供的基于数据帧抽取的doh流量分析方法的流程图,该方法主要分为两个阶段:训练阶段和正式使用阶段,在本实施例中利用测试阶段来代表正式使用阶段。其中在训练阶段,是通过解密doh流量,并人为标注数据帧标签,结合机器学习方法训练数据帧抽取分类器来识别出承载了数据帧的tls报文;再将承载了数据帧的tls报文重组成tls流,提取tls流级别加密流量特征,结合机器学习模型训练doh流量指纹识别分类器来识别doh流量对应的访问网页。在测试阶段,利用训练好的数据帧抽取分类器对加密的doh流量进行处理,识别出承载了数据帧的tls报文;再将承载了数据帧的tls报文重组成tls流,通过训练好的doh流量指纹识别分类器识别出doh流量对应的访问网页。具体步骤说明如下:
29.一、构建doh流量数据集
30.可以通过操控带有doh解析功能的浏览器,开启doh功能,访问网页产生doh流量。同时利用流量嗅探工具捕获doh流量,并根据访问的网页对doh流量打标签,构建doh流量数据集。其中带有doh解析功能的浏览器可以是chrome浏览器、firefox浏览器、edge浏览器、360浏览器等;流量嗅探工具可以是wireshark、dumpcap、scapy等;打标签方式可以是对网页进行编号,以编号作为标签。将doh流量数据集划分为训练集和测试集,分别用于训练阶段和测试阶段。
31.对未解密的doh流量,提取每个tls报文的tls报文特征,用于训练阶段和测试阶段。tls报文特征提取方法可以是单独提取单个tls报文的长度特征和时间间隔特征,也可以同时对tls流中前一tls报文和后一tls报文提取特征。
32.二、doh流量数据集解密
33.在训练阶段,由于doh流量是加密流量,为构建数据帧抽取任务数据集即训练集,需对doh流量进行解密。解密方法可以是配置系统环境变量sslkeylogfile,在操控浏览器访问网页时,由浏览器自动将通信双方协商好的对称密钥写入sslkeylogfile指定的文本文件;然后利用对称密钥解密捕获的doh流量。解密方法还可以是通过中间人攻击劫持浏览器和doh服务器的通信,在中间人处获取解密流量。其中中间人攻击工具可选用mitmproxy、
ettercap、bettercap等。
34.三、对tls报文承载的帧类型打标签,构建tls报文级别数据集
35.在训练阶段,在解密doh流量后,需要人为根据每个tls报文承载的帧类型进行打标签,打标签方法可以是根据tls报文是否承载数据帧打标签,即两类标签,也可以根据tls报文承载的具体帧类型进行打标签。打标签的目标是标注出数据帧,将数据帧与其他帧进行区分,得到承载数据帧的tls报文。然后将全部打标签的tls报文构建tls报文级别数据集。
36.四、训练数据帧抽取任务分类器
37.在训练阶段,根据步骤三中得到的tls报文级别数据集和tls报文特征,训练数据帧抽取分类器,用来识别承载数据帧tls报文。在测试阶段,根据测试集和tls报文特征,利用训练好的数据帧抽取分类器进行处理,识别出承载数据帧的tls报文。该数据帧抽取分类器采用的分类算法可以使用包括fnn、cnn、rnn、svm、rf及其变体在内的机器学习方法。
38.五、构建tls流级别数据集
39.在训练阶段,将步骤三中人为标注的承载数据帧的tls报文进行tls流重组。在测试阶段,将步骤四中利用训练好的数据帧抽取分类器识别出的承载数据帧的tls报文进行tls流重组。然后进行tls流特征提取,由tls流和tls流特征构建tls流级别数据集。具体方法可以是根据承载数据帧的tls报文的数据包的五元组(协议、源ip、源端口、目的ip、目的端口)和偏移字段等信息将多个tls报文重组为tls流。以数据流为单位提取特征,该特征包括tls流报文长度序列、tls流报文方向序列、tls总报文数、tls总报文长度等。
40.六、训练doh流量指纹识别任务分类器
41.在训练阶段,根据步骤五中得到的tls流级别数据集,训练doh流量指纹识别分类器,用来识别doh流量对应的具体网页。在测试阶段,利用训练好的doh流量指纹识别分类器来处理tls流级别数据集,识别doh流量对应的具体网页。该doh流量指纹识别分类器采用的分类算法可以使用包括fnn、cnn、rnn、svm、rf及其变体在内的机器学习方法。
42.以下列举两个具体的应用实例:
43.实例1
44.操作chrome浏览器打开doh功能,配置阿里巴巴doh服务节点(具体服务接入方式为:https://dns.alidns.com/dns-query),访问国内top 1000的网站的主页,并捕获每个网页产生的doh流量,根据每个网站的排名,对每流doh流进行打标。重复以上过程20次,得到doh流量数据集。对doh流量数据集中的每个tls报文提取tls报文长度特征。
45.在训练阶段,首先在操作chrome之前,配置系统环境变量sslkeylogfile,指向某个文本文件,例如ssl.log。chrome在访问网页时,会自动将产生的tls流的对称密钥写入ssl.log文件。根据ssl.log中的对称密钥,解密doh流量。然后在解密doh流量后,根据tls报文是否承载数据帧打标签,将承载了数据帧的tls报文标记为1类,其他tls报文标记为0类,构成tls报文级别数据集。再然后根据tls报文级别数据集及tls报文特征,结合随机森林算法训练数据帧抽取分类器,用于识别未知doh流量中承载了数据帧的tls报文。最后根据解密的doh流量的五元组信息,将承载数据帧的tls报文重组成tls流。对每个tls流,提取tls报文长度序列的n-gram特征,得到tls流级别数据集。根据tls流级别数据集,结合随机森林算法构建并训练doh流量指纹识别分类器来识别doh流量对应的具体网页。
46.在正式使用阶段,利用训练好的数据帧抽取分类器对未解密的doh流量和提取的tls报文特征进行处理,识别出承载数据帧的tls报文。然后对承载数据帧的tls报文重组tls流并提取tls流特征,再利用训练好的doh流量指纹识别分类器进行处理,识别doh流量对应的具体网页。
47.实例2
48.操作firefox浏览器打开doh功能,配置腾讯doh服务节点(具体服务接入方式为:https://doh.pub/dns-query),访问国内top 1000的网站的主页,并捕获每个网页产生的doh流量,根据每个网站的排名,对每流doh流进行打标。重复以上过程20次,得到doh流量数据集。对doh流量数据集中的每个tls报文提取tls报文时间间隔度特征。
49.在训练阶段,首先在操作firefox的过程中,利用mitmproxy执行中间人攻击,在中间人处捕获解密的doh流量。然后在解密doh流量后,根据tls报文承载的帧类型打标签,将承载了数据帧的tls报文标记为0类,承载了headers帧的tls报文标记为1类,承载了priority帧的tls报文标记为2类,承载了rst_stream帧的tls报文标记为3类,承载了settings帧的tls报文标记为4类,承载了push_promise帧的tls报文标记为5类,承载了ping帧的tls报文标记为6类,承载了goaway帧的tls报文标记为7类,承载了window_update帧的tls报文标记为8类,承载了continuation帧的tls报文标记为9类,构成tls报文级别数据集。再然后根据tls报文级别数据集及tls报文特征,结合lstm算法训练数据帧抽取分类器,用于识别未知doh流量中承载了数据帧的tls报文。最后根据解密的doh流量的五元组信息,将承载数据帧的tls报文重组成tls流。对每个tls流,提取tls报文长度序列的n-gram特征,得到tls流级别数据集。最后根据tls流级别数据集,选择ada-boost算法构建并训练doh流量指纹识别分类器来识别doh流量对应的具体网页。
50.在正式使用阶段,利用训练好的数据帧抽取分类器对未解密的doh流量和提取的tls报文特征进行处理,识别出承载数据帧的tls报文。然后对承载数据帧的tls报文重组tls流并提取tls流特征,再利用训练好的doh流量指纹识别分类器进行处理,识别doh流量对应的具体网页。
51.虽然本发明已以实施例公开如上,然其并非用以限定本发明,本领域的普通技术人员对本发明的技术方案进行的适当修改或者等同替换,均应涵盖于本发明的保护范围内,本发明的保护范围以权利要求所限定者为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献