本發(fā)明涉及工業(yè)信息安全領(lǐng)域,更具體地,涉及一種SCADA系統(tǒng)及其RTU控制器雙向身份認證的方法及系統(tǒng)。
背景技術(shù):
SCADA(Supervisory Control And Data Acquisition,數(shù)據(jù)采集與監(jiān)視控制)系統(tǒng),其通過RTU(Remote Terminal Unit,遠程終端單元)實現(xiàn)對遠程現(xiàn)場信號、工業(yè)設(shè)備的監(jiān)測和控制。
在SCADA系統(tǒng)與其RTU之間進行通訊,以及RTU與其他RTU之間進行通訊時,為了使通訊雙方建立有效的安全訪問控制機制,避免無法進行身份識別和通訊數(shù)據(jù)未加密所導(dǎo)致的安全風(fēng)險。在SCADA系統(tǒng)與其RTU之間進行通訊,以及RTU與其他RTU之間進行通訊時,發(fā)起端與響應(yīng)端需要進行身份認證和通訊數(shù)據(jù)加密。
現(xiàn)有的RTU控制器及其與SCADA系統(tǒng)通信方法中,基于SSL通訊協(xié)議提供了一種雙向身份認證的方法,提供密鑰協(xié)商功能,但SSL通訊協(xié)議不提供密鑰更新功能,安全性較差。SSL協(xié)議基于TCP協(xié)議,因此難以應(yīng)用于非TCP協(xié)議的應(yīng)用場合。另一方面,SSL協(xié)議以及TCP/IP協(xié)議棧難以移植到資源有限的RTU控制器中。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明提供了一種SCADA系統(tǒng)及其RTU控制器雙向身份認證的方法及系統(tǒng),不依賴任何現(xiàn)有通訊協(xié)議,在身份認證期間進行會話密鑰協(xié)商,身份認證過程簡單高效,安全性高。
具體技術(shù)方案如下:
一種雙向身份認證方法,應(yīng)用于發(fā)起端,所述方法包括:
在預(yù)設(shè)周期內(nèi)向響應(yīng)端或證書服務(wù)器請求響應(yīng)端的數(shù)字證書;
接收所述響應(yīng)端的數(shù)字證書,并對所述響應(yīng)端的數(shù)字證書進行可信性識別,若所述響應(yīng)端的數(shù)字證書可信,從所述響應(yīng)端的數(shù)字證書中提取所述響應(yīng)端公鑰;
生成發(fā)起端隨機數(shù)并存儲,用所述響應(yīng)端公鑰加密攜帶有所述發(fā)起端隨機數(shù)與發(fā)起端設(shè)備信息的認證挑戰(zhàn)信息,并將所述認證挑戰(zhàn)信息發(fā)送到所述響應(yīng)端;
接收并使用私鑰解密所述響應(yīng)端發(fā)送的響應(yīng)端身份認證信息,獲取發(fā)起端隨機數(shù)、響應(yīng)端隨機數(shù)和會話密鑰;
判斷獲取的發(fā)起端隨機數(shù)與存儲的所述發(fā)起端隨機數(shù)是否一致,若一致,判定響應(yīng)端身份認證成功;
用所述會話密鑰加密攜帶有所述響應(yīng)端隨機數(shù)的發(fā)起端身份認證信息,并將所述發(fā)起端身份認證信息發(fā)送到所述響應(yīng)端,使所述響應(yīng)端判斷發(fā)起端身份認證是否成功。
優(yōu)選的,所述數(shù)字證書為公鑰證書,所述公鑰證書包括公鑰信息,所述對所述響應(yīng)端的數(shù)字證書進行可信性識別,包括:對公鑰證書的簽名、設(shè)備信息和有效期進行驗證。
優(yōu)選的,當(dāng)所述響應(yīng)端身份認證成功或失敗后,所述發(fā)起端隨機數(shù)失效;當(dāng)所述發(fā)起端身份認證成功或失敗后,所述響應(yīng)端隨機數(shù)失效。
優(yōu)選的,所述方法還包括:
在所述預(yù)設(shè)周期結(jié)束后,所述發(fā)起端再次發(fā)起雙向身份認證。
一種發(fā)起端,包括:
請求單元,用于在預(yù)設(shè)周期內(nèi)向響應(yīng)端或證書服務(wù)器請求響應(yīng)端的數(shù)字證書;
可信性識別單元,用于接收所述響應(yīng)端的數(shù)字證書,并對所述響應(yīng)端的數(shù)字證書進行可信性識別,若所述響應(yīng)端的數(shù)字證書可信,從所述響應(yīng)端的數(shù)字證書中提取所述響應(yīng)端公鑰;
第一加密單元,用于生成發(fā)起端隨機數(shù)并存儲,用所述響應(yīng)端公鑰加密攜帶有所述發(fā)起端隨機數(shù)與發(fā)起端設(shè)備信息的認證挑戰(zhàn)信息,并將所述認證挑戰(zhàn)信息發(fā)送到所述響應(yīng)端;
解密單元,用于接收并使用私鑰解密所述響應(yīng)端發(fā)送的響應(yīng)端身份認證信息,獲取發(fā)起端隨機數(shù)、響應(yīng)端隨機數(shù)和會話密鑰;
判斷單元,用于判斷獲取的發(fā)起端隨機數(shù)與存儲的所述發(fā)起端隨機數(shù)是否一致,若一致,判定響應(yīng)端身份認證成功;
第二加密單元,用于用所述會話密鑰加密攜帶有所述響應(yīng)端隨機數(shù)的發(fā)起端身份認證信息,并將所述發(fā)起端身份認證信息發(fā)送到所述響應(yīng)端,使所述響應(yīng)端判斷發(fā)起端身份認證是否成功。
一種雙向身份認證方法,應(yīng)用于響應(yīng)端,所述方法包括:
在預(yù)設(shè)周期內(nèi)接收并使用私鑰解密發(fā)起端發(fā)送的認證挑戰(zhàn)信息,獲取并存儲所述認證挑戰(zhàn)信息中的發(fā)起端隨機數(shù)和發(fā)起端設(shè)備信息;
根據(jù)所述發(fā)起端的設(shè)備信息向所述發(fā)起端或證書服務(wù)器請求所述發(fā)起端的數(shù)字證書;
接收所述發(fā)起端的數(shù)字證書,并對所述發(fā)起端的數(shù)字證書進行可信性識別,若所述發(fā)起端的數(shù)字證書可信,從所述發(fā)起端的數(shù)字證書中提取所述發(fā)起端公鑰;
生成響應(yīng)端隨機數(shù),并生成另一組隨機數(shù)作為會話密鑰,將所述響應(yīng)端隨機數(shù)和所述會話密鑰進行存儲;
用所述發(fā)起端公鑰加密攜帶有所述響應(yīng)端隨機數(shù)、會話密鑰和所述發(fā)起端隨機數(shù)的響應(yīng)端身份認證信息,并將所述響應(yīng)端身份認證信息發(fā)送到所述發(fā)起端;
當(dāng)所述響應(yīng)端身份認證成功后,接收并用所述會話密鑰解密發(fā)起端身份認證信息,獲取響應(yīng)端隨機數(shù);
判斷獲取的響應(yīng)端隨機數(shù)與存儲的所述響應(yīng)端隨機數(shù)是否一致,若一致,判定發(fā)起端身份認證成功。
一種響應(yīng)端,包括:
第一解密單元,用于在預(yù)設(shè)周期內(nèi)接收并使用私鑰解密發(fā)起端發(fā)送的認證挑戰(zhàn)信息,獲取并存儲所述認證挑戰(zhàn)信息中的發(fā)起端隨機數(shù)和發(fā)起端設(shè)備信息;
請求單元,用于根據(jù)所述發(fā)起端的設(shè)備信息向所述發(fā)起端或證書服務(wù)器請求所述發(fā)起端的數(shù)字證書;
可信性識別單元,用于接收所述發(fā)起端的數(shù)字證書,并對所述發(fā)起端的數(shù)字證書進行可信性識別,若所述發(fā)起端的數(shù)字證書可信,從所述發(fā)起端的數(shù)字證書中提取所述發(fā)起端公鑰;
生成單元,用于生成響應(yīng)端隨機數(shù),并生成另一組隨機數(shù)作為會話密鑰,將所述響應(yīng)端隨機數(shù)和所述會話密鑰進行存儲;
加密單元,用于用所述發(fā)起端公鑰加密攜帶有所述響應(yīng)端隨機數(shù)、會話密鑰和所述發(fā)起端隨機數(shù)的響應(yīng)端身份認證信息,并將所述響應(yīng)端身份認證信息發(fā)送到所述發(fā)起端;
第二解密單元,用于當(dāng)所述響應(yīng)端身份認證成功后,接收并用所述會話密鑰解密發(fā)起端身份認證信息,獲取響應(yīng)端隨機數(shù);
判斷單元,用于判斷獲取的響應(yīng)端隨機數(shù)與存儲的所述響應(yīng)端隨機數(shù)是否一致,若一致,判定發(fā)起端身份認證成功。
一種雙向身份認證系統(tǒng),包括:上述發(fā)起端和上述響應(yīng)端,所述發(fā)起端與所述響應(yīng)端之間通信連接。
優(yōu)選的,所述系統(tǒng)還包括證書服務(wù)器。
相對于現(xiàn)有技術(shù),本發(fā)明的有益效果如下:
本發(fā)明提供的一種SCADA系統(tǒng)及其RTU控制器雙向身份認證的方法及系統(tǒng),不依賴于任何現(xiàn)有的通訊協(xié)議,基于公鑰加密,結(jié)合公鑰證書的可信性識別和隨機數(shù)技術(shù),實現(xiàn)SCADA系統(tǒng)與其RTU控制器,以及RTU控制器與其他RTU控制器的雙向身份認證,其身份認證信息加密后傳輸,保證了第三方無法探測其身份認證信息,身份認證信息中加入隨機數(shù)防止信息重放,有效地進行身份鑒別。本發(fā)明還實現(xiàn)了密鑰管理功能,在進行雙向身份認證的同時進行會話密鑰協(xié)商,解決了身份認證后傳輸數(shù)據(jù)加密的問題,同時,通過周期性地進行身份認證以更新會話密鑰,提高了系統(tǒng)的安全性。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實施例公開的一種雙向身份認證方法流程圖;
圖2為本發(fā)明實施例公開的一種發(fā)起端結(jié)構(gòu)示意圖;
圖3為本發(fā)明實施例公開的一種雙向身份認證方法流程圖;
圖4為本發(fā)明實施例公開的一種響應(yīng)端結(jié)構(gòu)示意圖;
圖5為本發(fā)明實施例公開的一種雙向身份認證系統(tǒng)結(jié)構(gòu)示意圖;
圖6為本發(fā)明實施例公開的一種雙向身份認證系統(tǒng)結(jié)構(gòu)示意圖。
具體實施端式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
請參閱圖1,本實施例公開了一種雙向身份認證方法,應(yīng)用于發(fā)起端,以SCADA系統(tǒng)為發(fā)起端,RTU控制器為響應(yīng)端為例,包括以下步驟:
S101:在預(yù)設(shè)周期內(nèi)向響應(yīng)端或證書服務(wù)器請求響應(yīng)端的數(shù)字證書;
需要說明的是,預(yù)設(shè)周期可以根據(jù)實際需要進行設(shè)定,在預(yù)設(shè)周期內(nèi)SCADA系統(tǒng)與其RTU控制器之間只需進行一次雙向身份認證,預(yù)設(shè)周期結(jié)束后,會話密鑰失效,SCADA系統(tǒng)再次發(fā)起與其RTU控制器之間的雙向身份認證,實現(xiàn)會話密鑰的定期更新以提高系統(tǒng)安全性。
還需要說明的是,SCADA系統(tǒng)的數(shù)字證書可以存儲在證書服務(wù)器中,也可以存儲在SCADA系統(tǒng)中,RTU控制器的數(shù)字證書可以存儲在證書服務(wù)器中,也可以存儲在RTU控制器中。
S102:接收所述響應(yīng)端的數(shù)字證書,并對所述響應(yīng)端的數(shù)字證書進行可信性識別,若所述響應(yīng)端的數(shù)字證書可信,從所述響應(yīng)端的數(shù)字證書中提取所述響應(yīng)端公鑰;
具體的,所述數(shù)字證書為公鑰證書,所述公鑰證書包括公鑰信息,所述對所述響應(yīng)端的數(shù)字證書進行可信性識別,包括:對公鑰證書的簽名、設(shè)備信息和有效期進行驗證。
S103:生成發(fā)起端隨機數(shù)并存儲,用所述響應(yīng)端公鑰加密攜帶有所述發(fā)起端隨機數(shù)與發(fā)起端設(shè)備信息的認證挑戰(zhàn)信息,并將所述認證挑戰(zhàn)信息發(fā)送到所述響應(yīng)端;
具體的,RTU控制器接收并使用私鑰解密SCADA系統(tǒng)發(fā)送的認證挑戰(zhàn)信息,獲取并存儲所述認證挑戰(zhàn)信息中的SCADA系統(tǒng)隨機數(shù)和SCADA系統(tǒng)的設(shè)備信息;RTU控制器根據(jù)所述SCADA系統(tǒng)的設(shè)備信息向所述SCADA系統(tǒng)或證書服務(wù)器請求所述SCADA系統(tǒng)的數(shù)字證書;RTU控制器接收所述SCADA系統(tǒng)的數(shù)字證書,并對所述SCADA系統(tǒng)的數(shù)字證書進行可信性識別,若所述SCADA系統(tǒng)的數(shù)字證書可信,從所述SCADA系統(tǒng)的數(shù)字證書中提取所述SCADA系統(tǒng)公鑰;RTU控制器生成RTU控制器隨機數(shù),并生成另一組隨機數(shù)作為會話密鑰,將所述RTU控制器隨機數(shù)和所述會話密鑰進行存儲;RTU控制器用所述SCADA系統(tǒng)公鑰加密攜帶有所述RTU控制器隨機數(shù)、會話密鑰和所述SCADA系統(tǒng)隨機數(shù)的RTU控制器身份認證信息,并將所述RTU控制器身份認證信息發(fā)送到所述SCADA系統(tǒng)。
需要說明的是,當(dāng)RTU控制器身份認證成功或失敗后,SCADA系統(tǒng)隨機數(shù)失效,有效地防止重放、偽裝攻擊,提高了系統(tǒng)的安全性。
可以理解的是,在上述過程中,同時完成了會話密鑰的分發(fā),并在以下身份驗證的過程中同時完成會話密鑰的驗證,提高了系統(tǒng)的效率。
S104:接收并使用私鑰解密所述響應(yīng)端發(fā)送的響應(yīng)端身份認證信息,獲取發(fā)起端隨機數(shù)、響應(yīng)端隨機數(shù)和會話密鑰;
S105:判斷獲取的發(fā)起端隨機數(shù)與存儲的所述發(fā)起端隨機數(shù)是否一致,若一致,判定響應(yīng)端身份認證成功;
可以理解的是,若獲取的SCADA系統(tǒng)隨機數(shù)與存儲的所述SCADA系統(tǒng)隨機數(shù)不一致時,RTU控制器的身份認證失敗。
S106:用所述會話密鑰加密攜帶有所述響應(yīng)端隨機數(shù)的發(fā)起端身份認證信息,并將所述發(fā)起端身份認證信息發(fā)送到所述響應(yīng)端,使所述響應(yīng)端判斷發(fā)起端身份認證是否成功。
具體的,RTU控制器接收并用所述會話密鑰解密SCADA系統(tǒng)身份認證信息,獲取RTU控制器隨機數(shù);RTU控制器判斷獲取的RTU控制器隨機數(shù)與存儲的所述RTU控制器隨機數(shù)是否一致,若一致,判定SCADA系統(tǒng)身份認證成功。
可以理解的是,當(dāng)RTU控制器判斷獲取的RTU控制器隨機數(shù)與存儲的所述RTU控制器隨機數(shù)是不一致時,SCADA系統(tǒng)身份認證失敗。
基于上述實施例公開的雙向身份認證方法,本實施例對應(yīng)公開了一種發(fā)起端,請參閱圖2,具體包括:
請求單元101,用于在預(yù)設(shè)周期內(nèi)向響應(yīng)端或證書服務(wù)器請求響應(yīng)端的數(shù)字證書;
可信性識別單元102,用于接收所述響應(yīng)端的數(shù)字證書,并對所述響應(yīng)端的數(shù)字證書進行可信性識別,若所述響應(yīng)端的數(shù)字證書可信,從所述響應(yīng)端的數(shù)字證書中提取所述響應(yīng)端公鑰;
第一加密單元103,用于生成發(fā)起端隨機數(shù)并存儲,用所述響應(yīng)端公鑰加密攜帶有所述發(fā)起端隨機數(shù)與發(fā)起端設(shè)備信息的認證挑戰(zhàn)信息,并將所述認證挑戰(zhàn)信息發(fā)送到所述響應(yīng)端;
解密單元104,用于接收并使用私鑰解密所述響應(yīng)端發(fā)送的響應(yīng)端身份認證信息,獲取發(fā)起端隨機數(shù)、響應(yīng)端隨機數(shù)和會話密鑰;
判斷單元105,用于判斷獲取的發(fā)起端隨機數(shù)與存儲的所述發(fā)起端隨機數(shù)是否一致,若一致,判定響應(yīng)端身份認證成功;
第二加密單元106,用于用所述會話密鑰加密攜帶有所述響應(yīng)端隨機數(shù)的發(fā)起端身份認證信息,并將所述發(fā)起端身份認證信息發(fā)送到所述響應(yīng)端,使所述響應(yīng)端判斷發(fā)起端身份認證是否成功。
請參閱圖3,本實施例公開了一種雙向身份認證方法,應(yīng)用于響應(yīng)端,具體包括以下步驟:
S201:在預(yù)設(shè)周期內(nèi)接收并使用私鑰解密發(fā)起端發(fā)送的認證挑戰(zhàn)信息,獲取并存儲所述認證挑戰(zhàn)信息中的發(fā)起端隨機數(shù)和發(fā)起端設(shè)備信息;
S202:根據(jù)所述發(fā)起端的設(shè)備信息向所述發(fā)起端或證書服務(wù)器請求所述發(fā)起端的數(shù)字證書;
S203:接收所述發(fā)起端的數(shù)字證書,并對所述發(fā)起端的數(shù)字證書進行可信性識別,若所述發(fā)起端的數(shù)字證書可信,從所述發(fā)起端的數(shù)字證書中提取所述發(fā)起端公鑰;
S204:生成響應(yīng)端隨機數(shù),并生成另一組隨機數(shù)作為會話密鑰,將所述響應(yīng)端隨機數(shù)和所述會話密鑰進行存儲;
S205:用所述發(fā)起端公鑰加密攜帶有所述響應(yīng)端隨機數(shù)、會話密鑰和所述發(fā)起端隨機數(shù)的響應(yīng)端身份認證信息,并將所述響應(yīng)端身份認證信息發(fā)送到所述發(fā)起端;
S206:當(dāng)所述響應(yīng)端身份認證成功后,接收并用所述會話密鑰解密發(fā)起端身份認證信息,獲取響應(yīng)端隨機數(shù);
S207:判斷獲取的響應(yīng)端隨機數(shù)與存儲的所述響應(yīng)端隨機數(shù)是否一致,若一致,判定發(fā)起端身份認證成功。
以上步驟以SCADA系統(tǒng)為發(fā)起端,RTU控制器為響應(yīng)端為例,具體說明請參閱圖1對應(yīng)的實施例,在此不再贅述。
基于上述實施例公開的雙向身份認證方法,本實施例對應(yīng)公開了一種響應(yīng)端,請參閱圖4,具體包括:
第一解密單元201,用于在預(yù)設(shè)周期內(nèi)接收并使用私鑰解密發(fā)起端發(fā)送的認證挑戰(zhàn)信息,獲取并存儲所述認證挑戰(zhàn)信息中的發(fā)起端隨機數(shù)和發(fā)起端設(shè)備信息;
請求單元202,用于根據(jù)所述發(fā)起端的設(shè)備信息向所述發(fā)起端或證書服務(wù)器請求所述發(fā)起端的數(shù)字證書;
可信性識別單元203,用于接收所述發(fā)起端的數(shù)字證書,并對所述發(fā)起端的數(shù)字證書進行可信性識別,若所述發(fā)起端的數(shù)字證書可信,從所述發(fā)起端的數(shù)字證書中提取所述發(fā)起端公鑰;
生成單元204,用于生成響應(yīng)端隨機數(shù),并生成另一組隨機數(shù)作為會話密鑰,將所述響應(yīng)端隨機數(shù)和所述會話密鑰進行存儲;
加密單元205,用于用所述發(fā)起端公鑰加密攜帶有所述響應(yīng)端隨機數(shù)、會話密鑰和所述發(fā)起端隨機數(shù)的響應(yīng)端身份認證信息,并將所述響應(yīng)端身份認證信息發(fā)送到所述發(fā)起端;
第二解密單元206,用于當(dāng)所述響應(yīng)端身份認證成功后,接收并用所述會話密鑰解密發(fā)起端身份認證信息,獲取響應(yīng)端隨機數(shù);
判斷單元207,用于判斷獲取的響應(yīng)端隨機數(shù)與存儲的所述響應(yīng)端隨機數(shù)是否一致,若一致,判定發(fā)起端身份認證成功。
基于上述實施例公開的發(fā)起端和響應(yīng)端,本實施例公開了一種雙向身份認證系統(tǒng),請參閱圖5,包括:
上述實施例公開的發(fā)起端301和上述實施例公開的響應(yīng)端302,所述發(fā)起端和所述響應(yīng)端通信連接。
請參閱圖6,所述雙向身份認證系統(tǒng)還包括證書服務(wù)器303,在雙向身份認證過程中,發(fā)起端301向證書服務(wù)器303請求響應(yīng)端302的數(shù)字證書,并接收來自證書服務(wù)器303反饋的響應(yīng)端302的數(shù)字證書;響應(yīng)端302向證書服務(wù)器303請求發(fā)起端301的數(shù)字證書,并接收來自證書服務(wù)器303反饋的發(fā)起端301的數(shù)字證書。
對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。