发明内容
有鉴于此,本发明的目的是提供一种SSL协议中应用的自动识别方法和装置,能够简单方便的识别出SSL协议中的具体应用。
为实现上述目的,本发明提供技术方案如下:
一种SSL协议中应用的自动识别方法,应用于网络设备上,所述方法包括:
获取客户端与服务器之间的SSL交互信息;
从所述SSL交互信息中提取应用名称、应用特征和四元组信息,所述四元组信息包括源IP地址、目的IP地址、目的端口和传输层协议号;
获取客户端与服务器之间的后续SSL会话流,将所述SSL会话流与所述四元组信息进行匹配,若匹配成功,则识别后续SSL会话流为所述应用名称对应的应用。
一种SSL协议中应用的自动识别装置,应用于网络设备上,所述装置包括:
消息获取模块,用于获取客户端与服务器之间的SSL交互信息;
消息解析模块,用于从所述SSL交互信息中提取应用名称、应用特征和四元组信息,所述四元组信息包括源IP地址、目的IP地址、目的端口和传输层协议号;
消息匹配模块,用于获取客户端与服务器之间的后续SSL会话流,将所述SSL会话流与所述四元组信息进行匹配,若匹配成功,则识别后续SSL会话流为所述应用名称对应的应用。
根据上述技术方案,可以自动提取SSL协议中的应用名称,并且自动提取应用特征,并通过前后数据流的关联提高SSL协议中应用特征的识别率,从而能够简单方便的识别出SSL协议中的具体应用。
具体实施方式
以下结合附图对本发明进行详细描述。
针对现有技术中存在的不容易从SSL协议中识别出具体的应用的问题,本发明实施例提供一种SSL协议中应用的自动识别方法和装置,可以自动提取SSL协议中的应用名称,并且自动提取应用特征,并通过前后数据流的关联提高SSL协议中应用特征的识别率。
图1是本发明实施例的SSL协议中应用的自动识别方法流程图,所述方法应用与网络设备中,所述网络设备位于客户端与服务器之间,能够获取客户端与服务器之间的交互报文,所述网络设备可以为审计设备、流控设备及防火墙等。
参照图1,所述方法可以包括如下步骤:
步骤101,获取客户端与服务器之间的SSL交互信息;
可以通过在线抓包,获取客户端与服务器之间的SSL交互信息,并根据固定端口443端口将SSL协议过滤出来。另外也可通过输入现有报文,来源一是通过wireshark或tcpdump抓取的应用程序报文进行回放,二是通过网络设备比如交换机等的端口镜像引过来的报文。
步骤102,从所述SSL交互信息中提取应用名称、应用特征和四元组信息;
可以对步骤101中获取到的消息内容进行解析,从中提取应用名称、应用特征和四元组信息,其中,四元组是指源IP地址、目的IP地址、目的端口、传输层协议号。
步骤102可以包括:
S1,从所述SSL交互信息中提取应用名称,根据应用模板库判断该应用名称是否已经被识别;
具体地,可以从SSL交互信息中获取域名作为当前会话以及后续会话的应用名称。所述当前会话是指包括域名的SSL会话,所述后续会话指当前会话结束后的预定时长(例如1分钟)内的SSL会话。
网络设备中建立和维护有应用库模块,所述应用模块库中存储有应用名称与应用特征之间的对应关系。通过将该应用名称与应用模板库中的应用名称进行比对,如果该应用名称存在于应用模板库中,则确定该应用名称已经被识别,否则,确定该应用名称未被识别。
当该应用名称已经被识别时,则提取四元组信息;当应用名称未被识别时,则提取应用特征和四元组信息,并将应用名称与应用特征的对应关系添加到所述应用模板库中。
其中,所述提取应用特征可以是,提取客户端和服务器之间的SSL协议的握手过程中的证书链,将所述证书链作为所述应用特征。
步骤103,获取客户端与服务器之间的后续SSL会话流,将所述SSL会话流与所述四元组信息进行匹配,若匹配成功,则识别后续SSL会话流为所述应用名称对应的应用。
所述后续SSL会话流是指所述后续会话对应的报文流。由于很多SSL会话流并没有证书链,因此通过已识别的四元组信息去判断接下来的会话流是否来自同一个应用。如果四元组相同,则认为它们是同个应用产生的,反之则认为它们不同。
另外,当有无法识别的SSL会话流时,对未识别的SSL会话流的四元组信息进行统计保存,保存的时间阈值预定为M(可以根据需要进行设置),当后续有新识别的应用名称及四元组信息时再去进行匹配。
进一步,所述方法还可以包括如下步骤(图未示):
对多次提取到的所述应用特征采用鲁姆过滤器(Bloomfilter)算法进行删除合并,将删除合并结果作为存储到应用模板库中的应用特征。
由于本发明可以对每一个有证书链的会话流都提取特征,因此会产生重复特征,于是,可以采用Bloomfilter算法对重复的特征进行删除合并。比如有两个特征abcdef和abcde,则保留abcde。
对应于上述方法,本发明实施例还提供一种SSL协议中应用的自动识别装置,应用于网络设备上,所述网络设备位于客户端与服务器之间,能够获取客户端与服务器之间的交互报文,所述网络设备可以为审计设备、流控设备及防火墙等。
参照图2,所述装置可以包括:
消息获取模块,用于获取客户端与服务器之间的SSL交互信息;
消息解析模块,用于从所述SSL交互信息中提取应用名称、应用特征和四元组信息,所述四元组信息包括源IP地址、目的IP地址、目的端口和传输层协议号;
消息匹配模块,用于获取客户端与服务器之间的后续SSL会话流,将所述SSL会话流与所述四元组信息进行匹配,若匹配成功,则识别后续SSL会话流为所述应用名称对应的应用。
其中,所述消息解析模块进一步用于:
从所述SSL交互信息中提取应用名称,根据应用模板库判断该应用名称是否已经被识别;
若该应用名称已经被识别,则提取四元组信息;
若该应用名称未被识别,则提取应用特征和四元组信息,并将应用名称与应用特征的对应关系添加到所述应用模板库中。
具体地,所述消息解析模块可以按照如下方式从SSL交互信息中提取应用名称:从所述从SSL交互信息中提取请求的域名信息作为所述应用名称;所述消息解析模块可以按照如下方式提取应用特征:提取客户端和服务器之间的SSL协议的握手过程中的证书链,将所述证书链作为所述应用特征。
进一步,所述自动识别装置还可以包括:特征优化模块,用于对多次提取到的所述应用特征采用Bloomfilter算法进行删除合并,将删除合并结果作为存储到应用模板库中的应用特征。
综上所述,本发明可以自动在线抓包,自动提取应用名称,自动提取SSL协议中的应用特征,省去了人工文本比对的繁琐,大大提高了应用特征提取的效率。本发明采用了自动提取SSL协议中应用特征、前后报文关联技术、自动重复特征检测优化等多项组合技术,大大提高了SSL协议中应用的识别率和精确性,可适应各类采用SSL协议的网络应用。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。