一種安全的工業(yè)控制系統(tǒng)通信方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種工業(yè)控制系統(tǒng)中設(shè)備之間進(jìn)行數(shù)據(jù)通信使用的安全方法,屬于網(wǎng) 絡(luò)信息安全技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002] 隨著工業(yè)化和信息化融合進(jìn)程的不斷推進(jìn),將電子信息技術(shù)廣泛應(yīng)用到工業(yè)生產(chǎn) 的各個環(huán)節(jié)將成為必然趨勢。工業(yè)控制系統(tǒng)也將逐漸打破了W往的封閉性,采用標(biāo)準(zhǔn)、通用 的通信協(xié)議及硬軟件系統(tǒng),從而面臨病毒、木馬、黑客入侵、拒絕服務(wù)等傳統(tǒng)的信息安全威 脅。而且由于工業(yè)控制系統(tǒng)多被應(yīng)用在電力、交通、石油化工、核工業(yè)等國家重要基礎(chǔ)設(shè)施 行業(yè)中,其安全事故造成的社會影響和經(jīng)濟(jì)損失會更為嚴(yán)重。工業(yè)控制安全勢必將提升為 國家安全戰(zhàn)略,并得到國家各個層面的重視。
[0003] 工業(yè)控制系統(tǒng)通常包含人機(jī)交互客戶端(HumanMachineInterfaceClient)、主 終端單元/人機(jī)交互服務(wù)端(MasterTerminalUnit/HumanMachineInterfaceServer)、 遠(yuǎn)程終端單元(RemoteTerminalUnit)和區(qū)域設(shè)備(FieldDevice)等組件。由于各個組 件在網(wǎng)絡(luò)中通常分布在不同的物理區(qū)域,所W該些設(shè)備之間的通信需要依賴于特定的通信 協(xié)議,從而完成控制命令和數(shù)據(jù)的傳輸。目前在工業(yè)控制領(lǐng)域已經(jīng)提出了一系列通信協(xié)議, 例如Mo化us、DNP3. 0和IEC60870。雖然該些協(xié)議得到了廣泛應(yīng)用,但是由于此類協(xié)議在設(shè) 計之初主要用于隔離環(huán)境下的工業(yè)控制系統(tǒng),沒有考慮安全性,所W缺乏認(rèn)證、授權(quán)和加密 等安全防護(hù)機(jī)制。隨著第H代工業(yè)控制系統(tǒng)趨于網(wǎng)絡(luò)化和智能化,一般的通信協(xié)議將無法 保障系統(tǒng)的安全性,惡意攻擊者可W對系統(tǒng)中的數(shù)據(jù)進(jìn)行竊取、篡改和偽造,甚至修改設(shè)備 參數(shù)使整個工業(yè)控制系統(tǒng)無法正常運轉(zhuǎn)。
【發(fā)明內(nèi)容】
[0004] 針對上述技術(shù)不足,本發(fā)明的主要目的是針對目前一般工業(yè)控制系統(tǒng)通信協(xié)議存 在的安全缺陷,基于H層通信模型提出了一種安全的工業(yè)控制系統(tǒng)通信協(xié)議的方法。
[0005] 本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
[0006] -種安全的工業(yè)控制系統(tǒng)通信方法,包括W下步驟:
[0007] 主站點的應(yīng)用層將命令/數(shù)據(jù)封裝成應(yīng)用層報文;安全傳輸層接收到應(yīng)用層報文 后進(jìn)行加密并封裝成傳輸層報文;數(shù)據(jù)鏈路層將接收到的傳輸層報文轉(zhuǎn)換為數(shù)據(jù)鏈路層 峽,發(fā)送至從站點;
[0008] 從站點接收到命令/數(shù)據(jù)后,首先由數(shù)據(jù)鏈路層進(jìn)行拆封為傳輸層報文,并發(fā)送 到安全傳輸層;安全傳輸層將傳輸層報文解密并拆封為應(yīng)用層報文并發(fā)送到應(yīng)用層;應(yīng)用 層對報文進(jìn)行提取得到命令/數(shù)據(jù)。
[0009] 所述主站點的應(yīng)用層將命令/數(shù)據(jù)封裝成應(yīng)用層報文包括W下步驟:
[0010] 在命令/數(shù)據(jù)前添加用于標(biāo)識的對象標(biāo)題,并在整個命令/數(shù)據(jù)的最前端添加請 求報頭/響應(yīng)報頭形成應(yīng)用層報文。
[0011] 所述請求報頭包括應(yīng)用控制段、功能碼;所述響應(yīng)報頭包括應(yīng)用控制段、功能碼和 內(nèi)部信號;所述應(yīng)用控制段從低位至高位依次為開始位、結(jié)束位、確認(rèn)碼、分段的序號。
[0012] 所述安全傳輸層接收到應(yīng)用層報文后進(jìn)行加密并封裝成傳輸層報文包括W下步 驟:安全傳輸層在接收到應(yīng)用層報文后,首先對報文內(nèi)的命令/數(shù)據(jù)進(jìn)行切分,然后使用對 稱加密算法對每個命令/數(shù)據(jù)塊進(jìn)行加密,并在后面附加消息認(rèn)證碼;然后在整個命令/數(shù) 據(jù)的前端添加傳輸報文頭形成傳輸層報文;
[0013] 所述傳輸層報文包括依次的傳輸報文頭、加密的用戶數(shù)據(jù)、消息認(rèn)證碼。
[0014] 所述傳輸報文頭從低位至高位依次為結(jié)束位、開始位、報文序號、加密算法類型、 哈希函數(shù)類型、消息認(rèn)證碼驗證反饋或保留位、保留位。
[0015] 所述數(shù)據(jù)鏈路層將接收到的傳輸層報文轉(zhuǎn)換為數(shù)據(jù)鏈路層峽包括W下步驟:數(shù)據(jù) 鏈路層接收到傳輸層報文后,對加密的命令/數(shù)據(jù)進(jìn)行切分,然后在每個命令/數(shù)據(jù)塊后附 加循環(huán)兀余碼,并在整個命令/數(shù)據(jù)塊前端添加數(shù)據(jù)鏈路峽頭形成數(shù)據(jù)鏈路層峽。
[0016] 所述數(shù)據(jù)鏈路峽頭的峽格式為順序的起始標(biāo)識、內(nèi)容區(qū)長度、峽控制字節(jié)、目的地 址、原地址、循環(huán)兀余碼。
[0017] 所述峽控制字節(jié)的峽格式包括依次的方向位、原發(fā)標(biāo)志位、峽計數(shù)位、峽計數(shù)或保 留位、峽計數(shù)有效位或數(shù)據(jù)流控位、功能代碼。
[0018] 所述由數(shù)據(jù)鏈路層進(jìn)行拆封為傳輸層報文包括W下步驟:
[0019] 數(shù)據(jù)鏈路層通過循環(huán)兀余碼驗證峽數(shù)據(jù)是否被破壞;如果被破壞,則丟棄該峽,女口 果沒被破壞,提取峽格式中的多個命令/數(shù)據(jù)塊并將其拼接為完整的傳輸層報文。
[0020] 所述安全傳輸層將傳輸層報文解密并拆封為應(yīng)用層報文包括W下步驟:
[0021] 安全傳輸層接收到傳輸層報文,使用設(shè)定的秘鑰通過消息認(rèn)證碼驗證報文完整, 然后解密密文獲得明文數(shù)據(jù);提取報文中的多個分塊的命令/數(shù)據(jù),拼接為應(yīng)用層報文。
[0022] 本發(fā)明具有W下有益效果及優(yōu)點:
[0023] 1.本發(fā)明可W保護(hù)控制命令和通信數(shù)據(jù)的完整性及機(jī)密性,增強系統(tǒng)的安全保護(hù) 能力。
[0024] 2.本發(fā)明將協(xié)議按照H層結(jié)構(gòu)建立,各層松散禪合,具有較高的靈活性。
[0025] 3.本發(fā)明的協(xié)議峽格式及報文格式最大程度上減少了兀余信息,保證了通信的高 效性和實用性。
【附圖說明】
[0026] 圖1為本發(fā)明的安全通信協(xié)議的協(xié)議找示意圖;
[0027] 圖2為站點間通信報文順序示意圖;
[0028] 圖3為協(xié)議執(zhí)行流程示意圖;
[0029] 圖4為應(yīng)用請求格式圖;
[0030] 圖5為應(yīng)用響應(yīng)格式圖;
[0031] 圖6為請求報頭格式圖;
[0032] 圖7為響應(yīng)報頭格式圖;
[0033] 圖8為應(yīng)用控制段格式圖;
[0034] 圖9為傳輸層報文格式圖;
[0035] 圖10為傳輸報文頭數(shù)據(jù)位格式圖;
[0036] 圖11為數(shù)據(jù)鏈路峽格式圖;
[0037] 圖12為峽頭控制字節(jié)數(shù)據(jù)位格式圖。
【具體實施方式】
[0038] 下面結(jié)合實施例對本發(fā)明做進(jìn)一步的詳細(xì)說明。
[0039] 本發(fā)明設(shè)計了一種基于H層網(wǎng)絡(luò)模型的安全工業(yè)控制系統(tǒng)通信協(xié)議,該協(xié)議由數(shù) 據(jù)鏈路層、安全傳輸層和應(yīng)用層共同組成,如圖1。
[0040] 本發(fā)明的通信協(xié)議包括W下步驟:
[0041] (1)主站點應(yīng)用層完成控制命令和數(shù)據(jù)的封裝。系統(tǒng)管理員通過人機(jī)交互客戶端 發(fā)出遠(yuǎn)程設(shè)備狀態(tài)變更指令,例如改變發(fā)動機(jī)轉(zhuǎn)速、改變傳感器采集頻率;
[0042] (2)主站點安全傳輸層接收應(yīng)用層的請求報文或響應(yīng)報文,對報文進(jìn)行安全封裝, 加密數(shù)據(jù)并附加消息認(rèn)證碼,完成封裝后傳遞到數(shù)據(jù)鏈路層;
[0043] (3)主站點數(shù)據(jù)鏈路層負(fù)責(zé)將協(xié)議找高層(安全傳輸層)提供的數(shù)據(jù)轉(zhuǎn)換成數(shù)據(jù)鏈 路層峽,W便通信信道傳輸;
[0044] (4)從站點數(shù)據(jù)鏈路層對其它設(shè)備發(fā)送到本站點的二進(jìn)制數(shù)據(jù)進(jìn)行拆封并傳遞到 協(xié)議找局層;
[0045] (5)從站點安全傳輸層接收數(shù)據(jù)鏈路層傳遞來的數(shù)據(jù),根據(jù)消息認(rèn)證碼驗證數(shù)據(jù) 的完整性巧日果驗證失敗則丟棄數(shù)據(jù)包并發(fā)出警告消息,驗證成功則進(jìn)行解密操作),解密 數(shù)據(jù)進(jìn)一步拆封報文并傳遞到應(yīng)用層。
[0046] (6)從站點應(yīng)用層獲取主站點發(fā)送的命令數(shù)據(jù),并將其交給區(qū)域設(shè)備完成執(zhí)行操 作。
[0047] W主站點的管理員發(fā)送命令到從站點執(zhí)行為例,具體說明該協(xié)議的執(zhí)行流程如下 (圖 3):
[0048] (1)主站點應(yīng)用層
[0049] 管理員在主站點客戶端輸入遠(yuǎn)程設(shè)備需要執(zhí)行的命令,應(yīng)用層對輸入的一個或多 個命令數(shù)據(jù)添加對象標(biāo)題進(jìn)行標(biāo)識,之后在整個數(shù)據(jù)的最前端添加請求報頭形成應(yīng)用層報 文,如圖4所示。如果站點發(fā)送的數(shù)據(jù)為響應(yīng)數(shù)據(jù)時,則應(yīng)該將請求報頭改為響應(yīng)報頭,女口 圖5所示。請求報頭和響應(yīng)報頭的格式說明如圖6和圖7,報頭的應(yīng)用控制碼格式如圖8所 /J、- 〇
[0050] (2)主站點安全傳輸層
[0051] 安全傳輸層在接收到應(yīng)用層傳來的報文后,首先按照255字節(jié)的分組長度對其進(jìn) 行切分,然后使用對稱加密算法對每個數(shù)據(jù)塊進(jìn)行加密,同時計算加密數(shù)據(jù)塊的消息認(rèn)證 碼并附加在其后。之后在數(shù)據(jù)的前端添加傳輸報頭形成傳輸層報文,如圖9所示。傳輸報 頭的數(shù)據(jù)位格式如圖10所示。
[0052] (3)主站點數(shù)據(jù)鏈路層
[0053] 數(shù)據(jù)鏈路層在接收到安全傳輸層傳來的報文后,按照16字節(jié)的分組長度對其進(jìn) 行切分,然后對每塊數(shù)據(jù)附加循環(huán)兀余碼,同時在數(shù)據(jù)前端添加數(shù)據(jù)鏈路峽頭形成數(shù)據(jù)鏈 路層峽