一種可信工控終端及其構建方法
2023-07-10 07:56:21 3
一種可信工控終端及其構建方法
【專利摘要】本發明涉及一種可信工控終端及其構建方法。在工控終端建立信任根,信任根作為終端的信任源,保證啟動代碼和系統內核可信,將信任擴展到啟動代碼、系統內核;系統內核保證中間件和應用可信,進一步將信任擴展到中間件、應用。通過兩級信任擴展,即構建工控終端從信任根到應用的信任。本發明充分結合工控終端的實際運行及應用情況,在不影響工控終端正常運轉的前提下,設計了信任根功能模塊,從信任根建立到終端應用安全,可以有效保證工控終端的安全,為增強工控系統安全提供技術支撐。
【專利說明】一種可信工控終端及其構建方法
【技術領域】
[0001]本發明屬於工控系統安全領域,主要涉及工控系統終端安全,更確切地是涉及一種可信工控終端及其構建方法。
【背景技術】
[0002]隨著工業化與信息化進程的不斷交叉融合,越來越多的信息技術應用到了工業領域。工業控制系統越來越開放,打破了其原有的物理環境相對封閉性以及工業控制系統軟、硬體專用性,其安全受到了前所未有的威脅。而工業控制系統作為國家關鍵基礎設施的重要組成部分,其安全勢必關係到國家的戰略安全,為此各國都越來越重視工業控制系統安全。工業控制系統主要包含有數據採集與監視控制SCADA系統,以及可編程邏輯控制器PLC、遠程終端單元RTU等控制器設備終端,其中SCADA系統構成過程控制和監控網絡,控制器終端構成控制系統網絡。目前,有關工控系統安全的研究重點主要都集中在管理體制和標準規範建立,以及SCADA系統安全和網絡通信安全等技術方面。實際上,工控終端設備位於工程現場,直接完成現場的大部分控制功能和數據採集功能,是SCADA系統操控以及獲取數據的源,為此工控終端安全也是工控系統安全中不可或缺的一環。
[0003]可信計算技術是一種全新的解決終端安全的革命性技術,從體系結構出發,通過引入硬體晶片作為終端信任根,構建終端可信計算環境,達到從根本上提高終端安全的目的。國際可信計算組織TCG定義硬體晶片為可信平臺模塊TPM,中國可信計算工作組TCMU定義硬體晶片為可信密碼模塊TCM,TPM與TCM的主要不同在於支持的密碼算法不同(TPM只支持RSA密碼操作,不支持對稱密碼算法,TCM主要支持國內密碼算法包括SM2、SM3和SMS4),其他內部功能模塊(如密鑰管理體系、平臺配置寄存器PCR的操作使用等)大體類似,其對外都能提供終端信任鏈構建、數據封裝存儲、終端身份和狀態證明等可信計算功能。TCG和TCMU也分別針對TPM和TCM推出了相應的規範,並且市場上都已推出了相關產品。
[0004]然而,上述TPM/TCM晶片都是針對傳統PC終端的。與傳統PC終端相比,工控終端所處的物理環境更為複雜惡劣,其終端應用功能更為單一,而且終端硬體資源也比較稀缺,直接將TPM/TCM晶片應用到工控終端作為其信任根來增強其安全並不可取,TPM/TCM內部複雜的功能機制對於工控終端而言是個負擔,將嚴重影響其正常運行。工控終端直接放置在工程現場,其上只運行涉及現場控制、數據採集功能的應用,對於工控終端而言根本不涉及多個用戶操作使用的場景,且其應用功能單一、數量不多,也不需要涉及複雜的密鑰管理體系,所以TPM/TCM中的這部分相關功能對於工控終端的信任根是過量的。此外,為保證安全方便操作,工控終端應用可能還需要信任根提供公鑰操作、證書操作等功能,而這些都是TPM/TCM所不具備的。為此,必須保證在不影響工控終端正常運轉的前提下,充分結合其實際運行及應用情況,設計信任根功能模塊,為工控終端建立信任根,然後基於該信任根構建終端可信運行環境,保證終端運行代碼、數據的安全,從而保障工控終端的安全。
【發明內容】
[0005]本發明的目的在於提供一種可信工控終端及其構建方法,為工控終端建立信任根,信任根作為終端的信任源,具有對外提供安全保護的能力,依賴該信任根可以自保證終端啟動、運行代碼的安全,同時基於信任根為終端應用的數據存儲等提供安全保障。
[0006]本發明採用的技術方案如下:
[0007]一種可信工控終端,其包括:
[0008]信任根,用於計算工控終端系統啟動代碼、內核文件的完整性,並保證啟動代碼、內核文件的可信;
[0009]中間件,為應用提供訪問信任根功能的服務,並保證終端應用的數據安全;
[0010]系統內核,基於信任根計算中間件、應用代碼的完整性,並保證中間件、應用代碼的可信。
[0011]進一步的,所述信任根通過硬體晶片技術保證其安全可信。
[0012]進一步的,所述信任根是工控終端啟動運行的最起始部件,其功能模塊主要包括信任根管理模塊、密鑰管理模塊、證書管理模塊、密碼運算管理模塊、完整性管理模塊,分別定義如下:
[0013]所述信任根管理模塊的功能操作主要包括設置信任根狀態,以及信任根自檢操作;
[0014]所述密鑰管理模塊的功能操作主要包括生成對稱密鑰、非對稱密鑰,以及獲取非對稱密鑰的公鑰;
[0015]所述證書管理模塊的功能操作主要包括導入、導出公鑰證書;
[0016]所述密碼運算管理模塊的功能操作主要包括生成隨機數、對稱密鑰加解密、非對稱密鑰加解密、籤名和驗證,以及哈希操作;
[0017]所述完整性管理模塊的功能操作主要包括完整性存儲、完整性參考值導入、完整性驗證、完整性證明。
[0018]一種構建上述可信工控終端的方法,其步驟包括:
[0019]I)建立工控終端的信任根,組建信任根的功能模塊,主要包括信任根管理模塊、密鑰管理模塊、證書管理模塊、密碼運算管理模塊、完整性管理模塊;
[0020]2)信任根基於其密碼運算管理模塊計算工控終端系統啟動代碼、內核文件的完整性,並基於其完整性管理模塊保證啟動代碼、內核文件的可信;
[0021]3)構建中間件,為應用提供訪問信任根功能的服務;
[0022]4)系統內核基於信任根的密碼運算管理模塊計算中間件、應用代碼的完整性,並基於信任根的完整性管理模塊保證中間件、應用代碼的可信;
[0023]5)基於中間件服務保證終端應用的數據安全。
[0024]進一步的,所述信任根還有以下特性:
[0025]所述信任根狀態值有兩種,一種是Enabled,在該狀態下信任根可正常運轉,另一種是Disabled,在該狀態下信任根不可用;
[0026]所述信任根內置的密鑰槽數量有限,每個密鑰槽由一個密鑰句柄標識,對應不同的對稱密鑰和非對稱密鑰;
[0027]所述信任根執行生成對稱密鑰和非對稱密鑰操作時,需指定密鑰句柄,密鑰生成後將直接放置在該密鑰句柄對應的密鑰槽中,若密鑰槽中已有密鑰則直接用新生成的密鑰替換已有密鑰;
[0028]所述信任根密鑰中有一特殊的非對稱密鑰對即身份密鑰,用來標識工控終端身份;
[0029]所述信任根中的公鑰證書主要是指對應於身份密鑰的身份證書,以及驗證完整性參考值籤名的證書;
[0030]所述信任根中的完整性是指對代碼或數據執行哈希操作的結果;
[0031]所述信任根內置有完整性參考值列表,其中分別列出了啟動代碼、內核文件、中間件以及應用可信時對應的完整性值作為參考標準;
[0032]所述信任根中的完整性參考值可以通過完整性參考值導入操作來更新,將第三方發布的完整性參考值導入信任根之後,先用相應的證書驗證其確由可信方發布,然後再替換信任根內置的完整性參考值。
[0033]進一步的,所述信任根與終端系統其他部件的交互方式有兩種:
[0034]I)所述信任根的功能模塊提供的各操作都以命令接口的形式對外提供,主要是用於物理現場操作信任根和供系統內核調用;
[0035]2)所述信任根之上封裝一層即所述中間件,通過中間件對外提供部分功能操作接口,主要是供系統應用調用。
[0036]進一步的,所述信任根在執行命令操作時只能以單線程的方式處理。
[0037]進一步的,所述中間件向應用提供的功能接口主要包括密鑰生成、加解密、籤名驗證、完整性證明。
[0038]進一步的,所述中間件以系統服務的形式存在,具有以下特性:
[0039]所述中間件是終端應用訪問所述信任根的唯一入口 ;
[0040]所述中間件屏蔽了所述信任根的命令接口細節,提供的操作接口更抽象,具有更好的語義性;
[0041]所述中間件支持接口的多進程並發調用,並通過資源管理協調完成對所述信任根功能的串行調用。
[0042]進一步的,保證工控終端運行可信的方法如下:
[0043]I)所述信任根判定啟動代碼、內核文件可信後,運行啟動代碼加載系統內核進入系統,否則系統重啟;
[0044]2)所述系統內核判定中間件、應用代碼可信後,啟動運行中間件服務以及相應的應用,否則不運行。
[0045]進一步的,判定運行代碼可信的方法如下:
[0046]I)所述信任根以代碼為命令輸入數據,執行密碼運算管理模塊的哈希操作,其輸出為該代碼的完整性值;
[0047]2)所述信任根執行完整性管理模塊的完整性存儲操作,將代碼的完整性值存儲在信任根內部;
[0048]3)所述信任根執行完整性管理模塊的完整性驗證操作,將存儲的代碼的完整性值與內置的完整性參考值列表中相應的值進行比較驗證,若一致則認為代碼可信,否則認為代碼不可信。
[0049]進一步的,終端應用涉及的關鍵數據可以通過中間件服務提供的加解密功能來安全存儲,其加密密鑰位於信任根密鑰槽,加密時指定密鑰句柄即可。
[0050]進一步的,終端應用在與SCADA系統交互時,可以通過中間件服務提供的完整性證明功能來證明終端狀態的可信以保證交互順利,其證明主要通過身份密鑰對存儲在信任根內的完整性值籤名來完成。
[0051]本發明的有益效果:
[0052]本發明提出了一種構建可信工控終端的方法,從信任根建立到終端應用安全,可以有效保證工控終端的安全,為增強工控系統安全提供技術支撐。本發明充分結合工控終端的實際運行及應用情況,在不影響工控終端正常運轉的前提下,設計了信任根功能模塊,基於信任根功能保證系統運行代碼可信,同時以系統服務的形式構建了中間件為應用提供訪問信任根的功能接口,並基於中間件保證應用數據安全。
【專利附圖】
【附圖說明】
[0053]圖1為本發明實施例工控終端信任構建示意圖。
[0054]圖2為本發明實施例中工控終端信任根功能調用示意圖。
【具體實施方式】
[0055]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,可以理解的是,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
[0056]如圖1所示,是本發明實施例中工控終端信任構建示意圖。信任根是終端的信任源,信任根保證啟動代碼和系統內核可信,將信任擴展到啟動代碼、系統內核;系統內核保證中間件和應用可信,進一步將信任擴展到中間件、應用。通過兩級信任擴展,即構建工控終端從信任根到應用的信任。
[0057]信任根是以硬體晶片的方式實現,其功能模塊如圖2所示。信任根管理模塊是最基本的功能模塊,其信任根狀態設置等功能操作保證信任根可正常運行。密鑰管理模塊負責密鑰生成及管理功能,證書管理功能模塊負責公鑰證書的導入導出功能,密碼運算管理模塊負責各類密碼運算功能,完整性管理模塊負責完整性值的存儲、驗證、證明以及完整性參考值的導入功能。所有功能模塊的功能操作都可以物理現場操作或者供系統內核調用,而部分密鑰管理模塊、密碼運算管理模塊以及完整性管理模塊的功能操作可以通過中間件供應用調用。
[0058]所述密鑰管理模塊生成的密鑰都直接內置於信任根的密鑰槽中,通過密鑰槽對應的密鑰句柄來進行管理。密鑰槽對應的密鑰句柄有身份密鑰公鑰、身份密鑰私鑰、完整性參考值發布方公鑰,以及四個對稱密鑰。密鑰管理模塊在接收到生成密鑰的指令時,必須指定相應的密鑰句柄,在密鑰生成後將新密鑰放置在該密鑰句柄對應的密鑰槽中與該密鑰句柄相綁定。對於工控終端而言,其密鑰使用主要是終端應用用於數據安全處理,涉及的是對稱密鑰。由於工控終端的專用性以及功能的唯一性,通常一個終端上運行的應用只有一兩個。密鑰槽中的對稱密鑰句柄直接對應於具體的終端應用,應用通過中間件發出創建新密鑰的指令,信任根則新生成一個密鑰並與其密鑰句柄綁定。密鑰槽中的身份密鑰一般在工控終端信任根初始化時就內置好了,並與相應的密鑰句柄相綁定。
[0059]所述證書管理模塊將公鑰證書導入信任根或者從信任根導出時都需要指定該公鑰對應的密鑰句柄。信任根中存儲的公鑰證書主要是身份證書以及完整性參考值發布方證書,其中身份證書一般在信任根初始化時內置,並與身份密鑰公鑰句柄關聯,工控終端需要向遠程交互方證明自己身份時,需先向信任根發出導出身份密鑰公鑰對應證書的指令,然後將導出的身份證書發送給交互方;而完整性參考值發布方證書既可在信任根初始化時內置,也可在後期導入,在導入時需指定密鑰句柄為完整性參考值公鑰句柄,以建立導入證書與密鑰句柄之間的關聯。
[0060]所述密碼運算管理模塊實現的是國密標準密碼算法,包括SM2、SMS4等。雜湊運算主要用在驗證代碼的可信性時,其對代碼的雜湊結果即為該代碼的完整性值。對稱密碼加解密運算主要用在終端應用對關鍵數據的保護時,應用通過中間件發出加解密操作指令時需指定使用的密鑰句柄,即密鑰槽中的對稱密鑰句柄。非對稱密碼運算包括加解密和籤名驗證運算,其中使用較多的是籤名驗證運算,主要用在終端證明自身身份時,執行操作時指定的密鑰句柄為身份密鑰句柄。
[0061]所述完整性管理模塊記錄終端啟動運行涉及的各代碼完整性值,並基於完整性參考值驗證代碼完整性值的正確性。代碼的完整性值存儲在信任根的平臺配置寄存器PCR中,一個代碼對應一個PCR。信任根中內置的完整性參考值列表,列出了每個PCR的標準參考值,通過比較各PCR值與標準值的相符性即可判定相應代碼的可信性。完整性參考值可以在信任根初始化時內置,也可以後期導入更新,導入由發布方籤名的完整性參考值,經由信任根中存儲的完整性參考值發布方證書驗證其正確性之後,將替換現有參考值列表中的相應值。工控終端應用需要向遠程交互方證明自身狀態時,通過中間件發出完整性證明指令,即用身份密鑰對存儲的完整性值籤名,然後將籤名結果以及身份證書一併發送給遠程方,遠程方在驗證終端身份之後即可驗證終端狀態。
[0062]以上通過簡單的說明描述了本發明提供的可信工控終端構建方案,本領域的技術人員應該理解,在不超出本發明實質和範圍的情況下,可以進行修改。
【權利要求】
1.一種可信工控終端,其特徵在於,包括: 信任根, 用於計算工控終端系統啟動代碼、內核文件的完整性,並保證啟動代碼、內核文件的可信; 中間件,為應用提供訪問信任根功能的服務,並保證終端應用的數據安全; 系統內核,基於信任根計算中間件、應用代碼的完整性,並保證中間件、應用代碼的可?目。
2.如權利要求1所述的可信工控終端,其特徵在於:所述信任根通過硬體晶片技術保證其安全可信,是工控終端啟動運行的最起始部件,所述信任根包括如下模塊: 信任根管理模塊,用於設置信任根狀態,以及信任根自檢操作; 密鑰管理模塊,用於生成對稱密鑰、非對稱密鑰,以及獲取非對稱密鑰的公鑰; 證書管理模塊,用於導入、導出公鑰證書; 密碼運算管理模塊,用於生成隨機數、對稱密鑰加解密、非對稱密鑰加解密、籤名和驗證,以及哈希操作; 完整性管理模塊,用於完整性存儲、完整性參考值導入、完整性驗證以及完整性證明。
3.一種可信工控終端的構建方法,其步驟包括: 1)建立工控終端的信任根,組建信任根的功能模塊,主要包括信任根管理模塊、密鑰管理模塊、證書管理模塊、密碼運算管理模塊、完整性管理模塊; 2)信任根基於其密碼運算管理模塊計算工控終端系統啟動代碼、內核文件的完整性,並基於其完整性管理模塊保證啟動代碼、內核文件的可信; 3)構建中間件,為應用提供訪問信任根功能的服務; 4)系統內核基於信任根的密碼運算管理模塊計算中間件、應用代碼的完整性,並基於信任根的完整性管理模塊保證中間件、應用代碼的可信; 5)基於中間件服務保證終端應用的數據安全。
4.如權利要求3所述的方法,其特徵在於,所述信任根具有以下特性: 所述信任根狀態值有兩種,一種是Enabled,在該狀態下信任根可正常運轉,另一種是Disabled,在該狀態下信任根不可用; 所述信任根內置的密鑰槽數量有限,每個密鑰槽由一個密鑰句柄標識,對應不同的對稱密鑰和非對稱密鑰; 所述信任根執行生成對稱密鑰和非對稱密鑰操作時,需指定密鑰句柄,密鑰生成後將直接放置在該密鑰句柄對應的密鑰槽中,若密鑰槽中已有密鑰則直接用新生成的密鑰替換已有密鑰; 所述信任根密鑰中有一特殊的非對稱密鑰對即身份密鑰,用來標識工控終端身份;所述信任根中的公鑰證書主要是指對應於身份密鑰的身份證書,以及驗證完整性參考值籤名的證書; 所述信任根中的完整性是指對代碼或數據執行哈希操作的結果; 所述信任根內置有完整性參考值列表,其中分別列出了啟動代碼、內核文件、中間件以及應用可信時對應的完整性值作為參考標準; 所述信任根中的完整性參考值可以通過完整性參考值導入操作來更新,將第三方發布的完整性參考值導入信任根之後,先用相應的證書驗證其確由可信方發布,然後再替換信任根內置的完整性參考值。
5.如權利要求3所述的方法,其特徵在於,所述信任根與其他部件的交互方式有兩種:所述信任根的功能模塊提供的各操作都以命令接口的形式對外提供,用於物理現場操作信任根和供系統內核調用;所述信任根之上封裝一層即所述中間件,通過中間件對外提供部分功能操作接口,供系統應用調用。
6.如權利要求3所述的方法,其特徵在於,所述中間件以系統服務的形式存在,具有以下特性: 所述中間件是終端應用訪問所述信任根的唯一入口 ; 所述中間件屏蔽了所述信任根的命令接口細節,提供的操作接口更抽象,具有更好的語義性; 所述中間件支持接口的多進程並發調用,並通過資源管理協調完成對所述信任根功能的串行調用。
7.如權利要求6所述的方法,其特徵在於,所述中間件向應用提供的功能接口主要包括密鑰生成、加解密、籤名驗證、完整性證明。
8.如權利要求3所述的方法,其特徵在於,保證工控終端運行可信的方法是:所述信任根判定啟動代碼、內核文件可信後,運行啟動代碼加載系統內核進入系統,否則系統重啟;所述系統內核判定中間件、應用代碼可信後,啟動運行中間件服務以及相應的應用,否則不運行。
9.如權利要求3所述的方法,其特徵在於,判定運行代碼可信的方法是: a)所述信任根以代碼為命令輸入數據,執行密碼運算管理模塊的哈希操作,其輸出為該代碼的完整性值; b)所述信任根執行完整性管理模塊的完整性存儲操作,將代碼的完整性值存儲在信任根內部; c)所述信任根執行完整性管理模塊的完整性驗證操作,將存儲的代碼的完整性值與內置的完整性參考值列表中相應的值進行比較驗證,若一致則認為代碼可信,否則認為代碼不可信。
10.如權利要求3所述的方法,其特徵在於:終端應用涉及的關鍵數據通過中間件服務提供的加解密功能來安全存儲,其加密密鑰位於信任根密鑰槽,加密時指定密鑰句柄即可;終端應用在與SCADA系統交 互時,通過中間件服務提供的完整性證明功能來證明終端狀態的可信以保證交互順利,其證明通過身份密鑰對存儲在信任根內的完整性值籤名來完成。
【文檔編號】G06F21/57GK103902915SQ201410154970
【公開日】2014年7月2日 申請日期:2014年4月17日 優先權日:2014年4月17日
【發明者】汪丹, 徐震, 於愛民 申請人:中國科學院信息工程研究所