CN112019500B - 一种基于深度学习的加密流量识别方法及电子装置 - Google Patents
一种基于深度学习的加密流量识别方法及电子装置 Download PDFInfo
- Publication number
- CN112019500B CN112019500B CN202010680117.4A CN202010680117A CN112019500B CN 112019500 B CN112019500 B CN 112019500B CN 202010680117 A CN202010680117 A CN 202010680117A CN 112019500 B CN112019500 B CN 112019500B
- Authority
- CN
- China
- Prior art keywords
- tls
- message
- sample
- sequence
- feature
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于深度学习的加密流量识别方法及电子装置,包括:收集网络中的若干TLS流,获取每一TLS流中的ClientHello报文整数序列、ServerHello报文整数序列、end‑entity certificate整数序列及前n个TLS应用数据报文组成的序列;提取ClientHello报文特征、ServerHello报文特征、end‑entity certificate特征及序列特征,计算若干TLS流的时间相关性,得到流特征;将流特征输入一加密流量分类器进行分类,根据加密流量分类器输出的各数据来源预测概率值,获取产生若干TLS流的数据来源。本发明从原始的流量中提取特征,无需人工进行特征分析;结合了报文层次和流层次的特征,使得分类效果较好;使用浅层的网络结构,减小了分类时间,使得分类器适用于实时分类。
Description
技术领域
本发明涉及网络安全领域,尤其涉及为一种基于深度学习的加密流量识别方法及电子装置。
背景技术
随着互联网不断地扩大,网络分类技术在网络管理中的地位愈发重要。例如中国专利申请CN101119321B公开的网络流量分类处理方法及网络流量分类处理装置、中国专利申请CN103973589B公开的网络流量分类方法及装置、中国专利申请公开的CN104767692B一种网络流量分类方法都从各方面研讨了如何才能更好地进行相应的流量分类。
而目前越来越多的手机应用使用TLS加密传输来保护用户隐私。尽管这种方法增强了通信双方的安全性,但是也使得很多传统的网络服务功能无法使用。同时,流量加密也使得恶意程序可以通过加密的方法绕过防火墙,从而造成严重的损失。
目前,比较常用的方法是基于机器学习的方法来进行网络流量的识别,但是由于传统机器学习方法将特征提取和分类任务一分为二,且难以将原始特征全部转换为可用的特征向量,例如中国专利申请CN111030941A公开了一种基于决策树的HTTPS加密流量分类方法,使得分类效果不佳。另一方面,现有的基于深度学习的方案以流序列特征为输入,难以做到实时识别。
发明内容
为了克服现有的方案难以自动提取特征、准确率不高、无法实时识别的不足,本发明提供一种基于深度学习的加密流量分类、识别方法及电子装置。本发明通过使用深度学习方法构造的多属性关联网络,从原始TLS握手报文和部分TLS应用报文中自动提取特征,在保证实时识别的情况下实现了很好的准确率。
为达到上述目的,本发明采用的具体技术方案如下:
一种基于深度学习的加密流量识别方法,其步骤包括:
1)1)收集网络中的若干TLS流,获取每一TLS流中的ClientHello报文整数序列、ServerHello报文整数序列、end-entitycertificate整数序列及前n个TLS应用数据报文组成的序列,n≥1;
2)提取ClientHello报文特征、ServerHello报文特征、end-entitycertificate特征及序列特征,计算若干TLS流的时间相关性,得到流特征;
3)将流特征输入一加密流量分类器进行分类,根据加密流量分类器输出的各数据来源预测概率值,获取产生若干TLS流的数据来源;
通过以下步骤训练所述加密流量分类器:
a)对各样本数据来源产生的若干样本TLS流赋予相应标签,并获取每一样本TLS流中的样本ClientHello报文整数序列、样本ServerHello报文整数序列、样本end-entitycertificate整数序列及每一样本数据来源的前n个TLS应用数据报文组成的样本序列;
b)提取样本ClientHello报文特征、样本ServerHello报文特征、样本end-entitycertificate特征及样本序列特征,计算各样本数据来源产生的样本TLS流时间相关性,得到每一样本数据来源的样本TLS流流特征;
c)将各样本TLS流流特征输入一分类器进行训练,得到所述加密流量分类器。
进一步地,通过wireshark收集网络中的若干TLS流;所述数据来源包括APP。
进一步地,通过以下步骤提取每一TLS流中的ClientHello报文整数序列、ServerHello报文整数序列与end-entitycertificate整数序列:
1)提取每一TLS流中的ClientHello报文、ServerHello报文与end-entitycertificate;
2)ClientHello报文、ServerHello报文与end-entitycertificate按照2-byte长度进行切分,分别转化为指定长度为x、y、z的整数序列,其中每一2-byte的块转换为整数p,p∈[1,65536];
3)截断超过指定长度的整数,对不足指定长度整数序列的后面补0。
进一步地,分别将ClientHello报文特征、ServerHello报文特征与end-entitycertificate特征输入由一embedding层、一1D-CNN层、globalmax-pooling层和一全连接层组成的报文特征提取器,得到ClientHello报文特征、ServerHello报文特征与end-entitycertificate特征。
进一步地,1D-CNN使用两种核提取特征构成双通道。
进一步地,将前n个TLS应用数据报文组成的序列输入一embedding层,得到与lientHello报文特征、ServerHello报文特征及end-entitycertificate特征维度相同的序列特征。
进一步地,将ClientHello报文特征、ServerHello报文特征、end-entitycertificate特征及序列特征输入一双向GRU网络,得到流特征。
进一步地,将流特征输入分类器前,将流特征输入一单层全连接网络进行降维;分类器包括softmax函数。
一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述所述的方法。
一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机以执行上述所述的方法。
与现有技术相比,本发明具有以下有益效果:
1)从原始的流量中提取特征,无需人工进行特征分析;
2)结合了报文层次和流层次的特征,使得分类效果较好;
3)使用浅层的网络结构,减小了分类时间,使得分类器适用于实时分类。
附图说明
图1是本发明的应用流程图。
图2是本发明的整体架构图。
图3是图2中MSFG的架构图。
具体实施方式
为了使得本技术领域的研究人员更全面地理解本发明,下面将结合附图和实施例对本发明中的核心技术做详细的说明。
本发明解决其技术问题所采用的技术方案是:本发明主要解决SSL/TLS(安全套接字协议/传输层安全协议,以下简称TLS)流的分类问题,主要是将单条TLS流分类为相应的App。本发明首先通过主动收集的方法收集到App产生的TLS流量进行模型训练和测试,收集过程如下:将手机接入计算机的wify接入点,在手机中一次运行一个App,在接入点处使用wireshark收集产生的TLS流,并将其标注为对应的App。然后使用训练好的模型在网关处进行流量分类,具体过程如图1所示。
图2为本发明的整体架构:首先,考虑到TLS流的握手报文中含有相应的App身份信息,且TLS应用报文的长度反映了上层应用的交互逻辑,因此提取两部分特征:一类是每一条TLS流原始的ClientHello报文、ServerHello报文、end-entitycertificate,二是前10个TLS应用数据报文组成的序列(仅包含报文的长度特征)。然后将提取到的特征分别经过报文切分层,报文特征提取层、流特征提取层、全连接层和分类层,最终输出结果。各层结构和作用描述如下:
报文切分层:由于ClientHello报文、ServerHello报文和end-entitycertificate均为二进制形式,无法直接由神经网络进行计算,需要利用该层将其转化为整数序列。具体做法为:对ClientHello报文、ServerHello报文和end-entitycertificate按照2-byte长度进行切分,然后将其转化为长度分别x、y、z的整数序列,其中每个2-byte的块转换为整数p(x、y、z分别为300、300、5000,p的取值范围为[1,65536])。对于超过指定长度的序列将其截断,长度不足的序列在其后补0。
报文特征提取层:由于握手报文具有一定的局部特征,同时为了加快特征提取过程,因此使用CNN进行特征提取。该层分为两个部分处理——一部分处理由原始报文生成的整数序列,一部分处理前十个TLS应用报文长度组成的序列。对于第一部分,将其交由图3所示的MSFG(报文序列特征生成器)进行报文特征的提取。首先将其送入一个embedding层(embeding的维度为60),然后依次通过1个1D-CNN层、globalmax-pooling层和一个全连接层。为了获得更好的特征,1D-CNN使用两种核大小(2和4)提取特征构成双通道。对于第二部分,只将其通过一个embedding层提取报文层次的特征,该层特征输出维度与MSFG的输出维度相同。
流特征提取层:由于网络流本身具有时间相关性,因而RNN适合提取流层次的特征,因此在该层使用双向GRU进行特征提取。本发明将上述提取的报文特征构成一个报文特征序列,然后交由双向GRU进行特征提取。最终将所有GRU单元的输出连接起来作为最终输出送入下一层。
全连接层:该层使用单层全连接网络对流特征提取层的结果进行降维,以减小过拟合。
分类层:该层使用softmax层输出每个App(比如:淘宝,高德地图等)的预测概率值,其中值最大的那一类即为最终结果。
为了证明本发明的有效性,发明人收集了16个App共59065条流,其数据集总体如表1所示。将该数据集按照4:1的比例划分为训练集和测试集,使用训练集对MAAN的参数进行了调优,其结果如表2所示。用调优后的模型在测试集上进行测试,最终分类效果如表3所示:可以看到,所有的应用其精确率和召回率均在95%以上,总体的准确率为98.22%,说明本发明具有很好的分类效果。此外使用本发明进行测试时,分类单条流所用的时间为1ms,该分类时间较短适合进行实时分类。
表1:数据集
表2:最优参数
表3:实验结果。其中Acc.、Prec.、Rec.分别表示Accuracy、Precision、Recall。
以上通过形式表达和实施例对本发明方法进行了详细的说明,但本发明的具体实现形式并不局限于此。本领域的一般技术人员,可以在不背离本发明所述方法的精神和原则的情况下对其进行各种显而易见的变化与修改。本发明的保护范围应以权利要求书所述为准。
Claims (10)
1.一种基于深度学习的加密流量识别方法,其步骤包括:
1)收集网络中的若干TLS流,获取每一TLS流中的ClientHello报文整数序列、ServerHello报文整数序列、end-entity certificate整数序列及前n个TLS应用数据报文组成的序列,n≥1;
2)提取ClientHello报文特征、ServerHello报文特征、end-entity certificate特征及序列特征,计算若干TLS流的时间相关性,得到流特征,其中序列特征由前n个TLS应用数据报文的长度组成;
3)将流特征输入一加密流量分类器进行分类,根据加密流量分类器输出的各数据来源预测概率值,获取产生若干TLS流的数据来源;
通过以下步骤训练所述加密流量分类器:
a)对各样本数据来源产生的若干样本TLS流赋予相应标签,并获取每一样本TLS流中的样本ClientHello报文整数序列、样本ServerHello报文整数序列、样本end-entitycertificate整数序列及每一样本数据来源的前n个TLS应用数据报文组成的样本序列;
b)提取样本ClientHello报文特征、样本ServerHello报文特征、样本end-entitycertificate特征及样本序列特征,计算各样本数据来源产生的样本TLS流时间相关性,得到每一样本数据来源的样本TLS流流特征,其中样本序列特征由每一样本数据来源的前n个TLS应用数据报文的长度组成;
c)将各样本TLS流流特征输入一分类器进行训练,得到所述加密流量分类器。
2.如权利要求1所述的方法,其特征在于,通过wireshark收集网络中的若干TLS流;所述数据来源包括APP。
3.如权利要求1所述的方法,其特征在于,通过以下步骤提取每一TLS流中的ClientHello报文整数序列、ServerHello报文整数序列与end-entity certificate整数序列:
1)提取每一TLS流中的ClientHello报文、ServerHello报文与end-entitycertificate;
2)ClientHello报文、ServerHello报文与end-entity certificate按照2-byte长度进行切分,分别转化为指定长度为x、y、z的整数序列,其中每一2-byte的块转换为整数p,p∈[1,65536];
3)截断超过指定长度的整数,对不足指定长度整数序列的后面补0。
4.如权利要求1所述的方法,其特征在于,分别将ClientHello报文特征、ServerHello报文特征与end-entity certificate特征输入由一embedding层、一1D-CNN层、globalmax-pooling层和一全连接层组成的报文特征提取器,得到ClientHello报文特征、ServerHello报文特征与end-entity certificate特征。
5.如权利要求1所述的方法,其特征在于,1D-CNN使用两种核提取特征构成双通道。
6.如权利要求1所述的方法,其特征在于,将前n个TLS应用数据报文组成的序列输入一embedding层,得到与ClientHello报文特征、ServerHello报文特征及end-entitycertificate特征维度相同的序列特征。
7.如权利要求1所述的方法,其特征在于,将ClientHello报文特征、ServerHello报文特征、end-entity certificate特征及序列特征输入一双向GRU网络,得到流特征。
8.如权利要求1所述的方法,其特征在于,将流特征输入分类器前,将流特征输入一单层全连接网络进行降维;分类器包括softmax函数。
9.一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1-8中任一所述方法。
10.一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行如权利要求1-8中任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010680117.4A CN112019500B (zh) | 2020-07-15 | 2020-07-15 | 一种基于深度学习的加密流量识别方法及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010680117.4A CN112019500B (zh) | 2020-07-15 | 2020-07-15 | 一种基于深度学习的加密流量识别方法及电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112019500A CN112019500A (zh) | 2020-12-01 |
CN112019500B true CN112019500B (zh) | 2021-11-23 |
Family
ID=73499771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010680117.4A Active CN112019500B (zh) | 2020-07-15 | 2020-07-15 | 一种基于深度学习的加密流量识别方法及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112019500B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112839055B (zh) * | 2021-02-04 | 2022-08-23 | 北京六方云信息技术有限公司 | 面向tls加密流量的网络应用识别方法、装置及电子设备 |
CN113556328B (zh) * | 2021-06-30 | 2022-09-30 | 杭州电子科技大学 | 基于深度学习的加密流量分类方法 |
CN114095446B (zh) * | 2021-11-10 | 2023-10-13 | 北京天融信网络安全技术有限公司 | 一种加密流量分类模型训练方法、检测方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101296228A (zh) * | 2008-06-19 | 2008-10-29 | 上海交通大学 | 基于流量分析的ssl vpn协议检测方法 |
CN104394164A (zh) * | 2014-12-06 | 2015-03-04 | 金琥 | 基于会话和协议识别https端口数据的方法 |
CN107360159A (zh) * | 2017-07-11 | 2017-11-17 | 中国科学院信息工程研究所 | 一种识别异常加密流量的方法及装置 |
CN108377186A (zh) * | 2018-03-19 | 2018-08-07 | 北京工业大学 | 一种基于tcm的ssl协议 |
CN108768986A (zh) * | 2018-05-17 | 2018-11-06 | 中国科学院信息工程研究所 | 一种加密流量分类方法及服务器、计算机可读存储介质 |
CN110311870A (zh) * | 2019-06-10 | 2019-10-08 | 哈尔滨工业大学(威海) | 一种基于密度数据描述的ssl vpn流量识别方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110012029B (zh) * | 2019-04-22 | 2020-05-26 | 中国科学院声学研究所 | 一种区分加密和非加密压缩流量的方法和*** |
-
2020
- 2020-07-15 CN CN202010680117.4A patent/CN112019500B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101296228A (zh) * | 2008-06-19 | 2008-10-29 | 上海交通大学 | 基于流量分析的ssl vpn协议检测方法 |
CN104394164A (zh) * | 2014-12-06 | 2015-03-04 | 金琥 | 基于会话和协议识别https端口数据的方法 |
CN107360159A (zh) * | 2017-07-11 | 2017-11-17 | 中国科学院信息工程研究所 | 一种识别异常加密流量的方法及装置 |
CN108377186A (zh) * | 2018-03-19 | 2018-08-07 | 北京工业大学 | 一种基于tcm的ssl协议 |
CN108768986A (zh) * | 2018-05-17 | 2018-11-06 | 中国科学院信息工程研究所 | 一种加密流量分类方法及服务器、计算机可读存储介质 |
CN110311870A (zh) * | 2019-06-10 | 2019-10-08 | 哈尔滨工业大学(威海) | 一种基于密度数据描述的ssl vpn流量识别方法 |
Non-Patent Citations (3)
Title |
---|
"Exploiting Dissent:Towards Fuzzing-Based Differential Black Box Testing of TLS Implementations";Andreas Walz.et;《IEEE Transaction on Dependable and Secure Computing》;20171017;全文 * |
"Novel TLS Signature Extraction for Malware Detection";K Chethan Pai.et;《2020 IEEE International Conference on Electronics,Computing and Communication Technologies》;20200704;全文 * |
"基于机器学习的TLS恶意加密流量检测方案";骆子铭等;《网络与信息安全学报》;20200215;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112019500A (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112019500B (zh) | 一种基于深度学习的加密流量识别方法及电子装置 | |
CN111277578B (zh) | 加密流量分析特征提取方法、***、存储介质、安全设备 | |
WO2022041394A1 (zh) | 一种网络加密流量识别方法及装置 | |
CN109639481B (zh) | 一种基于深度学习的网络流量分类方法、***及电子设备 | |
CN110012029B (zh) | 一种区分加密和非加密压缩流量的方法和*** | |
CN110460502B (zh) | 基于分布特征随机森林的vpn下应用程序流量识别方法 | |
CN110417729A (zh) | 一种加密流量的服务与应用分类方法及*** | |
Lingyu et al. | A hierarchical classification approach for tor anonymous traffic | |
CN113329023A (zh) | 一种加密流量恶意性检测模型建立、检测方法及*** | |
CN113283498A (zh) | 一种面向高速网络的vpn流量快速识别方法 | |
Wang et al. | Using CNN-based representation learning method for malicious traffic identification | |
Wu et al. | TDAE: Autoencoder-based automatic feature learning method for the detection of DNS tunnel | |
CN113472751A (zh) | 一种基于数据包头的加密流量识别方法及装置 | |
Qiao et al. | Encrypted 5G over-the-top voice traffic identification based on deep learning | |
CN114650229A (zh) | 基于三层模型sftf-l的网络加密流量分类方法与*** | |
Han et al. | An effective encrypted traffic classification method based on pruning convolutional neural networks for cloud platform | |
CN111209959B (zh) | 基于数据包时序的加密网页流量分割点识别方法 | |
CN110941836A (zh) | 一种分布式垂直爬虫方法及终端设备 | |
CN113746707B (zh) | 一种基于分类器及网络结构的加密流量分类方法 | |
CN116094971A (zh) | 一种工控协议识别方法、装置、电子设备及存储介质 | |
CN111835720B (zh) | 基于特征增强的vpn流量web指纹识别方法 | |
CN115473734A (zh) | 基于单分类和联邦学习的远程代码执行攻击检测方法 | |
CN114970680A (zh) | 基于cnn+lstm的流量终端实时识别方法及装置 | |
CN114722932A (zh) | 一种商用密码算法识别方法、***、介质、设备及终端 | |
CN111917600A (zh) | 一种基于Spark性能优化的网络流量分类装置及分类方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |