本發明涉及計算機操作系統的信息安全領域,具體涉及一種基于可信執行環境(trusted?execution?environment,簡稱tee)的容器安全遷移方法。
背景技術:
1、容器作為云平臺對外提供服務的基礎,具有啟動速度快、占用系統資源少的優勢,同時由于其易于部署和便于移植的特點,目前已經被廣泛運用于現代大規模計算平臺。容器遷移指在網絡環境中將運行中的容器從一個主機遷移到另一個主機的過程。通過遷移技術,容器運行狀態可以快速地從一個物理機或虛擬機轉移到另一個物理機或虛擬機,從而確保服務的持續可用性而不會中斷。這有助于提升容器的持續可用性,增強容器云平臺的負載均衡和容災能力,同時有利于提升故障處理、資源調度和彈性擴展,可以為容器化應用程序提供更高的可靠性和可管理性。
2、容器安全遷移面臨著多方面的挑戰,包括安全性、數據完整性和可信性等方面。首先,容器共享宿主機內核,相較于普通應用程序,容器在不同平臺間遷移時存在更高的安全風險。惡意用戶可能利用偽裝的平臺身份進行中間人攻擊,進而危及整個云環境的安全。其次,遷移狀態信息通常包含敏感數據,而遷移數據的一致性對于順利恢復運行和系統穩定性至關重要,遷移節點間通過網絡進行通信而攻擊者可能截獲這些通信數據,在適當的時候發起重放攻擊。第三,在遷移過程中存在潛在的分叉或回滾攻擊風險。攻擊者可以通過在目標服務器上大規模啟動相同容器實例或者還原容器過期的運行狀態,以破壞遷移的可靠性。
3、可信執行環境tee(trusted?execution?environment)是一種融合了硬件和軟件特性的安全執行環境,被廣泛采用以實現安全的數據處理。不同于操作系統提供的普通執行環境,可信執行環境通過硬件支持提供了一種受保護的隔離區域,確保其中的代碼和數據可以在不受外部干擾的情況下運行。通過端到端的保護可信應用程序,可信執行環境能為涉及敏感數據的傳輸和處理提供機密性和完整性保護,進而提高整個運行環境的安全性。目前,可信執行環境被廣泛應用于諸如安全計算及安全認證等領域,尤其是在防范來自根用戶、操作系統、管理程序等特權攻擊方面發揮著重要作用。
4、為了解決容器遷移過程中的安全問題,目前容器安全遷移方法主要有:
5、1)公開號為【cn?116126475?a】的“一種安全驅動的云數據中心容器遷移方法”
6、公開了一種安全驅動的云數據中心容器遷移方法,通過獲取合法租戶和惡意租戶的容器信息,比較容器對不同資源的需求對服務器負載的影響,選擇要遷移的容器。該方法的研究重點在于將服務器負載和安全性這兩個優化目標進行歸一化求解,以降低數據中心的整體負載。然而,該方法執行的前提是默認遷移是已知合法租戶和惡意租戶的容器信息,在實際應用中很難準確獲取所有租戶的容器信息,導致該方法沒有普適性。其次該方法未利用可信硬件作為支撐,這可能導致安全性方面的不足。此外該方法無法有效抵御遷移引入的潛在攻擊手段如重放攻擊、分叉或回滾攻擊。
7、2)公開號為【cn?108076011?a】的“一種可信執行環境數據遷移方法及裝置”
8、公開了一種基于可信執行環境的數據遷移方法,通過加密的安全通道通過服務器與遷移端設備之間傳遞數據。然而,該方法主要針對移動設備,采用短信驗證碼的方式進行源平臺和目標平臺間的身份認證,這在其他設備端(例如臺式電腦、平板電腦等)的身份認證方面存在一定的不適用性。此外,它依賴于特定電信運營商的可信性,這限制了其通用性,并使其安全性受到特定電信運營商的制約。盡管端到端的數據加密在可信執行環境的保護下是安全的,但是在多設備多次數據遷移的情況下,通過設備公私鑰對建立的加密傳輸信道采用密鑰復用可能存在中間人攻擊的風險。這種情況可能導致數據泄露,從而無法確保遷移數據的安全性。此外,該方法也無法有效地抵御遷移引入的潛在攻擊手段,例如重放攻擊、分叉或回滾攻擊。
9、3)公開號為【cn?114461340?a】的“一種基于可信計算的容器實時遷移方法”
10、公開了一種基于可信計算的容器實時遷移方法。該方法通過普通執行環境遷移代理(與本發明第二安全通信代理類似)并結合可信平臺模塊,在安全的加密虛擬機中進行容器遷移。但部署該方法需要在遷移源平臺和遷移目標平臺上安裝安全的加密虛擬機,由于容器相對于虛擬機是一種輕量級的虛擬化,通過遷移虛擬機進而實現容器遷移的做法增加了部署的復雜性并大大增加了容器遷移所需時間。其次,遷移是由遷移源平臺發起的,僅對遷移目標平臺的身份進行單向驗證,缺乏對遷移發起端身份的確認機制,導致遷移目標平臺無法確定遷移請求的來源是否可信。此外,該方法在遷移敏感信息時未建立專門的加密信道,無法有效抵御遷移引入的潛在攻擊手段如重放攻擊、分叉或回滾攻擊。
11、上述現有技術雖試圖基于可信硬件解決容器遷移過程中的安全問題,但它們未能針對容器的特性解決遷移過程中的安全問題,且不能有效抵御遷移引入的潛在攻擊手段如重放攻擊、分叉或回滾攻擊。因此,如何解決容器的安全遷移仍然是該領域急需解決的關鍵問題。
技術實現思路
1、本發明要解決的技術問題是針對目前容器安全遷移方法中安全性不足、缺乏通用性,且不能有效抵御遷移引入的潛在攻擊手段如重放攻擊、分叉或回滾攻擊,有些方法還存在部署復雜的問題,提供一種基于可信執行環境的容器安全遷移方法。
2、本發明相對于現有技術的優勢在于充分考慮了容器輕量級和高度可移植的特點,并依托可信執行環境實現了全面的安全保障。通過在每個遷移節點利用硬件建立隔離的可信執行環境,確保操作的安全性,包括基于可信環境支持的加密、解密、完整性度量、驗證以及敏感數據保護等功能。在容器遷移過程中,采用雙向身份認證協議驗證遷移平臺的身份以預防中間人攻擊,并建立雙向加密的傳輸通道以防止敏感信息泄露。此外,為防范重放攻擊,在遷移源節點與遷移目標節點交互過程中采用附加隨機數的機制。同時,本發明提供遷移恢復保護機制以維護遷移恢復時容器運行的單容器性,確保遷移前后容器副本數量和運行狀態的一致性,從而解決遷移引入的重放攻擊、分叉和回滾攻擊,并避免不可信的云操作人員可能利用克隆或恢復過去運行狀態等手段來危害遷移系統的安全性。
3、本發明的技術方案包括以下步驟:
4、第一步,構建容器安全遷移系統。
5、遷移系統由一個控制節點、n個遷移節點(n≥2)、共享存儲服務器和容器鏡像倉庫組成。控制節點與n個遷移節點通過網絡相連,向遷移節點發送加密的容器遷移指令,從遷移節點接收加密的容器狀態信息。
6、共享存儲服務器作為遷移節點中容器的持久化數據卷存儲基礎設施,通常采用nvram(非易失性隨機存儲器)作為存儲介質,提供可靠的持久化存儲解決方案。通過掛載的方式將nvrm中的持久化數據卷與容器相連,以確保容器在遷移過程中能夠保留容器重要的狀態信息。共享存儲服務器通常以服務器的形式存在,并不直接部署容器。共享存儲服務器與n個遷移節點通過網絡相連,負責為遷移節點中的容器提供持久化存儲支持,確保容器的安全性和可靠性。
7、容器鏡像倉庫是專門存儲和管理容器鏡像的服務平臺。這些鏡像是獨立的軟件包,包含應用程序的代碼、運行時環境和依賴項,能夠在任何支持容器的平臺上運行。通常,容器鏡像倉庫以服務器的形式存在,并不直接部署容器,可以選擇使用docker官方鏡像倉庫,它可以維護容器在不同節點間遷移的正確性以及版本的一致性。容器鏡像倉庫與n個遷移節點通過網絡連接,實現容器鏡像的傳輸。
8、控制節點和n個遷移節點均部署了可信執行環境、普通執行環境。控制節點的可信執行環境中運行密鑰管理模塊、遷移控制模塊和第一安全通信模塊,普通執行環境運行第一安全通信代理。n個遷移節點的普通執行環境部署有若干個容器(不同遷移節點上的容器個數可以不同)、容器狀態轉儲模塊和第二安全通信代理,n個遷移節點的可信執行環境部署有身份認證模塊、度量與驗證模塊、單容器保護模塊和第二安全通信模塊。
9、控制節點的可信執行環境與其普通執行環境中的第一安全通信代理之間進行通信,遷移節點的可信執行環境與其普通執行環境中的第二安全通信代理之間通信。控制節點通過第一安全通信代理與n個遷移節點的第二安全通信代理之間通信,n個遷移節點之間通過第二安全通信代理通信。若遷移節點的第二安全通信代理接收到控制節點的第一安全通信代理傳來的加密的容器遷移指令,則該遷移節點為遷移源節點。若遷移節點的第二安全通信代理接收到另一遷移節點的第二安全通信代理傳來的身份認證挑戰,則該遷移節點為遷移目標節點。
10、控制節點中,遷移控制模塊與第一安全通信模塊、密鑰管理模塊相連,負責容器狀態管理、運行監控與決策、遷移流程管理以及安全驗證與監督。它從第一安全通信模塊接收控制節點所管理的n個遷移節點的容器狀態信息(該容器狀態信息包括容器的標識符、狀態、資源利用情況以及網絡狀態信息,容器的標識符是容器的唯一標識,狀態指容器當前運行狀態(包括已創建、停止運行、運行中、遷移中四種),資源利用情況指容器使用的資源信息(包括cpu、內存、磁盤等的信息),網絡狀態信息指容器的網絡相關信息(包括容器所在遷移節點的ip地址、其它n-1個遷移節點的ip地址、端口映射、網絡連接狀態等),根據容器狀態信息構建容器狀態列表,根據容器狀態列表中的狀態判斷是否需要進行容器遷移,并根據容器狀態信息更新容器狀態列表。所述容器狀態列表的每個表項包含四個域,分別為容器的標識符、狀態、資源利用情況以及網絡狀態信息。遷移控制模塊根據預設的遷移策略(如負載均衡或故障恢復),在n個遷移節點間對運行中的容器進行調度,包括:根據容器狀態列表生成遷移令牌(遷移令牌包括第一容器(指擬進行遷移的容器)的標識符以及遷移源節點和遷移目標節點ip地址),將遷移令牌發送給第一安全通信模塊;從第一安全通信模塊接收容器狀態變更指令,根據容器狀態變更指令更新容器狀態列表,并生成容器狀態更新完畢信號,將容器狀態更新完畢信號發送給第一安全通信模塊;遷移控制模塊通過比對預設的遷移策略生成遷移密鑰生成指令,將遷移密鑰生成指令發送給密鑰管理模塊。遷移控制模塊在遷移結束后比對從第一安全通信模塊接收的遷移源節點和遷移目標節點傳來的計數值,若二個計數值相等,則表示遷移過程中第一容器是唯一的,容器遷移成功完成,向第一安全通信模塊發送容器狀態變更完畢信息,第一安全通信模塊據此生成第一單容器保護指令、第二單容器保護指令,以防止惡意第三方啟動相同容器實例或還原容器過期的運行狀態,從而確保遷移的可靠性和安全性;若二個計數值不等則容器遷移過程可能受到分叉或回滾攻擊,遷移控制模塊生成容器停止指令,將容器停止指令發送給第一安全通信模塊。
11、遷移控制節點的第一安全通信模塊與遷移控制模塊、密鑰管理模塊、第一安全通信代理相連,從第一安全通信代理接收各遷移節點的容器狀態信息,將從第一安全通信代理接收的各遷移節點的身份公鑰(接收到的各遷移節點公鑰與ip地址由密鑰管理模塊統一管理,選取遷移源節點和遷移目的節點后發出)及遷移節點ip地址轉發至密鑰管理模塊。第一安全通信模塊生成并加密容器狀態查詢指令,接收并解密各遷移節點發來的容器狀態信息,將容器狀態信息轉發至遷移控制模塊。第一安全通信模塊從遷移控制模塊接收遷移令牌,從密鑰管理模塊接收遷移密鑰、遷移源節點身份公鑰,將遷移令牌、遷移密鑰打包成容器遷移指令,采用遷移源節點身份公鑰對容器遷移指令加密,將加密的容器遷移指令發送給第一安全通信代理。若第一安全通信模塊從第一安全通信代理接收到遷移源節點發來的加密的身份認證失敗信息,利用遷移源節點身份公鑰解密獲得身份認證失敗信息,退出本次遷移流程。若第一安全通信模塊從第一安全通信代理接收到遷移目標節點發來的加密的容器狀態文件完整性度量失敗信息,利用遷移密鑰解密獲得容器狀態文件完整性度量失敗信息,退出本次遷移流程。若第一安全通信模塊從第一安全通信代理接收到遷移目標節點發來的加密的遷移目標節點異常信息,利用遷移目標節點身份公鑰解密獲得遷移目標節點異常信息,退出本次遷移流程。若第一安全通信模塊從第一安全通信代理接收到遷移目標節點發來加密的第二容器(指遷移后的目標容器)狀態信息,利用遷移密鑰解密獲得第二容器狀態信息(即第二容器的標識符、狀態、資源利用情況以及網絡狀態信息),根據第二容器狀態信息生成容器狀態變更指令,并將容器狀態變更指令發送至控制節點的遷移控制模塊。若第一安全通信模塊從遷移控制模塊接收到包含第二容器標識符的容器狀態變更完畢信息,第一安全通信模塊根據容器狀態變更完畢信息生成包含第二容器標識符的遷移恢復指令,使用遷移密鑰對遷移恢復指令進行加密,并將加密的遷移恢復指令傳輸至第一安全通信代理。若第一安全通信模塊從第一安全通信代理接收到加密的第二容器運行失敗信息,用遷移密鑰解密,獲取第二容器啟動失敗信息并據此生成第二容器異常指令發送至遷移控制模塊,退出本次遷移流程。若第一安全通信模塊從第一安全通信代理接收到加密的第二容器遷移啟動成功信息,利用遷移密鑰解密獲得第二容器狀態信息及第二容器啟動成功信息,將第二容器狀態信息打包生成容器狀態變更指令發送至控制節點的遷移控制模塊。若第一安全通信模塊從遷移控制模塊接收到容器狀態變更完畢信息,根據該容器狀態變更完畢信息生成第一單容器保護指令(包含第一容器標識)及第二單容器保護指令(包含容器狀態文件標識(由第一容器標識派生)及遷移密鑰),采用遷移密鑰分別加密第一單容器保護指令及第二單容器保護指令,并傳輸至第一安全通信代理。若第一安全通信模塊從第一安全通信代理接收到遷移源節點發來的加密的第一容器刪除失敗信息,利用遷移源節點身份公鑰解密后獲得第一容器標識符及第一容器刪除失敗信息,生成第一容器異常信息發送至遷移控制模塊;若第一安全通信模塊從遷移控制模塊接收到第二容器停止指令(包含第二容器標識符),利用遷移目標節點身份公鑰加密第二容器停止指令并發送至第一安全通信代理。若第一安全通信模塊從第一安全通信代理接收到遷移目標節點發來的加密的容器狀態文件刪除失敗信息,利用遷移目標節點身份公鑰解密后獲得第二容器標識符及容器狀態文件刪除失敗信息,生成第二容器異常信息發送至遷移控制模塊;若第一安全通信模塊從遷移控制模塊接收到容器狀態更新完畢信號,根據容器狀態更新完畢信號生成遷移恢復指令,將遷移恢復指令發送給第一安全通信代理。若第一安全通信模塊從第一安全通信代理接收到第一計數值(由遷移源節點發送)、第二計數值(由遷移目標節點發送),將第一計數值和第二計數值均發送至遷移控制模塊。
12、密鑰管理模塊與第一安全通信模塊、遷移控制模塊相連,負責生成和管理用于容器遷移的遷移密鑰。在遷移準備時,該模塊接收從第一安全通信模塊發來的各遷移節點身份公鑰及對應各節點ip,對應存儲并管理;在遷移控制模塊選取遷移源節點和遷移目標節點后,密鑰管理模塊從遷移控制模塊接收遷移密鑰生成指令,生成遷移密鑰,隨后存儲遷移密鑰,并將遷移密鑰、各遷移節點身份公鑰分發給第一安全通信模塊。
13、第一安全通信代理與第一安全通信模塊、n個遷移節點的第二安全通信代理相連。第一安全通信代理是控制節點的可信執行環境與n個遷移節點之間的通信橋梁。其功能包括:接收并轉發各遷移節點的身份公鑰及ip地址至第一安全通信模塊;接收第一安全通信模塊發來的加密的容器狀態查詢指令,將加密的容器狀態查詢指令分別發送至n個遷移節點,待接收到加密的容器狀態信息后轉發至第一安全通信模塊;接收第一安全通信模塊發來的加密的容器遷移指令、遷移源節點ip地址及遷移目標節點ip地址,存儲本次容器安全遷移的遷移源節點ip地址及遷移目標節點ip地址,根據遷移源節點ip地址向遷移源節點發送加密的容器遷移指令;接收遷移源節點第二安全通信代理發來的加密的身份認證失敗信息、容器狀態文件完整性度量失敗信息、遷移目標節點異常信息、第二容器狀態信息、第二容器運行失敗信息、第二容器啟動成功信息、加密的第一容器刪除失敗信息、容器狀態文件刪除失敗信息,并將這些信息轉發至第一安全通信模塊;接收第一安全通信模塊發來的加密的遷移恢復指令,將其發送至遷移目標節點;接收第一安全通信模塊發來的加密的第一單容器保護指令、第二單容器保護指令,將加密的第一單容器保護指令發送至遷移源節點,將加密的第二單容器保護指令發送至遷移目標節點;接收第一安全通信模塊發來的加密的第二容器停止指令,并將其發送至遷移目標節點。
14、n個遷移節點的普通執行環境部署有若干個容器、容器狀態轉儲模塊和第二安全通信代理,n個遷移節點的可信執行環境部署有身份認證模塊、度量與驗證模塊、單容器保護模塊和第二安全通信模塊。
15、第二安全通信模塊與身份認證模塊、度量與驗證模塊、單容器保護模塊、容器狀態轉儲模塊和第二安全通信代理相連。它的主要功能是確保數據傳輸的機密性和完整性,并通過控制加密、解密、解析與其它遷移節點、控制節點之間的指令,確保遷移順利完成。當遷移節點為遷移源節點時:第二安全通信模塊負責接收并解密第二安全通信代理傳來的容器遷移指令,解析并存儲遷移密鑰、遷移令牌、遷移目標節點身份公鑰以便后續的身份認證和通信過程使用;根據解析得到的遷移令牌,第二安全通信模塊向身份認證模塊發起第一身份證書生成指令,并從身份認證模塊接收第一身份證書;第二安全通信模塊采用遷移源節點身份私鑰對第一身份證書加密生成第一身份認證挑戰,將第一身份認證挑戰和遷移目標節點ip地址發送至遷移源節點的第二安全通信代理;第二安全通信模塊從其它遷移節點接收并解密第二身份認證挑戰,得到第二身份證書,將第二身份證書及遷移目標節點身份公鑰發送給遷移源節點的身份認證模塊;若接收到度量與驗證模塊發來的驗證結果及單容器保護模塊發來的計數器值為零信息,此時遷移源節點的單容器保護模塊的計數器值歸零以便進行后續計數,對度量與驗證模塊發來的驗證結果進行判斷,如果驗證結果為第一隨機數和第二隨機數大小相等,則表示雙向身份認證成功,遷移繼續,從身份認證模塊接收到第三隨機數,將遷移密鑰、第三隨機數以及建立雙向加密傳輸信道所需的信息打包生成遷移信道建立指令,利用遷移目標節點身份公鑰加密該指令獲得加密的遷移信道建立指令;第二安全通信模塊接收并解密來自遷移目標節點的第二安全通信代理發來的加密的第三隨機數,將解密獲得的隨機數記為第四隨機數,并將第四隨機數、第三隨機數與第二安全通信模塊生成的驗證信息打包成第二隨機數驗證指令并發送該指令至度量與驗證模塊;根據度量與驗證模塊返回給第二安全通信模塊的第二隨機數驗證結果,如果驗證成功則表示安全傳輸信道建立完成,如果驗證失敗則第二安全通信模塊生成加密信道建立失敗信息,利用遷移目標節點身份私鑰加密后經第二安全通信代理轉發至控制節點;若接收的第二隨機數驗證結果為驗證成功,則第二安全通信模塊向遷移源節點的容器狀態轉儲模塊發送容器轉儲指令,以根據其當前狀態生成容器狀態文件;接收來自容器狀態轉儲模塊的容器狀態文件,將容器狀態文件轉發至度量與驗證模塊;接收度量與驗證模塊發來的第一度量值,向單容器保護模塊發送計數器值變更指令,將第一度量值及容器狀態文件打包得到容器遷移文件,使用遷移密鑰加密容器遷移文件,將加密的容器遷移文件傳輸至遷移源節點的第二安全通信代理;從第二安全通信代理接收加密的第一單容器保護指令并解密獲得第一單容器保護指令,并將加密的第一單容器保護指令轉發至單容器保護模塊,接收單容器保護模塊發送的第一容器刪除指令、遷移密鑰刪除指令,執行遷移密鑰的刪除操作,并向單容器保護模塊發送遷移密鑰刪除結果,同時將第一容器刪除指令轉發至容器狀態轉儲模塊;接收單容器保護模塊發送的第一容器刪除失敗信息,將其用遷移源節點身份私鑰加密后轉發至第二安全通信代理。如果第二安全通信模塊從度量與驗證模塊接收的第二隨機數驗證結果為兩個隨機數大小不等,則表示雙向身份認證失敗,說明遷移系統可能受到重放攻擊,第二安全通信模塊退出遷移;當遷移節點為遷移目標節點時:接收并解密加密的第一身份認證挑戰,獲得第一身份證書及遷移源節點身份公鑰,并將遷移源節點身份公鑰存儲起來;將第一身份證書、遷移源節點身份公鑰打包成第二身份證書生成指令,發送給遷移目標節點的身份認證模塊;從身份認證模塊接收第二身份證書,利用遷移源節點的身份公鑰對第二身份證書進行加密,生成第二身份認證挑戰,將第二身份認證挑戰發送至遷移目標節點的第二安全通信代理;從遷移目標節點的第二安全通信代理接收遷移源節點加密的遷移信道建立指令,使用遷移目標節點的身份私鑰解密遷移信道建立指令,從中獲取遷移密鑰、第三隨機數以及建立雙向加密傳輸信道所需的信息,存儲遷移密鑰;向單容器保護模塊發送計數器值歸零指令,以確保在建立雙向加密傳輸信道之前進行必要的準備工作,接收單容器保護模塊發來的計數器值為零的信息,表示準備工作已完成;利用獲取到的遷移密鑰對第三隨機數進行加密處理,然后將加密的第三隨機數發送至第二安全通信代理;利用遷移密鑰對接收到的加密容器遷移文件進行解密,根據得到的容器狀態文件和第一度量值生成容器狀態文件度量與驗證指令,將該指令發送至遷移目標節點的度量與驗證模塊,以驗證經遷移傳輸的容器狀態文件的完整性;如果第二安全通信模塊接收到的第一度量值與第二度量值比對結果一致,表明容器狀態文件在遷移過程中沒有被篡改或損壞,向單容器保護模塊發送計數器值變更指令;如果第一度量值與第二度量值比對結果不一致,即驗證失敗,第二安全通信模塊將驗證失敗信息及終止遷移請求打包為容器狀態文件完整性度量失敗信息,經遷移密鑰加密后發送給遷移目標節點的第二安全通信代理;當接收到容器狀態文件完整性驗證成功信息后,第二安全通信模塊讀取并存儲容器狀態文件,并從中獲取容器鏡像信息,基于容器鏡像信息生成容器創建指令,將容器創建指令發送至遷移目標節點的容器狀態轉儲模塊,并從容器狀態轉儲模塊接收第二容器創建結果(包括新容器即第二容器的標識符、狀態、資源利用情況以及網絡狀態信息),如果成功創建了新的容器,則將創建結果發送至控制節點,并根據容器創建結果讀取第二容器運行狀態,將其打包成第二容器狀態信息,利用遷移密鑰對該信息進行加密,并傳輸至遷移目標節點的第二安全通信代理,以便更新容器狀態列表;如果創建失敗,則生成容器創建失敗的信息,將容器創建失敗的信息發送至遷移目標節點的第二安全通信代理;第二安全通信模塊從第二安全通信代理接收加密的遷移恢復指令,利用遷移密鑰對其進行解密,第二安全通信模塊根據遷移恢復指令生成容器狀態文件,并根據第二容器標識符生成第二容器運行指令,將容器狀態文件和第二容器運行指令發送至遷移目標節點的容器狀態轉儲模塊;若第二安全通信模塊從容器狀態轉儲模塊收到容器啟動失敗信息,使用遷移密鑰加密容器啟動失敗信息并轉發至遷移目標節點的第二安全通信代理,以便終止本次遷移流程;若從第二安全通信模塊接收到密鑰刪除的刪除結果或容器狀態文件刪除的信息,將這些密鑰刪除的刪除結果或容器狀態文件刪除的信息發送至相應的第二安全通信模塊,并根據需要進行打包和加密操作,以保證信息的完整性和安全性;第二安全通信模塊從遷移目標節點的單容器保護模塊接收第二計數值,利用遷移目標節點身份私鑰加密第二計數值后發送至第二安全通信代理;從第二安全通信代理接收控制節點發來的加密的第二容器停止指令,利用遷移目標節點身份私鑰解密,將第二容器停止指令發送至容器狀態轉儲模塊,以觸發對第二容器的停止操作;第二安全通信模塊在從第二安全通信代理接收控制節點發來的加密的第二容器停止信息,利用遷移目標節點身份私鑰對第二容器停止信息進行加密,將加密后的第二容器停止信息發送至第二安全通信代理。
16、身份認證模塊與第二安全通信模塊、度量與驗證模塊相連,負責驗證遷移節點的身份并管理所屬遷移節點的身份私鑰和身份證書。身份認證模塊利用可信硬件的背書密鑰生成非對稱身份密鑰對,非對稱密鑰對由身份公鑰和身份私鑰組成。將身份公鑰發送到所屬遷移節點的第二安全通信模塊。同時,身份認證模塊保存從第二安全通信模塊接收到的其他遷移節點的身份公鑰。身份認證模塊還負責生成所屬遷移節點的身份證書(通過使用所屬遷移節點的身份私鑰對隨機數進行簽名生成)。在容器遷移前進行雙向身份認證挑戰時,遷移源節點將第一身份證書(遷移源節點的身份證書)發送給遷移源節點的第二安全通信模塊,遷移目標節點的身份認證模塊將第二身份證書(遷移目標節點的身份證書)發送給遷移目標節點的第二安全通信模塊。
17、度量與驗證模塊與第二安全通信模塊、身份認證模塊、單容器保護模塊相連,通過接收容器狀態文件并進行度量與驗證、收發度量值等功能,確保容器遷移過程中數據的完整性、可靠性和安全性。遷移源節點的度量與驗證模塊從第二安全通信模塊接收容器狀態文件,對容器狀態文件進行度量與驗證,生成第一度量值(用于評估容器狀態文件的完整性和正確性),將第一度量值發送給第二安全通信模塊。遷移目標節點的度量與驗證模塊從第二安全通信模塊接收容器狀態文件以及第一度量值,對容器狀態文件進行哈希計算,生成第二度量值,將第一度量值和第二度量值進行比對,得到容器狀態文件的驗證結果(若比對結果相等,說明容器狀態文件的完整,驗證結果為通過;若比對結果不相等,說明容器狀態文件不完整,驗證結果為不通過),將驗證結果發送給第二安全通信模塊。若驗證結果為通過,度量與驗證模塊生成計數器值變更指令,將計數器值變更指令發送給遷移目標節點的單容器保護模塊。若驗證結果為不通過,則容器狀態文件的完整性沒有得到保證,度量與驗證模塊退出本次遷移。
18、單容器保護模塊與第二安全通信模塊、度量與驗證模塊相互連接。單容器保護模塊內置一個可信的單調計數器,用于確保遷移前后容器數量的一致性和運行狀態的連續性。遷移源節點中,單容器保護模塊內的可信計數器根據度量與驗證模塊發來的第一計數器歸零指令置零,置零后向第二安全通信模塊返回計數器值為零信息,以確保計數器重置完畢以進行進一步的安全保障;單容器保護模塊從第二安全通信模塊接收第一單容器保護指令,根據預先定義的單容器保護策略(通常是要求刪除原容器及其生成的容器狀態文件)生成第一容器刪除指令,將第一容器刪除指令發送給第二安全通信模塊。單容器保護模塊從第二安全通信模塊接收容器轉儲模塊發來的第二容器刪除結果,更新計數器的值。在遷移目標節點中,單容器保護模塊內的可信計數器根據第二安全通信模塊發來的計數器值歸零指令置零,置零后向第二安全通信模塊返回計數器值為零信息,以確認計數器已成功重置,并繼續保障系統安全。單容器保護模塊從第二安全通信模塊接收第二單容器保護指令,生成刪除指令(要求容器狀態轉儲模塊刪除容器狀態文件),刪除指令經過第二安全通信模塊的轉發,并最終由容器狀態轉儲模塊執行刪除操作。單容器保護模塊從第二安全通信模塊接收容器狀態轉儲模塊發來的容器狀態文件刪除結果,并根據從度量與驗證模塊接收的計數器值更新指令更新計數器的值。當遷移源節點的單容器保護模塊和遷移目標節點的單容器保護模塊分別收到遷移密鑰刪除成功和容器狀態文件刪除結果后,如果容器狀態文件刪除失敗,將錯誤信息返回至第二安全通信模塊。在這種情況下,單容器保護模塊的計數器值不會發生改變。由于遷移密鑰一直保存在可信執行環境內,因此遷移密鑰的刪除結果始終為成功。如果遷移密鑰刪除結果與容器狀態文件刪除結果均為成功,遷移源節點的單容器保護模塊和遷移目標節點的單容器保護模塊將分別向本節點的第二安全通信模塊發送第一計數值與第二計數值。
19、容器狀態轉儲模塊與第二安全通信模塊和所屬遷移節點的m個容器相連,負責第一容器的狀態轉儲及恢復。遷移源節點的容器狀態轉儲模塊從第二安全通信模塊接收容器轉儲指令(包含第一容器的標識符),根據第一容器標識符,暫停第一容器的運行,并生成容器狀態文件,將容器狀態文件發送至第二安全通信模塊。遷移目標節點的容器狀態轉儲模塊根據從第二安全通信模塊接收容器創建指令、容器狀態文件,創建新的容器,并根據容器狀態文件恢復第二容器的運行狀態。容器狀態轉儲模塊根據從第二安全通信模塊接收的遷移恢復指令,根據遷移恢復指令進行容器狀態恢復操作。容器狀態轉儲模塊從第二安全通信模塊接收容器狀態文件刪除指令,根據容器狀態文件刪除指令刪除對應的容器狀態文件。容器狀態轉儲模塊從第二安全通信模塊接收到第二容器停止指令后,根據第二容器停止指令中的第二容器標識符和停止信息,對第二容器進行控制操作,直至第二容器完全停止運行。接著,通過查詢第二容器的運行狀態獲取第二容器處于停止狀態的信息,將第二容器處于停止狀態信息返回給第二安全通信模塊。
20、第二安全通信代理與第二安全通信模塊、其它遷移節點的第二安全通信代理、控制節點的第一安全通信代理相連。在容器遷移準備時,第二安全通信代理負責接收并存儲來自控制節點的加密的容器遷移指令、容器狀態查詢指令;接收到加密的容器遷移指令或容器狀態查詢指令后,第二安全通信代理將其轉發至第二安全通信模塊,讓第二安全通信模塊處理相應的加密信息;根據具體的操作需求,第二安全通信代理負責向遷移目標節點發送加密的身份認證挑戰,以進行身份認證和安全通信的建立;協助第二安全通信模塊對接收到的加密信息進行解密或加密操作,確保信息在傳輸過程中的安全性和完整性;接收來自遷移源節點的加密的第一身份認證挑戰,并將其傳遞給遷移目標節點的第二安全通信模塊;接收來自遷移目標節點的加密遷移信道建立指令,并將其轉發給遷移源節點的第二安全通信模塊;接收來自遷移源節點的加密的第二隨機數,并將其傳遞給遷移目標節點的第二安全通信模塊;接收來自遷移目標節點的加密完成消息,并將其傳遞給遷移源節點的第二安全通信模塊。在容器遷移時,第二安全通信代理負責接收加密的容器遷移文件并將其轉發至遷移目標節點的第二安全通信模塊,確保安全、可靠地完成容器遷移文件的傳輸;第二安全通信代理接收遷移源節點發來的加密的容器遷移文件,將其轉發至遷移目標節點的第二安全通信模塊,確保安全傳輸和轉發過程。第二安全通信代理接收并解密加密的容器狀態文件完整性度量失敗信息,將解密后的信息發送至控制節點,以便控制節點進行進一步處理;遷移目標節點的第二安全通信代理接收遷移目標節點發來的加密的遷移目標節點異常信息,并將其轉發至控制節點,確保異常信息能夠及時傳達給控制節點進行處理;遷移目標節點的第二安全通信代理接收加密的第二容器狀態信息,將其發送至控制節點,確保控制節點能夠獲取并處理相關的容器狀態信息;遷移目標節點的第二安全通信代理收到遷移目標節點的第二安全模塊發來的加密遷移失敗信息并轉發至控制節點,以便控制節點進行相關的處理;遷移目標節點的第二安全通信代理收到加密的第二容器啟動成功信息,將該信息轉發至控制節點的第一安全通信代理,確保控制節點能夠及時獲知有關容器啟動成功的信息;遷移源節點的第二安全通信代理接收加密的第一單容器保護指令,將加密的第一單容器保護指令轉發至遷移源節點的第二安全通信模塊,確保指令能夠準確傳達至遷移源節點。
21、第二步,遷移準備,方法是:
22、2.1n個遷移節點生成身份公鑰并將身份公鑰傳輸給控制節點,n個遷移節點的生成和傳輸方法一樣,其中第n(1≤n≤n)個遷移節點生成并傳輸其身份公鑰的方法是:
23、2.1.1第n個遷移節點的身份認證模塊利用可信硬件的背書密鑰生成相應的身份密鑰對,其中包括身份公鑰與身份私鑰,將身份公鑰發送至第n個遷移節點的第二安全通信模塊;
24、2.1.2第二安全通信模塊存儲身份公鑰,使用加密協議(例如安全套接層協議ssl、傳輸層安全協議tls)對身份公鑰進行加密,將加密的身份公鑰轉發至第n個遷移節點的第二安全通信代理。
25、2.1.3第n個遷移節點的第二安全通信代理向控制節點的第一安全通信代理發送身份公鑰;
26、2.1.4控制節點的第一安全通信代理根據其管理的ip地址范圍核對發送身份公鑰的ip地址,將身份公鑰及第n個遷移節點的ip地址轉發至第一安全通信模塊;
27、2.1.5控制節點的第一安全通信模塊將接收到的身份公鑰以及第n個遷移節點的ip地址轉發至控制節點的密鑰管理模塊。
28、2.1.6密鑰管理模塊將接收到的第n個遷移節點的ip地址與第n個遷移節點的身份公鑰對應存儲。
29、2.2控制節點監控并控制n個遷移節點容器狀態,方法是:
30、2.2.1控制節點的第一安全通信模塊定期(其間隔時間根據容器安全遷移系統實時性與系統整體負載狀況確定,一般為1秒~100秒)生成容器狀態查詢指令,使用n個遷移節點的身份公鑰分別加密容器狀態指令,將這n個加密的容器狀態查詢指令發送給第一安全通信代理。容器狀態查詢指令旨在獲取n個遷移節點的當前容器狀態信息,包括容器的標識符、狀態、資源利用情況以及網絡狀態信息。
31、2.2.2第一安全通信代理接收到加密的容器狀態查詢指令,根據n個遷移節點的ip地址將加密的容器狀態查詢指令轉發給各遷移節點的第二安全通信代理。
32、2.2.3各遷移節點的第二安全通信代理接收到控制節點發來的加密的容器狀態查詢指令,將加密的容器狀態查詢指令轉發至第二安全通信模塊。其中,第n個遷移節點的第二安全通信代理接收到第一安全通信代理發來的加密的容器狀態查詢指令,將加密的容器狀態查詢指令轉發至第n個遷移節點的第二安全通信模塊。各遷移節點的動作相同,后續動作以第n個遷移節點來描述。
33、2.2.4第n個遷移節點的第二安全通信模塊接收到加密的容器狀態查詢指令后,利用自身身份私鑰解密容器狀態查詢指令,將解密后的容器狀態查詢指令轉發至第n個遷移節點的容器狀態轉儲模塊。
34、2.2.5第n個遷移節點的容器狀態轉儲模塊根據容器狀態查詢指令查詢第n個遷移節點上容器的運行狀態,根據查詢結果生成容器狀態信息(包括容器的標識符、狀態、資源利用情況以及網絡狀態信息),將容器狀態信息轉發至第n個遷移節點的第二安全通信模塊。
35、2.2.6第n個遷移節點的第二安全通信模塊接收到容器狀態信息,采用第n個遷移節點的身份公鑰對容器狀態信息加密,將加密的容器狀態信息發送給第n個遷移節點的第二安全通信代理。
36、2.2.7第n個遷移節點的第二安全通信代理向控制節點的第一安全通信代理發送加密的容器狀態信息。
37、2.2.8控制節點的第一安全通信代理將加密的容器狀態信息及第n個遷移節點的ip地址一并發送給第一安全通信模塊。
38、2.2.9控制節點的第一安全通信模塊接收來自第一安全通信代理的加密的容器狀態信息及第n個遷移節點的ip地址,使用ip地址找到第n個遷移節點的身份公鑰。第一安全通信模塊利用該身份公鑰對加密信息進行解密,獲取容器狀態信息,將容器狀態信息轉發至遷移控制模塊。
39、2.3控制節點的遷移控制模塊根據容器狀態信息管理并維護n個遷移節點的容器狀態列表,根據容器狀態列表變更情況發起容器遷移,方法是:
40、2.3.1控制節點的遷移控制模塊根據第一安全通信模塊傳入的容器狀態信息,通過對比容器標識符,更新容器狀態列表中各遷移節點內容器的容器狀態信息。
41、2.3.2控制節點的遷移控制模塊根據更新后的容器狀態列表,結合當前所管轄容器的運行狀況和資源利用情況,判斷是否需要進行容器遷移。若同一節點上的容器運行狀態均未出現異常(即容器處于正常運行狀態,未發生崩潰、死鎖等錯誤;容器所使用的資源處于合理范圍內,未超過預設的閾值等),則無需進行容器遷移,轉2.3.3。若存在容器需要進行容器遷移(若存在多個容器則根據預先指令排序策略從前至后依次進行容器安全遷移,如可根據各遷移節點的cpu利用率,cpu利用率最高的遷移節點上的高資源利用率容器優先遷移至cpu利用率較低的遷移節點,同一遷移節點上的不同容器遷移過程中采用并行流水線策略),則將該容器標記為第一容器,第一容器所在的遷移節點為遷移源節點,除遷移源節點外的另n-1個遷移節點均可為遷移目標節點遷移目標節點確定方法是:查看各個節點的資源利用情況,包括cpu、內存、存儲等,選擇相對空閑的節點作為遷移目標(如果有多個符合條件的遷移目標節點,可以根據實際系統要求,如根據地理位置選擇最近的節點以減少網絡延遲),轉2.3.4。
42、2.3.3維持現有運行狀態,轉2.2繼續監控。
43、2.3.4控制節點的遷移控制模塊根據容器狀態列表生成遷移令牌,將遷移令牌及遷移源節點ip地址發送至第一安全通信模塊。同時向密鑰管理模塊發送遷移密鑰生成指令,該指令包含遷移源節點的ip地址和遷移目標節點的ip地址及要求通過密鑰種子生成遷移密鑰的請求。
44、2.3.5控制節點的密鑰管理模塊接收到遷移控制模塊發來的遷移密鑰生成指令,根據遷移密鑰生成指令生成隨機數,并以此隨機數作為密鑰種子生成遷移密鑰。密鑰管理模塊根據遷移源節點的ip地址和遷移目標節點的ip地址,將生成的遷移密鑰、遷移源節點身份公鑰、遷移目標節點身份公鑰發送至控制節點的第一安全通信模塊。
45、2.3.6控制節點的第一安全通信模塊接收遷移控制模塊發來的遷移令牌、遷移源節點ip地址,接收密鑰管理模塊發來的遷移密鑰,將遷移源節點身份公鑰與其ip地址進行對應存儲,將遷移目標節點身份公鑰與其ip地址進行對應存儲,將遷移密鑰、遷移目標節點身份公鑰以及遷移令牌打包成容器遷移指令,并通過遷移源節點身份公鑰對容器遷移指令進行加密,將加密的容器遷移指令、遷移源節點ip地址及遷移目標節點ip地址一起發送至控制節點的第一安全通信代理。
46、2.3.7控制節點的第一安全通信代理接收到第一安全通信代理傳來的加密的容器遷移指令、遷移源節點ip地址及遷移目標節點ip地址,存儲遷移源節點ip地址及遷移目標節點ip地址,根據遷移源節點的ip地址向遷移源節點發送加密的容器遷移指令。
47、2.4遷移源節點向遷移目標節點發送身份認證挑戰,方法是:
48、2.4.1遷移源節點的第二安全通信代理從控制節點接收加密的容器遷移指令,將加密的容器遷移指令發送至遷移源節點的第二安全通信模塊。
49、2.4.2遷移源節點的第二安全通信模塊接收到加密的容器遷移指令后,使用遷移源節點身份私鑰對該指令進行解密,得到遷移密鑰、遷移令牌、遷移目標節點身份公鑰,解析遷移令牌獲取第一容器標識符、遷移目標節點ip地址。遷移源節點的第二安全通信模塊存儲上述信息,根據接收到遷移令牌向身份認證模塊發起第一身份證書生成指令。
50、2.4.3遷移源節點的身份認證模塊從第二安全通信模塊接收第一身份證書生成指令,根據第一身份證書生成指令生成第一隨機數,采用遷移源節點身份私鑰對第一隨機數簽名生成第一身份證書,將第一身份證書發送給遷移源節點的第二安全通信模塊。
51、2.4.4遷移源節點的第二安全通信模塊收到身份認證模塊發來的第一身份證書,將第一身份證書利用遷移目標節點身份公鑰加密第一身份證書及遷移源節點身份公鑰,該加密信息為第一身份認證挑戰,將第一身份認證挑戰發送至遷移源節點的第二安全通信代理。
52、2.4.5遷移源節點的第二安全通信代理收到第二安全通信模塊發來的第一身份認證挑戰與遷移目標節點ip地址,存儲遷移目標節點ip地址,并根據該遷移目標節點ip地址將第一身份認證挑戰發送至遷移目標節點。
53、2.5遷移源節點與遷移目標節點進行雙向身份認證,方法是:
54、2.5.1遷移目標節點的第二安全通信代理接收第一身份認證挑戰,根據此次通信發送方的ip地址存儲該遷移源節點的ip地址,隨后將第一身份認證挑戰發送至遷移目標節點的第二安全通信模塊。
55、2.5.2遷移目標節點的第二安全通信模塊接收到遷移目標節點的第二安全通信代理發來的身份認證挑戰,利用遷移目標節點身份公鑰解密第一身份認證挑戰,獲得第一身份證書及遷移源節點身份公鑰,存儲遷移源節點身份公鑰。將第一身份證書及身份認證信息打包成第二身份證書生成指令發送給遷移目標節點的身份認證模塊。
56、2.5.3遷移目標節點的身份認證模塊接收到第二安全通信模塊發來的第二身份證書生成指令,獲得第一身份證書及遷移源節點身份公鑰,利用遷移源節點身份公鑰對第一身份證書驗簽,將驗簽獲得的隨機數記為第二隨機數,根據第二隨機數,利用遷移目標節點身份私鑰對第二隨機數簽名,生成第二身份證書,將第二身份證書發送給遷移目標節點的第二安全通信模塊。
57、2.5.4遷移目標節點的第二安全通信模塊接收到第二身份證書后,利用遷移源節點的身份公鑰對第二身份證書進行加密,生成第二身份認證挑戰,將第二身份認證挑戰發送至遷移目標節點的第二安全通信代理。
58、2.5.5遷移目標節點的第二安全通信代理接收到第二安全通信模塊發來的第二身份認證挑戰,根據遷移源節點的ip地址將第二身份認證挑戰發送至遷移源節點的第二安全通信代理。
59、2.5.6遷移源節點的第二安全通信代理接收到遷移目標節點發來的第二身份認證挑戰,將第二身份認證挑戰轉發至遷移源節點的第二安全通信模塊。
60、2.5.7遷移源節點的第二安全通信模塊接收到遷移源節點的第二安全通信代理發來的第二身份認證挑戰,利用遷移目標節點身份公鑰對第二身份認證挑戰解密,得到第二身份證書,將第二身份證書及遷移目標節點身份公鑰發送給遷移源節點的身份認證模塊。
61、2.5.8遷移源節點的身份認證模塊根據遷移目標節點身份公鑰對第二身份證書驗簽,得到第二隨機數,將第一隨機數和第二隨機數打包成第一隨機數驗證指令發送給遷移源節點的度量與驗證模塊,要求度量與驗證模塊對第一隨機數和第二隨機數的大小進行比對。
62、2.5.9遷移源節點的度量與驗證模塊接收到第一隨機數驗證指令,比對第一隨機數與第二隨機數大小,并將第一隨機數驗證結果發送至第二安全通信模塊,同時向遷移源節點的單容器保護模塊發送第一計數器歸零指令,要求計數器值歸零。
63、2.5.10遷移源節點的單容器保護模塊接收到第一計數器歸零指令,將計數器置零,生成計數器值為零信息發送至第二安全通信模塊。
64、2.5.11遷移源節點的第二安全通信模塊接收第一隨機數驗證結果及計數器值為零信息,對第一隨機數驗證結果進行判斷,若驗證結果為兩個隨機數大小相等,則表明遷移源節點與遷移目標節點間雙向身份認證成功,向第二安全通信模塊發送驗證成功的第一隨機數驗證結果,同時向身份認證模塊發送第三隨機數生成指令,轉2.5.12;若驗證結果為兩個隨機數大小不等,則表明遷移源節點與遷移目標節點間雙向身份認證失敗,可能受到重放攻擊,遷移源節點的度量與驗證模塊向遷移源節點的第二安全通信模塊發送驗證失敗的第一隨機數驗證結果,轉2.5.13。
65、2.5.12遷移目標節點的身份認證模塊收到遷移目標節點的第二安全通信模塊發來的第三隨機數生成指令,生成第三隨機數,將第三隨機數返回至遷移目標節點的第二安全通信模塊,轉2.6。
66、2.5.13遷移源節點的第二安全通信模塊根據驗證失敗的驗證結果,生成身份認證失敗信息,利用遷移源節點身份私鑰加密該身份認證失敗信息,發送加密的身份認證失敗信息至第二安全通信代理。
67、2.5.14第二安全通信代理轉發加密的身份認證失敗信息至控制節點,遷移源節點退出本次遷移。
68、2.5.15控制節點的第一安全通信代理接收到加密的身份認證失敗信息,轉發至第一安全通信模塊。
69、2.5.16第一安全通信模塊利用遷移源節點身份公鑰解密接收到加密的身份認證失敗信息,獲得身份認證失敗信息,退出本次遷移,轉2.2繼續監控。
70、2.6遷移源節點與遷移目標節點間建立雙向加密傳輸信道,方法是:
71、2.6.1遷移源節點的第二安全通信模塊從遷移源節點的度量與驗證模塊接收驗證成功的第一隨機數驗證結果,從身份認證模塊接收到第三隨機數,根據驗證成功信息開始建立雙向加密傳輸信道。該模塊將遷移密鑰、第三隨機數及建立雙向加密傳輸信道信息打包成遷移信道建立指令,第二安全通信模塊利用遷移目標節點身份公鑰加密該指令,將該加密的遷移信道建立指令發送至遷移源節點的第二安全通信代理。
72、2.6.2遷移源節點的第二安全通信代理將接收到的加密的遷移信道建立指令傳輸至遷移目標節點的第二安全通信模塊。
73、2.6.3遷移目標節點的第二安全通信代理接收到來自遷移源節點的第二安全通信代理傳來的加密的遷移信道建立指令,將該指令轉發至遷移目標節點的第二安全通信模塊。
74、2.6.4遷移目標節點的第二安全通信模塊接收到遷移目標節點的第二安全通信代理發來加密的遷移信道建立指令,使用遷移目標節點身份私鑰解密,獲取遷移密鑰、第三隨機數及建立雙向加密傳輸信道信息,存儲遷移密鑰。根據建立雙向加密信道信息向單容器保護模塊發送計數器值歸零指令,并利用遷移密鑰加密第三隨機數,將加密的第三隨機數發送至第二安全通信代理。
75、2.6.5單容器保護模塊收到計數器值歸零指令后使計數器值歸零,返回計數器值為零信息至遷移目標節點的第二安全通信模塊。
76、2.6.6遷移目標節點的第二安全通信代理接收到遷移目標節點的第二通信模塊發來的加密的第三隨機數,將加密的第三隨機數發送至遷移源節點。
77、2.6.7遷移源節點的第二安全通信代理接收到遷移目標節點的第二安全通信代理發來的加密的第三隨機數,將加密的第三隨機數轉發至遷移源節點的第二安全通信模塊。
78、2.6.8遷移源節點的第二安全通信模塊收到加密的第三隨機數,使用遷移密鑰對其進行解密,將此時獲得的隨機數記為第四隨機數,將解密獲得的第四隨機數與身份認證模塊生成的第三隨機數打包成第二隨機數驗證指令。
79、2.6.9遷移目標節點的度量與驗證模塊收到第二隨機數驗證指令,獲得第三隨機數、第四隨機數,對比第三隨機數與第四隨機數大小,將第二隨機數驗證結果返回給第二安全通信模塊。如果驗證結果為兩個隨機數大小相等,說明加密傳輸信道建立成功,向第二安全通信模塊發送驗證成功的第二隨機數驗證結果,表示完成安全傳輸信道的建立,轉第三步。如果兩個隨機數大小不相等,則加密傳輸信道建立失敗,表明遷移系統可能受到重放攻擊,轉2.6.10。
80、2.6.10遷移源節點的第二安全通信模塊根據驗證失敗的驗證結果,生成加密信道建立失敗信息,利用遷移目標節點身份私鑰加密生成加密的加密信道建立失敗信息經第二安全通信代理轉發至控制節點,遷移源節點退出遷移流程。
81、2.6.11控制節點的第一安全通信代理接收到加密的加密信道建立失敗信息,轉發至第一安全通信模塊。
82、2.6.12第一安全通信模塊利用目標節點身份公鑰解密獲得加密信道建立失敗信息,轉2.2。
83、第三步,遷移源節點向遷移目標節點進行容器安全遷移,方法是:
84、3.1遷移源節點根據加密的容器遷移指令生成第一容器的容器狀態文件,方法是:
85、3.1.1遷移源節點的第二安全通信模塊從遷移源節點的度量與驗證模塊接收驗證成功的第二隨機數驗證結果,向遷移源節點的容器狀態轉儲模塊發送容器轉儲指令(容器轉儲指令包含第一容器的標識符,并要求暫停第一容器的運行的信息),并保存第一容器當前的運行狀態。
86、3.1.2遷移源節點的容器狀態轉儲模塊接收容器轉儲指令,根據第一容器標識符,暫停第一容器的運行,并依據當前第一容器的運行狀態生成容器狀態文件(容器狀態文件包含第一容器的當前運行狀態、配置信息、掛載持久化數據卷信息、容器鏡像信息、容器創建狀態、容器標識符、容器上下文信息以及環境變量等重要信息),將容器狀態文件發送至遷移源節點的第二安全通信模塊。
87、3.2對容器狀態文件進行度量,方法是:
88、3.2.1遷移源節點的第二安全通信模塊從遷移源節點的容器狀態轉儲模塊接收容器狀態文件,將容器狀態文件轉發至遷移源節點的度量與驗證模塊。
89、3.2.2遷移源節點的度量與驗證模塊接收到容器狀態文件,利用哈希算法(如hash256)對容器狀態文件進行完整性度量,將計算得到的哈希值稱為第一度量值,將第一度量值發送至遷移源節點的第二安全通信模塊。同時,度量與驗證模塊向單容器保護模塊發送計數器值變更指令。
90、3.2.3單容器保護模塊執行計數器值變更指令,計數器值由0變為1,并將計數器值變更完畢信息發送至遷移源節點的第二安全通信模塊。
91、3.3安全傳輸第一容器的容器遷移文件,方法是:
92、3.3.1遷移源節點的第二安全通信模塊從單容器保護模塊接收到計數器值變更完畢信息,從度量與驗證模塊接收到第一度量值,將第一度量值及容器狀態文件打包,得到遷移源節點的第一容器的容器遷移文件,使用遷移密鑰加密該容器遷移文件,將加密的容器遷移文件傳輸至遷移源節點的第二安全通信代理。
93、3.3.2遷移源節點的第二安全通信代理將接收到的加密的第一容器的容器遷移文件轉發至遷移目標節點的第二安全通信模塊。
94、第四步,遷移目標節點創建第二容器,第二容器根據第一容器的容器遷移文件開始運行,并采取措施確保該第二容器在遷移系統中的唯一性和安全性,方法是:
95、4.1遷移目標節點驗證從遷移源節點接收的加密的第一容器的容器狀態文件的完整性,方法是:
96、4.1.1遷移目標節點的第二安全通信模塊利用遷移密鑰對第一容器的容器遷移文件進行解密,得到第一容器的容器狀態文件、第一度量值。隨后,根據第一容器的容器狀態文件和第一度量值生成容器狀態文件度量與驗證指令(含有要求對容器狀態文件進行完整性度量與驗證的信息),并將容器狀態文件度量與驗證指令發送至遷移目標節點的度量與驗證模塊。
97、4.1.2遷移目標節點的度量與驗證模塊接收到容器狀態文件度量與驗證指令,獲得第一容器的容器狀態文件、第一度量值,利用哈希算法(如hash256)對第一容器的容器狀態文件進行完整性度量,生成第二度量值。對第一度量值與第二度量值進行比對,將驗證結果返回給第二安全通信模塊。如果第一度量值與第二度量值比對結果為一致,則向第二安全通信模塊返回驗證成功的驗證結果,說明第一容器的容器狀態文件在遷移過程中沒有被篡改或損壞,向單容器保護模塊發送計數器值變更指令,轉4.1.3;如果第一度量值與第二度量值不相等則驗證結果為驗證失敗,則第一容器的容器狀態文件的完整性驗證失敗,向第二安全通信模塊發送驗證失敗的驗證結果,轉4.1.4。
98、4.1.3單容器保護模塊收到計數器值變更指令,計數器值從0變為1,變更完畢后向度量與驗證模塊發送計數器值變更完畢信息,轉4.2。
99、4.1.4遷移目標節點的第二安全通信模塊接收驗證失敗的驗證結果,將驗證失敗的驗證結果及終止遷移請求打包為容器狀態文件完整性度量失敗信息,經遷移密鑰加密容器狀態文件完整性度量失敗信息,將加密的容器狀態文件完整性度量失敗信息發送給遷移目標節點的第二安全通信代理,遷移目標節點退出遷移流程。
100、4.1.5第二安全通信代理接收到加密的容器狀態文件完整性度量失敗信息,并將該加密信息發送至控制節點。
101、4.1.6控制節點的第一安全通信代理接收到加密的容器狀態文件完整性度量失敗信息,將其轉發至控制節點的第一安全通信模塊。
102、4.1.7第一安全通信模塊利用遷移密鑰解密獲得容器狀態文件完整性度量失敗信息,轉2.2繼續監控。
103、4.2遷移目標節點根據第一容器的鏡像文件創建第二容器,方法是:
104、4.2.1遷移目標節點從第二安全通信模塊接收容器狀態文件完整性驗證成功信息,讀取并存儲第一容器的容器狀態文件,根據從第一容器的容器狀態文件中獲取的容器鏡像信息,生成容器創建指令并發送至遷移目標節點的容器狀態轉儲模塊。
105、4.2.2遷移目標節點的容器狀態轉儲模塊根據接收到的容器創建指令,依據容器鏡像信息創建新的容器。如果容器鏡像在遷移目標節點上不存在,則從容器鏡像倉庫下載相應鏡像。在設定的時間閾值內(根據網絡速度、鏡像大小和鏡像倉庫的性能等因素,若容器鏡像無需從容器鏡像倉庫下載通常可設置為5秒,若容器鏡像需要從容器鏡像倉庫下載則通常可設置為1~10分鐘,容器狀態轉儲模塊根據容器狀態查詢指令查詢遷移目標節點的普通執行環境中當前容器及其狀態,如果查詢到根據容器創建指令在普通執行環境中創建了唯一的新的容器,則將該容器標識為第二容器,并根據第二容器狀態信息生成第二容器創建成功的容器創建結果。容器創建結果包括第二容器的標識符、狀態、資源利用情況以及網絡狀態信息。然后,將該容器創建結果發送至遷移目標節點的第二安全通信模塊,轉至4.3。如果經過設定時間內容器狀態轉儲模塊沒有查詢到新容器的生成,則生成容器創建失敗的第二容器創建結果,將該第二容器創建結果發送至遷移目標節點的第二安全通信模塊,轉至4.2.3。
106、4.2.3遷移目標節點的第二安全通信模塊接收到容器狀態轉儲模塊發來的容器創建失敗的第二容器創建結果,說明容器安全遷移系統可能受到分叉或回滾攻擊,遷移目標節點退出遷移流程,并使用遷移目標節點身份私鑰加密發送遷移目標節點異常信息至第二安全通信代理。
107、4.2.4遷移目標節點的第二安全通信代理將加密的遷移目標節點異常信息轉發至控制節點。
108、4.2.5控制節點的第一安全通信代理接收到遷移目標節點傳來的加密的遷移目標節點異常信息,并將其轉發至第一安全通信模塊。
109、4.2.6第一安全通信模塊利用遷移目標節點身份公鑰解密獲得遷移目標節點異常信息,退出本次遷移流程,轉2.2繼續監控。
110、4.3控制節點更新容器狀態列表,方法是:
111、4.3.1遷移目標節點的第二安全通信模塊接收容器狀態轉儲模塊發來的第二容器創建成功的容器創建結果,從容器創建結果獲取第二容器的狀態,將第二容器的標識符、狀態、資源利用情況以及網絡狀態信息打包成第二容器狀態信息,利用遷移密鑰加密該第二容器狀態信息,傳輸該加密的第二容器狀態信息至遷移目標節點的第二安全通信代理。
112、4.3.2遷移目標節點的第二安全通信代理接收加密的第二容器狀態信息,將其發送至控制節點的第一安全通信代理。
113、4.3.3控制節點的第一安全通信代理接收到加密的第二容器狀態信息,將加密的第二容器狀態信息轉發至控制節點的第一安全通信模塊。
114、4.3.4第一安全通信模塊利用遷移密鑰解密第一安全通信代理傳入信息,獲得第二容器的標識符、狀態、資源利用情況以及網絡狀態信息,根據這些信息生成容器狀態變更指令,將容器狀態變更指令發送至控制節點的遷移控制模塊。
115、4.3.5控制節點的遷移控制模塊根據接收到的容器狀態變更指令更新容器狀態列表,更新過程包括驗證,根據接收到的容器狀態信息內容器標識符,對接收到的容器狀態信息與容器狀態列表中對應信息進行比對,然后對容器狀態列表中需要更新的部分進行修改,修改完畢后向第一安全通信模塊發送容器狀態變更完畢信息,該信息包括第二容器標識符。
116、4.3.6控制節點的第一安全通信模塊根據接收到的容器狀態變更完畢信息生成遷移恢復指令,遷移恢復指令包含第二容器標識符、要求遷移目標節點的第二容器根據遷移獲取的容器狀態文件開始第二容器的運行的信息。
117、4.3.7控制節點的第一安全通信模塊使用遷移密鑰對遷移恢復指令進行加密,將加密的遷移恢復指令傳輸至控制節點的第一安全通信代理。
118、4.3.8第一安全通信代理將加密的遷移恢復指令發送給遷移目標節點的第二安全通信代理。
119、4.4遷移目標節點根據第一容器的容器狀態文件運行第二容器,方法是:
120、4.4.1遷移目標節點的第二安全通信代理從第一安全通信代理接收加密的遷移恢復指令,將加密的遷移恢復指令轉發至遷移目標節點的第二安全通信模塊。
121、4.4.2遷移目標節點的第二安全通信模塊接收加密的遷移恢復指令,利用遷移密鑰對其進行解密,獲取遷移恢復指令。根據遷移恢復指令,第二安全通信模塊將第一容器的容器狀態文件和根據第二容器標識符生成的第二容器運行指令發送給遷移目標節點的容器狀態轉儲模塊。
122、4.4.3遷移目標節點的容器狀態轉儲模塊接收第一容器的容器狀態文件和第二容器運行指令,根據遷移恢復指令并讀取第一容器的容器狀態文件以啟動第二容器運行。根據第一容器的容器狀態文件內掛載持久化數據卷信息與共享存儲服務器進行交互,以恢復第二容器的運行。容器狀態轉儲模塊查詢第二容器運行狀態。如果第二容器成功運行,表示容器遷移恢復成功,向第二安全通信模塊發送第二容器狀態信息(包括第二容器的標識、運行狀態及配置文件等關鍵信息),轉4.4.4。如果第二容器未能成功運行,表示容器遷移后啟動運行失敗,此時容器安全遷移系統可能受到分叉或回滾攻擊,容器狀態轉儲模塊向第二安全通信模塊發送第二容器啟動失敗信息(包括第二容器的標識),轉4.4.5。
123、4.4.4遷移目標節點的容器狀態轉儲模塊發送第二容器狀態信息至遷移目標節點的第二安全通信模塊,轉4.5。
124、4.4.5第二安全通信模塊接收到第二容器啟動失敗信息,利用遷移密鑰加密該第二容器啟動失敗信息并轉發至遷移目標節點的第二安全通信代理。同時遷移目標節點退出遷移流程。
125、4.4.6遷移目標節點的第二安全通信代理收到遷移目標節點的第二安全模塊發來的加密遷移失敗信息并轉發至控制節點的第一安全通信代理。
126、4.4.7控制節點的第一安全通信代理接收到加密的第二容器運行失敗信息,將加密遷移失敗信息轉發至控制節點的第一安全通信模塊。
127、4.4.8控制節點的第一安全通信模塊用遷移密鑰解密,獲取第二容器啟動失敗信息并據此生成第二容器異常指令發送至遷移控制模塊。
128、4.4.8遷移控制模塊接收到第二容器異常指令,根據第二容器標識符刪除容器狀態列表中第二容器相關運行狀態,退出本次遷移流程,轉2.2繼續監控。
129、4.5對容器狀態度量列表進行更新,方法是:
130、4.5.1遷移目標節點的第二安全通信模塊根據接收到的第二容器狀態信息,確認第二容器已成功啟動。將第二容器狀態信息和啟動成功信息打包成第二容器啟動成功信息,并使用遷移密鑰對第二容器啟動成功信息進行加密,生成加密的第二容器啟動成功信息。將加密的第二容器啟動成功信息傳輸至遷移目標節點的第二安全通信代理。
131、4.5.2遷移目標節點的第二安全通信代理收到加密的第二容器啟動成功信息,將該信息轉發至控制節點的第一安全通信代理。
132、4.5.3控制節點的第一安全通信代理接收到加密的第二容器遷移啟動成功信息,將加密的第二容器遷移啟動成功信息轉發至控制節點的第一安全通信模塊。
133、4.5.4控制節點的第一安全通信模塊用遷移密鑰解密收到的加密的第二容器遷移啟動成功信息,獲得第二容器狀態信息及第二容器啟動成功信息,將第二容器狀態信息打包生成容器狀態變更指令發送至控制節點的遷移控制模塊。
134、4.5.5遷移控制模塊接收容器狀態變更指令,從容器狀態變更指令獲取第二容器狀態信息,根據第二容器的標識、配置信息以及第二容器運行狀態更新容器狀態列表。更新過程包括根據接收到的容器狀態信息內容器標識符對接收到的容器狀態信息與容器狀態列表中對應信息進行比對,然后對容器狀態列表中需要更新的部分進行修改,修改完畢后向第一安全通信模塊發送容器狀態變更完畢信息,該信息包括第二容器標識符及第一容器標識符。
135、4.5.6控制節點的第一安全通信模塊接收到控制節點的遷移控制模塊傳來的容器狀態變更完畢信息,根據該容器狀態變更完畢信息生成第一單容器保護指令(包含第一容器標識,要求遷移節點刪除第一容器、要求遷移節點刪除存儲的容器狀態文件及遷移密鑰的信息)及第二單容器保護指令(包含容器狀態文件標識(由第一容器標識派生)及遷移密鑰標識,要求刪除經容器遷移傳入的容器狀態文件及遷移密鑰的命令)。采用遷移密鑰加密第一單容器保護指令,將加密的第一單容器保護指令傳輸至控制節點的第一安全通信代理;采用遷移密鑰加密第二單容器加密第二單容器保護指令后傳輸至控制節點的第一安全通信代理。
136、4.5.7控制節點的第一安全通信代理將第一單容器保護指令傳輸至遷移源節點,同時將第二單容器保護指令傳輸至遷移目標節點。
137、4.6遷移源節點和遷移目標節并行進行單容器保護,遷移源節點執行4.6.1;遷移目標節點執行4.6.2。
138、4.6.1遷移源節點行單容器保護,方法是:
139、4.6.1.1移源節點的第二安全通信代理接收加密的第一單容器保護指令,將加密的第一單容器保護指令轉發至遷移源節點的第二安全通信模塊。
140、4.6.1.2遷移源節點的第二安全通信模塊對接收到的加密的第一單容器保護指令進行解密,將解密得到的第一單容器保護指令轉發至單容器保護模塊。
141、4.6.1.3遷移源節點的單容器保護模塊接收第一單容器保護指令,根據第一單容器保護指令中的第一容器標識符生成第一容器刪除指令(含要求容器狀態轉儲模塊刪除第一容器的請求)、遷移密鑰刪除指令。由于在普通執行環境中存儲的容器狀態文件的默認路徑位于特定容器標識符創建的文件夾之下,對普通執行環境內的容器狀態文件的刪除操作會影響到第一容器的刪除;另外,由于加密的容器遷移文件是通過遷移密鑰加密,并且雙向安全傳輸信道也由遷移密鑰唯一維護,因此,加密后的容器狀態文件的刪除以及破壞雙向安全傳輸信道都轉化為對遷移密鑰的刪除操作。將第一容器刪除指令(包含第一容器標識符)、遷移密鑰刪除指令(包含要刪除的遷移密鑰標識)發送至第二安全通信模塊。
142、4.6.1.4第二安全通信模塊接收到單容器保護模塊發來的第一容器刪除指令、遷移密鑰刪除指令,刪除遷移密鑰,向單容器保護模塊發送遷移密鑰刪除結果,將第一容器刪除指令轉發至容器狀態轉儲模塊。
143、4.6.1.5遷移源節點的單容器保護模塊接收到遷移密鑰刪除結果,第一計數器的值從1變為2。
144、4.6.1.6容器狀態轉儲模塊接收到第一容器刪除指令,發起第一容器刪除操作。通過容器標準指令查詢第一容器狀態,根據第一容器狀態查詢結果判斷第一容器是否被刪除。若查詢不到第一容器,表明第一容器刪除成功,將第一容器已被刪除的第一容器刪除結果通過第二安全通信模塊轉發至可信執行環境的單容器保護模塊,轉4.6.1.7。若通過容器標準指令驗證容器仍存在,說明容器遷移系統可能受到分叉或回滾攻擊,生成第一容器刪除失敗的第一容器刪除結果,轉4.6.1.10。
145、4.6.1.7單容器保護模塊接收到第一容器刪除結果,根據第一容器已被刪除信息,單容器保護模塊將第一計數器的值由2變為3,此時第一計數器的值記為第一計數值,將第一計數值發送至第二安全通信模塊。
146、4.6.1.8遷移源節點的第二安全通信模塊用遷移源節點身份私鑰加密第一計數值,將加密的第一計數值傳輸至遷移源節點的第二安全通信代理。
147、4.6.1.9遷移源節點的第二安全通信代理將加密的第一計數值發送至控制節點,轉4.7。
148、4.6.1.10單容器保護模塊接收到第一容器刪除失敗的第一容器刪除結果,表明遷移系統可能受到分叉或回滾攻擊,根據第一容器刪除失敗的第一容器刪除結果生成第一容器刪除失敗信息,發送至第二安全通信模塊。
149、4.6.1.11第二安全通信模塊接收到第一容器刪除失敗信息,將該信息與第一容器標識符打包成新的第一容器刪除失敗信息,并用遷移源節點身份私鑰加密該信息,后轉發至第二安全通信代理。
150、4.6.1.12第二安全通信代理接收到該加密的第一容器刪除失敗信息,將其轉發至控制節點的第一安全通信代理。
151、4.6.1.13控制節點的第一安全通信代理接收到加密的第一容器刪除失敗信息,轉發至第一安全通信模塊。
152、4.6.1.14第一安全通信模塊接收到加密的第一容器刪除失敗信息,利用遷移源節點身份公鑰解密后獲得第一容器標識符及第一容器刪除失敗信息,生成第一容器異常信息發送至遷移控制模塊。
153、4.6.1.15控制節點的遷移控制模塊根據接收到的第一容器異常信息中的第一容器標識符,對容器狀態列表中的第一容器進行標記,并根據第二容器標識符生成第二容器停止指令(包含第二容器標識符),將第二容器停止指令發送至第一安全通信模塊。
154、4.6.1.16第一安全通信模塊收到第二容器停止指令,利用遷移目標節點身份公鑰加密該指令并發送至第一安全通信代理。
155、4.6.1.17控制節點的第一安全通信代理接收到加密的第二容器停止指令,轉發至遷移目標節點,轉4.7.5。
156、4.6.2遷移目標節進行單容器保護,方法是:
157、4.6.2.1遷移目標節點的第二安全通信代理接收到控制節點傳來的第二單容器保護指令,將第二單容器保護指令轉發至遷移目標節點的第二安全通信模塊。
158、4.6.2.2遷移目標節點的第二安全通信模塊使用遷移密鑰解密第二單容器保護指令并轉發至單容器保護模塊。
159、4.6.2.3遷移目標節點的單容器保護模塊收到第二單容器保護指令,解析獲得第二容器標識符及容器狀態文件標識符,生成容器狀態文件刪除指令(含要求容器狀態轉儲模塊刪除容器狀態文件的請求)及遷移密鑰刪除指令,將容器狀態文件刪除指令和遷移密鑰刪除指令發送至第二安全通信模塊。
160、4.6.2.4第二安全通信模塊接收到密鑰刪除指令及容器狀態文件刪除指令,將容器狀態文件刪除指令轉發至容器狀態轉儲模塊,同時刪除本次容器遷移的遷移密鑰,至此在遷移目標節點存儲的加密容器狀態文件無法被讀取。第二安全通信模塊向單容器保護模塊發送密鑰刪除的刪除結果。
161、4.6.2.5單容器保護模塊接收到密鑰刪除的刪除結果,第二計數器的值從1變為2。
162、4.6.2.6容器狀態轉儲模塊接收到容器狀態文件指令獲取容器狀態文件標識,刪除對應容器狀態文件。根據容器狀態文件標識二次查詢無法找到該文件,則容器狀態文件已被刪除。容器狀態轉儲模塊生成容器狀態文件已刪除的容器狀態文件刪除結果,將該結果通過第二安全通信模塊轉發至可信執行環境的單容器保護模塊。
163、4.6.2.7單容器保護模塊接收到容器狀態文件刪除結果,若容器狀態文件刪除結果為容器狀態文件已刪除,將第二計數器的值從2變為3,此時將第二計數器的值記為第二計數值。將第二計數值發送至第二安全通信模塊,轉4.6.2.8。若容器狀態文件刪除結果為容器狀態文件仍存在,說明遷移系統可能受到分叉或回滾攻擊,根據容器狀態文件標識生成容器狀態文件刪除失敗信息,將該信息發送至第二安全通信模塊,轉4.6.2.11。
164、4.6.2.8遷移目標節點的第二安全通信代理接收到第二計數值,利用遷移目標節點身份私鑰加密第二計數值,將加密的第二計數值發送至第二安全通信代理。
165、4.6.2.9遷移目標節點的第二安全通信代理收到加密的第二計數值,將其發送至控制節點的第一安全通信代理。
166、4.6.2.10遷移目標節點的第二安全通信代理將加密的第二計數值發送至控制節點,轉4.7。
167、4.6.2.11單容器保護模塊接收到容器狀態文件刪除失敗的容器狀態文件刪除結果,這表明遷移系統可能受到分叉或回滾攻擊,根據容器狀態文件刪除結果生成容器狀態文件刪除失敗信息后發送至第二安全通信模塊。
168、4.6.2.12第二安全通信模塊接收到容器狀態文件刪除失敗信息,將該信息與第二容器標識符打包成新的容器狀態文件刪除失敗信息,并用遷移目標節點身份私鑰加密容器狀態文件刪除失敗信息,加密后轉發至第二安全通信代理。
169、4.6.2.13第二安全通信代理接收到該加密的容器狀態文件刪除失敗信息,將其轉發至控制節點的第一安全通信代理。
170、4.6.2.14控制節點的第一安全通信代理將接收到的加密的容器狀態文件刪除失敗信息轉發至第一安全通信模塊。
171、4.6.2.15第一安全通信模塊接收到加密的第一容器刪除失敗信息,利用遷移目標節點身份公鑰解密后獲得第二容器標識符及容器狀態文件刪除失敗信息,生成第二容器異常信息發送至遷移控制模塊。
172、4.6.2.16遷移控制模塊收到第二容器異常信息,獲得第二容器標識符,根據第二容器標識符生成第二容器停止指令(包含第二容器標識符)發送至第一安全通信代理。
173、4.6.2.17第一安全通信模塊收到第二容器停止指令,利用遷移目標節點身份公鑰加密該指令,發送至第一安全通信代理。
174、4.6.2.18控制節點的第一安全通信代理接收到加密的第二容器停止指令,轉發至遷移目標節點,轉4.7.5。
175、4.7驗證單容器保護,方法是:
176、4.7.1控制節點的第一安全通信代理從遷移源節點接收加密的第一計數值,從遷移目標節點接收第二計數值,均轉發至控制節點的第一安全通信模塊。
177、4.7.2控制節點的第一安全通信模塊采用遷移源節點身份公鑰對加密的第一計數值解密,獲得第一計數值,將第一計數值轉發至控制節點的遷移控制模塊。控制節點的安全通信模塊采用遷移目標節點身份公鑰解密獲得第二計數值,將第二計數值轉發至控制節點的遷移控制模塊。
178、4.7.3控制節點的遷移控制模塊對從第一安全通信模塊接收的第一計數值和第二計數值做比對。若二者大小不等,表明單容器保護失敗,容器遷移過程可能受到分叉或回滾等攻擊,向第一安全通信模塊發送第二容器停止指令(該指令包含第二容器標識符,要求停止第二容器的運行的請求),轉4.7.4。若二者大小相等,說明遷移過程中第一容器是唯一的,單容器保護成功,至此完成本次容器安全遷移,轉2.2繼續監控。
179、4.7.4第一安全通信模塊接收到第二容器停止指令,利用遷移目標節點身份公鑰加密該第二容器停止指令,由第一安全通信代理轉發至遷移目標節點。
180、4.7.5遷移目標節點的第二安全通信代理接收加密的第二容器停止指令,將該指令轉發至遷移目標節點的第二安全通信模塊并利用遷移目標節點身份私鑰解密,獲得第二容器停止指令。
181、4.7.6遷移目標節點的第二安全通信模塊解析第二容器停止指令,向容器狀態轉儲模塊發送第二容器停止指令(包含第二容器標識符)。
182、4.7.7容器狀態轉儲模塊接收到第二容器停止指令,根據第二容器標識符及第二容器停止信息,控制第二容器直至第二容器停止運行。通過查詢第二容器運行狀態獲取第二容器處于停止狀態的信息,向第二安全通信模塊返回第二容器停止信息。
183、4.7.8第二安全通信模塊接收到第二容器停止信息,利用遷移目標節點身份私鑰加密第二容器停止信息,發送至第二安全通信代理。
184、4.7.9遷移目標節點的第二安全通信代理接收到加密的第二容器停止信息發送至控制節點。
185、4.7.10控制節點的第一安全通信模塊接收到加密的第二容器停止信息,轉發至第一安全通信模塊。
186、4.7.11控制節點的第一安全通信模塊利用遷移目標節點身份公鑰解密獲得第二容器停止信息,根據第二容器標識符向遷移控制模塊發送第二容器停止的容器狀態列表變更信息。
187、4.7.12遷移控制模塊收到第一安全通信模塊發來的第二容器停止的容器狀態列表變更信息,根據第二容器標識符將第二容器運行狀態更改為停止態,轉2.2繼續監控。
188、采用本發明可以達到以下技術效果:
189、1.本發明第一步通過將可信遷移服務的身份認證模塊、度量與驗證模塊、單容器保護模塊和第二安全通信模塊隔離在可信執行環境中,提供了更高特權級的安全保障,第二步通過雙向身份認證并建立雙向加密傳輸信道可有效防止遷移過程中的攻擊或篡改。同時,單容器保護模塊通過安全刪除容器狀態文件和遷移密鑰,可以保證容器遷移系統中容器運行的唯一性,進而有效緩解分叉或回滾攻擊,提高了遷移系統的安全性和穩定性。
190、2.本發明通過第二安全通信代理開啟與關閉會話的方式與可信執行環境內部進行交互。這種方法確保了平臺身份認證、安全傳輸信道的建立、完整性度量與驗證等關鍵功能的安全性,有效防止其受到攻擊或篡改。這樣的安排為容器遷移提供了更高特權級的安全保障,從而在專業領域上增強了系統的安全性和可信度。
191、3.第四步遷移恢復通過單容器保護模塊提供遷移恢復保護機制,可以有效緩解分叉或回滾攻擊,這特別是單容器保護機制該機制通過與安全計數器綁定的安全驗證與刪除機制,有效緩解了分叉或回滾攻擊對系統的威脅,避免攻擊者在目標服務器上大規模啟動相同容器實例或者還原容器過期的運行狀態以破壞遷移的可靠性,因此采用本發明可確保遷移過程的安全性和完整性。
192、4.第四步單容器保護模塊還提供了遷移失敗時的恢復保護機制,通過單容器保護指令和遷移密鑰的處理,確保了容器遷移失敗時數據的安全刪除和系統狀態的恢復,這種方法可防止遷移失敗可能導致的數據殘留、安全隱患或系統狀態混亂,進一步確保了數據的安全性、完整性和系統的可靠性。