技术领域
[0001] 本发明涉及一种MMS报文的在线分析方法,具体涉及一种支持IEC62351加密的MMS报文在线分析方法。
相关背景技术
[0002] 在线报文分析一直是通信领域用于调试通信故障和进行通信状态在线监控的重要手段,一般是通过软件或硬件抓取通信各方发出的报文,然后实时分析并显示报文内容或者发出故障告警。然而,随着电力自动化通信技术的发展,信息安全的重要性慢慢凸显,为了加强已有电力通信标准的安全性,国际电工委员会发布了用于对电力通信标准进行安全增强的IEC62351标准,对通信报文进行了加密及扩展认证信息等处理,给在线报文分析带来了困难。
[0003] MMS(Manufacturing Message Specification:制造报文规范)是在ISO/IEC9506中规定的用于工业控制的通信标准,在IEC61850-8-1中被用来传输中低速报文和文件。在IEC62351标准第4部分中,对MMS通信报文在传输层和应用层都进行了安全增强。
[0004] IEC62351对IEC61850的安全增强主要包括以下三个方面:
[0005] 1.在传输层使用SSL/TLS协议加密;
[0006] 2.在应用层,在建立MMS关联时进行双向身份认证;
[0007] 3.在GOOSE和SV报文中增加签名字段保证完整性。
[0008] IEC62351在传输层使用SSL/TLS协议,通过建立安全连接,对MMS原有的传输层报文进行了加密处理。
[0009] IEC62351要求双方在other-mechanism-value字段中传输双方的证书及对本地时间的签名,以便通信双方彼此进行身份认证。由于没有对原有的报文结构进行改变,只是对原有字段的细化,因此不会对报文分析产生影响。
[0010] 可见,对IEC62351标准加密的MMS报文进行在线分析,需要解决的最主要的问题就是对SSL/TLS加密的通信数据包进行解密。
具体实施方式
[0037] 一种支持IEC62351加密MMS报文在线分析方法,其特征在于包括如下步骤:
[0038] 步骤一、客户端和服务器(即图1中的通讯方A和通讯方B)建立SSL/TLS连接,使用SSL/TLS握手协议进行身份认证,并产生对MMS报文加密的主密钥;
[0039] 步骤二、客户端和服务器分别与报文分析工具建立SSL/TLS连接,在确认报文分析工具身份可靠后,均将步骤一中产生的主密钥使用报文分析工具的数字证书进行加密并通过SSL/TLS连接发送给报文分析工具,报文分析工具将主密钥存储于密钥库中;
[0040] 步骤三、客户端和服务器使用SSL/TLS协议收发MMS报文,同时报文分析工具抓取到双方发送的MMS报文,并使用存储的主密钥对MMS报文进行解密;
[0041] 步骤四、当客户端和服务器的安全连接满足密钥重协商条件时,客户端和服务器协商产生新的主密钥并与报文分析工具建立SSL/TLS连接,通过SSL/TLS连接加密发送给报文分析工具,报文分析工具更新密钥库中存储的主密钥用于后续的MMS报文解密。
[0042] SSL协议分为握手协议和记录协议两部分:握手协议用于客户端与服务器进行身份认证、协商加密算法和交换加密密钥等;记录协议用于提供数据封装、压缩和加密功能。
[0043] 握手协议过程如下文所述:
[0044] (1)客户端向服务器传送客户端SSL协议的版本号,加密算法的种类,产生的随机数,以及其他服务器和客户端之间通讯所需要的各种信息;
[0045] (2)服务器向客户端传送SSL协议的版本号,加密算法的种类,随机数以及其他相关信息,同时服务器还将向客户端传送自己的证书;
[0046] (3)客户端利用服务器传过来的信息验证服务器的合法性,服务器的合法性包括:证书是否过期,发行服务器证书的CA是否可靠,发行者证书的公钥能否正确解开服务器证书的“发行者的数字签名”等。如果合法性验证没有通过,通讯将断开;如果合法性验证通过,将继续进行(4);(4)客户端随机产生一个用于后面通讯的“对称密钥”,然后用服务器的公钥(服务器的公钥从步骤(2)中的服务器的证书中获得)对其加密,然后将加密后的“预主密钥”传给服务器。
[0047] (5)如果服务器要求客户的身份认证(在握手过程中为可选),用户可以建立一个随机数然后对其进行数据签名,将这个含有签名的随机数和客户自己的证书以及加密过的“预主密钥”一起传给服务器。
[0048] (6)如果服务器要求客户的身份认证,服务器必须检验客户证书和签名随机数的合法性,具体的合法性验证过程包括:客户的证书使用日期是否有效,为客户提供证书的CA是否可靠,发行CA的公钥能否正确解开客户证书的发行CA的数字签名,检查客户的证书是否在证书废止列表(CRL)中。检验如果没有通过,通讯立刻中断;如果验证通过,服务器将用自己的私钥解开加密的“预主密钥”,然后执行一系列步骤来产生主通讯密钥,客户端也将通过同样的方法产生相同的主通讯密钥。
[0049] (7)服务器和客户端用相同的主密钥,一个对称密钥用于SSL协议的安全数据通讯的加解密通讯。同时在SSL通讯过程中还要完成数据通讯的完整性,防止数据通讯中的任何篡改。
[0050] (8)客户端向服务器端发出信息,指明后面的数据通讯将使用的步骤(7)中的主密钥为对称密钥,同时通知服务器客户端的握手过程结束。
[0051] (9)服务器向客户端发出信息,指明后面的数据通讯将使用的步骤(7)中的主密钥为对称密钥,同时通知客户端服务器端的握手过程结束。
[0052] (10)SSL的握手部分结束,SSL安全通道的数据通讯开始,客户和服务器开始使用相同的对称密钥进行数据通讯,同时进行通讯完整性的检验。
[0053] SSL记录协议对通信数据的处理过程如下文所述:
[0054] 发送方:
[0055] (1)从上层应用接受要发送的数据。
[0056] (2)对信息进行分段,分成若干纪录。
[0057] (3)使用双方商定的压缩算法进行数据压缩(可选)。
[0058] (4)使用双方商定的MAC算法生成MAC。
[0059] (5)使用双方商定的加密算法进行数据加密。
[0060] (6)添加SSL记录协议的消息头,发送数据。
[0061] 接收方:
[0062] (1)接收数据,从SSL记录协议的消息头中获取相关信息。
[0063] (2)使用双方商定的解密算法解密数据。
[0064] (3)使用双方商定的MAC算法校验MAC。
[0065] (4)使用双方商定的压缩算法对数据解压缩(在需要进行);
[0066] (5)将记录进行数据重组。
[0067] (6)将数据发送给上层应用。