APP下载

基于网络报文流量的协议密文分析方法

2020-11-14张玉涛朱玉娜

网络安全技术与应用 2020年11期
关键词:哈希密文报文

◆张玉涛 朱玉娜

加解密技术

基于网络报文流量的协议密文分析方法

◆张玉涛1朱玉娜2

(1.解放军91286部队 山东 266003;2.解放军91033部队 山东 266035)

应用层各种载荷特征对密码协议安全性进行分析至关重要。现有方法仅考虑报文载荷中的明文信息,无法有效利用密文数据信息特征。本文基于密文长度特征和报文载荷内容相关特征对协议密文所使用的加密体制进行分析识别,为密文数据信息的有效利用提供了新的解决思路。

密码协议;网络报文流量;协议分析;密文分析

1 引言

随着密码技术的广泛应用,密码协议被大量应用在互联网各种核心、关键应用中,与密码协议相关的各种数据在网络流量中比重日益增加,对密码协议的流量分析已成为当前网络安全技术中的研究关键技术之一。密码协议运行过程中,频繁使用数据加密、数字签名、公钥证书、校验和验证等各种密码技术对关键信息进行加密和保护,可用明文信息较少,仅依靠有限的明文信息难以满足安全应用的需求,因此必须充分发掘和利用协议报文中包含的密文数据特征。

目前,网络协议分析技术主要包括两种思路:基于网络报文流量信息的分析方法和基于目标主机程序执行轨迹的分析方法。基于网络报文流量信息的分析方法主要通过捕获网络通信流量数据,基于流量端口、载荷中的明文数据、数据包的统计特征等实施分析。如图1所示,基于著名的网络协议分析工具Wireshark对SSL协议encrypted handshake message消息进行解析,Wireshark仅能够识别出该消息内容为密文,但对加密消息任何其余特征无法进行进一步分析和利用。借助特定二进制分析平台,基于目标主机上协议相关的应用程序运行状态特征是网络协议分析的另一种思路。该类方法[1-2]虽然可以处理加密报文,但是需要在目标主机上获取执行协议的应用程序信息,并部署特定监测工具,进而才能实现对特定程序运行过程信息的获取。因此,该类方法技术实现复杂,应用局限性较大,无法真正满足网络环境中对数据报文监测需求。

图1(a)wireshark采集SSL协议encrypted handshake message报文

图1(b) wireshark解析的协议格式

针对上述问题,基于前期对协议密文域识别的研究[3-4],本文对采用不同加密体制加密的密文进行分析,依靠网络数据流量信息进一步识别协议密文特征。

2 定义及相关说明

为了叙述方便,本部分对文中涉及的相关概念进行定义并说明。

(1)密码协议协商阶段与传输阶段

密码协议主要目标为实现通信主体的身份认证、为后续的通信过程分配保密的会话密钥本文将协议实现身份认证、密钥分配的过程称为协议协商阶段,后续通信过程称为协议协商阶段。本文主要关注密码协议协商阶段。

从表2内风路温差异常情况来看,电机内风路的热量没有通过冷却器带走。分析存在有两种可能:一是翅片表面油污等垃圾集结严重,影响热交换;二是换热面积不够,造成热量带不出,仅带出5 K左右的热量。

(2)本协议与二进制协议

协议根据其数据的传输形式可分为文本协议和二进制协议。文本协议传输的数据通常是可以打印的ASCⅡ字符;二进制协议传输的数据是原始的字节流,而不是可读文本。

(3)已知规范协议与未知规范协议

本文将语法、语义、交互步骤已知的协议称为已知规范协议。目前网络中存在很多私有协议,协议细节未公开,语法、语义、交互步骤缺少公开的描述文档,本文将这类协议称为未知规范协议。

(4)加密体制分类

按照加密密钥和解密密钥的相关性特点,加密体制通常可分为对称加密体制和非对称加密体制。按照加密后的信息能否被还原,加密体制可分为可逆加密体制和不可逆加密体制。

为便于描述,本文将哈希也作为一类加密体制,哈希函数得到的散列值也称为密文,将加密体制分为对称加密体制、非对称加密体制、哈希体制三类,其中对称加密体制又分为序列密码加密体制和分组密码加密体制。这三类体制都可以应用于数据加密、身份认证和数据安全传输。

3 协议密文特征分析

对大量不同类型密码算法加密的密文进行统计分析,结果表明密文长度特征和报文载荷内容相关特征是区分不同加密体制的重要要素。

3.1 密文长度特征

(1)由于经哈希函数处理后的密文散列值长度为确定固定值,基于该特征可以判定密文是否为哈希值,具体存在两种情况:

①实现协议的网络应用软件大部分都明确指定协议所采用的密码算法,在该种情况下,协议中通过哈希得到的密文报文长度应当始终为固定值。例如,MD5为128bit,SHA为160bit,SHA2/SHA256为256bit。在捕获到某协议大量同一位置消息的密文报文后,由于协议交互规范是确定的,因此同一协议相同位置消息密文始终遵循协议规范并采用同一类型加密体制。因此,如果密文长度始终为确定值(例如,始终为128bit),则该加密体制类型可判定为哈希体制。

②很多典型密码协议在执行过程中需协商所使用的密码算法,例如SSL协议、SSH协议,该种情况下,由于协议规范是确定的,因此协议消息密文采用何种加密体制加密是确定的。同一协议相同位置消息密文一定采用同一类型加密体制。具体的一次协议会话则通过协商确定采用的具体密码算法类型(例如MD5、SHA)。目前常用的哈希函数对应的散列值长度取值集合为{128bit、160bit、256bit}。如果协议中采用某一类加密体制加密后密文长度取值始终属于{128bit、160bit、256bit}集合,则该密文采用的加密体制在很大概率上可判定为哈希体制。

(2)对称加密体制包含分组密码和序列密码两种方式。协议分组密码通常采用CBC加密模式,该加密模式不容易主动攻击,安全性好,适合传输长度长的报文,是SSL、IPSEC等重要协议的标准模式。在CBC加密模式下,密文长度一定是块(block)大小的倍数。当前,分组密码块大小大都为64bit(AES例外,为128bit),因此分组密码密文长度应当为64bit的倍数。分组密码ECB模式同样为64bit的倍数,CFB模式和OFB模式下分组密码密文则为8bit的倍数,可能不为64bit整除。而序列密码则是以一个元素(一个字节或一个比特)作为基本的处理单元,以字节为处理单元的序列密码密文长度(如RC4)为8bit的倍数,以比特为处理单元的序列密码密文则可能不为8bit整除。非对称加密密文和Hash密文也为8bit的倍数。因此如果密文不为8bit的倍数,则可认定为序列密码方式,密文为对称加密体制类型密文。

(3)在协议协商阶段,由于协议具有特定的规范,协议相同位置消息报文长度分布在一定取值范围内。对称加密密文长度和明文相关,受协议规范限制密文长度不可能太长。而对公钥加密而言,即使对较短数据进行加密,得到的密文长度相对较长。如常用的RSA公钥加密和RSA数字签名机制,为保证信息传输的安全性,密钥长度一般不小于1024bit。SET协议中要求CA采用2048bit长的RSA密钥,其他实体采用1024bit长的密钥。google于2013年8月1日起开始采用2048bitRSA密钥加密和验证服务。而RSA密文长度与密钥长度相同,因此即使对短数据进行加密,密文长度也较长。在协议数据传输阶段,当传输数据小于等于最大传输单元MTU时,数据报文长度为传输数据长度,长度变化较大;当传输数据大于MTU时,在IP层根据MTU对数据进行分片,经统计,协议传输阶段报文大部分为固定值,小部分长度变化较大。由此依据长度变化范围可以判断该数据报文是处于协议协商阶段或传输阶段,随后,在对协议协商阶段密文进行分析时,如果密文长度较长(大于等于1024bit),则密文很大概率上采用了非对称加密体制;而在密文长度不长时,则无法仅依靠长度特征区分对称加密体制和非对称加密体制。

3.2 报文有效载荷相关特征

协议在协商自己所采用的密码套件时,一般采用明文形式,如SSL协议、SSH协议等。因此,可以通过检测报文内容确定密文所采用的加密体制类型。

(1)对已知规范协议而言,通过协议规范及报文中的密码套件信息可以确定密文所使用的加密体制。例如,

其中“00 05”为SSL协议Server Hello报文的密码套件信息,由SSL规范可知协议采用的密码套件信息为TLS_RSA_WITH_RC4_128_SHA(0x0005),即协议采用的密码算法为RSA密码算法、RC4密码算法、SHA算法。由上分析可知,RSA密文长度通常为1024bit或者2048bit;RC4密文属于序列密码密文,密文长度为8bit的倍数,不一定为64bit倍数;SHA散列值长度为160bit。对密文进行解析时,结合密文长度即可确定密文采用的加密体制类型。例如,对图1的密文消息而言,密文长度为36byte=288bit,不是RSA密文和SHA散列值,因此可判定为对称加密密文。更进一步,SSL要求使用分组密码加密时采用CBC模式,CBC模式下密文为64bit的倍数,而288bit不为64bit整除,因此该密文可进一步识别为序列密码算法——RC4对称加密算法,为对称加密体制密文。

(2)对未知规范协议而言,文本协议为可打印字符,可以得到协议所采用的密码算法,例如:假定SSH规范未知,由于SSH属于文本协议,从SSH的Client:key exchange init消息中(如图2所示)可以看出,客户端采用了DH算法、对称加密算法(AES/3DES)、哈希算法(MD5/SHA1)。结合密文长度特征可进一步确定密文采用的加密体制类型。当未知规范协议为二进制协议时,则无法挖掘其中的密码套件信息。

图2 wireshark采集的SSH协议:Client:key exchange init报文

由上可知,对采集的同一协议大量报文中的密文长度进行分析,可以识别哈希和部分密文的加密体制类型。当报文载荷包含密码套件信息时,也可以进一步确定密文采用的加密体制。但是如果从协议报文载荷无法检测任何密码算法相关信息,对单个密文则无法识别加密体制类型。

4 协议密文识别

该方法流程如图3所示,描述如下。

图3 协议密文识别

Step 1:如果协议报文的明文载荷提供了密码算法信息,则结合该算法密文长度进一步确定该密文对应的加密体制类型。否则,结合密文长度信息进一步进行判定。

Step 2:如果密文长度属于{128bit、160bit、256bit},确定是否为哈希函数。由于大部分协议的实现程序已经明确协议所使用的密码算法,因此哈希值长度确定。如果密文始终为128bit(或者始终为160bit、始终为256bit),则密文很大概率上采用了哈希体制;如果协议在协商过程中确定密码算法,同样根据一段时间内协议报文长度确定哈希体制,如果报文长度始终属于{128bit、160bit、256bit},则报文在很大概率上采用了哈希体制。

Step 3:如果密文长度不属于{128bit、160bit、256bit},进一步进行判定。本文主要关注协议协商阶段,根据数据包长度变化可以确定协议协商阶段和传输阶段。如果该协议密文载荷信息属于协商阶段报文,且长度较长时(大于1024bit),则能够以更高的识别率确定该密文采用了非对称加密体制。

Step 4:如果密文长度不为8bit的倍数,则密文很大概率采用序列密码,判定密文为对称加密密文。

Step 5:其他情况,密文加密体制无法判断。

5 结束语

本文对大量不同类型密码算法加密的密文进行统计分析,基于密文长度信息和协议载荷内容相关信息识别哈希函数和部分加密算法,为密文数据信息的有效利用提供了新的解决思路。

[1]WANG Zhi,JIANG Xu-xian,CUI Wei-dong,et al. ReFormat:automatic reverse engineering of encrypted messages[C]// Proc of European Symposium on Research in Computer Security.2009:200-215.

[2]CABALLERO J,Song D.Automatic protocol reverse-engineering: message format extraction and field semantics inference[C]. Computer Network,vol.57(2),page(s):451-474,Februrary 2013.

[3]朱玉娜,韩继红,袁霖,等. SPFPA:一种面向未知安全协议的格式解析方法[J]. 计算机研究与发展,2015,52(10):2200-2211.

[4]朱玉娜,韩继红,袁霖,等.基于熵估计的安全协议密文域识别方法[J].电子与信息学报,2016,38(8):1865-1871.

猜你喜欢

哈希密文报文
基于J1939 协议多包报文的时序研究及应用
一种支持动态更新的可排名密文搜索方案
基于特征选择的局部敏感哈希位选择算法
基于模糊数学的通信网络密文信息差错恢复
哈希值处理 功能全面更易用
低轨星座短报文通信中的扩频信号二维快捕优化与实现
支持多跳的多策略属性基全同态短密文加密方案
文件哈希值处理一条龙
密钥共享下跨用户密文数据去重挖掘方法*
浅析反驳类报文要点