一種可信環境的構建方法、裝置、計算機設備及存儲介質與流程
2023-11-08 08:44:25 1
1.本技術涉及系統安全領域,尤其涉及一種可信環境的構建方法、裝置、計算機設備及存儲介質。
背景技術:
2.目前,構建可信環境的方法大多數是基於arm(advanced risc machine,進階精簡指令集機器)架構的trustzone技術,將硬體環境劃分為tee(trusted execution environment,可信環境)和ree(rich execution environment,普通環境)兩個不同的世界,ree運行通用作業系統,tee運行微內核作業系統。
3.但是,通過架構來構建可信環境極其依賴硬體架構,無法形成一套架構通用的可信方案,並且需要兩套作業系統,在後續的開發中需要很高的成本,維護中存在很高的難度。
技術實現要素:
4.為了解決上述技術問題,本技術實施例提供了一種可信環境的構建方法、裝置、計算機設備及存儲介質。
5.第一方面,本技術實施例提供了一種可信環境的構建方法,所述方法包括:
6.運行初始加載程序;
7.基於所述初始加載程序對普通世界進行鑑權,通過所述普通世界的第一硬體系統加載所述普通世界相應的作業系統,啟動所述普通世界的第一系統環境;
8.將安全世界的第二硬體系統下線,並通過硬體分離技術從所述普通世界的第一硬體系統分離出目標硬體系統;
9.基於所述目標硬體系統加載所述安全世界相應的作業系統,啟動所述安全世界的第二系統環境;
10.建立所述普通世界的第一系統環境和所述安全世界的第二系統環境之間的虛擬硬體通信通道。
11.根據本技術公開的一種具體實施方式,所述建立所述普通世界的第一系統環境和所述安全世界的第二系統環境之間的虛擬硬體通信通道的步驟,包括:
12.在所述安全世界的第二系統環境內加載虛擬硬體;
13.將所述第一虛擬硬體掛載至虛擬硬體總線上;
14.所述普通世界的第一系統環境通過所述硬體總線識別到所述虛擬硬體,並建立與所述安全世界的第二系統環境的虛擬硬體通信通道,其中,所述虛擬硬體通信通道包括網絡、pci、串口中的任一種。
15.根據本技術公開的一種具體實施方式,所述建立所述普通世界的第一系統環境和所述安全世界的第二系統環境之間的虛擬硬體通信通道的步驟後,包括:
16.在所述普通世界的第一系統環境內對ca程序進行鑑權;
17.對所述ca程序鑑權通過後,運行所述ca程序;
18.基於所述ca程序鑑權ta程序,並在鑑權通過後將所述ta程序通過所述虛擬硬體通信通道加載到所述安全世界的第二系統環境內。
19.根據本技術公開的一種具體實施方式,所述基於所述ca程序鑑權ta程序,並在鑑權通過後將所述ta程序通過所述虛擬硬體通信通道加載到所述安全世界的第二系統環境內的步驟之後,還包括:
20.控制所述第一系統環境生成可信程序運算請求,並通過所述虛擬硬體通信通道發送至所述第二系統環境內;
21.將所述第二系統環境生成的可信運算結果通過所述虛擬硬體通信通道發送至所述第一系統環境。
22.根據本技術公開的一種具體實施方式,所述加載所述普通世界相應的作業系統的步驟,包括:
23.加載所述普通世界的內核和所述普通世界的文件系統。
24.根據本技術公開的一種具體實施方式,所述加載所述安全世界相應的作業系統的步驟,包括:
25.加載所述安全世界的內核和所述安全世界的文件系統。
26.第二方面,本技術實施例提供了一種可信環境的構建裝置,所述裝置包括:
27.運行模塊,用於運行初始加載程序;
28.加載模塊,用於基於所述初始加載程序對普通世界進行鑑權,通過所述普通世界的第一硬體系統加載所述普通世界相應的作業系統,啟動所述普通世界的第一系統環境;
29.分離模塊,用於將安全世界的第二硬體系統下線,並通過硬體分離技術從所述普通世界的第一硬體系統分離出目標硬體系統;
30.啟動模塊,用於基於所述目標硬體系統加載所述安全世界相應的作業系統,啟動所述安全世界的第二系統環境;
31.連接模塊,用於建立所述普通世界的第一系統環境和所述安全世界的第二系統環境之間的虛擬硬體通信通道。
32.根據本技術公開的一種具體實施方式,所述連接模塊具體用於:
33.在所述安全世界的第二系統環境內加載虛擬硬體;
34.將所述第一虛擬硬體掛載至虛擬硬體總線上;
35.所述普通世界的第一系統環境通過所述硬體總線識別到所述虛擬硬體,並建立與所述安全世界的第二系統環境的虛擬硬體通信通道,其中,所述虛擬硬體通信通道包括網絡、pci、串口中的任一種。
36.第三方面,本技術實施例提供了一種計算機設備,包括存儲器以及處理器,所述存儲器用於存儲電腦程式,所述電腦程式在所述處理器運行時執行第一方面提供的可信環境的構建方法。
37.第四方面,本技術實施例提供了一種計算機可讀存儲介質,其存儲有電腦程式,所述電腦程式在處理器上運行時執行第一方面提供的可信環境的構建方法。
38.上述本技術提供的可信環境的構建方法,通過運行初始加載程序;基於所述初始加載程序對普通世界進行鑑權,通過所述普通世界的第一硬體系統加載所述普通世界相應
的作業系統,啟動所述普通世界的第一系統環境;將安全世界的第二硬體系統下線,並通過硬體分離技術從所述普通世界的第一硬體系統分離出目標硬體系統;基於所述目標硬體系統加載所述安全世界相應的作業系統,啟動所述安全世界的第二系統環境;建立所述普通世界的第一系統環境和所述安全世界的第二系統環境之間的虛擬硬體通信通道,通過在普通世界的第一系統環境和安全世界的第二系統環境建立虛擬硬體通信通道,可以保證第一系統環境的硬體環境通信的安全,基於目標硬體系統加載安全世界的作業系統,便於項目的開發和維護,降低了成本。
附圖說明
39.為了更清楚地說明本技術的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應當理解,以下附圖僅示出了本技術的某些實施例,因此不應被看作是對本技術保護範圍的限定。在各個附圖中,類似的構成部分採用類似的編號。
40.圖1示出了本技術實施例提供的可信環境的構建方法的流程示意圖之一;
41.圖2示出了本技術實施例提供的可信環境的構建方法的流程示意圖之二;
42.圖3示出了本技術實施例提供的一種可信環境的構建裝置的結構示意圖。
具體實施方式
43.下面將結合本技術實施例中附圖,對本技術實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本技術一部分實施例,而不是全部的實施例。
44.通常在此處附圖中描述和示出的本技術實施例的組件可以以各種不同的配置來布置和設計。因此,以下對在附圖中提供的本技術的實施例的詳細描述並非旨在限制要求保護的本技術的範圍,而是僅僅表示本技術的選定實施例。基於本技術的實施例,本領域技術人員在沒有做出創造性勞動的前提下所獲得的所有其他實施例,都屬於本技術保護的範圍。
45.在下文中,可在本技術的各種實施例中使用的術語「包括」、「具有」及其同源詞僅意在表示特定特徵、數字、步驟、操作、元件、組件或前述項的組合,並且不應被理解為首先排除一個或更多個其它特徵、數字、步驟、操作、元件、組件或前述項的組合的存在或增加一個或更多個特徵、數字、步驟、操作、元件、組件或前述項的組合的可能性。
46.此外,術語「第一」、「第二」、「第三」等僅用於區分描述,而不能理解為指示或暗示相對重要性。
47.除非另有限定,否則在這裡使用的所有術語(包括技術術語和科學術語)具有與本技術的各種實施例所屬領域普通技術人員通常理解的含義相同的含義。所述術語(諸如在一般使用的詞典中限定的術語)將被解釋為具有與在相關技術領域中的語境含義相同的含義並且將不被解釋為具有理想化的含義或過於正式的含義,除非在本技術的各種實施例中被清楚地限定。
48.實施例1
49.本公開實施例提供了一種可信環境的構建方法。
50.具體的,參見圖1,所述可信環境的構建方法包括:
51.步驟s101,運行初始加載程序。
52.具體地,計算機設備在上電後即可初始化硬體系統、建立內存空間映射圖,從而將系統的軟硬體環境帶到一個合適狀態,以便為最終調用作業系統內核加載好正確的環境。
53.步驟s102,基於所述初始加載程序對普通世界進行鑑權,通過所述普通世界的第一硬體系統加載所述普通世界相應的作業系統,啟動所述普通世界的第一系統環境。
54.具體而言,所述鑑權是指驗證程序是否授權運行,通過鑑權來執行下一流程步驟,可以保證可信環境的絕對安全性。初始化所述第一硬體系統後對普通世界進行鑑權,鑑權通過後,加載所述普通世界相應的作業系統,也即普通世界相應的內核和文件系統,加載完成後進入所述普通世界的第一系統環境。
55.步驟s103,將安全世界的第二硬體系統下線,並通過硬體分離技術從所述普通世界的第一硬體系統分離出目標硬體系統。
56.在具體的一實施例中,採用jailhouse從所述普通世界的第一硬體系統中將安全世界的硬體下線。
57.步驟s104,基於所述目標硬體系統加載所述安全世界相應的作業系統,啟動所述安全世界的第二系統環境。
58.在具體的另一實施例中,通過從所述普通世界的第一硬體系統中將目標硬體系統加載為所述安全世界相應的作業系統,也即給安全世界加載和普通世界一樣的作業系統,利用安全世界給普通世界提供安全的可信環境。通過統一普通世界和安全世界為相同的作業系統,提高了項目的開發和維護效率,能夠實際的降低方案的開發和維護成本。
59.步驟s105,建立所述普通世界的第一系統環境和所述安全世界的第二系統環境之間的虛擬硬體通信通道。
60.具體而言,以此可以實現普通世界和安全世界的硬體通信,在通信過程中沒有任何流程可以獲取解析中間數據。
61.具體地,所述建立所述普通世界的第一系統環境和所述安全世界的第二系統環境之間的虛擬硬體通信通道的步驟,包括:
62.在所述安全世界的第二系統環境內加載虛擬硬體;
63.將所述第一虛擬硬體掛載至虛擬硬體總線上;
64.所述普通世界的第一系統環境通過所述硬體總線識別到所述虛擬硬體,並建立與所述安全世界的第二系統環境的虛擬硬體通信通道,其中,所述虛擬硬體通信通道包括網絡、pci、串口中的任一種。
65.具體而言,例如,在所述安全世界的第二系統環境內虛擬一個pci(physical cell identifier,物理小區標識)網卡設備,將所述pci網卡設備掛接到pci總線上,所述普通世界的第一系統環境在pci總線上獲取所述pci網卡設備,並基於所述pci網卡設備建立所述普通世界的第一系統環境和所述安全世界的第二系統環境的虛擬硬體通信通道。通過建立虛擬硬體通信通道,可以保證普通世界的第一系統環境和安全世界的第二系統環境的通信安全。
66.具體地,參見圖2,所述建立所述普通世界的第一系統環境和所述安全世界的第二系統環境之間的虛擬硬體通信通道的步驟後,包括:
67.步驟s201,在所述普通世界的第一系統環境內對ca程序進行鑑權;
68.步驟s202,對所述ca程序鑑權通過後,運行所述ca程序;
69.步驟s203,基於所述ca程序鑑權ta程序,並在鑑權通過後將所述ta程序通過所述虛擬硬體通信通道加載到所述安全世界的第二系統環境內。
70.運行在安全世界的安全服務稱之為ta(trusted application,簡稱ta),對應的運行在普通世界中調用安全服務的應用程式稱之為ca(client application,簡稱ca)。通常,計算機設備在普通世界的第一系統環境中運行ca程序,在安全世界的第二系統環境中處理ca對應的安全業務。例如,計算機設備在第一系統環境中運行第一應用程式和第二應用程式,在第二系統環境中處理第一安全業務以及第二安全業務。所述第一系統環境主要包括運行於通用處理器上的富作業系統,和運行在富作業系統上的ca。第二系統環境是運行於第一系統環境之外的獨立運行環境,主要包括可信作業系統和運行在所述可信作業系統上的一個或多個可信應用程式。
71.所述基於所述ca程序鑑權ta程序,並在鑑權通過後將所述ta程序通過所述虛擬硬體通信通道加載到所述安全世界的第二系統環境內的步驟之後,還包括:
72.控制所述第一系統環境生成可信程序運算請求,並通過所述虛擬硬體通信通道發送至所述第二系統環境內;
73.將所述第二系統環境生成的可信運算結果通過所述虛擬硬體通信通道發送至所述第一系統環境。
74.具體地,所述ta程序和ca程序可以使用相同的軟體開發包進行開發,可以降低開發成本,提高開發效率。
75.所述加載所述普通世界相應的作業系統的步驟,包括:
76.加載所述普通世界的內核和所述普通世界的文件系統。
77.可以理解地,所述普通世界相應的作業系統中包括了普通世界的內核和操作文件系統。
78.所述加載所述安全世界相應的作業系統的步驟,包括:
79.加載所述安全世界的內核和所述安全世界的文件系統。
80.可以理解地,所述安全世界相應的作業系統中包括了安全世界的內核和操作文件系統。
81.本實施例提供的可信環境的構建方法,通過運行初始加載程序;基於所述初始加載程序對普通世界進行鑑權,通過所述普通世界的第一硬體系統加載所述普通世界相應的作業系統,啟動所述普通世界的第一系統環境;將安全世界的第二硬體系統下線,並通過硬體分離技術從所述普通世界的第一硬體系統分離出目標硬體系統;基於所述目標硬體系統加載所述安全世界相應的作業系統,啟動所述安全世界的第二系統環境;建立所述普通世界的第一系統環境和所述安全世界的第二系統環境之間的虛擬硬體通信通道,通過統一普通世界和安全世界為相同的作業系統,提高了項目的開發和維護效率,能夠實際的降低方案的開發和維護成本。通過在普通世界的第一系統環境和安全世界的第二系統環境建立虛擬硬體通信通道,可以保證第一系統環境的硬體環境通信的安全,基於目標硬體系統加載安全世界的作業系統,便於項目的開發和維護,降低了成本。
82.實施例2
83.此外,參見圖3,本公開實施例提供了一種可信環境的構建裝置300。
84.運行模塊301,用於運行初始加載程序;
85.加載模塊302,用於基於所述初始加載程序對普通世界進行鑑權,通過所述普通世界的第一硬體系統加載所述普通世界相應的作業系統,啟動所述普通世界的第一系統環境;
86.分離模塊303,用於將安全世界的第二硬體系統下線,並通過硬體分離技術從所述普通世界的第一硬體系統分離出目標硬體系統;
87.啟動模塊304,用於基於所述目標硬體系統加載所述安全世界相應的作業系統,啟動所述安全世界的第二系統環境;
88.連接模塊305,用於建立所述普通世界的第一系統環境和所述安全世界的第二系統環境之間的虛擬硬體通信通道。
89.具體地,所述連接模塊具體用於:
90.在所述安全世界的第二系統環境內加載虛擬硬體;
91.將所述第一虛擬硬體掛載至虛擬硬體總線上;
92.所述普通世界的第一系統環境通過所述硬體總線識別到所述虛擬硬體,並建立與所述安全世界的第二系統環境的虛擬硬體通信通道,其中,所述虛擬硬體通信通道包括網絡、pci、串口中的任一種。
93.本實施例提供的可信環境的構建裝置300可以執行實施例1所示可信環境的構建方法,為避免重複,在此不再贅述。
94.本實施例提供的可信環境的構建裝置,通過運行初始加載程序;基於所述初始加載程序對普通世界進行鑑權,通過所述普通世界的第一硬體系統加載所述普通世界相應的作業系統,啟動所述普通世界的第一系統環境;將安全世界的第二硬體系統下線,並通過硬體分離技術從所述普通世界的第一硬體系統分離出目標硬體系統;基於所述目標硬體系統加載所述安全世界相應的作業系統,啟動所述安全世界的第二系統環境;建立所述普通世界的第一系統環境和所述安全世界的第二系統環境之間的虛擬硬體通信通道,通過統一普通世界和安全世界為相同的作業系統,提高了項目的開發和維護效率,能夠實際的降低方案的開發和維護成本。通過在普通世界的第一系統環境和安全世界的第二系統環境建立虛擬硬體通信通道,可以保證第一系統環境的硬體環境通信的安全,基於目標硬體系統加載安全世界的作業系統,便於項目的開發和維護,降低了成本。
95.實施例3
96.本實施例提供的計算機設備包括處理器和存儲器,存儲器存儲有電腦程式,電腦程式在處理器上執行時實現前述實施例1中的可信環境的構建方法。
97.實施例4
98.在本實施例中,計算機可讀存儲介質可以為只讀存儲器(read-only memory,簡稱rom)、隨機存取存儲器(random access memory,簡稱ram)、磁碟或者光碟等。
99.本實施例4提供的計算機可讀存儲介質可以執行實施例1所示的可信環境的構建方法,為避免重複,在此不再贅述。
100.需要說明的是,在本文中,術語「包括」、「包含」或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端所固有的要素。在沒有更多限制的情況下,由語句「包括一個
……」
限定的要素,並不排除在包括該
要素的過程、方法、物品或者終端中還存在另外的相同要素。
101.通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到上述實施例方法可藉助軟體加必需的通用硬體平臺的方式來構建,當然也可以通過硬體,但很多情況下前者是更佳的實施方式。基於這樣的理解,本技術的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該計算機軟體產品存儲在一個存儲介質(如rom/ram、磁碟、光碟)中,包括若干指令用以使得一臺終端(可以是手機,計算機,伺服器,空調器,或者網絡設備等)執行本技術各個實施例所述的方法。
102.上面結合附圖對本技術的實施例進行了描述,但是本技術並不局限於上述的具體實施方式,上述的具體實施方式僅僅是示意性的,而不是限制性的,本領域的普通技術人員在本技術的啟示下,在不脫離本技術宗旨和權利要求所保護的範圍情況下,還可做出很多形式,均屬於本技術的保護之內。