本公开涉及用于检查电子证书的技术。
背景技术:
以往,提出了接受来自客户端的检查请求而验证证书的证书验证服务器(参照非专利文献1)。
另外,提出一种分析装置,该分析装置在终端进行了已知的不正当通信中的某种不正当通信的情况下,在从该不正当通信的发生时刻起的规定范围的时间段中,终端取得在通信中使用的通信目的地的访问URL,根据所取得的各通信目的地的访问URL在不正当通信和其他不正当通信中出现的频度,从各通信目的地的访问URL中检测与不正当通信关联的通信目的地的访问URL(参照专利文献1)。
现有技术文献
专利文献
专利文献1:日本特开2015-082769号公报
非专利文献
非专利文献1:株式会社日立製作所,「<証明書検証サーバ>製品紹介」http://www.hitachi.co.jp/Prod/comp/app/kensho/product.html,平成27年9月24日取得
技术实现要素:
发明要解决的技术问题
以往,在SSL/TLS等密码通信中,出于认证通信对方的目的,利用电子证书。但是,以往,通过进行终端的应用来检查电子证书,所以在应用的安装不完备的情况下,有可能与意料不到的通信目的地进行通信。
针对这样的问题,以往,提出了通过代理服务器来检查的方法、强化所利用的应用的检查功能的方法等,但在采用这样的方法的情况下,针对应用,需要进行用于利用代理服务器的设定、用于检查功能强化的设定等,有可能发生电子证书的漏检。
另外,在恶意软件中,为了与C&C服务器进行密码通信,也有时使用SSL/TLS协议,这样的恶意软件不使用正当的电子证书的情况也较多。并且,由于本来应该进行电子证书的检查的终端应用是恶意软件,所以在终端侧也难以检查这样的电子证书。
本公开鉴于上述问题,以降低电子证书的漏检作为课题。
解决技术问题的技术手段
本公开的一个例子涉及一种信息处理装置,具备:通信取得单元,其在连接于网络的第一终端与第二终端之间的通信到达对方侧终端之前取得该通信;协议分析单元,其通过对通过所述通信取得单元取得的通信的协议进行分析,确定该通信中包含的会话确立用消息,该会话确立用消息包含成为保密的对象的会话中的通信对方的电子证书;证书提取单元,其从通过所述协议分析单元确定了的所述会话确立用消息中提取电子证书;以及检查单元,其检查所提取出的所述电子证书。
本公开能够作为信息处理装置、系统、通过计算机执行的方法或者使计算机执行的程序来把握。另外,本公开也能够设为将这样的程序记录于计算机之外的装置、机械等可读的记录介质中来把握。此处,计算机等可读的记录介质是指能够通过电、磁、光学、机械或者化学作用来累积数据、程序等信息、并且从计算机等读取的记录介质。
发明效果
根据本公开,能够降低电子证书的漏检。
附图说明
图1是示出实施方式的系统的结构的概略图。
图2是示出实施方式的网络监视装置的硬件结构的图。
图3是示出实施方式的网络监视装置的功能结构的概略的图。
图4是示出实施方式的数据处理的流程的流程图。
图5是示出实施方式的检查处理的流程的流程图。
图6是示出实施方式的SSL/TLS会话确立处理和在这之前执行的名字解析处理的流程的序列图。
图7是示出实施方式的SSL/TLS会话确立处理和在这之前执行的与代理服务器的会话确立处理的流程的序列图。
图8是示出实施方式的系统的结构的变形的概略图。
具体实施方式
以下,根据附图,说明本公开的信息处理装置、方法和程序的实施方式。但是,以下说明的实施方式是例示实施方式,并非将本公开的信息处理装置、方法和程序限定于以下说明的具体结构。在实施时,也可以适当采用与实施的形式相应的具体结构,并且进行各种改进、变形。
在本实施方式中,说明在用于监视网络的系统中实施本公开的信息处理装置、方法和程序的情况下的实施方式。但是,本公开的信息处理装置、方法和程序能够针对用于检查电子证书的技术而广泛使用,本公开的应用对象不限定于在本实施方式中示出的例子。
<系统的结构>
图1是示出本实施方式的系统1的结构的概略图。本实施方式的系统1具备连接多个信息处理终端90(以下,称为“节点90”)的网络分段2以及用于监视与节点90相关的通信的网络监视装置20。另外,网络分段2内的节点90能够经由路由器10来与经由因特网、广域网在远程位置连接了的各种服务器进行通信。在本实施方式中,网络监视装置20连接于网络分段2的开关或者路由器(在图1所示的例子中,路由器10)与处于其上级的其他开关或者路由器之间,从而取得通过的数据包、帧等。在这种情况下,关于所取得的数据包中的可以不切断的数据包,网络监视装置20以进行转送的联机(inline)模式进行动作。
图2是示出本实施方式的网络监视装置20的硬件结构的图。此外,在图2中,关于网络监视装置20以外的结构(路由器10、节点90等),省略图示。网络监视装置20是具备CPU(Central Processing Unit,中央处理单元)11、RAM(Random Access Memory,随机存取存储器)13、ROM(Read Only Memory,只读存储器)12、EEPROM(Electrically Erasable and Programmable Read Only Memory,电可擦除可编程只读存储器)、HDD(Hard Disk Drive,硬盘驱动器)等存储装置14、NIC(Network Interface Card,网络接口卡)15等通信单元等的计算机。
图3是示出本实施方式的网络监视装置20的功能结构的概略的图。此外,在图3中,关于网络监视装置20以外的结构(路由器10和节点90等),省略图示。通过RAM13读出在存储装置14中记录的程序并通过CPU11来执行,从而网络监视装置20作为具备通信取得部21、流管理部22、协议分析部23、证书提取部24、识别信息提取部25、检查部26、信息取得部27、事件处理部28和通信切断部29的信息处理装置而发挥功能。此外,在本实施方式中,网络监视装置20具备的各功能通过作为通用处理器的CPU11来执行,但这些功能的一部分或者全部也可以通过一个或者多个专用处理器来执行。另外,这些功能的一部分或者全部也可以使用云技术等,通过在远程位置设置的装置、分散设置的多个装置来执行。
通信取得部21在通过与网络连接的终端发送接收的通信的数据到达对方侧终端之前取得该数据。此外,在本实施方式中,在成为由网络监视装置20实施的监视和探测的对象的“终端”中,除了与网络分段2连接了的节点90之外,还包括经由路由器10与节点90进行通信的其他终端(属于其他网络的节点、外部服务器等)。
流管理部22识别通过通信取得部21取得的数据属于的通信流(以下,也简称为“流”),另外,每当接收到属于各个流的数据时,根据所取得的数据、分析结果、检查结果来更新流表(省略图示),从而对流进行管理。此处,流是指用于识别TCP(Transmission Control Protocol,传输控制协议)的连接、SSL/TLS的会话等、1组数据的发送接收的单位。
在流表中,针对通过网络监视装置20取得的通信的每个流,管理与该流相关的信息(以下,称为“流关联信息”)。在本实施方式中,通过附加流ID来识别流,流管理部22能够将流ID作为关键字,从流表中检索出目标的流关联信息。另外,通过参照数据包的组头中包括的协议编号、发送源IP地址、接收方IP地址、发送源端口编号、接收方端口编号等来识别流。因此,当接收到与新的流相关的数据包时,流管理部22对流ID进行取号,保持与用于识别上述流的信息的对应关系。
进而,流管理部22利用通过通信取得部21取得的多个数据包,根据该多个数据包分别属于的流,组建在节点90与外部服务器等之间发送接收的通信的内容。
协议分析部23通过依照预先设定的协议的特征,对通过通信取得部21取得的对象数据进行分析,从而推测与该流相关的协议是否为某种协议。另外,协议分析部23通过参照通过流管理部22组建了的通信的内容,对协议进行分析,从而确定该通信中包括的、包括成为保密的对象的会话中的通信对方的电子证书的会话确立用消息(在本实施方式中,SSL/TLS握手)。
证书提取部24从通过协议分析部23确定了的会话确立用消息中,提取电子证书(服务器证书和/或认证中心证书)。
识别信息提取部25提取作为节点90的通信对方的服务器的识别信息。此处所提取的服务器的识别信息是例如FQDN(Fully Qualified Domain Name,完全合格域名)、IP地址等。另外,识别信息提取部25也可以通过各种方法提取服务器的识别信息。例如,识别信息提取部25能够从会话确立用消息(例如,ClientHello消息的SNI(Server Name Indication,服务器名称指示)字段)中提取通信对方的识别信息。除此之外,识别信息提取部25也可以从通过通信取得部21取得的通信中的、在会话确立用消息的发送接收之前在节点90与外部服务器等之间发送接收的通信中,提取通信对方的识别信息。此处所说的“在会话确立用消息的发送接收之前在节点90与外部服务器等之间发送接收的通信”是指例如用于名字解析的消息发送接收、用于确立与代理服务器的会话的三次握手等。
检查部26通过对电子证书中包括的一个或者多个规定的字段的值、与预先定义的、各字段的值可取到的范围进行比较,检查所提取出的电子证书。另外,检查部26根据从外部服务器取得的信息,检查电子证书。
另外,检查部26通过对通过识别信息提取部25提取出的通信对方的识别信息与电子证书(服务器证书)中包括的对象(subject)服务器信息进行比较,检查会话中的通信对方的正当性。
进而,检查部26通过对会话确立用消息中包括的、在将被确立的会话中使用的密码通信方式(加密套件)、与预先定义的、在设置有该信息处理装置的环境中被许可的密码通信方式进行比较,进一步检查该会话的安全强度。
信息取得部27从外部服务器(例如,认证中心)取得与电子证书有关的信息。在信息的取得中,能够利用CRL(Certificate Revocation List:证书吊销列表)、OCSP(Online Certificate Status Protocol,在线证书状态协议)等。
事件处理部28在通过协议分析部23或者检查部26探测到事件的情况下,保存与该事件相关的日志(证迹)或者将探测到该事件通知给用户。在本实施方式中,作为被探测的事件,例如有不正当的电子证书的通信、不正当的通信对方、不满足安全策略的通信、未按照协议的通信、利用恶意软件进行的通信等。更具体地说,事件处理部28在检查部26的检查结果不满足规定的基准的情况下,对节点90、外部服务器等或者该信息处理装置的管理者发送通知(警告)。进而,事件处理部28将检查部26的检查结果作为日志累积到存储装置14等中。
通信切断部29在检查部26的检查结果不满足规定的基准的情况下,例如在判定为检查结果不正常的情况下,切断节点90与外部服务器等之间的通信。此外,在本实施方式中,说明了在判定为检查结果不正常的情况下采取切断该终端的通信的应对措施的例子,但在判定为检查结果不正常的情况下的应对方法不限定于切断通信。网络监视装置20在判定为检查结果不正常的情况下,既可以进行警报(警告)的通知,也可以进行对进行不正常的通信的终端的修复(例如,恶意软件的去除、漏洞的去除)。
此外,网络监视装置20例如能够使用对节点90进行利用ARP伪装的数据包发送目的地的引导的方法、指示路由器10放弃与节点90相关的通信的方法、或者变更节点90属于的VLAN而进行隔离的方法等来切断通过节点90进行的通信。另外,网络监视装置20也能够直接切断节点90接收或者发送的通信。另外,网络监视装置20能够使用向管理服务器、节点90、预先设定的管理者终端等发送通知数据包、邮件等的方法、经由网络监视装置20自身设置的显示装置(显示器、LED等)而进行警告显示的方法等来通知警报。
<处理的流程>
接下来,使用流程图,说明通过本实施方式的系统1来执行的处理的流程。此外,以下说明的流程图所示的处理的具体内容和处理顺序是用于实施本公开的一个例子。具体的处理内容和处理顺序也可以根据本公开的实施方式而适当选择。
图4是示出本实施方式的数据处理的流程的流程图。每当通过网络监视装置20取得在网络上传输的数据时,执行本实施方式的数据处理。
在步骤S101中,取得数据。通信取得部21取得在网络上传输的、与节点90和外部服务器等之间的通信相关的数据。此处,流管理部22通过参照包括对象数据的数据包的组头等,识别对象数据属于的流,在将数据分割成多个数据包的情况下,等待被分割而得到的多个数据包的接收,从而取得规定的单位的数据。
更具体地说,当通过通信取得部21而新取得通信(输入数据包)时,流管理部22进行输入数据包的整形、分类以及向有效的既有流建立关联。另外,网络监视装置20针对输入数据包,按照终端单位(发送源/接收方IP地址(MAC地址)单位)、传输层和传输层的上级层的协议(TCP、UDP、ICMP、SSL/TLS等)单位进行分类并且与既有流关联起来。然后,流管理部22通过参照流表,取得与所识别出的流相关的信息。其后,处理前进到步骤S102。
在步骤S102和步骤S103中,进行对象数据是否为用于SSL/TLS协议的握手的消息的分析(parse)。协议分析部23参照对象数据,进行数据的分析处理、事务(transaction)的管理等的分析。例如通过预先定义的协议的与数据模型的比较等来进行分析。
但是,协议的分析中使用的方法不限定于本公开中的例示。例如,也可以使用针对和该协议分析部23相关的协议的与数据模型的一致点、不一致点而累积分数并且对该分数与阈值进行比较的方法,判定到此为止接收到的对象数据的与该协议的相似度,从而针对对象数据是否为该协议分析部23负责的协议进行分析。此外,在对象数据是与该流相关的第2次以后的数据的情况下,即在该协议分析部23以前分析过与该流相关的数据的情况下,在分析时,除对象数据之外,还参照直到上次为止的分析上下文。
在协议分析之后,在判定为对象数据不是SSL/TLS的握手消息的情况下,处理回到步骤S101。另一方面,在协议分析之后,在判定为对象数据是SSL/TLS的握手消息的情况下,处理前进到步骤S104。
在步骤S104至步骤S107中,根据消息的种类,取得检查所需的信息。协议分析部23判定所取得的SSL/TLS的握手消息是否为握手消息中的某一种消息(步骤S104)。
在消息的种类是ClientHello的情况下,识别信息提取部25从所取得的ClientHello消息的SNI字段中,提取作为节点90的通信对方的服务器的识别信息(具体地说,FQDN、IP地址等)(步骤S105)。但是,也可以从在从节点90向服务器发送了的数据包中设定的接收方IP地址中,提取作为节点90的通信对方的服务器的识别信息。
另外,在消息的种类是ServerHello的情况下,协议分析部23从所取得的ServerHello消息中,提取被建议在将被确立的SSL/TLS的会话中使用的加密套件(密码通信方法,具体地说,加密方式、密钥的强度等)(步骤S106)。
另外,在消息的种类是从服务器发送了的Certificate的情况下,证书提取部24从所取得的Certificate消息中,提取作为节点90的通信对方的服务器的电子证书(服务器证书)(步骤S107)。
当进行SSL/TLS的握手消息中包括的各种信息得以提取后,处理前进到步骤S108。
在步骤S108中,判定检查所需的信息的取得处理是否完成。但是,“取得处理完成”不意味着在步骤S105至步骤S107中取得了能够取得的全部信息。关于详细情况在后面叙述,例如,由于服务器的识别信息也能够从ClientHello消息的SNI字段以外的数据包取得,所以如果从其他数据包的取得完成,则不需要步骤S105中的取得。另外,在出于某些理由(在数据包中不包括信息等理由)而在步骤S105至步骤S107中无法取得应取得的信息的情况下,也开始检查,所以判定为取得处理完成。在信息的取得处理未完成的情况下,处理回到步骤S101。另一方面,在信息的取得处理完成了的情况下,处理前进到步骤S109。
在步骤S109中,执行检查处理。在本实施方式的检查处理中,检查电子证书、会话中的通信对方的正当性和保密通信的安全强度等。关于检查的详细情况,参照图5而在后面叙述。当检查完成后,处理前进到步骤S110。
在步骤S110和步骤S111中,判定检查的结果,在检查结果不正常的情况下,进行事件处理。在判定为检查结果不正常的情况下,事件处理部28进行保存证迹、通知管理者等处理。另外,也可以通过通信切断部29来切断通信。此外,在判定为检查结果不正常的情况下的应对方法不限定于切断通信。网络监视装置20在判定为检查结果不正常的情况下,既可以进行警报(警告)的通知,也可以进行对进行不正常的通信的终端的修复(例如,恶意软件的去除、漏洞的去除)。其后,本流程图所示的处理结束。
图5是示出本实施方式的检查处理的流程的流程图。在参照图4来说明了的数据处理中,以调用了步骤S109所示的检查处理的情况为契机,执行本实施方式的检查处理。即,图5所示的流程图示出图4的步骤S109所示的检查处理的详细情况。
在步骤S201中,检查将被确立的会话中的通信对方的正当性。检查部26通过针对在到此为止的处理中得到的、作为节点90的通信对方的识别信息、与服务器证书中包括的对象服务器信息(具体地说,subject字段和subjectAltName字段的信息)的一致/不一致进行检查,从而检查将被确立的会话中的通信对方的正当性。此外,在未得到通信对方的识别信息的情况下,也可以跳过本步骤的处理。在判定为不是正当的通信对方的情况下,处理前进到步骤S205。另一方面,在判定为是正当的通信对方的情况下,处理前进到步骤S202。
在步骤S202中,检查所提取出的电子证书是否为正规的证书。检查部26例如按以下的次序,检查SSL服务器证书的正当性。
(1)监视SSL/TLS Handshake协议的Server Certificate消息。此外,在SSL会话的再利用(SSL会话高速缓冲)序列中,不发送Server Certificate消息,所以不检查该项目。
(2)检查Server Certificate消息中包括的SSL服务器证书的内容。例如,检查部26将不满足以下条件的证书视为不正当的SSL服务器证书。
·version字段的值是v3(0x02)(不认可v3以外的旧的形式)。
·validity字段的“notBefore”与“notAfter”的值是合理的(notBefore是相对于当前的过去,notAfter是相对于当前的未来)。
·针对extensions字段的“keyUsage(Id:2.5.29.15)”、“extKeyUsage(Id:2.5.29.37)”扩展字段设定正当的值(例如,确认设定了Digital Signature比特位、serverAuth(KeyPurposeId:1.3.6.1.5.5.7.3.1))。
(3)验证是正当的认证中心发行了的SSL服务器证书。例如,在满足以下的某个条件的情况下,视为自签名SSL服务器证书。
·issuer字段与subject字段的值一致。
·不是由可依赖的认证中心签名了的证书。
另外,当在证书链中包括认证中心证书的情况下,也可以使用同样的方法(各字段的内容检查),检查该认证中心证书。
在按以上的次序进行检查之后,在判定为电子证书不是正规的证书(是不正当的证书)的情况下,处理前进到步骤S205。另一方面,在判定为电子证书是正规的证书的情况下,处理前进到步骤S203。
另外,为了进行更详细的检查,网络监视装置20也可以确认所提取出的证书所表示的认证中心的存在,或者自发地获取证书的附加信息来检查。具体地说,信息取得部27从认证中心等外部服务器取得与电子证书有关的信息。在信息的取得中,能够利用CRL、OCSP等。然后,检查部26使用询问外部的服务(CRL、OCSP响应器等)而得到的信息,更准确地检查证书的有效性。检查部26对从外部取得的一个或者多个信息、与预先定义的、各信息的值可取到的范围进行比较,检查电子证书。另外,检查部26也可以使用上级的认证中心证书的密钥,进行检查服务器证书的签名这样的、通常的终端应用进行的检查。
在步骤S203中,检查在将被确立的会话中使用的加密套件的安全强度。检查部26对从会话确立用消息中提取出的加密套件的内容与预先设定的规定的基准进行比较。在判定为加密套件的安全强度不满足规定的基准(例如,通过管理者设定了的安全策略)的情况下,处理前进到步骤S205。另一方面,在判定为加密套件的安全强度满足规定的基准的情况下,处理前进到步骤S204。
在步骤S204中,作为检查结果,设定表示检查结果正常的意思的值。其后,本流程图所示的处理结束,回到图4所示的数据处理。
在步骤S205中,作为检查结果,设定表示检查结果不正常的意思的值。其后,本流程图所示的处理结束,回到图4所示的数据处理。
<变形1>
接下来,说明取得通信对方的信息的方法的变形。在节点90处终止通信的客户端应用保持自身想要连接的通信对方的信息,所以能够使用自身保持的通信对方的信息来检查通信对方的正当性,但本实施方式所示的网络监视装置20在传送路径上检查节点90的通信对方的正当性,所以不具有节点90的通信对方的信息。因此,网络监视装置20需要从通信数据取得节点90的通信对方的信息。通信对方的信息能够从以下的某一方中取得。
(1)节点90实际进行通信的服务器的接收方IP地址
(2)节点90在名字解析中使用的DNS查询和回复中包括的FQDN
(3)节点90针对HTTP代理请求隧道连接的CONNECT方法的URI
(4)节点90进行的SSL/TLS握手的ClientHello消息中包括的SNI字段
其中,关于(1)和(4),已经使用图4所示的流程图进行了说明,所以在下面,使用图6和图7来说明(2)和(3)。
图6是示出本实施方式的SSL/TLS会话确立处理和在这之前执行的名字解析处理的流程的序列图。该序列图所示的名字解析处理在使用图4和图5来说明了的数据处理和检查处理之前执行。在通过通信取得部21取得的通信被协议分析部23判定为是名字解析协议的情况下,识别信息提取部25从用于名字解析的消息(DNS查询或者回复)中,提取需要进行名字解析的通信对方的识别信息。即,在图6所示的例子中,识别信息提取部25从在会话确立用消息之前发送接收的通信的内容中,提取通信对方的识别信息。
然后,检查部26使用通过识别信息提取部25提取出的识别信息和在名字解析之后在步骤S105中取得的识别信息中的某一方或者双方,检查通信对方的正当性(关于检查的详细情况,参照步骤S201)。
图7是示出本实施方式的SSL/TLS会话确立处理和在这之前执行的与代理服务器的会话确立处理的流程的序列图。该序列图所示的与代理服务器的会话确立处理在使用图4和图5来说明了的数据处理和检查处理之前执行。在通过通信取得部21取得的通信被协议分析部23判定为是用于与代理服务器的连接确立的通信的情况下,识别信息提取部25从发送至代理服务器的会话确立用消息(HTTP CONNECT方法)中包括的、表示经由该中介服务器的通信的接收方的信息(URI)中,提取通信对方的识别信息。
其后,代理服务器(中介服务器)对节点90与外部服务器等之间的通信进行中介。即,在图6所示的例子中,识别信息提取部25从在会话确立用消息之前发送接收的通信的内容中,提取通信对方的识别信息。此外,在与代理服务器的会话确立后,SSL/TLS的会话确立用消息经由基于代理服务器的隧道进行发送接收。
然后,检查部26使用通过识别信息提取部25提取出的识别信息以及在与代理服务器的会话确立之后在步骤S105中取得的识别信息中的某一方或者双方,检查通信对方的正当性(关于检查的详细情况,参照步骤S201)。
<变形2>
在上述实施方式中,说明了以下的例子:网络监视装置20连接于开关或者路由器与处于其上级的其他开关或者路由器之间,从而取得通过节点90发送接收的数据包、帧等,对于可以不切断的数据包,以进行转送的联机模式进行动作(参照图1)。但是,上述实施方式所示的网络结构是用于实施本公开的一个例子,在实施时,也可以采用其他网络结构。
例如,网络监视装置20也可以通过与开关或者路由器(在图1所示的例子中,路由器10)的监控端口(镜像端口)连接,取得通过节点90发送接收的数据包、帧等(参照图8)。在这种情况下,网络监视装置20按不转送所取得的数据包的被动模式进行动作。另外,例如,网络监视装置20即使在不与监控端口(镜像端口)连接而仅与网络分段2连接的情况下,也包括不是发给自身的MAC地址的帧地全部取得在网络分段2中流过的帧,从而能够取得通过节点90发送接收的数据包、帧等。在这种情况下,网络监视装置20也按被动模式进行动作。另外,例如,网络监视装置20也可以内置于路由器或者开关中。
符号说明
1 系统
20 网络监视装置
90 节点。