TWI716078B - 可信應用程式的遠端證明方法及裝置、電子設備 - Google Patents
可信應用程式的遠端證明方法及裝置、電子設備 Download PDFInfo
- Publication number
- TWI716078B TWI716078B TW108129629A TW108129629A TWI716078B TW I716078 B TWI716078 B TW I716078B TW 108129629 A TW108129629 A TW 108129629A TW 108129629 A TW108129629 A TW 108129629A TW I716078 B TWI716078 B TW I716078B
- Authority
- TW
- Taiwan
- Prior art keywords
- public key
- remote
- private key
- target container
- key
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 230000002085 persistent effect Effects 0.000 claims abstract description 25
- 238000005516 engineering process Methods 0.000 claims description 51
- 230000006870 function Effects 0.000 claims description 51
- 238000012795 verification Methods 0.000 claims description 50
- 238000012545 processing Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 7
- 238000002955 isolation Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000010276 construction Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
一種可信應用程式的遠端證明方法,可信應用程式中的受保護碼被隔離載入在作為可信執行環境的目標容器中,受保護碼包括待執行碼,和目標函數,包括:呼叫所述目標函數在所述目標容器中產生私鑰以及公鑰,並對產生的私鑰進行加密,以及對加密後的私鑰進行持久化儲存;加密的私鑰被設置了僅由目標容器進行解密的解密策略;透過第三方遠端證明服務端向遠端接收對象發起針對公鑰的遠端證明,並在公鑰通過遠端證明時,將公鑰發送至遠端接收對象進行持久化儲存;獲取待執行碼的執行結果;該執行結果由目標容器基於解密出的私鑰進行了簽名;將執行結果發送至遠端接收對象,由遠端接收對象基於儲存的公鑰對執行結果的簽名進行驗證。
Description
本說明書一個或多個實施例係有關區塊鏈技術領域,尤其有關一種可信應用程式的遠端證明方法及裝置、電子設備。
遠端證明(Remote Attestation),是一種硬體或者軟硬體獲得遠端提供者或生產者的信任的方法,是可信計算的關鍵技術之一。例如,在實際應用中,可以將可信應用程式中的受保護碼在可信執行環境中進行隔離,並且可以基於遠端證明技術,在不洩露受保護碼的基礎上,向遠端接收對象證明這些受保護碼的執行結果為可信資料。
本說明書提出一種可信應用程式的遠端證明方法,所述可信應用程式中的受保護碼被隔離載入在作為可信執行環境的目標容器中,其中,所述受保護碼包括待執行碼,和用於產生私鑰以及公鑰的目標函數,所述方法包括:
呼叫所述目標函數在所述目標容器中產生私鑰以及公鑰,並對產生的私鑰進行加密,以及對加密後的私鑰進行持久化儲存,其中,加密的所述私鑰被設置了僅由所述目標容器進行解密的解密策略;
透過第三方遠端證明服務端向遠端接收對象發起針對所述公鑰的遠端證明,並在所述公鑰通過遠端證明時,將所述公鑰發送至所述遠端接收對象進行持久化儲存;
獲取所述待執行碼的執行結果,其中,所述執行結果由所述目標容器基於解密出的所述私鑰進行了簽名處理;
將所述執行結果發送至所述遠端接收對象,以由所述遠端接收對象基於儲存的所述公鑰對所述執行結果的簽名進行驗證,來確認所述執行結果是否為可信資料。
可選地,呼叫所述目標函數在所述目標容器中產生私鑰以及公鑰,包括:
回應於所述待執行碼的執行指令,呼叫所述目標函數在所述目標容器中產生私鑰以及公鑰;或者
基於預設的呼叫週期,週期性呼叫所述目標函數在所述目標容器中產生私鑰以及公鑰。
可選地,透過第三方遠端證明服務端向遠端接收對象發起針對所述公鑰的遠端證明,並在所述公鑰通過遠端證明時,將所述公鑰發送至所述遠端接收對象進行持久化儲存,包括:
基於產生的所述公鑰創建遠端證明憑證;
將所述遠端證明憑證發送至所述第三方遠端證明服務端,以由所述遠端證明服務端對所述遠端證明憑證進行驗證;
獲取所述遠端證明服務端返回的驗證結果,其中,所述驗證結果由所述遠端證明服務端基於持有的私鑰進行了簽名處理;
將所述驗證結果以及產生的所述公鑰發送至所述遠端接收對象,以由所述遠端接收對象至少基於所述第三方遠端證明服務端的公鑰對所述驗證結果的簽名進行驗證,並在所述簽名驗證通過後,將產生的所述公鑰在所述遠端接收對象本地進行持久化儲存。
可選地,所述可信執行環境為基於SGX技術搭建的可信執行環境,所述目標容器為SGX技術中的Enclave程式,其中,加密後的所述私鑰的解密策略被設置為keypolicy-MRENCLAVE策略。
可選地,所述遠端接收對象為發布至區塊鏈的智慧型合約。
本說明書還提出一種可信應用程式的遠端證明裝置,所述可信應用程式中的受保護碼被隔離載入在作為可信執行環境的目標容器中,其中,所述受保護碼包括待執行碼,和用於產生私鑰以及公鑰的目標函數,所述裝置包括:
產生模組,呼叫所述目標函數在所述目標容器中產生私鑰以及公鑰,並對產生的私鑰進行加密,以及對加密後的私鑰進行持久化儲存,其中,加密的所述私鑰被設置了僅由所述目標容器進行解密的解密策略;
證明模組,透過第三方遠端證明服務端向遠端接收對象發起針對所述公鑰的遠端證明,並在所述公鑰通過遠端證明時,將所述公鑰發送至所述遠端接收對象進行持久化儲存;
獲取模組,獲取所述待執行碼的執行結果,其中,所述執行結果由所述目標容器基於解密出的所述私鑰進行了簽名處理;
驗證模組,將所述執行結果發送至所述遠端接收對象,以由所述遠端接收對象基於儲存的所述公鑰對所述執行結果的簽名進行驗證,來確認所述執行結果是否為可信資料。
可選地,所述產生模組:
回應於所述待執行碼的執行指令,呼叫所述目標函數在所述目標容器中產生私鑰以及公鑰;或者
基於預設的呼叫週期,週期性呼叫所述目標函數在所述目標容器中產生私鑰以及公鑰。
可選地,所述證明模組:
基於產生的所述公鑰創建遠端證明憑證;
將所述遠端證明憑證發送至所述第三方遠端證明服務端,以由所述遠端證明服務端對所述遠端證明憑證進行驗證;
獲取所述遠端證明服務端返回的驗證結果,其中,所述驗證結果由所述遠端證明服務端基於持有的私鑰進行了簽名處理;
將所述驗證結果以及產生的所述公鑰發送至所述遠端接收對象,以由所述遠端接收對象至少基於所述第三方遠端證明服務端的公鑰對所述驗證結果的簽名進行驗證,並在所述簽名驗證通過後,將產生的所述公鑰在所述遠端接收對象本地進行持久化儲存。
可選地,所述可信執行環境為基於SGX技術搭建的可信執行環境,所述目標容器為SGX技術中的Enclave程式,其中,加密後的所述私鑰的解密策略被設置為keypolicy-MRENCLAVE策略。
可選地,所述遠端接收對象為發布至區塊鏈的智慧型合約。
本說明書還提出一種電子設備,包括:
處理器;
用於儲存機器可執行指令的記憶體,
其中,透過讀取並執行所述記憶體儲存的與基於區塊鏈的可信應用程式的遠端證明的控制邏輯對應的機器可執行指令,所述可信應用程式中的受保護碼被隔離載入在作為可信執行環境的目標容器中,其中,所述受保護碼包括待執行碼,和用於產生私鑰以及公鑰的目標函數,所述處理器被致使:
呼叫所述目標函數在所述目標容器中產生私鑰以及公鑰,並對產生的私鑰進行加密,以及對加密後的私鑰進行持久化儲存,其中,加密的所述私鑰被設置了僅由所述目標容器進行解密的解密策略;
透過第三方遠端證明服務端向遠端接收對象發起針對所述公鑰的遠端證明,並在所述公鑰通過遠端證明時,將所述公鑰發送至所述遠端接收對象進行持久化儲存;
獲取所述待執行碼的執行結果,其中,所述執行結果由所述目標容器基於解密出的所述私鑰進行了簽名處理;
將所述執行結果發送至所述遠端接收對象,以由所述遠端接收對象基於儲存的所述公鑰對所述執行結果的簽名進行驗證,來確認所述執行結果是否為可信資料。
在以上技術方案中,一方面,由於用於遠端證明的公私鑰對在作為可信執行環境的目標容器中自主產生,不再由軟體提供商來產生;並且,持久化儲存的加密後的私鑰被設置了僅由該目標容器進行解密的解密策略;因此,即便是軟體發展者也無法獲取到產生的私鑰,從而可以顯著提升私鑰的安全等級;
另一方面,由於可信應用程式僅需要透過第三方遠端證明服務端,向遠端接收對象發起一次針對自主產生的公鑰的遠端證明,並在該公鑰通過遠端證明之後,後續就可以直接使用產生的私鑰對受保護碼中的待執行碼的執行結果進行簽名,並將簽名後的執行結果發送給遠端接收對象完成針對該執行結果的遠端證明,而不再需要透過第三方遠端證明服務端來向遠端接收對象發起針對該執行結果的遠端證明;因此,可以不再需要與第三方遠端證明服務端進行頻繁的互動,就可以基於自主產生的公私鑰對就可以便捷的向遠端接收對象證明該執行結果為可信資料。
在實際應用中,通常可以透過搭建TEE(Trusted Execution Environment,可信執行環境),並將可信應用程式中的受保護碼,在TEE中進行隔離,來實現對這些受保護碼的安全防護。
其中,在搭建TEE時,通常可以將設備底層的處理器作為硬體支撐,來搭建一個僅能由處理器來存取的容器(container)作為可信執行環境,並將可信應用程式中的受保護碼隔離載入在該容器中,以對容器中的受保護碼進行隔離保護。
例如,以利用Intel的SGX (Software Guard Extensions,軟體保護擴展)技術來搭建TEE為例,基於SGX技術,通常會將設備的CPU作為硬體支撐,來創建稱之為Enclave的程式作為保護容器,並將需要受到保護的碼隔離載入在Enclave程式中,保護其不受到攻擊。
而在一些場景下,上述可信應用程式中的受保護碼的執行結果,如果需要參與遠端的可信計算,則該可信應用程式除了需要將上述受保護碼的執行結果發送給遠端接收對象以外,通常還需要基於遠端證明技術,在不洩露受保護碼的基礎上,向遠端接收對象證明這些受保護碼的執行結果為可信資料。
例如,在一個場景下,假設部署在區塊鏈上的智慧型合約需要將可信應用程式中的受保護碼的執行結果作為輸入資料,在區塊鏈上進行可信計算;在這種情況下,由於可信應用程式並不是鏈上節點,對於智慧型合約來說是非授信的一方;因此,可信應用程式在將受保護碼的執行結果發送給部署在區塊鏈上的智慧型合約時,則需要依靠遠端證明技術,在不洩露受保護碼的基礎上,向智慧型合約證明這些受保護碼的執行結果為可信資料(即鏈上證明)。
而基於目前的遠端證明技術,可信應用程式向遠端接收對象發起針對特定資料的遠端證明時,通常需要依賴第三方遠端證明服務端來完成。
例如,仍然以Intel的SGX技術中的遠端證明機制為例,基於SGX技術,Intel會提供用於遠端證明的第三方的IAS(intel attestation service,因特爾認證服務)伺服器。隔離載入在Enclave中的受保護碼的執行結果,如果需要參與可信計算,則可信應用程式可以與IAS伺服器進行互動,透過IAS伺服器向遠端接收對象發起針對該受保護碼的執行結果的遠端認證,向遠端接收對象證明該受保護碼的執行結果為可信資料。
由於依賴第三方遠端證明服務端來完成遠端證明,需要與第三方遠端證明服務端進行頻繁互動,因此需要一種更加便捷的遠端證明機制。
基於此,本說明書提出一種基於作為可信執行環境的容器獨立產生的公私鑰對,來便捷向遠端接收對象發起對受保護碼的執行結果的遠端證明方案。
在實現時,可信應用程式的軟體發展者,可以基於特定的TEE搭建技術(比如,採用Intel的SGX技術),來開發作為TEE的目標容器(比如,SGX技術中的Enclave程式),並將可信應用程式中的受保護碼隔離載入在該目標容器中。
其中,在本方案中,隔離載入在上述目標容器中的受保護碼,可以包括執行結果需要向遠端接收方進行遠端證明的待執行碼,和用於產生私鑰以及公鑰的目標函數(本質上是一些產生私鑰公鑰的特殊碼)。
進一步地,可信應用程式可以呼叫隔離載入在上述目標容器中的受保護碼中的目標函數,在目標容器中產生一對公鑰和私鑰;
一方面,對於產生的私鑰,還可以在目標容器中進行加密處理,其中,在目標容器中對產生的私鑰進行加密時,可以為加密後的私鑰設置僅由該目標容器進行解密的解密策略(即僅該目標容器具有解密權限);然後,由處理器將加密後的私鑰進行持久化儲存。
另一方面,對於產生的公鑰,可以透過第三方遠端證明服務端,向遠端接受對象發起針對該公鑰的遠端證明,並在該公鑰通過遠端證明時,將產生的該公鑰發送至遠端接收對象,由遠端接收對象進行持久化儲存。
後續,當上述待執行碼執行完畢,上述目標容器可以對上述加密的私鑰進行解密,基於該私鑰對該待執行碼的執行結果進行簽名處理。而可信應用程式可以獲取由上述目標容器簽名處理後的執行結果,並將該執行結果發送至遠端接收對象,來發起針對該執行結果的遠端證明。
遠端接收對象在接收到可信應用程式發送的執行結果後,可以基於已經儲存的公鑰,對該執行結果的簽名進行驗證,來確定該執行結果是否為可信資料。
在以上技術方案中,一方面,由於用於遠端證明的公私鑰對在作為可信執行環境的目標容器中自主產生,不再由軟體提供商來產生;並且,持久化儲存的加密後的私鑰,被設置了僅由該目標容器進行解密的解密策略;因此,即便是軟體發展者也無法獲取到產生的私鑰,從而可以顯著提升私鑰的安全等級;
另一方面,由於可信應用程式僅需要透過第三方遠端證明服務端,向遠端接收對象發起一次針對自主產生的公鑰的遠端證明,並在該公鑰通過遠端證明之後,後續就可以直接使用產生的私鑰對受保護碼中的待執行碼的執行結果進行簽名,並將簽名後的執行結果發送給遠端接收對象完成針對該執行結果的遠端證明,而不再需要透過第三方遠端證明服務端來向遠端接收對象發起針對該執行結果的遠端證明;因此,可以不再需要與第三方遠端證明服務端進行頻繁的互動,就可以基於自主產生的公私鑰對就可以便捷的向遠端接收對象證明該執行結果為可信資料。
下面透過具體實施例並結合具體的應用場景對本說明書進行描述。
請參考圖1,圖1是本說明書一實施例提供的一種可信應用程式的遠端證明方法,應用於可信應用程式,所述可信應用程式中的受保護碼被隔離載入在作為可信執行環境的目標容器中,其中,所述受保護碼包括待執行碼,和用於產生私鑰以及公鑰的目標函數,所述方法執行以下步驟:
步驟102,呼叫所述目標函數在所述目標容器中產生私鑰以及公鑰,並對產生的私鑰進行加密,以及對加密後的私鑰進行持久化儲存,其中,加密的所述私鑰被設置了僅由所述目標容器進行解密的解密策略;
步驟104,通過第三方遠端證明服務端向遠端接收對象發起針對所述公鑰的遠端證明,並在所述公鑰通過遠端證明時,將所述公鑰發送至所述遠端接收對象進行持久化儲存;
步驟106,獲取所述待執行碼的執行結果,其中,所述執行結果由所述目標容器基於解密出的所述私鑰進行了簽名處理;
步驟108,將所述執行結果發送至所述遠端接收對象,以由所述遠端接收對象基於儲存的所述公鑰對所述執行結果的簽名進行驗證,來確認所述執行結果是否為可信資料。
上述可信應用程式,包括由軟體發展者開發的能夠向第三方提供可信服務的應用程式,其中,可信應用程式中的程式碼,通常包括受保護部分,和不受保護。
上述目標容器,在本說明書泛指基於特定的TEE搭建技術,搭建出的一個能夠為可信應用程式中的受保護碼提供安全保護的隔離的安全運行環境。
其中,在實際應用中,上述目標容器可以是一個以處理器作為底層硬體支撐,且僅能由處理器進行存取的隔離的軟體環境;例如,以採用Intel的SGX技術搭建TEE為例,上述目標容器具體可以是SGX技術中的Enclave程式,通常將可信應用程式中的受保護碼隔離載入到Enclave程式中,來對上述受保護碼進行安全防護。
當然,在實際應用中,也不排除上述目標容器具體也可以是一個在物理上隔離的硬體環境;比如,上述目標容器具體可以是一個在物理上隔離的物理晶片,可以將可信應用程式中的受保護碼隔離載入在該物理晶片中,來對上述受保護碼進行安全防護。
其中,需要強調的是,搭建TEE所採用的TEE搭建技術,在本說明書中不進行特別限定,本領域技術人員可以基於實際的開發需求來靈活的選擇。不難理解的是,上述目標容器的具體形態,通常也取決於本領域技術人員所採用的TEE搭建技術;亦即,上述目標容器最終是一個隔離的軟體環境,還是一個隔離的硬體環境,取決於本領域技術人員所採用的TEE搭建技術;例如,如果本領域技術人員採用Intel的SGX技術來搭建TEE,則上述目標容器是一個以CPU作為底層硬體支撐,且僅能由CPU進行存取的隔離的軟體環境(即Enclave程式)。
上述遠端接收對象,具體是指可信應用程式中的受保護碼的執行結果的遠端資料使用方;例如,在實際應用中,上述遠端接收對象可以是一個獨立的可信主機、可信系統;或者,也可以是一個在區塊鏈上部署的智慧型合約。
在以下實施例中,將以基於Intel的SGX技術來搭建TEE為例進行說明;其中,需要強調的是,以基於Intel的SGX技術來搭建TEE為例,僅為示意性的;顯而易見地,在實際應用中,顯然也可以採用其它的TEE搭建技術,來搭建TEE;比如,還可以採用諸如ARM的TrustZone技術,在本說明書中不在進行一一列舉。
在本說明書中,可信應用程式的軟體發展者,可以基於Intel的SGX技術,來創建作為TEE的Enclave程式,並將可信應用程式中的受保護碼隔離載入在該目標容器中。
需要說明的是,基於SGX技術創建Enclave程式,以及將受保護碼隔離載入在該目標容器中的具體實現過程,在本說明書中不再進行詳細說明,本領域技術護人員在將本說明書的技術方案付諸實現時,可以參考相關技術中的記載。
對於隔離載入在該Enclave程式中的受保護碼,通常稱之為該可信應用程式的可信區(Trusted Part);而其它未被隔離載入在Enclave程式中的碼,則稱之為該可信應用程式的非可信區(Untrusted Part)。
其中,對於隔離載入在上述Enclave程式中的受保護碼,至少可以包括待執行碼和目標函數兩部分;
上述待執行碼,即為執行結果需要發送給遠端接收對象進行可信計算的受保護碼;亦即,可信應用程式需要透過可信證明技術,向遠端接收對象證明上述待執行碼的執行結果為可信資料。而上述目標函數,具體用於為上述目標容器產生公鑰和私鑰。
在SGX技術中,可信應用程式向遠端接收對象發起對受保護碼的執行結果的遠端證明,通常是透過與部署的IAS伺服器進行互動來完成的。
而本說明書中,可以不再利用SGX技術中現有的遠端證明機制,透過與IAS伺服器進行互動,來向遠端接收對象發起對受保護碼的執行結果的遠端證明,而是僅利用SGX技術中現有的遠端證明機制,向遠端接收對象發起一次對在Enclave程式內部獨立產生的公私鑰對的遠端證明,而後可以在上述公私鑰對的遠端證明通過後,基於上述公私鑰對,來便捷向遠端接收對象發起對受保護碼的執行結果的遠端證明,而不再需要與IAS進行互動。
在初始狀態下,可信應用程式的非可信區,可以透過ECALL的方式,呼叫隔離載入在該Enclave程式中的受保護碼中的目標函數,在Enclave程式內部產生一對公鑰以及私鑰。
其中,需要說明的是,非可信區透過ECALL的方式,針對隔離載入在該Enclave程式中的受保護碼中的目標函數的呼叫,可以在執行受保護碼中的待執行碼時即時地呼叫,也可以基於一定的呼叫週期來週期性地呼叫。
例如,在一種實現方式中,非可信區在接收到針對受保護碼中的待執行碼的執行指令時,可以即時回應該執行指令,立即透過ECALL的方式,呼叫隔離載入在該Enclave程式中的受保護碼中的目標函數,在Enclave內部產生一對公鑰和私鑰。
在另一種實現方式中,也可以為非可信區預先設定一個呼叫週期,使得非可信區可以基於該呼叫週期,來週期性呼叫隔離載入在該Enclave程式中的受保護碼中的目標函數,在Enclave程式內部產生一對公鑰和私鑰。透過這種方式,可以定時的對Enclave程式的公鑰和私鑰進行更新。
一方面,對於產生的私鑰,可以由處理器在Enclave程式內部進行加密處理(密鑰由處理器持有),並由處理器為加密後的私鑰設置解密策略,然後將加密後的私鑰進行持有化儲存。
其中,基於SGX技術,針對加密後的資訊的解密策略,通常包括keypolicy-MRENCLAVE(以下簡稱MRENCLAVE策略)和keypolicy-MRSIGNER(以下簡稱MRSIGNER)兩種策略。
所謂MRENCLAVE策略,是指僅僅可被目前的ENCLAVE解密;而所謂MRSIGNER策略,是指可以被同一個開發者開發和簽署的所有ENCLAVE進行解密。
由於採用MRSIGNER策略,需要信任開發者;因此,對於獲取到開發者的私鑰的惡意者而言,透過開發惡意的ENCLAVE,並基於掌握的開發者的私鑰對該惡意的ENCLAVE進行簽署,就可以透過該惡意的ENCLAVE對加密後的私鑰進行解密,從而導致加密後的私鑰的明文資料洩露。
基於此,在本說明書中,處理器在為加密後的私鑰設置解密策略時,可以將解密策略設置為MRENCLAVE策略;亦即,僅目前的ENCLAVE具有對持久化儲存的加密後的私鑰進行解密的權限。
透過這種方式,可以確保即便是軟體發展者也無法獲取到ENCLAVE獨立產生的私鑰,從而可以顯著提升私鑰的安全等級。
另一方面,對於產生的公鑰,可以由可信執行程式的可信區透過IAS伺服器,向遠端接受對象發起針對該公鑰的遠端證明,並在該公鑰通過遠端證明時,將產生的該公鑰發送至遠端接收對象,由遠端接收對象進行持久化儲存。
基於SGX技術,可信執行程式的可信區,向遠端接受對象發起針對該公鑰的遠端證明時,首先可以基於產生的公鑰或者公鑰的hash值,創建一個作為遠端證明憑證的Quote;
例如,基於SGX技術,上述Quote通常是由Enclave和一個特殊的Quote Enclave進行內部互動,由Quote Enclave來創建完成的。其中,由Quote Enclave為Enclave創建用於遠端證明的Quote的具體實施過程,在本說明書中不在進行詳述,本領域技術人員在將本說明書的技術方案輔助時間時,可以參考相關技術中的技術。
在本說明書中,最終創建完成的Quote,透過可以包括EPID簽名、產生的公鑰或者公鑰的hash值(即需要遠端證明的userdata)、MRENCLAVE標識、處理器的EPID 標識等資訊。
亦即,最終創建完成的Quote,是針對產生的公鑰或者公鑰的hash值(即需要遠端證明的userdata)、MRENCLAVE標識、處理器的EPID 標識等資訊整體進行EPID簽名後得到的資訊。
其中,MRENCLAVE標識,通常為Enclave碼的hash值,用於唯一標識一個Enclave。EPID 標識,也稱之為basename,用於匿名標識一個處理器。而EPID簽名,是Intel的SGX技術採用的一種可以保持匿名的群簽名技術,在本說明書中對於EPID簽名的簽名處理過程,以及EPID簽名的簽名驗證過程,不再進行詳述,本領域技術人員可以參考相關技術中的記載。
在本說明書中,當產生了作為遠端證明憑證的Quote之後,可信執行程式的可信區,可以將該Quote發送給IAS伺服器進行遠端驗證。而IAS伺服器接收到該Quote之後,可以對該Quote的EPID簽名進行驗證,然後基於IAS伺服器持有的私鑰,對該Quote和針對該Quote的驗證結果整體進行簽名處理,產生對應的AVR(Attestation Verification Report,證明驗證報告)。
亦即,在本說明書中,上述AVR通常可以包括上述Quote、Quote驗證結果和IAS簽名等資訊。
在本說明書中,IAS伺服器可以將產生的AVR返回給可信執行程式的可信區,可信執行程式的可信區在接收到IAS伺服器返回的AVR後,可以將該AVR以及透過呼叫上述目標函數產生的公鑰,進一步發送給遠端接收對象。
或者,可信執行程式的可信區也可以將該AVR以及透過呼叫上述目標函數產生的公鑰,進一步發送給可信執行程式的非可信區,由上述非可信區將該AVR以及透過呼叫上述目標函數產生的公鑰,進一步發送給遠端接收對象。
而遠端接收對象在接收到可信執行程式的可信區發送的AVR之後,首先可以對AVR的狀態進行驗證;比如驗證AVR中的狀態欄位的取值是否為指示該AVR狀態正常的特定值;當AVR的狀態驗證通過之後,可以基於IAS伺服器持有的私鑰對應的公鑰,對該AVR的IAS簽名進行驗證;如果簽名驗證通過,此時可以進一步針對該AVR中攜帶的Quote中的公鑰或者公鑰的hash值、MRENCLAVE標識、處理器的EPID 標識等資訊進行驗證。
其中,對Quote中的公鑰或者公鑰的hash值進行的驗證,即為驗證Quote中的公鑰或者公鑰的hash值,與可信執行程式的可信區發送的公鑰是否匹配的過程;比如,如果Quote中攜帶的是公鑰的hash值,則可以進一步計算可信執行程式的可信區發送的公鑰的hash值,然後將計算出的hash值,與Quote中攜帶的公鑰的hash值進行匹配;如果二者匹配,則可以確認驗證通過。
其中,對Quote中的MRENCLAVE標識和處理器的EPID等資訊進行的驗證,即為驗證與MRENCLAVE標識對應Enclave,以及驗證與處理器的EPID對應的處理器是否可信的過程。
在實現時,Enclave的開發者可以透過開源Enclave碼來證明Enclave碼中不包含惡意程式碼,而遠端接收對象的管理員,可以對開源的Enclave碼進行安全審計,為遠端接收對象設置MRENCLAVE白名單。同樣,也可以按照實際需求,為遠端接收對象設置EPID 標識白名單。從而,遠端接收對象在對Quote中的MRENCLAVE標識和處理器的EPID標識等資訊進行驗證時,可以透過將Quote中的MRENCLAVE標識與MRENCLAVE白名單進行匹配,以及將Quote中的處理器的EPID標識與EPID 標識白名單進行匹配,來確認與MRENCLAVE標識對應Enclave,以及與處理器的EPID對應的處理器是否可信。
請繼續參見圖2,當AVR的IAS簽名;以及該AVR中攜帶的Quote中的公鑰或者公鑰的hash值、MRENCLAVE標識、處理器的EPID 標識等資訊均驗證通過之後,遠端接收對象可以將可信執行程式的可信區發送的透過呼叫上述目標函數產生的上述公鑰,以及對應的MRENCLAVE和EPID在本地進行持久化儲存。
亦即,將與呼叫上述目標函數產生的上述公鑰對應的MRENCLAVE作為可信程式標識,將與上述公鑰對應的EPID作為可信硬體標識,與上述公鑰一起進行持久化儲存。
在本說明書,當上述遠端接收對象將透過呼叫上述目標函數產生的上述公鑰在其本地進行持久化儲存之後,後續上述可信應用程式可以不再需要與IAS伺服器進行互動,來發起針對上述待執行碼的執行結果的遠端證明,而是直接透過呼叫上述目標函數創建的上述公私鑰對,來便捷向遠端接收對象發起對受保護碼的執行結果的遠端證明。
具體地,當隔離載入在上述Enclave中的待執行碼執行完畢,上述Enclave可以對已經持久化儲存的加密後的私鑰進行解密(只有該Enclave具有解密權限),並基於解密出的私鑰,對該待的執行結果進行簽名處理。
其中,需要說明的是,實際應用中,上述執行結果除了可以包括上述待執行碼在執行完畢後的輸出結果以外,也可以引入其它的資訊;即可以根據實際的業務需求,將上述待執行碼的輸出結果以外的其它資訊也作為執行結果的一部分進行簽名處理,然後發起遠端認證;例如,在一個例子中,可以將上述待執行碼在執行時的輸入資料(比如,待執行碼在執行時輸入的執行參數),也作為上述執行結果的一部分,進行簽名處理。
而可信應用程式的非可信區,可以獲取由上述Enclave簽名處理後的執行結果,將該執行結果直接發送給遠端接收對象,發起針對該執行結果的遠端證明。
當然,在實際應用中,也可以由可信應用程式的可信區,直接將簽名處理後的上述執行結果發送給遠端接收對象,發起針對該執行結果的遠端證明。
而遠端接收對象在接收到該執行結果後,可以基於在本地持久化儲存的上述公鑰(即呼叫上述目標函數產生的公鑰),基於該公鑰對該執行結果的簽名進行驗證;如果該簽名驗證通過,則可以直接認定該執行結果為,在可信的處理器上創建的可信的Enclave所產生的可信資料;此時針對上述待執行碼的執行結果的遠端證明完成。
透過這種方式,在向遠端接收對象對上述待執行碼的執行結果進行遠端證明時,可以不再需要與IAS伺服器進行互動,從而可以更加便捷的完成遠端證明。
在以上技術方案中,一方面,由於用於遠端證明的公私鑰對在作為可信執行環境的目標容器中自主產生,不再由軟體提供商來產生;並且,持久化儲存的加密後的私鑰,被設置了僅由該目標容器進行解密的解密策略;因此,即便是軟體發展者也無法獲取到產生的私鑰,從而可以顯著提升私鑰的安全等級;
另一方面,由於可信應用程式僅需要透過第三方遠端證明服務端,向遠端接收對象發起一次針對自主產生的公鑰的遠端證明,並在該公鑰通過遠端證明之後,後續就可以直接使用產生的私鑰對受保護碼中的待執行碼的執行結果進行簽名,並將簽名後的執行結果發送給遠端接收對象完成針對該執行結果的遠端證明,而不再需要透過第三方遠端證明服務端來向遠端接收對象發起針對該執行結果的遠端證明;因此,可以不再需要與第三方遠端證明服務端進行頻繁的互動,就可以基於自主產生的公私鑰對就可以便捷的向遠端接收對象證明該執行結果為可信資料。
與上述方法實施例相對應,本說明書還提供了一種可信應用程式的遠端證明裝置的實施例。本說明書的可信應用程式的遠端證明裝置的實施例可以應用在電子設備上。裝置實施例可以透過軟體來實現,也可以透過硬體或者軟硬體結合的方式來實現。以軟體實現為例,作為一個邏輯意義上的裝置,是透過其所在電子設備的處理器將非易失性記憶體中對應的電腦程式指令讀取到記憶體中運行形成的。從硬體層面而言,如圖2所示,為本說明書的可信應用程式的遠端證明裝置所在電子設備的一種硬體結構圖,除了圖2所示的處理器、記憶體、網路介面、以及非易失性記憶體之外,實施例中裝置所在的電子設備通常根據該電子設備的實際功能,還可以包括其他硬體,對此不再贅述。
圖3是本說明書一示例性實施例示出的一種可信應用程式的遠端證明裝置的方塊圖。
請參考圖3,所述可信應用程式的遠端證明裝置30可以應用在前述圖2所示的電子設備中,其中,所述可信應用程式中的受保護碼被隔離載入在作為可信執行環境的目標容器中,所述受保護碼包括待執行碼,和用於產生私鑰以及公鑰的目標函數;
所述裝置30包括:
產生模組301,呼叫所述目標函數在所述目標容器中產生私鑰以及公鑰,並對產生的私鑰進行加密,以及對加密後的私鑰進行持久化儲存,其中,加密的所述私鑰被設置了僅由所述目標容器進行解密的解密策略;
證明模組302,透過第三方遠端證明服務端向遠端接收對象發起針對所述公鑰的遠端證明,並在所述公鑰透過遠端證明時,將所述公鑰發送至所述遠端接收對象進行持久化儲存;
獲取模組303,獲取所述待執行碼的執行結果,其中,所述執行結果由所述目標容器基於解密出的所述私鑰進行了簽名處理;
驗證模組304,將所述執行結果發送至所述遠端接收對象,以由所述遠端接收對象基於儲存的所述公鑰對所述執行結果的簽名進行驗證,來確認所述執行結果是否為可信資料。
在本實施例中,所述產生模組301:
回應於所述待執行碼的執行指令,呼叫所述目標函數在所述目標容器中產生私鑰以及公鑰;或者
基於預設的呼叫週期,週期性呼叫所述目標函數在所述目標容器中產生私鑰以及公鑰。
在本實施例中,所述證明模組302:
基於產生的所述公鑰創建遠端證明憑證;
將所述遠端證明憑證發送至所述第三方遠端證明服務端,以由所述遠端證明服務端對所述遠端證明憑證進行驗證;
獲取所述遠端證明服務端返回的驗證結果,其中,所述驗證結果由所述遠端證明服務端基於持有的私鑰進行了簽名處理;
將所述驗證結果以及產生的所述公鑰發送至所述遠端接收對象,以由所述遠端接收對象至少基於所述第三方遠端證明服務端的公鑰對所述驗證結果的簽名進行驗證,並在所述簽名驗證通過後,將產生的所述公鑰在所述遠端接收對象本地進行持久化儲存。
在本實施例中,所述可信執行環境為基於SGX技術搭建的可信執行環境;所述目標容器為SGX技術中的Enclave程式,其中,加密後的所述私鑰的解密策略被設置為keypolicy-MRENCLAVE策略。
在本實施例中,所述遠端接收對象為發布至區塊鏈的智慧型合約。
上述裝置中各個模組的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,在此不再贅述。
對於裝置實施例而言,由於其基本對應於方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中,所述作為分離部件說明的模組可以是或者也可以不是物理上分開的,作為模組顯示的部件可以是或者也可以不是物理模組,即可以位於一個地方,或者也可以分布到多個網路模組上。可以根據實際的需要選擇其中的部分或者全部模組來實現本說明書方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
上述實施例闡明的系統、裝置、模組或模組,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、膝上型電腦、蜂巢式電話、相機電話、智慧型電話、個人數位助理、媒體播放機、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。
與上述方法實施例相對應,本說明書還提供了一種電子設備的實施例。該電子設備包括:處理器以及用於儲存機器可執行指令的記憶體,其中,處理器和記憶體通常透過內部總線相互連接。在其他可能的實現方式中,所述設備還可能包括外部介面,以能夠與其他設備或者部件進行通訊。
在本實施例中,所述可信應用程式中的受保護碼被隔離載入在作為可信執行環境的目標容器中,其中,所述受保護碼包括待執行碼,和用於產生私鑰以及公鑰的目標函數;
透過讀取並執行所述記憶體儲存的與可信應用程式的遠端證明的控制邏輯對應的機器可執行指令,所述處理器被致使:
呼叫所述目標函數在所述目標容器中產生私鑰以及公鑰,並對產生的私鑰進行加密,以及對加密後的私鑰進行持久化儲存,其中,加密的所述私鑰被設置了僅由所述目標容器進行解密的解密策略;
透過第三方遠端證明服務端向遠端接收對象發起針對所述公鑰的遠端證明,並在所述公鑰透過遠端證明時,將所述公鑰發送至所述遠端接收對象進行持久化儲存;
獲取所述待執行碼的執行結果,其中,所述執行結果由所述目標容器基於解密出的所述私鑰進行了簽名處理;
將所述執行結果發送至所述遠端接收對象,以由所述遠端接收對象基於儲存的所述公鑰對所述執行結果的簽名進行驗證,來確認所述執行結果是否為可信資料。
在本實施例中,透過讀取並執行所述記憶體儲存的與可信應用程式的遠端證明的控制邏輯對應的機器可執行指令,所述處理器被致使:
回應於所述待執行碼的執行指令,呼叫所述目標函數在所述目標容器中產生私鑰以及公鑰;或者
基於預設的呼叫週期,週期性呼叫所述目標函數在所述目標容器中產生私鑰以及公鑰。
在本實施例中,透過讀取並執行所述記憶體儲存的與可信應用程式的遠端證明的控制邏輯對應的機器可執行指令,所述處理器被致使:
基於產生的所述公鑰創建遠端證明憑證;
將所述遠端證明憑證發送至所述第三方遠端證明服務端,以由所述遠端證明服務端對所述遠端證明憑證進行驗證;
獲取所述遠端證明服務端返回的驗證結果,其中,所述驗證結果由所述遠端證明服務端基於持有的私鑰進行了簽名處理;
將所述驗證結果以及產生的所述公鑰發送至所述遠端接收對象,以由所述遠端接收對象至少基於所述第三方遠端證明服務端的公鑰對所述驗證結果的簽名進行驗證,並在所述簽名驗證通過後,將產生的所述公鑰在所述遠端接收對象本地進行持久化儲存。
本領域技術人員在考慮說明書及實踐這裡揭示的發明後,將容易想到本說明書的其它實施方案。本說明書旨在涵蓋本說明書的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本說明書的一般性原理並包括本說明書未揭示的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本說明書的真正範圍和精神由下面的申請專利範圍來指出。
應當理解的是,本說明書並不局限於上面已經描述並在圖式中示出的精確結構,並且可以在不脫離其範圍進行各種修改和改變。本說明書的範圍僅由所附的申請專利範圍來限制。
以上所述僅為本說明書的較佳實施例而已,並不用來限制本說明書,凡在本說明書的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本說明書保護的範圍之內。
102:方法步驟
104:方法步驟
106:方法步驟
108:方法步驟
30:可信應用程式的遠端證明裝置
301:產生模組
302:證明模組
303:獲取模組
304:驗證模組
圖1是一示例性實施例提供的一種可信應用程式的遠端證明方法的流程圖。
圖2是一示例性實施例提供的一種電子設備的結構示意圖。
圖3是一示例性實施例提供的一種可信應用程式的遠端證明裝置的方塊圖。
Claims (7)
- 一種可信應用程式的遠端證明方法,該可信應用程式中的受保護碼被隔離載入在作為可信執行環境的目標容器中,其中,該可信執行環境為基於SGX技術搭建的可信執行環境,該目標容器為SGX技術中的Enclave程式,該受保護碼包括待執行碼,和用於產生私鑰以及公鑰的目標函數,該方法包括:呼叫該目標函數在該目標容器中產生私鑰以及公鑰,並對產生的私鑰進行加密,以及對加密後的私鑰進行持久化儲存,其中,加密的該私鑰被設置了僅由該目標容器進行解密的解密策略,該解密策略包括keypolicy-MRENCLAVE策略;透過第三方遠端證明服務端向發布至區塊鏈的智慧型合約發起針對該公鑰的遠端證明,並在該公鑰通過遠端證明時,將該公鑰發送至該智慧型合約進行持久化儲存;獲取該待執行碼的執行結果,其中,該執行結果由該目標容器基於解密出的該私鑰進行了簽名處理;以及將該執行結果發送至該智慧型合約,以由該智慧型合約基於儲存的該公鑰對該執行結果的簽名進行驗證,來確認該執行結果是否為可信資料。
- 根據請求項1所述的方法,呼叫該目標函數在該目標容器中產生私鑰以及公鑰,包括: 回應於該待執行碼的執行指令,呼叫該目標函數在該目標容器中產生私鑰以及公鑰;或者基於預設的呼叫週期,週期性呼叫該目標函數在該目標容器中產生私鑰以及公鑰。
- 根據請求項1所述的方法,透過第三方遠端證明服務端向發布至區塊鏈的智慧型合約發起針對該公鑰的遠端證明,並在該公鑰通過遠端證明時,將該公鑰發送至該智慧型合約進行持久化儲存,包括:基於產生的該公鑰創建遠端證明憑證;將該遠端證明憑證發送至該第三方遠端證明服務端,以由該第三方遠端證明服務端對該遠端證明憑證進行驗證;獲取該第三方遠端證明服務端返回的驗證結果,其中,該驗證結果由該第三方遠端證明服務端基於持有的私鑰進行了簽名處理;以及將該驗證結果以及產生的該公鑰發送至該智慧型合約,以由該智慧型合約至少基於該第三方遠端證明服務端的公鑰對該驗證結果的簽名進行驗證,並在該簽名驗證通過後,將產生的該公鑰在該智慧型合約進行持久化儲存。
- 一種可信應用程式的遠端證明裝置,該可信應用程式中的受保護碼被隔離載入在作為可信執行環境的目標容器中,其中,該可信執行環境為基於SGX技術搭建的可信執 行環境,該目標容器為SGX技術中的Enclave程式,該受保護碼包括待執行碼,和用於產生私鑰以及公鑰的目標函數,該裝置包括:產生模組,呼叫該目標函數在該目標容器中產生私鑰以及公鑰,並對產生的私鑰進行加密,以及對加密後的私鑰進行持久化儲存,其中,加密的該私鑰被設置了僅由該目標容器進行解密的解密策略,該解密策略包括keypolicy-MRENCLAVE策略;證明模組,透過第三方遠端證明服務端向發布至區塊鏈的智慧型合約發起針對該公鑰的遠端證明,並在該公鑰通過遠端證明時,將該公鑰發送至該智慧型合約進行持久化儲存;獲取模組,獲取該待執行碼的執行結果,其中,該執行結果由該目標容器基於解密出的該私鑰進行了簽名處理;以及驗證模組,將該執行結果發送至該智慧型合約,以由該智慧型合約基於儲存的該公鑰對該執行結果的簽名進行驗證,來確認該執行結果是否為可信資料。
- 根據請求項4所述的裝置,該產生模組:回應於該待執行碼的執行指令,呼叫該目標函數在該目標容器中產生私鑰以及公鑰;或者基於預設的呼叫週期,週期性呼叫該目標函數在該目標容器中產生私鑰以及公鑰。
- 根據請求項4所述的裝置,該證明模組:基於產生的該公鑰創建遠端證明憑證;將該遠端證明憑證發送至該第三方遠端證明服務端,以由該第三方遠端證明服務端對該遠端證明憑證進行驗證;獲取該第三方遠端證明服務端返回的驗證結果,其中,該驗證結果由該第三方遠端證明服務端基於持有的私鑰進行了簽名處理;以及將該驗證結果以及產生的該公鑰發送至該智慧型合約,以由該智慧型合約至少基於該第三方遠端證明服務端的公鑰對該驗證結果的簽名進行驗證,並在該簽名驗證通過後,將產生的該公鑰在該智慧型合約進行持久化儲存。
- 一種電子設備,包括:處理器;以及用於儲存機器可執行指令的記憶體,其中,透過讀取並執行該記憶體儲存的與基於區塊鏈的可信應用程式的遠端證明的控制邏輯對應的機器可執行指令,該可信應用程式中的受保護碼被隔離載入在作為可信執行環境的目標容器中,其中,該可信執行環境為基於SGX技術搭建的可信執行環境,該目標容器為SGX技術中的Enclave程式,該受保護碼包括待執行碼,和用於產生私鑰以及公鑰的目標函數,該處理器被致使: 呼叫該目標函數在該目標容器中產生私鑰以及公鑰,並對產生的私鑰進行加密,以及對加密後的私鑰進行持久化儲存,其中,加密的該私鑰被設置了僅由該目標容器進行解密的解密策略,該解密策略包括keypolicy-MRENCLAVE策略;透過第三方遠端證明服務端向發布至區塊鏈的該智慧型合約發起針對該公鑰的遠端證明,並在該公鑰通過遠端證明時,將該公鑰發送至該智慧型合約進行持久化儲存;獲取該待執行碼的執行結果,其中,該執行結果由該目標容器基於解密出的該私鑰進行了簽名處理;以及將該執行結果發送至該智慧型合約,以由該智慧型合約基於儲存的該公鑰對該執行結果的簽名進行驗證,來確認該執行結果是否為可信資料。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201811364461.1 | 2018-11-16 | ||
| CN201811364461.1A CN110011801B (zh) | 2018-11-16 | 2018-11-16 | 可信应用程序的远程证明方法及装置、电子设备 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202021306A TW202021306A (zh) | 2020-06-01 |
| TWI716078B true TWI716078B (zh) | 2021-01-11 |
Family
ID=67164919
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW108129629A TWI716078B (zh) | 2018-11-16 | 2019-08-20 | 可信應用程式的遠端證明方法及裝置、電子設備 |
Country Status (3)
| Country | Link |
|---|---|
| CN (2) | CN110011801B (zh) |
| TW (1) | TWI716078B (zh) |
| WO (1) | WO2020098377A1 (zh) |
Families Citing this family (41)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110430051B (zh) * | 2019-08-01 | 2022-08-05 | 北京永新视博数字电视技术有限公司 | 一种密钥存储方法、装置及服务器 |
| CN110519260B (zh) * | 2019-08-23 | 2020-09-25 | 联想(北京)有限公司 | 一种信息处理方法及信息处理装置 |
| CN110838919B (zh) * | 2019-11-01 | 2021-04-13 | 广州小鹏汽车科技有限公司 | 通信方法、存储方法、运算方法及装置 |
| CN111049825B (zh) * | 2019-12-12 | 2021-11-30 | 支付宝(杭州)信息技术有限公司 | 一种基于可信执行环境的安全多方计算方法和系统 |
| CN110890962B (zh) * | 2019-12-20 | 2021-04-13 | 支付宝(杭州)信息技术有限公司 | 认证密钥协商方法、装置、存储介质及设备 |
| CN111382445B (zh) * | 2020-03-03 | 2023-04-07 | 首都师范大学 | 利用可信执行环境系统提供可信服务的方法 |
| CN111090888B (zh) * | 2020-03-18 | 2020-07-07 | 支付宝(杭州)信息技术有限公司 | 验证合约的方法及装置 |
| CN111092727B (zh) * | 2020-03-18 | 2020-07-17 | 支付宝(杭州)信息技术有限公司 | 共享集群密钥的方法及装置 |
| CN111092726B (zh) * | 2020-03-18 | 2020-07-28 | 支付宝(杭州)信息技术有限公司 | 生成共享合约密钥的方法及装置 |
| CN111541725B (zh) * | 2020-07-08 | 2021-04-27 | 支付宝(杭州)信息技术有限公司 | 区块链一体机及其密码加速卡、密钥管理方法和装置 |
| CN113395159B (zh) * | 2021-01-08 | 2024-03-12 | 腾讯科技(深圳)有限公司 | 一种基于可信执行环境的数据处理方法以及相关装置 |
| CN114884647B (zh) * | 2021-01-22 | 2024-02-20 | 腾讯科技(深圳)有限公司 | 网络访问管理方法及相关设备 |
| CN113468270A (zh) * | 2021-02-07 | 2021-10-01 | 支付宝(杭州)信息技术有限公司 | 一种数据存储方法及系统 |
| CN113343234B (zh) * | 2021-06-10 | 2023-01-20 | 支付宝(杭州)信息技术有限公司 | 对代码安全性进行可信检查的方法及装置 |
| CN113672973B (zh) * | 2021-07-20 | 2024-04-16 | 深圳大学 | 基于可信执行环境的risc-v架构的嵌入式设备的数据库系统 |
| CN114090981B (zh) * | 2021-11-29 | 2023-04-07 | 深圳前海微众银行股份有限公司 | 一种针对远程主机的访问方法及装置 |
| CN114237637B (zh) * | 2021-11-29 | 2024-12-24 | 支付宝(杭州)信息技术有限公司 | 一种固件刷写方法、装置、存储介质及电子设备 |
| CN114139204B (zh) * | 2021-12-03 | 2025-07-22 | 杭州安恒信息技术股份有限公司 | 一种匿踪查询方法、装置及介质 |
| CN113987554B (zh) * | 2021-12-23 | 2022-04-08 | 支付宝(杭州)信息技术有限公司 | 获取数据授权的方法、装置及系统 |
| CN114422215B (zh) * | 2021-12-31 | 2024-06-25 | 国网安徽省电力有限公司合肥供电公司 | 一种基于区块链的跨平台和可信能源数据共享系统及方法 |
| CN114629639B (zh) * | 2022-03-10 | 2024-12-03 | 阿里云计算有限公司 | 基于可信执行环境的密钥管理方法、装置和电子设备 |
| CN114553590B (zh) * | 2022-03-17 | 2023-08-22 | 抖音视界有限公司 | 数据传输方法及相关设备 |
| CN114884714B (zh) * | 2022-04-26 | 2024-03-26 | 北京百度网讯科技有限公司 | 任务处理方法、装置、设备及存储介质 |
| CN115001744B (zh) * | 2022-04-27 | 2023-08-29 | 中国科学院信息工程研究所 | 一种云平台数据完整性验证方法及系统 |
| CN114860382B (zh) * | 2022-05-06 | 2025-09-30 | 阿里巴巴(中国)有限公司 | 数据处理方法及装置 |
| CN115081000B (zh) * | 2022-06-17 | 2024-06-25 | 苏州浪潮智能科技有限公司 | 保护远程目标程序源码的方法、系统、设备和存储介质 |
| CN114900320B (zh) * | 2022-06-21 | 2024-04-26 | 杭州安恒信息安全技术有限公司 | 一种tee节点认证方法、装置、设备及介质 |
| CN115276982B (zh) * | 2022-07-29 | 2024-04-16 | 武汉科技大学 | 一种基于sgx的以太坊密钥管理方法及系统 |
| CN115357866B (zh) * | 2022-08-12 | 2026-01-30 | 杭州趣链科技有限公司 | 应用程序执行方法、装置、设备及存储介质 |
| CN115484031B (zh) * | 2022-09-13 | 2024-03-08 | 山东大学 | 基于sgx的无可信第三方云存储密文去重方法及系统 |
| CN115664806A (zh) * | 2022-10-25 | 2023-01-31 | 上海万向区块链股份公司 | 基于sgx的去中心化点对点隐私计算方法及系统 |
| CN115795238A (zh) * | 2022-12-01 | 2023-03-14 | 蚂蚁区块链科技(上海)有限公司 | 进行隐私计算的方法 |
| FR3143244A1 (fr) * | 2022-12-07 | 2024-06-14 | Electricite De France | Mécanisme d’autorisation pour l’utilisation d’un procédé logiciel avec sécurisation du code source |
| CN116346341A (zh) * | 2023-03-29 | 2023-06-27 | 阿里云计算有限公司 | 私钥保护和服务端访问方法、系统、设备及存储介质 |
| CN116112187B (zh) * | 2023-04-10 | 2023-07-14 | 山东海量信息技术研究院 | 一种远程证明方法、装置、设备及可读存储介质 |
| CN116846682B (zh) * | 2023-08-29 | 2024-01-23 | 山东海量信息技术研究院 | 通信信道建立方法、装置、设备及介质 |
| CN117493344B (zh) * | 2023-11-09 | 2024-07-26 | 兰州大学 | 一种基于机密计算技术的数据组织方法 |
| CN117454437B (zh) * | 2023-12-22 | 2024-03-22 | 北京天润基业科技发展股份有限公司 | 交易处理方法、存储介质及电子设备 |
| CN118965449B (zh) * | 2024-07-19 | 2025-10-24 | 南京航空航天大学 | 一种面向轻量级设备的云存储数据完整性校验方法 |
| CN119011288A (zh) * | 2024-10-15 | 2024-11-22 | 宝德计算机系统股份有限公司 | 一种基于tee技术的可信安全bmc带外安装系统软件的方法及系统 |
| CN119622743B (zh) * | 2024-12-03 | 2025-09-30 | 山东大学 | 一种可信应用生命周期安全管理方法及系统 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107463838A (zh) * | 2017-08-14 | 2017-12-12 | 广州大学 | 基于sgx的安全监控方法、装置、系统及存储介质 |
| CN108462689A (zh) * | 2017-02-22 | 2018-08-28 | 英特尔公司 | 用于远程sgx飞地认证的技术 |
Family Cites Families (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN100583768C (zh) * | 2007-04-27 | 2010-01-20 | 中国科学院软件研究所 | 基于安全需求的远程证明方法及其系统 |
| CN101908115B (zh) * | 2010-07-30 | 2013-09-11 | 中国船舶重工集团公司第七0九研究所 | 基于可信平台模块实现软件可信执行的方法 |
| CN101951388B (zh) * | 2010-10-14 | 2013-03-20 | 中国电子科技集团公司第三十研究所 | 一种可信计算环境中的远程证明方法 |
| CA2902285A1 (en) * | 2013-03-15 | 2014-09-18 | Ologn Technologies Ag | Systems, methods and apparatuses for remote attestation |
| US9521125B2 (en) * | 2014-03-13 | 2016-12-13 | Intel Corporation | Pseudonymous remote attestation utilizing a chain-of-trust |
| CN104077533B (zh) * | 2014-07-17 | 2017-09-15 | 北京握奇智能科技有限公司 | 一种操作敏感数据的方法和设备 |
| US20160098555A1 (en) * | 2014-10-02 | 2016-04-07 | Arm Limited | Program code attestation circuitry, a data processing apparatus including such program code attestation circuitry and a program attestation method |
| US9536093B2 (en) * | 2014-10-02 | 2017-01-03 | Microsoft Technology Licensing, Llc | Automated verification of a software system |
| US9363087B2 (en) * | 2014-10-02 | 2016-06-07 | Microsoft Technology Licensing, Inc. | End-to-end security for hardware running verified software |
| CN104408371B (zh) * | 2014-10-14 | 2017-12-19 | 中国科学院信息工程研究所 | 一种基于可信执行环境高安全应用系统的实现方法 |
| CN104333451A (zh) * | 2014-10-21 | 2015-02-04 | 广东金赋信息科技有限公司 | 一种可信自助服务系统 |
| CN104333541A (zh) * | 2014-10-21 | 2015-02-04 | 广东金赋信息科技有限公司 | 一种可信自助服务系统 |
| CN105812332A (zh) * | 2014-12-31 | 2016-07-27 | 北京握奇智能科技有限公司 | 数据保护方法 |
| US11829998B2 (en) * | 2016-06-07 | 2023-11-28 | Cornell University | Authenticated data feed for blockchains |
| US10445698B2 (en) * | 2016-06-30 | 2019-10-15 | Clause, Inc. | System and method for forming, storing, managing, and executing contracts |
| US10341116B2 (en) * | 2016-12-28 | 2019-07-02 | Intel Corporation | Remote attestation with hash-based signatures |
| US20180241572A1 (en) * | 2017-02-22 | 2018-08-23 | Intel Corporation | Techniques for remote sgx enclave authentication |
| US10397005B2 (en) * | 2017-03-31 | 2019-08-27 | Intel Corporation | Using a trusted execution environment as a trusted third party providing privacy for attestation |
| US10833858B2 (en) * | 2017-05-11 | 2020-11-10 | Microsoft Technology Licensing, Llc | Secure cryptlet tunnel |
| CN107342858B (zh) * | 2017-07-05 | 2019-09-10 | 武汉凤链科技有限公司 | 一种基于可信环境的智能合约保护方法和系统 |
| CN107395366A (zh) * | 2017-08-08 | 2017-11-24 | 沈阳东青科技有限公司 | 一种面向工控可信计算平台的高效远程证明方法 |
| CN107919954B (zh) * | 2017-10-20 | 2019-05-14 | 浙江大学 | 一种基于sgx软件防护扩展指令的区块链用户密钥保护方法和装置 |
| CN108055133B (zh) * | 2017-12-12 | 2020-02-14 | 江苏安凰领御科技有限公司 | 一种基于区块链技术的密钥安全签名方法 |
| CN107896150A (zh) * | 2017-12-21 | 2018-04-10 | 善林(上海)金融信息服务有限公司 | 链接区块链网络和物联网的系统 |
| CN108390866B (zh) * | 2018-02-06 | 2020-10-02 | 南京航空航天大学 | 基于双代理双向匿名认证的可信远程证明方法及系统 |
-
2018
- 2018-11-16 CN CN201811364461.1A patent/CN110011801B/zh active Active
- 2018-11-16 CN CN202011295708.6A patent/CN112468473B/zh active Active
-
2019
- 2019-08-20 TW TW108129629A patent/TWI716078B/zh active
- 2019-09-19 WO PCT/CN2019/106607 patent/WO2020098377A1/zh not_active Ceased
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108462689A (zh) * | 2017-02-22 | 2018-08-28 | 英特尔公司 | 用于远程sgx飞地认证的技术 |
| CN107463838A (zh) * | 2017-08-14 | 2017-12-12 | 广州大学 | 基于sgx的安全监控方法、装置、系统及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN110011801B (zh) | 2020-10-20 |
| CN112468473B (zh) | 2023-10-24 |
| CN110011801A (zh) | 2019-07-12 |
| TW202021306A (zh) | 2020-06-01 |
| WO2020098377A1 (zh) | 2020-05-22 |
| CN112468473A (zh) | 2021-03-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI716078B (zh) | 可信應用程式的遠端證明方法及裝置、電子設備 | |
| CN112889052B (zh) | 外围设备 | |
| US10972265B2 (en) | Addressing a trusted execution environment | |
| WO2022073264A1 (en) | Systems and methods for secure and fast machine learning inference in trusted execution environment | |
| US11212095B2 (en) | Allowing restricted external access to devices | |
| US10498712B2 (en) | Balancing public and personal security needs | |
| US10419402B2 (en) | Addressing a trusted execution environment using signing key | |
| US20070039046A1 (en) | Proof of execution using random function | |
| US10897360B2 (en) | Addressing a trusted execution environment using clean room provisioning | |
| US11398906B2 (en) | Confirming receipt of audit records for audited use of a cryptographic key | |
| US11405201B2 (en) | Secure transfer of protected application storage keys with change of trusted computing base | |
| HK40047466B (zh) | 可信应用程序的远程证明方法及装置、电子设备 | |
| HK40047466A (zh) | 可信应用程序的远程证明方法及装置、电子设备 | |
| CN114556344A (zh) | 在加密协同处理器中执行针对实体特定的加密代码 | |
| CN119203143B (zh) | 安全性验证方法、数据处理系统、存储介质及程序产品 | |
| CA3042984C (en) | Balancing public and personal security needs | |
| CN117335991A (zh) | 可执行程序的无证书认证 | |
| JP2011171936A (ja) | 情報処理装置および方法、並びに認証システム | |
| HK40066643A (zh) | 在加密协同处理器中执行针对实体特定的加密代码 | |
| HK40008560A (zh) | 使用加密密钥寻址可信执行环境 | |
| BR112019013584B1 (pt) | Sistema, método para fornecer dados protegidos a um ambiente de execução confiável aninhado e meio de armazenamento legível por computador |