有效
一种基于主题概率模型的网站指纹识别方法
邹鸿程、魏子令、苏金树、赵宝康、赵锋、时向泉、陶静、虞万荣、韩彪、原玉磊
中国人民解放军国防科技大学
邹
邹鸿程 专利 1
中国人民解放军国防科技大学数据存储检索电子数据处理计算技术
魏
魏子令 专利 32
中国人民解放军国防科技大学电子数据处理数字信息传输电通信技术
苏
苏金树 专利 88
中国人民解放军国防科技大学数据交换网数字信息传输电通信技术
赵
赵宝康 专利 90
中国人民解放军国防科技大学数字信息传输电通信技术电学
赵
赵锋 专利 114
中国人民解放军国防科技大学雷达系统探测部件无线电定位导航
时
时向泉 专利 58
中国人民解放军国防科技大学数字信息传输电通信技术电学
陶
陶静 专利 72
中国人民解放军国防科技大学数据交换网数字信息传输电通信技术
虞
虞万荣 专利 82
中国人民解放军国防科技大学数字信息传输电通信技术电学
韩
韩彪 专利 35
中国人民解放军国防科技大学数字信息传输电通信技术电学
原
原玉磊 专利 64
中国人民解放军国防科学技术大学网络协议数字信息传输电通信技术
摘要
本发明公开了一种基于主题概率模型的网站指纹识别方法,目的是实现隐私增强技术场景中有效识别网站。技术方案是构建由通用流量数据采集模块、流量数据预处理模块、PWFP主题概率模型训练模块、PWFP主题概率模型预测模块、网站识别模块等组成的网站指纹识别系统;流量数据预处理模块对训练数据进行数据分离、一阶特征提取、特征符号化、分词、TF‑IDF向量化处理;训练模块对PWFP主题概率模型进行训练,得到主题概率分布、词汇主题概率分布、训练流序列文件的高阶特征向量。训练后的网站指纹识别系统对测试数据进行预处理、模型预测和网站识别,得到测试流序列文件所属网站序号。本发明可有效提高网站指纹识别准确率和速度。
1.一种基于主题概率模型的网站指纹识别方法,其特征在于包括以下步骤:第一步,构建网站指纹识别系统;该系统由通用流量数据采集模块、流量数据预处理模块、PWFP主题概率模型训练模块、PWFP主题概率模型预测模块和网站识别模块组成;通用流量数据采集模块与识别者、流量数据预处理模块相连,由采集参数配置模块、用户行为模拟模块、流量数据采集模块和配置文件组成;配置文件保存配置参数,配置参数包括敏感网址即识别者关注的网址、可访问网址、训练样本数量、测试样本数量、训练测试比例、用户行为模式、访问间隔、访问时长、网站指纹识别场景、优化类型、精度门限值、是否开启浏览器缓存、是否开启浏览历史记忆和存储地址;采集参数配置模块与配置文件、流量数据采集模块、用户行为模拟模块、流量数据预处理模块和KNN决策模块相连;采集参数配置模块从配置文件读取采集和预处理任务相关的各种配置参数,支持对配置参数进行动态配置,将配置参数发送给流量数据采集模块、用户行为模拟模块、流量数据预处理模块和KNN决策模块;用户行为模拟模块与采集参数配置模块、流量数据采集模块相连,从采集参数配置模块接收配置参数,根据配置参数中的用户行为模式、访问间隔、访问时长、训练样本数量和测试样本数量模拟用户浏览网络行为,即用户以怎样的频率和时长访问一个或多个网页;用户行为模拟动作开始后,用户行为模拟模块向流量数据采集模块发送“启动采集”指令;流量数据采集模块与识别者、采集参数配置模块、用户行为模拟模块、流量数据预处理模块相连;流量数据采集模块从采集参数配置模块接收配置参数,从用户行为模拟模块接收“启动采集”指令,通过识别者接入网络的位置在网络中实时采集加密流量数据并加以存储,将采集到的pcap源文件和时间戳文件发送给流量数据预处理模块;其中,pcap源文件是以pcap文件存储的网络采集原始数据;流量数据预处理模块与采集参数配置模块、流量数据采集模块、PWFP主题概率模型训练模块、PWFP主题概率模型预测模块相连,包括五个子模块,即流量数据分离模块、一阶特征提取模块、特征符号化模块、分词模块和TF-IDF向量化模块;流量数据分离模块与采集参数配置模块、流量数据采集模块、一阶特征提取模块相连;流量数据分离模块从流量数据采集模块接收pcap源文件和时间戳文件,对pcap源文件按网站分类,并使pcap源文件按照配置参数中的训练测试比例参数分成训练类别和测试类别;流量数据分离模块将训练数据和测试数据以流数据文件形式逐帧进行存储,并将流数据文件发送到一阶特征提取模块;一阶特征提取模块与流量数据分离模块、特征符号化模块相连;一阶特征提取模块从流量数据分离模块接收流数据文件,从流数据文件中提取元数据特征,包括包时间戳、包方向和包长度三种特征;其中,包时间戳特征用于保证其他特征按时间顺序有序存放;包方向与包长度组合在一起构成带方向包长特征;带方向包长特征若为正值,表示该带方向包长特征提取自上行包,即从浏览器发送到服务器的数据包;若为负值,表示该带方向包长特征提取自下行包,即从服务器发送到浏览器的数据包;一阶特征提取模块将提取到的带方向包长特征存储成流特征文件,将流特征文件发送给特征符号化模块;特征符号化模块与一阶特征提取模块、分词模块相连;特征符号化模块从一阶特征提取模块接收流特征文件,对流特征文件中的带方向包长特征进行特征符号化,得到流序列文件,将流序列文件发送到分词模块;分词模块与特征符号化模块、TF-IDF向量化模块相连;分词模块从特征符号化模块接收流序列文件,将所有流序列文件进行分词;每个流序列文件得到1个词汇列表,所有词汇列表的词汇汇总后去除重复词汇即构成1个训练词库列表,将得到的词汇列表和训练词库列表发送到TF-IDF向量化模块;TF-IDF向量化模块与分词模块、PWFP主题概率模型训练模块、PWFP主题概率模型预测模块相连;TF-IDF向量化模块从分词模块接收各流序列文件的词汇列表和训练词库列表,采用TF-IDF向量化方法得到各流序列文件对应的TF-IDF向量,将各流序列文件对应的TF-IDF向量发送到PWFP主题概率模型训练模块和PWFP主题概率模型预测模块;PWFP主题概率模型训练模块与PWFP主题概率模型预测模块均是基于PWFP主题概率模型;PWFP主题概率模型训练模块与PWFP主题概率模型预测模块、TF-IDF向量化模块、网站识别模块相连;PWFP主题概率模型训练模块从TF-IDF向量化模块接收TF-IDF向量,进行迭代计算,得到用以计算训练流序列文件高阶特征的必要参数,包括主题概率分布p(z)、词汇主题概率分布p(w|z)、训练流序列文件主题概率分布p(d|z),同时生成辅助参数估计的后验概率分布p(z|d,w);其中,z表示主题,w表示词汇,d表示训练流序列文件,p(z)表示主题z的概率分布,p(w|z)表示词汇w在主题z条件下的概率分布,p(d|z)表示训练流序列文件d在主题z条件下的概率分布,p(z|d,w)表示给定训练流序列文件d和词汇w的条件下主题z的概率分布;训练完成后,将p(z)和p(w|z)发送到PWFP主题概率模型预测模块,将p(z)、p(w|z)和p(d|z)发送到高阶特征计算模块;PWFP主题概率模型预测模块与PWFP主题概率模型训练模块、TF-IDF向量化模块、网站识别模块相连;PWFP主题概率模型预测模块从TF-IDF向量化模块接收TF-IDF向量,利用从PWFP主题概率模型训练模块传来的p(z)和p(w|z),进行迭代计算,得到用以计算测试流序列文件高阶特征的必要参数,即测试流序列文件主题分布p(q|z)和辅助参数估计的后验概率分布p(z|q,w);其中,p(q|z)表示测试流序列文件q在主题z条件下的概率分布,p(z|q,w)表示给定测试流序列文件q和词汇w的条件下主题z的概率分布;预测完成后,将模型参数p(q|z)发送到高阶特征计算模块;网站识别模块与PWFP主题概率模型训练模块、PWFP主题概率模型预测模块,由高阶特征计算模块、相似度计算模块和KNN决策模块构成;高阶特征计算模块从PWFP主题概率模型训练模块接收p(z)、p(d|z)和p(w|z),从PWFP主题概率模型预测模块接收p(q|z),计算出训练流序列文件主题分布p(z|d)或测试流序列文件主题分布p(z|q),进一步得到训练流序列文件或测试流序列文件的高阶特征向量,将高阶特征向量发送给相似度计算模块;相似度计算模块与高阶特征计算模块和KNN决策模块相连,从高阶特征计算模块接收测试流序列文件与训练流序列文件的高阶特征向量,计算测试流序列文件与训练流序列文件两两之间距离,将测试流序列文件与训练流序列文件两两之间距离发送给KNN决策模块;KNN决策模块与采集参数配置模块、相似度计算模块连接,从相似度计算模块接收测试流序列文件与训练流序列文件之间距离,从采集参数配置模块接收网站指纹识别场景、优化类型、精度门限值、训练样本数量,根据配置参数中不同的网站指纹识别场景配置采用不同的决策策略,识别测试流序列文件所属的网站,得到对应的网站序号;第二步,初始化配置文件;采集参数配置模块从配置文件读取配置参数,将配置参数发送给流量数据采集模块、用户行为模拟模块、流量数据预处理模块和KNN决策模块;准备PWFP主题概率模型的训练数据集,包括SSH55、SSH100和Alexa74三个公开数据集和通用流量数据采集模块采集的HTTPS100、AleSS73、AleSS287和Opw6879四个数据集;流量数据采集模块将采集得到的HTTPS100、AleSS73、AleSS287和Opw6879的pcap源文件和时间戳文件发送给流量数据预处理模块;第三步,流量数据预处理模块从流量数据采集模块或公开数据集接收训练数据,根据训练数据的类型进行相应的处理;若流量数据预处理模块从流量数据采集模块接收数据,得到pcap源文件和时间戳文件,按3.1、3.2、3.3、3.4、3.5步骤进行流量数据分离、一阶特征提取、特征符号化、分词和TF-IDF向量化;若流量数据预处理模块从公开数据集接收数据,则根据公开数据集的类型进入不同的处理流程,具体是:若公开数据集以pcap源文件形式存在,则按3.1、3.2、3.3、3.4、3.5步骤处理;若公开数据集以流特征文件形式存在,则按3.1、3.3、3.4、3.5步骤处理,若公开数据集以流序列文件形式存在,则按3.1、3.4、3.5步骤处理;具体方法是:3.1流量数据分离模块获取并判断到来的数据,若是pcap源文件和时间戳文件,转3.1.1,否则,转3.1.2;3.1.1将pcap源文件中的流量数据按照网站进行分离,得到流数据文件;3.1.2判断流文件类型:若是pcap源文件,则对流数据文件按照配置参数中的训练测试比例进行分离,并将得到的训练流数据文件发送给一阶特征提取模块,转3.2;若是流特征文件,则对流特征文件按照配置参数中的训练测试比例进行分离,并将得到的训练流特征文件发送给特征符号化模块,转3.3;若是流序列文件,则对流序列文件按照配置参数中的训练测试比例进行分离,并将得到的训练流序列文件发送给分词模块,转3.4;3.2一阶特征提取模块从流量数据分离模块接收X个训练流数据文件,并采用一阶特征提取方法从X个训练流数据文件提取一阶特征,得到X个训练流特征文件,将X个训练流特征文件发送给特征符号化模块;3.3特征符号化模块从一阶特征提取模块或流量分离模块接收X个训练流特征文件,采用符号化方法对X个训练流特征文件进行特征符号化,得到X个特征流序列文件,将X个训练流序列文件发送给分词模块;3.4分词模块从特征符号化模块或流量分离模块接收X个训练流序列文件,采用分词方法对其进行分词处理,得到X个训练流序列文件的词汇列表b 1 ,...,b x ,...,b X ,将b 1 ,...,b x ,...,b X 中的词汇汇总并去除重复的词汇后构成训练词库列表C,将b 1 ,...,b x ,...,b X 和C并发送给TF-IDF向量化模块,1≤x≤X;3.5TF-IDF向量化模块从分词模块接收词汇列表b 1 ,...,b x ,...,b X 和训练词库列表C,将词汇列表b 1 ,...,b x ,...,b X 通过TF-IDF方法分别转换成一个向量,得到X个TF-IDF向量;3.6对得到的X个TF-IDF向量进行降维处理,即首先将X个TF-IDF向量组成矩阵,并去除所有全零列,得到降维处理后的X个TF-IDF向量;同时,根据降维处理后的TF-IDF向量,对训练词库列表C进行更新,即删除原TF-IDF向量的全零列对应的词汇;3.7将降维处理后的X个TF-IDF向量发送给PWFP主题概率模型训练模块,转第四步;第四步:PWFP主题概率模型训练模块接收TF-IDF向量化模块输出的X个TF-IDF向量,进行参数估计即对PWFP主题概率模型进行训练,从而对PWFP主题概率模型预测模块的模型进行更新,得到训练后的网站指纹识别系统;高阶特征计算模块计算训练流序列文件的高阶特征向量,并发送到相似度计算模块;具体过程是:4.1PWFP主题概率模型训练模块从TF-IDF向量化模块接收X个训练流序列文件的TF-IDF向量,利用期望最大化算法即EM算法对PWFP主题概率模型训练参数即训练流序列文件主题概率分布p(d|z)、主题概率分布p(z)和词汇主题概率分布p(w|z)进行估计;EM算法包括E-step和M-step两个步骤,分别用来更新PWFP主题概率模型的后验概率分布p(z|d,w)和模型训练参数p(d|z)、p(z)和p(w|z);两个步骤交替迭代进行,迭代L轮后完成参数估计,将参数p(z)和p(w|z)发送到PWFP主题概率模型预测模块,更新PWFP主题概率模型预测模块的模型,并将参数p(z)、p(w|z)和p(d|z)发送到高阶特征计算模块;p(z)包括p(z 1 ),...,p(z k ),...,p(z K );p(w|z)包括p(w 1 |z 1 ),...,p(w j |z 1 ),...,p(w M |z 1 ),...,p(w 1 |z k ),...,p(w j |z k ),...,p(w M |z k ),...,p(w 1 |z K ),...,p(w j |z K ),...,p(w M |z K );p(d|z)包括(d 1 |z 1 ),...,p(d x |z 1 ),...,p(d X |z 1 ),...,p(d 1 |z k ),...,p(d x |z k ),...,p(d X |z k ),...,p(d 1 |z K ),...,p(d x |z K ),...,p(d X |z K );K为模型中隐含主题的数量,M为训练词库列表中词汇的数量,1≤k≤K,1≤j≤M;d x 是第x个训练流序列文件,z k 是模型中第k个主题,w j 是训练词库列表中的第j个词汇;4.2高阶特征计算模块接收PWFP主题概率模型训练模块发送的参数p(d|z)、p(z)和p(w|z),计算X个训练流序列文件的高阶特征向量,得到X个训练流序列文件的高阶特征向量d 1v ,...,d xv ,...,d Xv ,d xv 为训练流序列文件d x 的高阶特征向量,d xv =(p(z 1 |d x ),p(z 2 |d x ),...,p(z k |d x ),...,p(z K |d x )),p(z k |d x )为主题z k 关于测试流序列文件d x 的条件概率分布,v表示该变量是向量,将d 1v ,...,d xv ,...,d Xv 发送到相似度计算模块;第五步:训练后的网站指纹识别系统采集测试数据,对测试数据进行流量数据预处理、PWFP主题概率模型预测、网站识别,得到测试流序列文件的所属网站序号;采集测试数据集时采用与采集训练数据集相同的网站参数设置,包括敏感网址和可访问网址;具体方法是:5.1流量数据采集模块从识别者接入网络,并从网络采集被测试网站的加密流量数据,方法是:5.1.1用户行为模拟模块接收采集配置模块的配置参数,根据配置参数中的用户行为模式、访问时长、访问间隔模拟用户访问网站,同时向流量数据采集模块发送“启动采集”指令;5.1.2流量数据采集模块接收用户行为模拟模块发送的“启动采集”指令,接收采集参数配置模块的配置参数,采用tcpdump工具在后台从识别者所在的网络中实时抓取流量数据,并存储为一个pcap源文件;同时在采集的过程中记录每个网站的开始和结束采集的时间戳,并存储为一个时间戳文件;5.2流量数据预处理模块从流量数据采集模块接收pcap源文件和时间戳文件,进行流量数据分离、一阶特征提取、特征符号化、分词和TF-IDF向量化,方法是:5.2.1流量数据分离模块从流量采集模块接收pcap源文件和时间戳文件,按3.1.1步所述的将pcap源文件的流量数据按照网站进行分离的方法对接收到的测试数据进行流量分离处理,得到X′个测试流数据文件,将X′个测试流数据文件发送给一阶特征提取模块;5.2.2一阶特征提取模块从流量数据分离模块接收X′个测试流数据文件,对X′个测试流数据文件采用3.2步所述一阶特征提取方法进行一阶特征提取,得到X′个测试流特征文件,将X′个测试流特征文件发送给特征符号化模块;5.2.3特征符号化模块从一阶特征提取模块接收X′个测试流特征文件,采用3.3步所述符号化方法对X′个测试流特征文件进行符号化处理,得到X′个测试流序列文件,将X′个测试流序列文件发送给分词模块;5.2.4分词模块从特征符号化模块接收X′个测试流序列文件,采用3.4步所述分词方法对X′个测试流序列文件进行分词处理,得到X′个测试流序列文件的词汇列表b 1 ,...,b x′ ,...,b X′ ,将词汇列表b 1 ,...,b x′ ,...,b X′ 发送给TF-IDF向量化模块,X′表示测试流序列文件的数量,1≤x′≤X′;5.2.5TF-IDF向量化模块从分词模块接收X′个测试流序列文件的词汇列表,结合训练阶段更新后的训练词库列表C,采用3.5步所述的TF-IDF方法词将测试流序列文件的词汇列表b 1 ,...,b x′ ,...,b X′ 分别转换成一个向量,得到X′个TF-IDF向量,将转换得到的测试流序列文件的X′个TF-IDF向量发送给PWFP主题概率模型预测模块;5.3PWFP主题概率模型预测模块从TF-IDF向量化模块接收测试流序列文件的X′个TF-IDF向量,结合从PWFP主题概率模型训练模块接收的p(z)和p(w|z)参数,利用EM算法对测试流序列文件主题概率参数p(q|z)参数进行估计;将p(q|z)发送到高阶特征计算模块;p(q|z)含p(q 1 |z 1 ),...,p(q x′ |z 1 ),...,p(q X′ |z 1 ),...,p(q 1 |z k ),...,p(q x′ |z k ),...,p(q X′ |z k ),...,p(q 1 |z K ),...,p(q x′ |z K ),...,p(q X′ |z K );5.4网站识别模块接收PWFP主题概率模型预测模块发送的参数p(q|z),对各测试流序列文件所属网站进行识别,得到各测试流序列文件所属网站的序号;方法是:5.4.1高阶特征计算模块接收PWFP主题概率模型预测模块发送的参数p(q|z),结合PWFP主题概率模型训练模块发送的参数p(z)和p(w|z),采用4.2步所述的方法分别求出测试流序列文件q 1 ,...,q x′ ,...,q X′ 的高阶特征向量q 1v ,...,q x′v ,...,q X′v ,将得到的q 1v ,...,q x′v ,...,q X′v 发送给相似度计算模块,q x′v 表示测试流序列文件q x′ 的高阶特征向量;5.4.2相似度计算模块从高阶特征模块接收训练流序列文件和测试流序列文件的高阶特征向量,计算测试流序列文件与训练流序列文件两两之间的距离,得到X′个测试流序列文件与X个训练流序列文件两两之间的距离;其中,第x′个测试流序列文件q x′ 与X个训练流序列文件的距离是dis(q x′v ,d 1v ),...,dis(q x′v ,d xv ),...,dis(q x′v ,d Xv ),q x′v_k 表示q x′v 的第k维特征值,d xv_k 表示d xv 的第k维特征值,weight为q x′v 和d xv 两个高阶特征向量同时不为0的维数数量;并将X′个测试流序列文件与X个训练流序列文件两两之间的距离全部发送给KNN决策模块;5.4.3KNN决策模块从相似度计算模块接收测试流序列文件和训练流序列文件的距离,从采集参数配置模块接收配置参数,使用KNN分类法识别测试流序列文件所属网站,得到对应的网站序号;根据配置参数中的网站指纹识别场景,分别使用不同的最近邻居数量参数r设置;方法是:5.4.3.1若是封闭世界场景情况,即测试流序列文件所属的网站均为识别者所关注的网站,转5.4.3.2;若是开放世界场景情况,即测试流序列文件所属的网站不仅包括识别者所关注的网站,也可能是其他的网站;在这种情况下,若是以优化精度为目标,转5.4.3.3;若是以优化召回率为目标,转5.4.3.4;5.4.3.2 KNN决策模块对封闭世界场景下的测试流序列文件进行识别,方法是:5.4.3.2.1设置参数r为1,同时设置当前处理测试流序列文件序号为x′=1;5.4.3.2.2将相似度计算模块发送的测试流序列文件q x′ 与X个训练流序列文件的距离dis(q x′v ,d 1v ),...,dis(q x′v ,d xv ),...,dis(q x′v ,d Xv ),存储在字典dic_sim中;5.4.3.2.3从dic_sim中选择最小距离,找到对应的训练流序列文件d s ,并将测试流序列文件q x′ 划分到训练流序列文件d s 所属于的网站;假设该网站序号为w x′ ;则w x′ 的计算方法是 其中,n表示每个网站的训练流序列文件数量;5.4.3.2.4递增当前处理测试流序列文件序号x′=x′+1,若x′≤X′,转5.4.3.2.3,若x′>X′,则完成了对所有测试流序列文件所属网站的识别,得到了各测试流序列文件的所属网站序号w 1 ,w 2 ,...,w x′ ,...,w X′ ;转第六步;5.4.3.3KNN决策模块对以优化精度为目标的开放世界场景下的测试流序列文件进行识别,方法是:5.4.3.3.1在[1,10]之间随机选择一个整数r 1 对参数r进行初始化;5.4.3.3.2设置当前处理测试流序列文件序号为x′=1;5.4.3.3.3将相似度计算模块发送的测试流序列文件q x′ 与所有X1+X2个训练流序列文件的距离dis(q x′v ,d 1v ),...,dis(q x′v ,d xv ),...,dis(q x′v ,d X1v ),...,dis(q x′v ,d X1+X2v )存储在字典dic_sim中;其中,X1+X2表示所有的训练流序列文件,即X=X1+X2;X1表示识别者关注的网站的训练流序列文件数量,X2表示识别者不关注的网站的训练流序列文件数量;在开放世界场景中,序号范围在[1,X1]区间内的训练流序列文件是访问识别者关注的网站产生的;序号范围在(X1,X1+X2]区间内的训练流序列文件是访问其他网站产生的;5.4.3.3.4从dic_sim中选择最小距离,找到对应的训练流序列文件d s ,并将测试流序列文件q x′ 划分到训练流序列文件d s 所对应的网站;假设该网站序号为w x′ ,则w x′ 的计算方法是当s在[1,X1]时, 当s在(X1,X1+X2]时, 其中,n表示每个网站的训练流序列文件数量;5.4.3.3.5递增当前处理测试流序列文件序号x′=x′+1,若x′≤X′,转5.4.3.3.3,若x′>X′,则完成对所有测试流序列文件所属网站的识别,得到了各测试流序列文件的所属网站的序号w 1 ,w 2 ,...,w x′ ,...,w X′ ,转5.4.3.3.6;5.4.3.3.6计算开放世界设置下的精度;从采集参数配置模块接收精度门限值,若精度大于预置的门限值,则识别完成,得到了各测试流序列文件的所属网站,得到对应的网站序号w 1 ,w 2 ,...,w x′ ,...,w X′ ,转第六步;否则,设置参数r为r 1 +1,转5.4.3.3.2;5.4.3.4,KNN决策模块对以优化召回率为目标的开放世界场景下的测试流序列文件进行识别,方法是:5.4.3.4.1设置参数r为1,同时设置当前处理流序列文件序号为x′=1;5.4.3.4.2将相似度计算模块发送的测试流序列文件q x′ 与所有X1+X2个训练流序列文件的距离dis(q x′v ,d 1v ),...,dis(q x′v ,d xv ),...,dis(q x′v ,d X1v ),...,dis(q x′v ,d X1+X2v )存储在字典dic_sim中;5.4.3.4.3从dic_sim中选择最小距离,找到对应的训练流序列文件d s ,并将测试流序列文件q x′ 划分到训练流序列文件d s 所对应的网站;假设该网站序号为w x′ ,则w x′ 的计算方法是:当s在[1,X1]时, 当s在(X1,X1+X2]时, 其中,n表示每个网站的训练流序列文件数量;5.4.3.4.4递增当前处理测试流序列文件序号x′=x′+1,若x′≤X′,转5.4.3.4.2,若x′>X′,则完成对所有测试流序列文件所属网站的识别,得到了各测试流序列文件的所属网站的序号w 1 ,w 2 ,...,w x′ ,...,w X′ ,转第六步;第六步,结束。
2.如权利要求1所述的一种基于主题概率模型的网站指纹识别方法,其特征在于第二步所述准备PWFP主题概率模型的训练数据的方法是:2.1准备公开数据集,使用SSH55、SSH100和Alexa74三个数据集,SSH55、SSH100是在集成SSH隐私增强技术的网络中采集得到的,分别采集了55个和100个网站,每个网站均含有20个流特征文件;Alexa74是在集成Shadowsocks隐私增强技术的网络中采集得到的,采集了74个网站,每个网站有25个流序列文件;公开数据集包括三种类型:第一种数据集以pcap源文件形式存在;第二种数据集以流特征文件形式存在;第三种数据集以流序列文件形式存在;2.2通用流量数据采集模块采集HTTPS100、AleSS73、AleSS287和Opw6879四个数据集;HTTPS100数据集是在集成TLS隐私增强技术的网络中采集得到的,共采集了100个网站,每个网站处理出40个流序列文件;其他三个数据集是在集成Shadowsocks隐私增强技术的网络中采集得到,其中,AleSS73数据集共采集了73个网站,每个网站分离处理出100个流数据文件;AleSS287数据集共采集了287个网站,每个网站分离处理出20个流数据文件;Opw6879数据集采集了6879个网站,每个网站分离处理出1个流数据文件。
3.如权利要求2所述的一种基于主题概率模型的网站指纹识别方法,其特征在于2.2步所述通用流量数据采集模块采集HTTPS100、AleSS73、AleSS287和Opw6879四个数据集的方法是:2.2.1初始化配置文件,方法是:2.2.1.1将“敏感网址”初始化为一系列识别者关注的网址;网址使用全称,即以“https://”开头;2.2.1.2将“可访问网址”初始化为一系列模拟用户可以访问的网址,不包含敏感网址;2.2.1.3将“训练样本数量”初始化为每个网站中用以训练的流序列文件数量n,n一般初始化为20;2.2.1.4将“测试样本数量”初始化为每个网站中用以预测的测试流序列文件数量;一般初始化值为20;2.2.1.5将“训练测试比例”初始化为(0,1]之间的任意实数;2.2.1.6将“用户行为模式”初始化为1,表明用户同一时刻只访问1个网站;2.2.1.7将“访问间隔”初始化为用户访问两个网站的时间间隔;2.2.1.8将“网站指纹识别场景”初始化为0和1,0表示封闭世界场景,1表示开放世界场景;2.2.1.9将“优化类型”初始化为0和1,0表示优化精度,1表示召回率;2.2.1.10将“精度门限值”初始化为(0,1)范围的任一数值;2.2.1.11将“是否开启浏览器缓存”初始化为0和1,0表示关闭,1表示开启;2.2.1.12将“是否开启浏览历史记忆”配置为0和1,0表示关闭,1表示开启;2.2.1.13将“存储路径”配置为一个全路径字符串;2.2.2采集参数配置模块从配置文件读取配置参数,将配置参数发送给流量数据采集模块、用户行为模拟模块、流量数据预处理模块和KNN决策模块;2.2.3部署网络环境和软件环境:首先,在云服务器上架设任务所要求的隐私增强技术环境,对于TLS场景,通过限制网址以“https://”开头进行约束,不符合该要求的网址全部去除;对于Shadowsocks场景,通过使用Clash软件在云服务器上模拟实验场景;然后,在云服务器上将最大传输单元更改为标准以太网MTU,并关闭网卡Offload特性;读取是否开启浏览器缓存和是否关闭浏览历史记忆配置参数并进行设置;2.2.4用户行为模拟模块接收采集参数配置模块的配置参数,根据配置参数中的用户行为模式、访问间隔、访问时长、训练样本数量参数,模拟用户浏览网络行为;当用户行为模拟开始,用户行为模拟模块向流量数据采集模块发送“启动采集”指令;2.2.5流量数据采集模块接收用户行为模拟模块发送的“启动采集”指令后,读取采集参数配置模块发送的配置参数,启动tcpdump工具采集网络加密流量,并存储为pcap源文件,保存在存储路径参数指示的位置;同时,流量数据采集模块记录下用户每一次网络访问的起始时间和结束时间,并逐行存储为时间戳文件,保存在存储路径参数指示的位置;2.2.6流量数据采集模块将采集得到的pcap源文件和时间戳文件发送给流量数据预处理模块。
4.如权利要求3所述的一种基于主题概率模型的网站指纹识别方法,其特征在于2.2.1步所述初始化配置文件的方法:2.2.1.1将“敏感网址”初始化为一系列识别者关注的网址;2.2.1.2将“可访问网址”初始化为一系列模拟用户可以访问的网址,不包含敏感网址;2.2.1.3将“训练样本数量”初始化为每个网站中用以训练的流序列文件数量n,n为正整数;2.2.1.4将“测试样本数量”初始化为每个网站中用以预测的测试流序列文件数量;2.2.1.5将“训练测试比例”初始化为(0,1]之间的任意实数;2.2.1.6将“用户行为模式”初始化为1,表明用户同一时刻只访问1个网站;2.2.1.7将“访问间隔”初始化为用户访问两个网站的时间间隔;2.2.1.8将“网站指纹识别场景”初始化为0和1,0表示封闭世界场景,1表示开放世界场景;2.2.1.9将“优化类型”初始化为0和1,0表示优化精度,1表示召回率;2.2.1.10将“精度门限值”初始化为(0,1)范围的任一数值;2.2.1.11将“是否开启浏览器缓存”初始化为0和1,0表示关闭,1表示开启;2.2.1.12将“是否开启浏览历史记忆”配置为0和1,0表示关闭,1表示开启;2.2.1.13将“存储路径”配置为一个全路径字符串。
5.如权利要求4所述的一种基于主题概率模型的网站指纹识别方法,其特征在于所述网址使用全称,即以https://开头;所述训练样本数量初始化为20;所述测试样本数量初始化为20;所述访问间隔初始化为60秒。
6.如权利要求1所述的一种基于主题概率模型的网站指纹识别方法,其特征在于3.1.1步所述将pcap源文件中的流量数据按照网站进行分离,得到流数据文件的方法是:3.1.1.1读取时间戳文件T的总行数H,令行变量h=1;3.1.1.2读取时间戳文件T的第h行起止时间<t1,t2>,并创建<t1,t2>时间段对应的流数据文件;流数据文件以“网站序号-样本序号”的形式命名,后缀为“.dat”;其中,t1表示当前网站访问流量文件的起始时间,t2表示结束时间;3.1.1.3令流数据文件帧序号变量i=1;3.1.1.4读取流数据文件的第i帧,解析流数据文件第i帧每个字段,读取第i帧中的包时间戳信息t,判断t是否位于<t1,t2>范围内;若是,则将第i帧数据存放在<t1,t2>对应的流数据文件,转3.1.1.5;若不是,则直接转3.1.1.5;3.1.1.5判定流数据文件是否读取完毕;若是,转3.1.1.6,若不是,令i=i+1,转3.1.1.4;3.1.1.6若h≤H,转3.1.1.2,否则,说明时间戳文件T读取完毕,并将pcap源文件中的流量数据按照网站进行了分离,得到了流数据文件。
7.如权利要求1所述的一种基于主题概率模型的网站指纹识别方法,其特征在于3.2步所述一阶特征提取模块采用一阶特征提取方法从X个训练流数据文件提取一阶特征,得到X个训练流特征文件的方法是:3.2.1把训练流数据文件按序存放,设置当前流数据文件处理序号x=1;3.2.2读取序号为x的训练流数据文件,依次解析文件的每一帧,从中提取出包时间戳、包方向和包长度,将包方向按上行包表示正、下行包表示负的原则与包长度组合成带方向包长,并按照<时间戳,带方向包长>的元组形式逐行保存在第x个训练流特征文件中;带方向包长特征的数值范围是在-1500到1500之间;训练流特征文件名设置为与训练流数据文件相同,但后缀定义为“.feature”;3.2.3令x=x+1,若x≤X,转3.2.2,若x>X,得到了X个训练流特征文件。
8.如权利要求1所述的一种基于主题概率模型的网站指纹识别方法,其特征在于3.3步所述特征符号化模块采用符号化方法对X个训练流特征文件进行特征符号化,得到X个特征流序列文件的方法是:3.3.1根据符号化方法原理构建特征符号映射表;特征符号映射表用以实现特征与符号之间的变换;符号化方法采用两个字符代表一个符号,且用以表示一个特征值;同时,符号化方法规定10个连续特征数值使用同一个符号表示,且使用的字符属于字符集合{A,C,D,E,F,G,H,I,K,L,M,N,P,Q,R,S,T,V,W,Y}内;具体映射方法是:带方向包长特征数值在[-1500,-1491]范围内则映射成符号AA,带方向包长特征数值在[-1490,-1481]范围内则映射成符号AC;后续的映射按照统一规律进行,即约定10个依次递减的特征数值为一组,符号则依次按照字符集合顺序先递增低位直到字符Y,再递增高位的方法变化并与上述各特征数值组逐一对应;3.3.2把X个训练流特征文件按序存放;令变量x=1,此时x表示当前训练流特征文件序号;3.3.3从序号为x的训练流特征文件中读取提取数据包的一阶特征,即带方向包长;对于每个一阶特征,特征符号化模块查询3.3.1创建的特征符号映射表,将带方向包长特征转换为对应的符号;同时,新建一个训练流序列文件存储转换得到的符号;训练流序列文件名与训练流特征文件的名称相同,但后缀定义为“.symbol”;3.3.4令x=x+1,若x≤X,转3.3.3,若x>X,说明所有的训练流特征文件全部转换成了训练流序列文件。
9.如权利要求1所述的一种基于主题概率模型的网站指纹识别方法,其特征在于3.4步所述分词模块采用分词方法对其进行分词处理,得到X个训练流序列文件的词汇列表,将词汇列表中所有的词汇汇总去重后构成训练词库列表C的方法是:3.4.1将从特征符号化模块或流量分离模块接收的训练流序列文件按序存放;读取训练流序列文件的数量X,设置当前训练流序列文件处理序号x=1;3.4.2选择序号为x的训练流序列文件,读出文件中全部的字符串;按照2个字符即1个符号为一个词汇的原则将字符串进行切割,将得到的每个词汇存储在第x个词汇列表b x 中;3.4.3令x=x+1;若x≤X,转到3.4.2;若x>X,则所有训练流序列文件处理完毕,得到了b 1 ,...,b x ,...,b X ,转3.4.4;3.4.4取出b 1 ,...,b x ,...,b X 中的词汇,汇总并去除重复的词汇后输出至训练词库列表C中。
10.如权利要求1所述的一种基于主题概率模型的网站指纹识别方法,其特征在于3.5步所述TF-IDF向量化模块将词汇列表b 1 ,...,b x ,...,b X 通过TF-IDF方法分别转换成一个向量,得到X个TF-IDF向量的方法是:3.5.1把分词模块发来的X个词汇列表按序存放,设置当前词汇列表处理序号为x=1;3.5.2对于序号为x的词汇列表b x ,按照在训练词库列表C出现的次序依次统计词汇w 1 ,...,w j ,...w M 在b x 中的次数,即词汇列表b x 与词汇w 1 ,...,w j ,...w M 的共现次数,记为n(b x ,w 1 ),...n(b x ,w j ),...n(b x ,w M );其中,M表示训练词库列表C中词汇的数量;方法是:3.5.2.1令词汇变量j=1,从训练词库列表C中取出词汇w j ;3.5.2.2计算词汇w j 在词汇列表b x 中出现的次数n(b x ,w j );3.5.2.3递增词汇变量j=j+1,若j≤M,转3.5.2.2,若j>M,表明得到了n(b x ,w 1 ),...n(b x ,w j ),...n(b x ,w M ),转3.5.3;3.5.3令当前词汇变量j=1;3.5.4按照公式 计算词汇w j 在词汇列表b x 中的归一化频率tf;其中,{n(b x ,w j )|j=1,2,...,M}表示集合{n(b x ,w 1 ),n(b x ,w 2 ),...,n(b x ,w j ),...,n(b x ,w M )};按照公式 计算词汇w j 在b x 中的倒排频率idf;其中,m(w j )表示包含词汇w j 的词汇列表的数量;然后,按照公式tf_idf=tf×idf计算词汇w j 的TF-IDF值tf_idf;3.5.5递增当前词汇变量j=j+1,若j≤M,转3.5.4,若j>M,则说明已得到所有词汇的TF-IDF值,将M个词汇的TF-IDF值组合起来,形成一个M维向量,该向量即为词汇列表b x 的TF-IDF向量化结果,转3.5.6;3.5.6令x=x+1,若x≤X,转3.5.2;若x>X,则说明处理完了所有词汇列表,得到X个TF-IDF向量。
11.如权利要求1所述的一种基于主题概率模型的网站指纹识别方法,其特征在于4.1步所述PWFP主题概率模型训练模块利用EM算法对PWFP主题概率模型训练参数p(d|z)、p(z)和p(w|z)进行估计的具体方法是:4.1.1设置主题数量K,K的取值与数据集有关,若数据集为AleSS287,令K=400,否则令K=150;4.1.2随机初始化PWFP主题概率模型训练参数p(d|z)、p(z)、p(w|z)和后验概率分布p(z|d,w),方法是:4.1.2.1令训练流序列文件变量x=1;4.1.2.2令主题变量k=1;4.1.2.3令词汇变量j=1;4.1.2.4随机初始化PWFP主题概率模型训练参数和后验概率分布,即训练流序列文件主题概率分布p(d x |z k )、主题概率分布p(z k )、词汇主题分布p(w j |z k )和后验概率分布p(z k |d x ,w j );4.1.2.5递增词汇变量j=j+1;若j≤M,转4.1.2.4;若j>M,转4.1.2.6;4.1.2.6递增隐含主题变量k=k+1;若k≤K,转4.1.2.3;若k>K,转4.1.2.7;4.1.2.7递增训练流序列文件变量x=x+1;若x≤X,转4.1.2.2;若x>X,转4.1.3;4.1.3根据实验情况和历史PLSI的研究成果,设置总的迭代次数为L=50;设置当前迭代轮次l=1;4.1.4令训练流序列文件变量x=1;4.1.5令主题变量k=1;4.1.6令词汇变量j=1;4.1.7执行M-step参数更新:根据公式 更新p(w j |z k )参数;根据公式 更新参数p(d x |z k );根据公式 更新参数p(z k );其中,n(d x ,w j )表示训练流序列文件d x 与词汇w j 的共现次数;若l=L,将p(w j |z k )、p(d x |z k )和p(z k )发送给高阶特征计算模块,将p(w j |z k )和p(z k )发送给PWFP主题概率模型预测模块,从而对PWFP主题概率模型预测模块的模型进行了更新,得到了训练后的网站指纹识别系统,转4.1.8;若l≠L,直接转4.1.8;4.1.8执行E-step参数更新;根据公式 利用上一次M-step更新的训练流序列文件主题概率参数p(d x |z k )、词汇主题概率参数p(w j |z k )和主题概率参数p(z k )来更新后验概率分布p(z k |d x ,w j );4.1.9递增词汇变量j=j+1;若j≤M,转4.1.7;若j>M,转4.1.10;4.1.10递增隐含主题变量k=k+1;若k≤K,转4.1.6;若k>K,转4.1.11;4.1.11递增训练流序列文件变量x=x+1;若x≤X,转4.1.5;若x>X,转4.1.12;4.1.12递增轮数l=l+1,若l≤L,转4.1.4;若l>L,结束。
12.如权利要求1所述的一种基于主题概率模型的网站指纹识别方法,其特征在于4.2步所述高阶特征计算模块计算训练流序列文件的高阶特征向量的方法是:4.2.1设置当前处理训练流序列文件序号x=1;4.2.2设置当前处理的主题变量k=1;4.2.3利用PWFP主题概率模型训练模块发送的参数p(d x |z k )、p(z k )和p(w j |z k ),计算 4.2.4递增当前处理的主题变量k=k+1,若k≤K,转4.2.3,若k>K,表明得到训练流序列文件d x 的高阶特征向量d xv =(p(z 1 |d x ),p(z 2 |d x ),...,p(z k |d x ),...,p(z K |d x ));转4.2.5;4.2.5令x=x+1,若x≤X,转4.2.2,若x>X,则得到所有训练流序列文件的高阶特征向量,即d 1v ,...,d xv ,...,d Xv 。
13.如权利要求1所述的一种基于主题概率模型的网站指纹识别方法,其特征在于5.3步所述PWFP主题概率模型预测模块利用EM算法对测试流序列文件主题概率参数p(q|z)参数进行估计的方法是:5.3.1设置主题数量K,K设置为PWFP主题概率模型训练时的主题数量;5.3.2随机初始化后验概率分布p(z|q,w)和测试流序列文件主题概率参数p(q|z),方法是:5.3.2.1令测试流序列文件变量x′=1;5.3.2.2令主题变量k=1;5.3.2.3令词汇变量j=1;5.3.2.4随机初始化后验概率分布p(z k |q x′ ,w j )和测试流序列文件主题概率参数p(q x′ |z k );5.3.2.5递增词汇变量j=j+1;若j≤M,转5.3.2.4;若j>M,转5.3.2.6;5.3.2.6递增隐含主题变量k=k+1;若k≤K,转5.3.2.3;若k>K,转5.3.2.7;5.3.2.7递增测试流序列文件变量x′=x′+1;若x′≤X′,转5.3.2.2;若x′>X′,转5.3.3;5.3.3设置总的迭代次数为L=50;设置当前迭代轮次l=1;5.3.4令测试流序列文件变量x′=1;5.3.5令主题变量k=1;5.3.6令词汇变量j=1;5.3.7执行M-step参数更新:计算 即利用后验概率分布p(z k |q x′ ,w j )来更新测试流序列文件主题概率参数p(q x′ |z k );其中,n(q x′ ,w j )表示测试流序列文件q x′ 与词汇w j 的共现次数;若l=L,将估计的参数p(q x′ |z k )发送到高阶特征计算模块,转5.3.8;若l≠L,直接转5.3.8;5.3.8执行E-step参数更新;计算 即利用测试流序列文件主题概率参数p(q x′ |z k )更新后验概率分布p(z k |q x′ ,w j );5.3.9递增词汇变量j=j+1;若j≤M,转5.3.7;若j>M,转5.3.10;5.3.10递增隐含主题变量k=k+1;若k≤K,转5.3.6;若k>K,转5.3.11;5.3.11递增测试流序列文件变量x′=x′+1;若x′≤X′,转5.3.5;若x′>X′,转5.3.12;5.3.12递增迭代轮次l=l+1;若l≤L,则转5.3.4,若l>L,则完成参数估计。
14.如权利要求1所述的一种基于主题概率模型的网站指纹识别方法,其特征在于5.4.2步所述相似度计算模块计算测试流序列文件与训练流序列文件两两之间的距离的方法是:5.4.2.1设置当前处理测试流序列文件序号x′=1;5.4.2.2设置当前处理训练流序列文件序号x=1;5.4.2.3使用加权欧几里德的距离公式度量测试流序列文件q x′ 和训练流序列文件d x 之间的距离;计算公式为:dis(q x′v ,d xv )=weight×(q x′v_k -d xv_k ) 2 ),其中,q x′v 表示测试流序列文件q x′ 的高阶特征向量,d xv 表示训练流序列文件d x 的高阶特征向量,q x′v_k 表示q x′v 的第k维特征值,d xv_k 表示d xv 的第k维特征值,weight为q x′v 和d xv 两个高阶特征向量同时不为0的维数数量;5.4.2.4递增当前训练流序列文件序号x=x+1,若x≤X,转5.4.2.3;若x>X,转5.4.2.5;5.4.2.5递增当前测试流序列文件序号x′=x′+1,若x′≤X′,转5.4.2.2;若x′>X′,则完成了所有的距离计算,得到了测试流序列文件和训练流序列文件两两之间的距离。
15.如权利要求1所述的一种基于主题概率模型的网站指纹识别方法,其特征在于所述流特征文件以二元组形式存储特征,二元组格式为<包时间戳,带方向包长>。



