具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细说明。以下实施例用于说明本发明,但不用来限制本发明的范围。
本发明的方法及装置结合附图及实施例详细说明如下。
如图1所示,本发明实施例提出了一种加密数据检测方法,其包括以下步骤:
S110判断输入的数据的协议是否为已知协议;
S120对所述输入的数据中判断为未知协议的数据进行多种随机性测试,得到所述未知协议的数据分别与所述多种随机性测试对应的多个随机性特征;
S130通过一密数据模型对所述未知协议的数据的至少部分随机性特征进行匹配,确定所述未知协议的数据是否是加密数据及加密数据的加密类型。
本申请实施例通过基于数据随机性的密数据检测方法,实现明、密数据的判别,并进一步实现数据加密类型的识别,进而可以达到有效监控加密代理系统的目的。此外,采用上述检测方法的检测系统不仅具有优良的检测性能,并且检测时间短,反应速度快,能够实现在线检测。
下面对本申请实施例方法的各步骤进行进一步的说明:
S110判断输入的数据的协议是否为已知协议。
在本实施例中,把密数据初步划分为已知协议密数据和未知协议密数据两种类型。在本申请实施例中,所述协议通常是指IP应用层的协议,也就是用来承载加密报文的协议。这样的协议有的支持加密,有的不支持;例如:如果某协议基本都是加密的,则对应的数据可以直接判为密数据,不需要随机性检测了;而对于一些不常用的协议数据,在数据流中非常难以发现,因此需要对其进行随机性检验。其中,对于公开协议,因特网指定机构IANA对使用密码协议的IP协议号和TCP/UDP端口号资源作了分配和使用规定,在本实施例的步骤S110中,可以通过这两个字段识别这些协议为已知的协议。此外,由于加密代理软件有可能修改协议字段或使用非默认端口,因此,除了协议号和端口号外,本实施例的步骤S110还可以采用其它相关协议字段来识别已知协议密数据,即在一个优选的实施方式中对于已知协议的数据,按IP协议号、TCP/UDP端口号和相关协议字段通过匹配规则来检测。
在一些可能的实施方式中,如图2a所示,对于已知协议的加密数据,也可通过步骤S120和步骤S130对数据进行随机性测试并通过密数据模型进行进一步判别以确定其类型。其具体方法参见下面对未知协议的加密数据的处理方法的描述。
通过步骤S110,使得输入的数据中已知协议的数据可以被识别出,但是仅仅依靠已知协议的筛选识别,还不能识别出所有的加密数据。这是因为有大量自定义的密码协议,并且加密代理软件会经常更新协议来实现反侦查。通常,经过加密的数据通常是随机的,未加密的数据是非随机的。进一步地可以认为,非随机数据肯定没有经过加密处理,而随机数据则在一定程度上是加密的。因此,本申请实施例方法中步骤S120通过分析各种现有随机性检测算法的性能,作为判别数据是否加密的依据。
S120对所述输入的数据中判断为未知协议的数据进行多种随机性测试,得到所述未知协议的数据分别与所述多种随机性测试对应的多个随机性特征。
如图2b所示,在本申请的一种可能的实施方式中,在对数据进行随机性测试之前,需要对输入数据包进行预处理,其中:对于已知协议的数据,所述预处理步骤包括:滤除掉其中不重要的信息,比如协议信息等,只留下进行NIST随机性测试的有效的数据部分;对于含有未知协议的数据,对所述数据的预处理除了上述的步骤以外,还包括:对数据进行划分,比如将不同长度的数据截取成若干段相等长度的数据,或者在模型训练时给数据打上标记,明文数据为一类标记,密文数据为一类标记,甚至可以为不同加密方式的密文数据打上不同的标记。
在本申请实施例中,对数据进行多种随机性测试,例如包括:游程检验、频数检验、块内最大游程检验、数据的离散傅立叶变换检验、重叠模块匹配检验和非重叠模块匹配检验等等。
在本实施方式中,对数据进行的随机性测试的结果作为所述数据对应的随机性特征,因此对数据进行多个随机性测试就会得到对应的多个随机性特征。在一些实施方式中,所述多个随机性特征构成的向量维数可能会较大,因此在之后使用这些多个随机性特征时可能会根据需要进行降维处理。例如,选择部分随机性特征用于后续的处理。此外,在一些可能的实施方式中,不同的随机性测试方法获得的不同的随机性特征在数量级上有差异,还有可能需要进行归一化,形成一个统一的向量。
在一种可能的实施方式中,所述多个随机性特征中的至少部分还可以用于初步判决数据是否是加密数据。对于初步判决为是明文的数据,可以不再通过之后的密数据模型进行判决,减少计算量,提高判断效率。当然,本领域的技术人员可以知道,为了提高数据的明密以及密数据类型的判决精度,可以不进行所述明密数据的初步判决,而是将待判决的数据数据全部送入密数据模型进行更为精准的判断。
在本实施例的一种可能的实施方式中,可以采用以下四种随机性测试的结果作为初步判决明密数据的依据:游程检验、频数检验、块内最大游程检验和重叠模块匹配检验。其中:
游程检验:检验待检测序列中的游程总数是否符合随机性要求;先观测序列的游程数,如果该序列中的游程数太少,则该序列存在成群趋向,即0或1总是成群出现;如果该序列的游程数过多,则该序列有混合趋向,即0和1总是交替出现;理论上,数据可以存在较长的游程,但是实际上对加密数据来说这种长游程概率很小,而对于没有经过加密或压缩过的数据,这种较长的游程还是经常存在的,这些构成了我们判别数据是否加密的依据。
频数测试:用于确定二进制序列中的“0”或“1”的数目是否如真随机序列那样近似相等,如果是,则该序列是随机的。
块内最大游程检验:将序列划分为N个等长的子块,根据各个子块中最大1游程的分布来评价待检测序列的随机性。
重叠模块匹配检验:检测序列中重叠模块中的出现的次数是否接近给定值。
当数据同时通过以上几种随机性检测,或者通过两种以上的随机性检测,则可初步判断哪些数据为加密数据,并将这些加密数据送入密数据模型进行进一步的类型判别。
本实施例中,对于初步判断为加密数据的数据,接下来将通过根据特定的分类器模型训练的密数据模型进行分类。
S130通过一密数据模型对所述未知协议的数据的至少部分随机性特征进行匹配,确定所述未知协议的数据是否是加密数据及加密数据的加密类型。
在步骤S130中,关键的问题的建立什么样的密数据模型和采用什么样的随机性特征。
目前主流的分类器模型中,依其算法大致可以分为三类,模板匹配:如动态时间规整(DTW)模型,矢量量化(VQ)模型,概率统计法隐马尔可夫模型(HMM),高斯混合模型(GMM),辨识分类器算法人工神经网络(ANN)模型,支撑向量机(SVM)模型,支持向量数据描述(SVDD)模型等。
在本申请实施例的一种可能的实施方式中,基于GMM和SVDD模型建立所述密数据模型。
GMM与SVDD模型有很强的互补性,体现在:第一,SVDD模型属于区分性模型,GMM属于概率统计模型,在分类思想上有互补性;第二,SVDD模型的计算时间受特征维数影响小,受样本个数影响大,GMM正好相反,两者在应用条件上有互补性。因此,本申请实施例融合了GMM和SVDD模型等分类器模型的性能建立本申请实施例的密数据模型,提升了密数据的识别精度。
所述数据的多个随机性特征并不一定全部用于进行明密数据以及加密数据加密类型的判断,本申请的发明人发现数据的离散傅立叶变换检验,游程检验和非重叠模块匹配检验的随机测试结果对网络中的各种加密传输协议的识别效果最好,因此,在本实施例中采用数据的离散傅立叶变换检验,游程检验和非重叠模块匹配检验的测试结果作为所数据的随机性特征,用于确定所述未知协议的数据是否是加密数据及加密数据的加密类型。
本申请实施例以GMM、SVDD模型为分类器模型训练得到密数据模型,模型训练完毕后,未知协议的数据经所述随机性特征提取后通过模型计算,即可识别未知协议的数据加密与否以及加密数据的加密类型。
如图3所示,在一种可能的实施方式中,所述密数据模型训练及密数据识别的过程如下:
首先通过需要的测试软件产生样本加密数据,并对所述样本加密数据进行加密类型(例如产生该样本加密数据的软件类型)的标记,进行预处理之后,对所述样本加密数据进行NIST随机性测试。本申请实施例中,所述随机性测试包括3种测试,分别是:离散傅里叶变换测试、游程测试和非重叠匹配测试。通过上述随机性测试产生随机性特征,其中包括1维离散傅立叶变换特征,1维游程特征,以及148维非重叠模块匹配特征,上述150维随机性特征用来表征该样本加密数据的加密特征。在这一部分还可以进行随机性特征的优化,因为150维特征有很大的冗余性,而且对于特定的加密数据,表征效果也不尽相同,因此还可以对150维特征进行优化,一方面降低特征维数,一方面提高模型训练和匹配的精度。
经过上面的步骤得到了上述随机性特征构成的特征组以及对应的标记。将这些作为训练数据,对分类器模型进行训练,获得一个Y=f(X)的函数f(),这就是密数据模型。其中,X就是数据的随机性特征对应的特征向量,Y就是数据对应的加密类型,一旦获得这个分类器,就可以测试新的样本了。
在本申请实施例中,用获取的随机性特征构成的特征向量以及对应的标记分别送入GMM、SVDD模型进行建模、训练。
除了上述的加密数据外,对于明文数据可以依靠同样的方法进行训练,用于之后通过该模型进行明文数据的判断。训练完毕后,得到不同的加密类型密数据对应不同分类器模型的参考模型。
此时,当待检测的未知协议的加密数据经过预处理和特征提取后,将提取的数据的随机性特征与参考模型进行匹配,即可根据特定的相似性准则来计算结果,最终判决密数据是明文还是密文,以及是哪种加密方式产生的密文。如图4所示,在本申请一种可能的实施方式中分别基于GMM以及SVDD模型训练了不同的识别分类器,在进行明密数据判决以及加密数据类型判决时采用相似似然准则计算:
FSCORE=ωSSCORE+(1-ω)GSCORE,0≤ω≤1,
其中,FSCORE是判决总得分,GSCORE是单独采用GMM时的似然得分,GSCORE是单独采用SVDD模型时的似然得分,ω是融合调节参数。通过ω调整两模型似然得分在总得分FSCORE中的比重,使得融合得到密数据模型的性能最优。将ω从0逐渐变大到1,当ω为1时,表示单独以SVDD分类器模型为识别分类器;而当ω等于0时,表示单独以GMM分类器模型为识别分类器。
在本实施例中采用以离散傅立叶变换检验,游程检验和非重叠模块匹配检验的测试结果作为密数据模型特征,GMM、SVDD分类器模型为识别分类器对加密数据的类型进行分类,本领域技术人员应该知晓,根据待识别的加密数据的加密类型不同,可以选择不同的随机性测试结果作为特征,也可以选择不同的分类密数据模型。
图5示出了本发明一种加密数据检测系统500的模块示意图,所述系统包括:
判断模块510,用于判断输入的数据的协议是否为已知协议;
特征提取模块520,用于对所述输入的数据中判断为未知协议的数据进行多种随机性测试,得到所述未知协议的数据分别与所述多种随机性测试对应的多个随机性特征;
判决模块530,用于通过一密数据模型对所述未知协议的数据的至少部分随机性特征进行匹配,确定所述未知协议的数据是否是加密数据及加密数据的加密类型。
如图6所示,在本申请实施例的一种可能的实施方式中,所述系统500还包括:
预处理模块540,用于所述判断模块530判断为是未知协议的数据进行预处理,然后再将其送入所述特征提取模块520进行所述随机性检测。所述数据的预处理参见上述方法实施例中的记载,这里不再赘述。
在一种可能的实施方式中,所述系统500还包括:
模型训练模块550,用于建立并通过已知加密类型的数据训练所述密数据模型。通过所述模型训练模块550建立并训练所述密数据模型的过程参见所述数据的预处理参见上述方法实施例中的记载,这里不再赘述。
本申请实施例通过基于数据随机性的密数据检测系统,实现明、密数据的判别,并进一步实现数据加密类型的识别,进而可以达到有效监控加密代理系统的目的。此外,采用上述检测方法的检测系统不仅具有优良的检测性能,并且检测时间短,反应速度快,能够实现在线检测。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。