1.一種基于SCADA系統的安全DNP協議的實現方法,包括MTU、MTU-BiTW、RTU、RTU-BiTW和HUB,其特征在于:主站通過人機接口控制主終端單元MTU發(fā)送請求到從站的遠程終端設備RTU,MTU與RTU發(fā)出、接收的均為未加密的DNP3數據包,通過外部BiTW模塊,對DNP3數據包進行轉換,在網絡傳輸中,透明地將DNPSec協議應用于傳輸;
其方法具體步驟如下:
步驟A、設置iptables表,具體如下:
1)、在MTU所在的主機上,設置iptables表,將與RTU相應的IP地址設置進iptables表中,使得與相應RTU通信的有關數據包都被插入QUEUE中;
2)、在RTU所在的主機上,設置iptables表,將與MTU相應的IP地址設置進iptables表中,使得與MTU相應的通信數據包都被插入QUEUE中;
步驟B、密鑰協商,具體如下:
1)、初始化BiTW時,對每一個RTU-BiTW端都使用CA簽發(fā)證書;
2)、RTU與MTU發(fā)生N次數據包交換后,通過密鑰協商為RTU-BiTW與MTU-BiTW之間交換一個對稱密鑰;
3)、N是可配置的、使用AES加密算法對包含密鑰的消息進行加解密;
步驟C、封包與解包,具體如下:
1)、iptables表在步驟A中已經被配置好,用來抓去相應的數據包,并放入QUEUE中;
2)、BiTW使用nfqueue將QUEUE中的數據包獲取到用戶態(tài)程序中;
3)、BiTW使用Scrapy庫,對nfqueue獲取到的數據包進行解包、修改、重封包;
4)、MTU-BiTW根據步驟2)、3),抓取從MTU發(fā)出的DNP3數據包,利用密鑰協商步驟獲取的對稱密鑰,對內容進行加密,增加認證信息,并將其轉換為DNPSec數據包;
5)、認證信息是通過SHA1算法,對DNP3協議中的KSN,DNP原始頭和內容進行計算得到。
2.根據權利要求1所述的一種基于SCADA系統的安全DNP協議的實現方法,其特征在于:步驟B中2)中交換對稱密鑰具體過程如下:
(1)、MTU-BiTW生成一個隨機數Random_M,發(fā)送至RTU-BiTW;
(2)、RTU-BiTW生成一個隨機數Random_R,連同證書發(fā)送給MTU-BiTW;
(3)、MTU-BiTW生成一個隨機數Pre-Master,使用RTU公鑰加密后,連同握手結束通知發(fā)送給RTU-BiTW;
(4)、最后,MTU-BiTW與RTU-BiTW完成了密鑰交換,交換的密鑰為:SecKey=Func(Random_M,Random_R,Pre-Master)。
3.根據權利要求1所述的一種基于SCADA系統的安全DNP協議的實現方法,其特征在于:步驟B中2)中交換對稱密鑰具體過程中,發(fā)送給MTU-BiTW的證書包含公鑰與驗證身份的信息。