一种中间人攻击的检测方法和装置与流程

文档序号:12739885阅读:401来源:国知局
一种中间人攻击的检测方法和装置与流程

本发明涉及网络安全技术,尤其涉及一种中间人攻击的检测方法和装置。



背景技术:

中间人攻击(MITM,Man-in-the-middle attack)是指攻击者与通讯的两端分别创建独立的联系,并交换所接收到的数据,使通讯的两端认为各自正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。此外,在中间人攻击过程中,攻击者可以拦截通讯双方的通话并插入新的内容。图1为MITM的示意图,攻击者通过会话劫持的手段,使自己处于客户端和服务器的中间人位置,以便获取客户端和服务器之间在正常通信时的交互报文,即窃听数据。

安全套接层(SSL,Secure Socket Layer)协议是互联网中最为常用的安全协议之一,它能够利用证书验证服务器的身份,并对客户端和服务器之间的交互信息进行加密,防止被攻击者窃听。简言之,SSL协议的目的在于通过网络的一个不安全通道为两个应用程序之间创建起安全的连接,用以交换数据,防止数据受到窃听及篡改。SSL协议的优势在于它是与应用层协议独立无关的,图2为SSL协议、传输控制协议(TCP,Transfer Control Protocol)、应用层协议三者之间的关系示意图,超文本传输协议(HTTP,Hyper Text Transfer Protocol)、简单邮件传输协议(SMTP,Simple Mail Transfer Protocol)、邮局协议的第3个版本(POP3,Post Office Protocol-Version 3)、互联网邮件访问协议(IMAP,Internet Message Access Protocol)、文本传输协议(FTP,File Transfer Protocol)等应用层协议可以透明的创建于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商以及服务器认证等工作,并对在此之后应用层协议所传送的数据进行加密。

SSL协议不仅保证了通信的私密性和可靠性,而且部署简单,对网络的负担也较小,因此在网页浏览、电子邮件、网上银行等应用中获得了广泛地使用。然而,中间人攻击是造成SSL业务不安全的一种最常见的且危害指数最高的技术。但是,随着用户网络安全意识的提高,政府和企业等组织也加强了对网络安全的资源投入。例如,许多应用服务器都提供了多种SSL业务,如Web服务器、邮件服务器、FTP服务器等都提供了SSL加密方式来承载业务。

现有的对中间人攻击的检测的主要现状如下:

一方面,目前企业界主要关心安全套接层超文本传输协议(HTTPS,HTTP over SSL)的安全性,而对HTTPS的判断方法主要依赖浏览器的安全检测机制。通常,证书信任链由根证书、中间证书、子证书组成;根证书是数字证书认证机构(CA,Certificate Authority)签发的证书,是证书信任链的起始点;中间证书是通过根证书签发的;子证书是通过中间证书/根证书签发的。而浏览器中间人检测技术主要是检测Web服务器的证书信任链中的各种信息,如检测颁发的证书是否在有效期内、服务器域名与证书中的域名是否一致等;并且,某些浏览器为了加强中间人攻击的检测,引入了严格传输安全超文本传输协议(HSTS,HTTP Strict Transport Security)等技术,在一定程度上加强了对中间人攻击的检测。但是,如果证书信任链中被导入了攻击者证书,就会绕过HSTS检测。

另一方面,虽然安全套接层简单邮件传输协议(SMTPS,SMTP over SSL)、安全套接层邮局协议的第3个版本(POP3S,POP3over SSL)、安全套接层互联网邮件访问协议(IMAPS,IMAP over SSL)、安全套接层文本传输协议(FTPS,FTP over SSL)等协议使用比较频繁,但是与这些协议相关的中间人攻击的检测技术比较少,且相关安全检测方法还不如HTTPS业务的安全检测方法。

因此,如果关心HTTPS业务,就需要寻找HTTPS协议的特点;如果关心SMTPS业务,就需要寻找SMTPS协议的特点,即对于不同的SSL业务,需要分别根据各自的特点进行中间人攻击的检测。此外,对HTTPS业务的中间人攻击的检测方法不一定适用于SMTPS等业务,因为HTTPS业务的安全性虽然高,但是并没有提升SMTPS业务的安全性。如果攻击者通过HTTPS方式无法进行中间人攻击,但是由于SMTPS、IMAPS等方式的中间人攻击的检测技术比较弱,则攻击者可以通过SMTPS、IMAPS等方式进行中间人攻击,从而导致SSL加密数据的泄露,无法彻底解决所有SSL加密业务不被中间人攻击。



技术实现要素:

有鉴于此,本发明实施例提供了一种中间人攻击的检测方法和装置,能够快速检测出被中间人攻击的SSL业务。

为达到上述目的,本发明的技术方案是这样实现的:

本发明实施例提供了一种中间人攻击的检测方法,所述方法包括:

当需要对第一SSL业务进行中间人攻击检测时,获取所述第一SSL业务的第一加密特征以及预设的第二SSL业务的第二加密特征;

判断所述第一加密特征和所述第二加密特征之间是否满足设定的被中间人攻击的条件,满足时,判定所述第一SSL业务被中间人攻击。

上述方案中,所述第一加密特征包括第一证书信任链,所述第二加密特征包括第二证书信任链;

所述判断所述第一加密特征和所述第二加密特征之间是否满足设定的被中间人攻击的条件,包括:

判断所述第一证书信任链和所述第二证书信任链之间是否包括以下三种情形至少之一:第一证书信任链的第一根证书与第二证书信任链的第二根证书不相同、第一证书信任链的第一中间证书与第二证书信任链的第二中间证书不相同、第一证书信任链的第一子证书与第二证书信任链的第二子证书不相同;

包括上述情形至少之一时,判定所述第一加密特征和所述第二加密特征之间满足设定的被中间人攻击的条件。

上述方案中,所述第一证书信任链的第一根证书与第二证书信任链的第二根证书不相同,包括:所述第一根证书的第一颁发者信息与所述第二根证书的第二颁发者信息不相同;和/或,所述第一根证书的第一主题信息与所述第二根证书的第二主题信息不相同;

所述第一证书信任链的第一中间证书与第二证书信任链的第二中间证书不相同,包括:所述第一中间证书的第三颁发者信息与所述第二中间证书的第四颁发者信息不相同;和/或,所述第一中间证书的第三主题信息与所述第二中间证书的第四主题信息不相同;

所述第一证书信任链的第一子证书与第二证书信任链的第二子证书不相同,包括:所述第一子证书的第五颁发者信息与所述第二子证书的第六颁发者信息不相同;和/或,所述第一子证书的第五主题信息与所述第二子证书的第六主题信息不相同;所述第五颁发者信息、第六颁发者信息、第五主题信息、第六主题信息不包括服务器域名信息和邮箱地址信息。

上述方案中,所述判断所述第一加密特征和所述第二加密特征之间是否满足设定的被中间人攻击的条件,还包括:

当所述第一证书信任链未包含所述第一中间证书、和/或所述第二证书信任链未包含所述第二中间证书时,若所述第一根证书与所述第二根证书相同、且所述第一子证书与所述第二子证书相同,判定所述第一加密特征和所述第二加密特征之间不满足设定的被中间人攻击的条件。

上述方案中,所述第一证书信任链的第一根证书与第二证书信任链的第二根证书不相同,还包括:

所述第一中间证书的第一颁发者信息与所述第二根证书的第二主题信息不相同;

或,所述第二中间证书的第四颁发者信息与所述第一根证书的第一主题信息不相同。

上述方案中,所述第一加密特征包括第一证书信任链,所述第二加密特征包括第二证书信任链;

所述判断所述第一加密特征和所述第二加密特征之间是否满足设定的被中间人攻击的条件,包括:

确定所述第一证书信任链包含自签名证书、且所述第二证书信任链未包含自签名证书时,判定所述第一加密特征和所述第二加密特征之间满足设定的被中间人攻击的条件。

本发明实施例还提供了一种中间人攻击的检测装置,所述装置包括:第一处理单元、第二处理单元;其中,

所述第一处理单元,用于当需要对第一SSL业务进行中间人攻击检测时,获取所述第一SSL业务的第一加密特征以及预设的第二SSL业务的第二加密特征;

所述第二处理单元,用于判断所述第一加密特征和所述第二加密特征之间是否满足设定的被中间人攻击的条件,满足时,判定所述第一SSL业务被中间人攻击。

上述方案中,所述第一加密特征包括第一证书信任链,所述第二加密特征包括第二证书信任链;

所述第二处理单元,具体用于:

判断所述第一证书信任链和所述第二证书信任链之间是否包括以下三种情形至少之一:第一证书信任链的第一根证书与第二证书信任链的第二根证书不相同、第一证书信任链的第一中间证书与第二证书信任链的第二中间证书不相同、第一证书信任链的第一子证书与第二证书信任链的第二子证书不相同;

包括上述情形至少之一时,判定所述第一加密特征和所述第二加密特征之间满足设定的被中间人攻击的条件。

上述方案中,

所述第一证书信任链的第一根证书与第二证书信任链的第二根证书不相同,包括:所述第一根证书的第一颁发者信息与所述第二根证书的第二颁发者信息不相同;和/或,所述第一根证书的第一主题信息与所述第二根证书的第二主题信息不相同;

所述第一证书信任链的第一中间证书与第二证书信任链的第二中间证书不相同,包括:所述第一中间证书的第三颁发者信息与所述第二中间证书的第四颁发者信息不相同;和/或,所述第一中间证书的第三主题信息与所述第二中间证书的第四主题信息不相同;

所述第一证书信任链的第一子证书与第二证书信任链的第二子证书不相同,包括:所述第一子证书的第五颁发者信息与所述第二子证书的第六颁发者信息不相同;和/或,所述第一子证书的第五主题信息与所述第二子证书的第六主题信息不相同;所述第五颁发者信息、第六颁发者信息、第五主题信息、第六主题信息不包括服务器域名信息和邮箱地址信息。

上述方案中,所述第二处理单元,具体用于:

当所述第一证书信任链未包含所述第一中间证书、和/或所述第二证书信任链未包含所述第二中间证书时,若所述第一根证书与所述第二根证书相同、且所述第一子证书与所述第二子证书相同,判定所述第一加密特征和所述第二加密特征之间不满足设定的被中间人攻击的条件。

上述方案中,所述第一证书信任链的第一根证书与第二证书信任链的第二根证书不相同,还包括:

所述第一中间证书的第一颁发者信息与所述第二根证书的第二主题信息不相同;

或,所述第二中间证书的第四颁发者信息与所述第一根证书的第一主题信息不相同。

上述方案中,所述第一加密特征包括第一证书信任链,所述第二加密特征包括第二证书信任链;

所述第二处理单元,具体用于:

确定所述第一证书信任链包含自签名证书、且所述第二证书信任链未包含自签名证书时,判定所述第一加密特征和所述第二加密特征之间满足设定的被中间人攻击的条件。

本发明实施例提供的中间人攻击的检测方法和装置,当需要对第一SSL业务进行中间人攻击检测时,获取所述第一SSL业务的第一加密特征以及预设的第二SSL业务的第二加密特征;判断所述第一加密特征和所述第二加密特征之间是否满足设定的被中间人攻击的条件,满足时,判定所述第一SSL业务被中间人攻击。可见,本发明实施例通过比对分析待检测的SSL业务和预设的SSL业务所共有的加密特征,以检测所述待检测的SSL业务是否被中间人攻击,从而能够快速检测出被中间人攻击的SSL业务;此外,适用范围广,可便于进行动态扩展。

附图说明

图1为MITM的示意图;

图2为SSL协议、TCP协议、应用层协议三者之间的关系示意图;

图3为本发明实施例一中间人攻击的检测方法的实现流程示意图;

图4为本发明实施例一中间人攻击的检测装置的组成结构示意图;

图5为本发明实施例二中间人攻击的检测方法的具体实现流程示意图。

具体实施方式

实施例一

图3为本发明实施例一中间人攻击的检测方法的实现流程示意图,该方法包括:

步骤101:当需要对第一SSL业务进行中间人攻击检测时,获取所述第一SSL业务的第一加密特征以及预设的第二SSL业务的第二加密特征;

具体地,当需要检测第一SSL业务是否被中间人攻击时,获取所述第一SSL业务的第一加密特征以及预设的第二SSL业务的第二加密特征,以根据所述第一加密特征和第二加密特征判断所述第一SSL业务是否被中间人攻击。

这里,所述第一SSL业务和预设的第二SSL业务是基于SSL加密协议的不同应用层协议所承载的业务;例如,对于访问应用服务器而言,第一SSL业务和预设的第二SSL业务是访问应用服务器的不同方式,比如第一SSL业务是使用HTTPS协议访问应用服务器,而预设的第二SSL业务是使用SMTPS协议访问应用服务器;并且,所述预设的第二SSL业务是未被中间人攻击的SSL业务,用于作为参考对象;所述预设的第二SSL业务可以根据人工经验、智能算法分析推理等方式进行获取。

这里,所述第一加密特征、第二加密特征可以是证书信任链、证书有效期、证书版本等信息中的任意同一类信息;当然,对所述第一加密特征、第二加密特征的范围还可以进行扩展;本实施例中,以所述第一加密特征、第二加密特征为证书信任链中各级证书的通用信息、且所述通用信息为颁发者信息和主题信息为例进行说明。

由于HTTP、SMTP、POP3、FTP等应用层协议是建立在SSL协议之上,并且加密通信过程中的加密算法、密钥协商和服务器证书等信息都包含在SSL协议中,因此,可以把所有SSL业务当作一个有机整体,提取HTTPS、SMTPS、POP3S、FTPS等协议共有的SSL加密特征,然后对这些共有的SSL加密特征进行对比、分析,进而判断SSL业务是否被中间人攻击。

下面通过展示百度网站的证书信任链对加密特征进行说明,百度网站的证书信任链包含子证书、中间证书、根证书,具体如下所示:

(一)子证书

0s:/C=CN/ST=Beijing/L=Beijing/O=Beijing Baidu Netcom Science Technology Co.,Ltd/OU=R&D/CN=service operation department/CN=baidu.com;

i:/C=US/O=VeriSign,Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa10/CN=VeriSign Class 3Secure Server CA-G3;

(二)中间证书

1s:/C=US/O=VeriSign,Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa10/CN=VeriSign Class 3Secure Server CA-G3;

i:/C=US/O=VeriSign,Inc./OU=VeriSign Trust Network/OU=2006VeriSign,Inc.-For authorized use only/CN=VeriSign Class 3Public Primary Certification Authority-G5;

(三)根证书

2s:/C=US/O=VeriSign,Inc./OU=VeriSign Trust Network/OU=2006VeriSign,Inc.-For authorized use only/CN=VeriSign Class 3Public Primary Certification Authority-G5;

i:/C=US/O=VeriSign,Inc./OU=Class 3Public Primary Certification Authority;

其中,C表示国家名称、ST表示州/省名称、L表示城市名称、O表示公司/组织名称、OU表示组织单位名称、CN表示服务器域名、emailAddress表示邮箱地址;从上述百度网站的证书信任链中,可获取子证书、中间证书、根证书的主题信息和颁发者信息作为访问百度网站的加密特征。

步骤102:判断所述第一加密特征和所述第二加密特征之间是否满足设定的被中间人攻击的条件,满足时,判定所述第一SSL业务被中间人攻击。

具体地,以所述第二加密特征作为参考,判断所述第一加密特征和所述第二加密特征之间是否满足设定的被中间人攻击的条件,当所述第一加密特征和所述第二加密特征之间满足设定的被中间人攻击的条件时,判定所述第一SSL业务被中间人攻击。

这里,当所述第一加密特征包括第一证书信任链、且所述第二加密特征包括第二证书信任链时,所述判断所述第一加密特征和所述第二加密特征之间是否满足设定的被中间人攻击的条件,包括:判断所述第一证书信任链和所述第二证书信任链之间是否包括以下三种情形至少之一:第一证书信任链的第一根证书与第二证书信任链的第二根证书不相同、第一证书信任链的第一中间证书与第二证书信任链的第二中间证书不相同、第一证书信任链的第一子证书与第二证书信任链的第二子证书不相同;包括上述情形至少之一时,判定所述第一加密特征和所述第二加密特征之间满足设定的被中间人攻击的条件,即表示所述第一SSL业务被中间人攻击。

所述第一证书信任链的第一根证书与第二证书信任链的第二根证书不相同,包括:所述第一根证书的第一颁发者信息与所述第二根证书的第二颁发者信息不相同;和/或,所述第一根证书的第一主题信息与所述第二根证书的第二主题信息不相同;

所述第一证书信任链的第一中间证书与第二证书信任链的第二中间证书不相同,包括:所述第一中间证书的第三颁发者信息与所述第二中间证书的第四颁发者信息不相同;和/或,所述第一中间证书的第三主题信息与所述第二中间证书的第四主题信息不相同;

这里,当所述第一SSL业务的第一证书信任链中存在多级中间证书时,可将所述多级中间证书与所述第二SSL业务的第二证书信任链中的第二中间证书进行多次比较,当所述多级中间证书与所述第二SSL业务的第二证书信任链中的第二中间证书相同时,确定所述第一证书信任链的第一中间证书与第二证书信任链的第二中间证书相同。

所述第一证书信任链的第一子证书与第二证书信任链的第二子证书不相同,包括:所述第一子证书的第五颁发者信息与所述第二子证书的第六颁发者信息不相同;和/或,所述第一子证书的第五主题信息与所述第二子证书的第六主题信息不相同;所述第五颁发者信息、第六颁发者信息、第五主题信息、第六主题信息不包括服务器域名信息和邮箱地址信息。

这里,所述判断所述第一加密特征和所述第二加密特征之间是否满足设定的被中间人攻击的条件,还包括:当所述第一证书信任链未包含所述第一中间证书、和/或所述第二证书信任链未包含所述第二中间证书时,若所述第一根证书与所述第二根证书相同、且所述第一子证书与所述第二子证书相同,判定所述第一加密特征和所述第二加密特征之间不满足设定的被中间人攻击的条件,即表示所述第一SSL业务未被中间人攻击。

这里,所述第一证书信任链的第一根证书与第二证书信任链的第二根证书不相同,还包括:

所述第一中间证书的第一颁发者信息与所述第二根证书的第二主题信息不相同;或,所述第二中间证书的第四颁发者信息与所述第一根证书的第一主题信息不相同。

这里,当所述第一SSL业务的第一证书信任链中未包含根证书时,由于第一证书信任链中的中间证书的颁发者信息就是根证书的主题信息,只是缺少了根证书的颁发者信息,因此,只要第一证书信任链中的中间证书的颁发者信息与所述第二SSL业务的第二证书信任链中的根证书的主题信息相同,就可保证根证书的安全性。

这里,当所述第一加密特征包括第一证书信任链、且所述第二加密特征包括第二证书信任链时,所述判断所述第一加密特征和所述第二加密特征之间是否满足设定的被中间人攻击的条件,包括:确定所述第一证书信任链包含自签名证书、且所述第二证书信任链未包含自签名证书时,判定所述第一加密特征和所述第二加密特征之间满足设定的被中间人攻击的条件,即表示所述第一SSL业务被中间人攻击。

这里,自签名证书是由用户自己扮演认证授权(CA,Certificate Authority)机构,从而自己给自己签发的证书;因此,自签名证书中的颁发者信息和主题信息相同。一般来说,通过CA机构签发的证书比自签名证书的安全性和权威性要高,自签名证书被中间人攻击的可能性要高很多。所以,在SSL加密特征的比较过程中,如果由两个或两个以上SSL加密特征构成的SSL加密特征库中同时存在一个CA签发证书和一个/多个自签名证书,就可以确定被中间人攻击,而且认为自签名证书被中间人攻击。

其中,自签名证书的组成示意如下所示:

Certificate chain

0s:/C=--/ST=SomeState/L=SomeCity/O=SomeOrganization/OU=Some OrganizationalUnit/CN=localhost.localdomain/emailAddress=root@localhost.locald omain;

i:/C=--/ST=SomeState/L=SomeCity/O=SomeOrganization/OU=Some OrganizationalUnit/CN=localhost.localdomain/emailAddress=root@localhost.locald omain。

为实现上述方法,本发明实施例还提供了一种中间人攻击的检测装置,图4为本发明实施例一中间人攻击的检测装置的组成结构示意图,该装置包括:第一处理单元11、第二处理单元12;其中,

所述第一处理单元11,用于当需要对第一SSL业务进行中间人攻击检测时,获取所述第一SSL业务的第一加密特征以及预设的第二SSL业务的第二加密特征;

所述第二处理单元12,用于判断所述第一加密特征和所述第二加密特征之间是否满足设定的被中间人攻击的条件,满足时,判定所述第一SSL业务被中间人攻击。

所述第一处理单元11,具体用于:当需要检测第一SSL业务是否被中间人攻击时,获取所述第一SSL业务的第一加密特征以及预设的第二SSL业务的第二加密特征,以使第二处理单元12根据所述第一加密特征和第二加密特征判断所述第一SSL业务是否被中间人攻击。

这里,所述第一SSL业务和预设的第二SSL业务是基于SSL加密协议的不同应用层协议所承载的业务;例如,对于访问应用服务器而言,第一SSL业务和预设的第二SSL业务是访问应用服务器的不同方式,比如第一SSL业务是使用HTTPS协议访问应用服务器,而预设的第二SSL业务是使用SMTPS协议访问应用服务器;并且,所述预设的第二SSL业务是未被中间人攻击的SSL业务,用于作为参考对象;所述预设的第二SSL业务可以根据人工经验、智能算法分析推理等方式进行获取。

这里,所述第一加密特征、第二加密特征可以是证书信任链、证书有效期、证书版本等信息;当然,对所述第一加密特征、第二加密特征的范围还可以进行扩展;本实施例中,以所述第一加密特征、第二加密特征为证书信任链中各级证书的通用信息、且所述通用信息为颁发者信息和主题信息为例进行说明。

由于HTTP、SMTP、POP3、FTP等应用层协议是建立在SSL协议之上,并且加密通信过程中的加密算法、密钥协商和服务器证书等信息都包含在SSL协议中,因此,可以把所有SSL业务当作一个有机整体,提取HTTPS、SMTPS、POP3S、FTPS等协议共有的SSL加密特征,然后对这些共有的SSL加密特征进行对比、分析,进而判断SSL业务是否被中间人攻击。

下面通过展示百度网站的证书信任链对加密特征进行说明,百度网站的证书信任链包含子证书、中间证书、根证书,具体如下所示:

(一)子证书

0s:/C=CN/ST=Beijing/L=Beijing/O=Beijing Baidu Netcom Science Technology Co.,Ltd/OU=R&D/CN=service operation department/CN=baidu.com;

i:/C=US/O=VeriSign,Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa10/CN=VeriSign Class 3Secure Server CA-G3;

(二)中间证书

1s:/C=US/O=VeriSign,Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa10/CN=VeriSign Class 3Secure Server CA-G3;

i:/C=US/O=VeriSign,Inc./OU=VeriSign Trust Network/OU=2006VeriSign,Inc.-For authorized use only/CN=VeriSign Class 3Public Primary Certification Authority-G5;

(三)根证书

2s:/C=US/O=VeriSign,Inc./OU=VeriSign Trust Network/OU=2006VeriSign,Inc.-For authorized use only/CN=VeriSign Class 3Public PrimaryCertification Authority-G5;

i:/C=US/O=VeriSign,Inc./OU=Class 3Public Primary Certification Authority;

其中,C表示国家名称、ST表示州/省名称、L表示城市名称、O表示公司/组织名称、OU表示组织单位名称、CN表示服务器域名、emailAddress表示邮箱地址;从上述百度网站的证书信任链中,可获取子证书、中间证书、根证书的主题信息和颁发者信息作为访问百度网站的加密特征。

所述第二处理单元12,具体用于:以所述第二加密特征作为参考,判断所述第一加密特征和所述第二加密特征之间是否满足设定的被中间人攻击的条件,当所述第一加密特征和所述第二加密特征之间满足设定的被中间人攻击的条件时,判定所述第一SSL业务被中间人攻击。

这里,当所述第一加密特征包括第一证书信任链、且所述第二加密特征包括第二证书信任链时,所述第二处理单元12判断所述第一加密特征和所述第二加密特征之间是否满足设定的被中间人攻击的条件,包括:判断所述第一证书信任链和所述第二证书信任链之间是否包括以下三种情形至少之一:第一证书信任链的第一根证书与第二证书信任链的第二根证书不相同、第一证书信任链的第一中间证书与第二证书信任链的第二中间证书不相同、第一证书信任链的第一子证书与第二证书信任链的第二子证书不相同;包括上述情形至少之一时,判定所述第一加密特征和所述第二加密特征之间满足设定的被中间人攻击的条件,即表示所述第一SSL业务被中间人攻击。

所述第一证书信任链的第一根证书与第二证书信任链的第二根证书不相同,包括:所述第一根证书的第一颁发者信息与所述第二根证书的第二颁发者信息不相同;和/或,所述第一根证书的第一主题信息与所述第二根证书的第二主题信息不相同;

所述第一证书信任链的第一中间证书与第二证书信任链的第二中间证书不相同,包括:所述第一中间证书的第三颁发者信息与所述第二中间证书的第四颁发者信息不相同;和/或,所述第一中间证书的第三主题信息与所述第二中间证书的第四主题信息不相同;

这里,当所述第一SSL业务的第一证书信任链中存在多级中间证书时,可将所述多级中间证书与所述第二SSL业务的第二证书信任链中的第二中间证书进行多次比较,当所述多级中间证书与所述第二SSL业务的第二证书信任链中的第二中间证书相同时,确定所述第一证书信任链的第一中间证书与第二证书信任链的第二中间证书相同。

所述第一证书信任链的第一子证书与第二证书信任链的第二子证书不相同,包括:所述第一子证书的第五颁发者信息与所述第二子证书的第六颁发者信息不相同;和/或,所述第一子证书的第五主题信息与所述第二子证书的第六主题信息不相同;所述第五颁发者信息、第六颁发者信息、第五主题信息、第六主题信息不包括服务器域名信息和邮箱地址信息。

这里,所述第二处理单元12判断所述第一加密特征和所述第二加密特征之间是否满足设定的被中间人攻击的条件,还包括:当所述第一证书信任链未包含所述第一中间证书、和/或所述第二证书信任链未包含所述第二中间证书时,若所述第一根证书与所述第二根证书相同、且所述第一子证书与所述第二子证书相同,判定所述第一加密特征和所述第二加密特征之间不满足设定的被中间人攻击的条件,即表示所述第一SSL业务未被中间人攻击。

这里,所述第一证书信任链的第一根证书与第二证书信任链的第二根证书不相同,还包括:

所述第一中间证书的第一颁发者信息与所述第二根证书的第二主题信息不相同;或,所述第二中间证书的第四颁发者信息与所述第一根证书的第一主题信息不相同。

这里,当所述第一SSL业务的第一证书信任链中未包含根证书时,由于第一证书信任链中的中间证书的颁发者信息就是根证书的主题信息,只是缺少了根证书的颁发者信息,因此,只要第一证书信任链中的中间证书的颁发者信息与所述第二SSL业务的第二证书信任链中的根证书的主题信息相同,就可保证根证书的安全性。

这里,当所述第一加密特征包括第一证书信任链、且所述第二加密特征包括第二证书信任链时,所述判断所述第一加密特征和所述第二加密特征之间是否满足设定的被中间人攻击的条件,包括:确定所述第一证书信任链包含自签名证书、且所述第二证书信任链未包含自签名证书时,判定所述第一加密特征和所述第二加密特征之间满足设定的被中间人攻击的条件,即表示所述第一SSL业务被中间人攻击。

这里,自签名证书是由用户自己扮演认证授权(CA,Certificate Authority)机构,从而自己给自己签发的证书;因此,自签名证书中的颁发者信息和主题信息相同。一般来说,通过CA机构签发的证书比自签名证书的安全性和权威性要高,自签名证书被中间人攻击的可能性要高很多。所以,在SSL加密特征的比较过程中,如果由两个或两个以上SSL加密特征构成的SSL加密特征库中同时存在一个CA签发证书和一个/多个自签名证书,就可以确定被中间人攻击,而且认为自签名证书被中间人攻击。

其中,自签名证书的组成示意如下所示:

Certificate chain

0s:/C=--/ST=SomeState/L=SomeCity/O=SomeOrganization/OU=Some OrganizationalUnit/CN=localhost.localdomain/emailAddress=root@localhost.locald omain;

i:/C=--/ST=SomeState/L=SomeCity/O=SomeOrganization/OU=Some OrganizationalUnit/CN=localhost.localdomain/emailAddress=root@localhost.locald omain。

在实际应用中,所述第一处理单元11、第二处理单元12均可由位于终端的中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)、或现场可编程门阵列(FPGA)等实现。

实施例二

下面通过一个具体示例对本发明实施例一作进一步地的说明,本实施中,A方式访问应用服务器是第一SSL业务,A方式访问应用服务器的证书信任链为第一加密特征,B方式和C方式访问应用服务器是第二SSL业务,B方式和C方式访问应用服务器的证书信任链为第二加密特征,A方式访问应用服务器的证书信任链与B方式和C方式访问应用服务器的证书信任链相同是第一加密特征和第二加密特征之间需满足的条件;图5为本发明实施例二中间人攻击的检测方法的具体实现流程示意图,该方法包括:

步骤201:获取通过A方式访问应用服务器的SSL加密特征;

具体地,当需要检测通过A方式访问应用服务器是否被中间人攻击时,通过openssl、wireshark等工具获取通过A方式访问应用服务器的SSL加密特征。

这里,所述A方式是指某一种应用协议基于SSL加密协议访问应用服务器;本实施例中,以所述SSL加密特征为证书信任链为例进行说明。

步骤202:遍历获取通过B方式和C方式访问应用服务器的SSL加密特征;

具体地,通过遍历方式寻找应用服务器的其他SSL加密访问方式B和C,并通过openssl、wireshark等工具获取通过B方式和C方式访问应用服务器的SSL加密特征。

这里,将所述通过B方式和C方式访问应用服务器的SSL加密特征作为参考,即认为通过B方式和C方式访问应用服务器是未受中间人攻击的。

步骤203:比较A方式的SSL加密特征中的根证书是否与B方式和C方式的SSL加密特征中的根证书相同,若相同,则执行步骤204,否则执行步骤207;

具体地,比较A方式访问应用服务器的SSL加密特征中的根证书是否分别与B方式和C方式访问应用服务器的SSL加密特征中的根证书相同,若相同,则执行步骤204;若不相同,表明A方式访问应用服务器被中间人攻击,则执行步骤207。

这里,两个根证书相同为两个根证书的主题信息和颁发者信息相同;此外,由于所述通过B方式和C方式访问应用服务器的SSL加密特征是作为参考的,因此,通过B方式访问应用服务器的SSL加密特征和通过C方式访问应用服务器的SSL加密特征是相同的,即B方式访问应用服务器的SSL加密特征中的根证书与C方式访问应用服务器的SSL加密特征中的根证书相同,则也可只比较A方式访问应用服务器的SSL加密特征中的根证书是否与B方式或C方式访问应用服务器的SSL加密特征中的根证书相同,后续处理对中间证书、子证书的比较也可只采用上述单一的比较方式。

步骤204:比较A方式的SSL加密特征中的中间证书是否与B方式和C方式的SSL加密特征中的中间证书相同,若相同,则执行步骤205,否则执行步骤207;

具体地,比较A方式访问应用服务器的SSL加密特征中的中间证书是否分别与B方式和C方式访问应用服务器的SSL加密特征中的中间证书相同,若相同,则执行步骤205;若不相同,表明A方式访问应用服务器被中间人攻击,则执行步骤207。

这里,两个中间证书相同为两个中间证书的主题信息和颁发者信息相同。

这里,某些SSL业务的证书信任链中可能没有中间证书或者存在多级中间证书,因此可以在SSL加密特征中不比较中间证书的信息或者比较多次中间证书的信息。

这里,某些SSL业务的证书信任链中也可能没有根证书,而由于中间证书的颁发者信息就是根证书的主题信息,只是缺少了根证书的颁发者信息,因此,只要没有根证书的SSL业务中的中间证书的颁发者信息与有根证书的SSL业务中的根证书的主题信息相同就保证了根证书的安全性。

步骤205:比较A方式的SSL加密特征中的子证书是否与B方式和C方式的SSL加密特征中的子证书相同,若相同,则执行步骤206,否则执行步骤207;

具体地,比较A方式访问应用服务器的SSL加密特征中的子证书是否与B方式和C方式访问应用服务器的SSL加密特征中的子证书相同,若相同,表明A方式访问应用服务器未被中间人攻击,则执行步骤206;若不相同,表明A方式访问应用服务器被中间人攻击,则执行步骤207。

这里,两个子证书相同为两个子证书的主题信息和颁发者信息相同。

步骤206:判定A方式访问应用服务器未被中间人攻击。

具体地,当在步骤205中确定A方式访问应用服务器的SSL加密特征中的子证书与B方式和C方式访问应用服务器的SSL加密特征中的子证书相同时,判定A方式访问应用服务器未被中间人攻击。

步骤207:判定A方式访问应用服务器被中间人攻击;

具体地,当在步骤203中确定A方式访问应用服务器的SSL加密特征中的根证书与B方式和C方式访问应用服务器的SSL加密特征中的根证书不相同时,判定A方式访问应用服务器被中间人攻击;或,当在步骤204中确定A方式的SSL加密特征中的中间证书与B方式和C方式的SSL加密特征中的中间证书不相同时,判定A方式访问应用服务器被中间人攻击;或,当在步骤205中确定A方式的SSL加密特征中的子证书与B方式和C方式的SSL加密特征中的子证书不相同时,判定A方式访问应用服务器被中间人攻击。

这里,在一些情况下,证书信任链中存在自签名证书。所谓自签名证书是用户或开发者自己扮演CA机构,自己给自己签发的证书,因此自签名证书中的颁发者和主题信息相同。一般来说,通过CA机构签发的证书比自签名证书的安全性和权威性要高,自签名证书被中间人攻击的可能性要高很多。所以,在SSL加密特征的比较过程中,如果由两个或两个以上SSL加密特征构成的SSL加密特征库中同时存在一个CA签发证书和一个或多个自签名证书,就可以确定被中间人攻击,而且认为自签名证书被中间人攻击。

这里,还可将B方式访问应用服务器的SSL加密特征和C方式访问应用服务器的SSL加密特征收集起来,从而形成SSL加密特征库,并将该SSL加密特征库存储在电脑端、或设备端、或云端等,这样就不用每次动态获取作为参考的SSL加密特征,而只需要周期性的更新该SSL加密特征库中的文件;并且,SSL加密特征库还可以处理一些复杂情况,比如当所有SSL业务都被中间人攻击时也可以检测到。

本发明实施例关注的是所有SSL加密业务,而不是单个SSL加密业务,可协同性检测所有SSL加密业务,如可以检测Web服务器、邮件服务器、FTP服务器等;此外,本发明实施例提供的中间人攻击的检测方法不仅适用外网服务器,也适用内网服务器,是一种通用的安全检测方法。另外,本发明实施例提供的中间人攻击的检测方法保证了所有SSL加密业务的均衡,不仅提高了单个SSL加密业务的安全性,还提高了整体SSL加密业务的安全性,是一种全面的安全检测方法。再者,本发明实施例提供的中间人攻击的检测方法不会随着SSL加密业务的增加而发生本质变化,是一种动态可扩展的安全检测方法。

实施例三

下面通过一个具体示例对实施例一和实施例二作进一步地的说明,本实施中,使用SMTPS协议发送电子邮件是第一SSL业务,使用SMTPS协议发送电子邮件的证书信任链为第一加密特征,使用POP3S、IMAPS、HTTPS等协议发送电子邮件是第二SSL业务,使用POP3S、IMAPS、HTTPS等协议发送电子邮件的证书信任链为第二加密特征,使用SMTPS协议发送电子邮件的证书信任链与使用POP3S、IMAPS、HTTPS等协议发送电子邮件的证书信任链相同是第一加密特征和第二加密特征之间需满足的条件;电子邮件是大多数组织的主要通信媒体,是用户不可或缺的通信工具,因此电子邮件安全的重要性毋庸置疑。下面以检测用户使用SMTPS协议发送电子邮件是否被中间人攻击为例,详细说明本实施例的技术细节。

第一步,通过openssl、wireshark等工具执行命令,获得命令执行结果后,提取使用SMTPS协议进行发送加密邮件的SSL加密特征库,如下所示:

执行命令:

openssl s_client-connect smtp.qq.com:465;

命令执行结果:

……

Certificate chain

0s:/C=CN/ST=Guangdong/L=Shenzhen/O=Shenzhen Tencent Computer Systems Company Limited/OU=R&D/CN=pop.qq.com;

i:/C=US/O=Geo Trust Inc./CN=Geo Trust SSL CA-G3;

1s:/C=US/O=Geo Trust Inc./CN=Geo Trust SSL CA-G3;

i:/C=US/O=Geo Trust Inc./CN=Geo Trust Global CA;

……

第二步,查询发送加密邮件的POP3S、IMAPS、HTTPS等SSL业务,再通过openssl、wireshark等工具分别获取POP3S、IMAPS、HTTPS等SSL业务的SSL加密特征库,获得命令执行结果后,提取使用POP3S、IMAPS、HTTPS等协议进行发送加密邮件的SSL加密特征库,如下所示:

(1)执行命令:

openssl s_client-connect pop.qq.com:995;

命令执行结果:

……

Certificate chain

0s:/C=CN/ST=Guangdong/L=Shenzhen/O=Shenzhen Tencent Computer Systems Company Limited/OU=R&D/CN=pop.qq.com;

i:/C=US/O=Geo Trust Inc./CN=Geo Trust SSL CA-G3;

1s:/C=US/O=Geo Trust Inc./CN=Geo Trust SSL CA-G3;

i:/C=US/O=Geo Trust Inc./CN=Geo Trust Global CA;

……

(2)执行命令:

openssl s_client-connect imap.qq.com:993;

命令执行结果:

……

Certificate chain

0s:/C=CN/ST=Guangdong/L=Shenzhen/O=Shenzhen Tencent Computer Systems Company Limited/OU=R&D/CN=pop.qq.com;

i:/C=US/O=Geo Trust Inc./CN=Geo Trust SSL CA-G3;

1s:/C=US/O=Geo Trust Inc./CN=Geo Trust SSL CA-G3;

i:/C=US/O=Geo Trust Inc./CN=Geo Trust Global CA;

……

(3)执行命令:

openssl s_client-connect smtp.qq.com:587;

命令执行结果:

……

Certificate chain

0s:/C=CN/ST=Guangdong/L=Shenzhen/O=Shenzhen Tencent Computer Systems Company Limited/OU=R&D/CN=pop.qq.com;

i:/C=US/O=Geo Trust Inc./CN=Geo Trust SSL CA-G3;

1s:/C=US/O=Geo Trust Inc./CN=Geo Trust SSL CA-G3;

i:/C=US/O=Geo Trust Inc./CN=Geo Trust Global CA;

……

(4)执行命令:

openssl s_client-connect mail.qq.com:443;

命令执行结果:

……

Certificate chain

0s:/C=CN/ST=Guangdong/L=Shenzhen/O=Shenzhen Tencent Computer Systems Company Limited/OU=R&D/CN=mail.qq.com;

i:/C=US/O=Geo Trust Inc./CN=Geo Trust SSL CA-G3;

1s:/C=US/O=Geo Trust Inc./CN=Geo Trust SSL CA-G3;

i:/C=US/O=Geo Trust Inc./CN=Geo Trust Global CA;

2s:/C=US/O=Geo Trust Inc./CN=Geo Trust SSL CA;

i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority;

……

第三步,对比SMTPS的SSL加密特征库与POP3S、IMAPS等业务的SSL加密特征库;由于除了HTTPS的SSL加密特征库之外,POP3S、IMAPS等业务的SSL加密特征库没有根证书信息,所以从中间证书开始比较,发现所有业务的SSL加密特征库的中间证书都相同,而且所有中间证书都是通过CA权威机构签发的;继续比较子证书,发现所有子证书中除了服务器域名不同外,其他信息都相同;因此,根据比较逻辑,可以判断该用户的当前环境没有被中间人攻击。

实施例四

下面通过一个具体示例对实施例一和实施例二作进一步地的说明,本实施例中,通过浏览器方式访问sohu邮箱即使用HTTPS协议访问sohu邮箱是第一SSL业务,通过浏览器方式访问sohu邮箱的证书信任链为第一加密特征,使用POP3S、IMAPS、SMTPS等协议访问sohu邮箱是第二SSL业务,使用POP3S、IMAPS、SMTPS等协议访问sohu邮箱的证书信任链为第二加密特征,通过浏览器方式访问sohu邮箱的证书信任链与使用POP3S、IMAPS、SMTPS等协议访问sohu邮箱的证书信任链相同是第一加密特征和第二加密特征之间需满足的条件;假如用户想要检测通过浏览器方式访问sohu邮箱是否被中间人攻击,具体过程如下所示:

第一步,通过openssl、wireshark等工具执行命令,获得命令执行结果后,提取通过浏览器方式访问sohu邮箱的SSL加密特征库,如下所示:

执行命令:

openssl s_client-connect mail.sohu.com:443;

命令执行结果:

……

Certificate chain

0s:/C=CN/ST=Beijing/L=Beijing/O=Beijing Sohu New Media Information Technology Co.Ltd/OU=Application Operator/CN=*.sohu.com;

i:/C=CN/ST=Beijing/L=BJ/O=TEST/OU=faketest/CN=www.test.com/email Address=test@aa.com;

1s:/C=CN/ST=Beijing/L=BJ/O=TEST/OU=faketest/CN=www.test.com/email Address=test@aa.com;

i:/C=CN/ST=Beijing/L=BJ/O=TEST/OU=faketest/CN=www.test.com/email Address=test@aa.com;

……

第二步,查询访问sohu邮箱的其他SSL业务,再通过openssl、wireshark等工具分别获取POP3S、IMAPS、HTTPS等SSL业务的SSL加密特征库,获得命令执行结果后,提取使用POP3S、IMAPS、HTTPS等协议访问sohu邮箱的SSL加密特征库,如下所示:

(1)执行命令:

openssl s_client-connect mail.sohu.com:995;

命令执行结果:

……

Certificate chain

0s:/C=CN/ST=Beijing/L=Beijing/O=Beijing Sohu New Media Information Technology Co.Ltd/OU=Application Operator/CN=*.sohu.com;

i:/C=US/O=Symantec Corporation/OU=Symantec Trust Network/CN=Symantec Class 3Secure Server CA-G4;

1s:/C=US/O=Symantec Corporation/OU=Symantec Trust Network/CN=Symantec Class 3Secure Server CA-G4;

i:/C=US/O=VeriSign,Inc./OU=VeriSign Trust Network/OU=(c)2006VeriSign,Inc.-For authorized use only/CN=VeriSign Class 3Public Primary Certification Authority-G5;

2s:/C=US/O=VeriSign,Inc./OU=VeriSign Trust Network/OU=(c)2006VeriSign,Inc.-For authorized use only/CN=VeriSign Class 3Public Primary Certification Authority-G5;

i:/C=US/O=VeriSign,Inc./OU=Class 3Public Primary Certification Authority;

(2)执行命令:

openssl s_client-connect mail.sohu.com:993;

命令执行结果:

……

Certificate chain

0s:/C=CN/ST=Beijing/L=Beijing/O=Beijing Sohu New Media Information Technology Co.Ltd/OU=Application Operator/OU=Terms of use at www.verisign.com/rpa(c)05/CN=*.sohu.com;

i:/C=US/O=VeriSign,Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa(c)10/CN=VeriSign Class 3Secure Server CA-G3;

1s:/C=US/O=VeriSign,Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa(c)10/CN=VeriSign Class 3Secure Server CA-G3;

i:/C=US/O=VeriSign,Inc./OU=VeriSign Trust Network/OU=(c)2006VeriSign,Inc.-For authorized use only/CN=VeriSign Class 3Public Primary Certification Authority-G5;

2s:/C=US/O=VeriSign,Inc./OU=VeriSign Trust Network/OU=(c)2006VeriSign,Inc.-For authorized use only/CN=VeriSign Class 3Public Primary Certification Authority-G5;

i:/C=US/O=VeriSign,Inc./OU=Class 3Public Primary Certification Authority;

(3)执行命令:

openssl s_client-connect mail.sohu.com:465;

命令执行结果:

……

Certificate chain

0s:/C=CN/ST=Beijing/L=Beijing/O=Beijing Sohu New Media Information Technology Co.Ltd/OU=Application Operator/CN=*.sohu.com;

i:/C=US/O=Symantec Corporation/OU=Symantec Trust Network/CN=Symantec Class 3Secure Server CA-G4;

1s:/C=US/O=Symantec Corporation/OU=Symantec Trust Network/CN=Symantec Class 3Secure Server CA-G4;

i:/C=US/O=VeriSign,Inc./OU=VeriSign Trust Network/OU=(c)2006VeriSign,Inc.-For authorized use only/CN=VeriSign Class 3Public Primary Certification Authority-G5;

2s:/C=US/O=VeriSign,Inc./OU=VeriSign Trust Network/OU=(c)2006VeriSign,Inc.-For authorized use only/CN=VeriSign Class 3Public Primary Certification Authority-G5;

i:/C=US/O=VeriSign,Inc./OU=Class 3Public Primary Certification Authority。

第三步,比较各个业务的SSL加密特征库,发现HTTPS的SSL加密特征库中根证书与其他业务的SSL加密特征库的根证书不同,而且是自签名证书,可以确定该用户通过浏览器访问sohu加密邮箱被中间人攻击。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1