背景技術:
1、安全執行環境是在中央處理器單元(cpu)核心中提供的平臺,用于為在此環境中執行的代碼提供高級別的信任,使得可忽略來自計算設備的其他區域的威脅。目前,安全執行環境在硬件中實現了隔離區,諸如信任區,其中代碼應當以更高的特權執行模式來執行。此外,安全執行環境還實現了硬件和軟件的組合,諸如離線簽署elf以及在目標處理器上執行由所簽署的elf生成的鏡像之前由協處理器對所簽署的elf進行身份驗證。
技術實現思路
1、本發明所公開的各個方面包括生成二進制可執行文件以供在安全執行環境中執行的裝置和方法。各個方面可包括:生成函數的指令的哈希值,在該函數的目標代碼中插入開始哈希指令和停止哈希指令,以及生成具有包括該開始哈希指令和該停止哈希指令的該函數的二進制可執行文件。
2、在一些方面,在該函數的目標代碼中插入開始哈希指令和停止哈希指令可包括:在該函數的序言中插入開始哈希指令,以及在該函數的尾聲中插入停止哈希指令。
3、一些方面還可包括:對用于該函數的指令的哈希值的程序頭進行加密,以及將用于該函數的指令的哈希值的加密程序頭存儲到專用存儲器。
4、一些方面還可包括:使用軟件開發工具鏈來接收對哈希算法的指示,其中生成該函數的指令的哈希值可包括使用所指示的(即,在哈希算法的指示中標識的)哈希算法來生成該函數的指令的哈希值。
5、一些方面還可包括:使用軟件開發工具鏈來接收私鑰,以及使用加密算法和該私鑰來對用于該函數的指令的哈希值的程序頭進行加密。
6、一些方面還可包括:使用軟件開發工具鏈來接收對加密算法的指示,以及使用所指示的(即,在加密算法的指示中標識的)加密算法來對用于該函數的指令的哈希值的程序頭進行加密。
7、在一些方面,生成該函數的指令的哈希值可包括使用匯編器來生成該函數的指令的哈希值,在該函數的目標代碼中插入開始哈希指令和停止哈希指令可包括使用匯編器來在該函數的目標代碼中插入開始哈希指令和停止哈希指令,并且生成具有包括開始哈希指令和停止哈希指令的該函數的二進制可執行文件可包括使用鏈接器來生成具有包括開始哈希指令和停止哈希指令的該函數的二進制可執行文件。
8、另外的方面包括在運行時在處理器的安全執行環境中執行以維持安全執行環境的裝置和方法。此類方面可包括:在執行函數時并行地生成該函數的指令的哈希值,將所生成的該函數的指令的哈希值與所存儲的該函數的指令的哈希值進行比較,以及發出異常,該異常向該處理器指示:由于所生成的該函數的指令的哈希值與所存儲的該函數的指令的哈希值之間的任何差異,該函數的執行不安全。
9、一些方面還可包括:確定是否存在用于該函數的開始哈希指令,其中在執行該函數時并行地生成該函數的指令的哈希值可包括:響應于確定存在用于該函數的開始哈希指令而生成該函數的指令的哈希值,以及響應于確定不存在用于該函數的開始哈希指令而發出異常,該異常向該處理器指示該函數的執行不安全。
10、一些方面還可包括:基于到達用于該函數的停止哈希指令來確定是否結束生成該函數的指令的哈希值,其中響應于確定結束生成該函數的指令的哈希值而將所生成的該函數的指令的哈希值與所存儲的該函數的指令的哈希值進行比較。
11、一些方面還可包括:確定是否為處理器啟用安全執行環境,其中響應于確定為處理器啟用安全執行環境而在執行該函數時并行地生成該函數的指令的哈希值。
12、一些方面還可包括:對用于該函數的指令的哈希值的加密且存儲的程序頭進行解密,從而生成用于該函數的指令的哈希值的解密程序頭,以及基于用于該函數的指令的哈希值的解密程序頭從專用存儲器檢索所存儲的該函數的指令的哈希值。
13、一些方面還可包括:確定用于該函數的指令的哈希值的加密且存儲的程序頭是否存在于專用存儲器中,其中響應于確定用于該函數的指令的哈希值的加密且存儲的程序頭存在于專用存儲器中而對用于該函數的指令的哈希值的加密且存儲的程序頭進行解密。
14、另外的方面包括一種具有處理設備的計算設備,該處理設備被配置為執行以上概述的方法中的任一種方法的操作。另外的方面包括一種計算設備,該計算設備具有用于執行以上概述的各方法中任一者的各功能的部件。另外的方面包括一種非暫態處理器可讀介質,該非暫態處理器可讀介質具有存儲在其上的處理器可執行指令,該處理器可執行指令被配置為使計算設備的處理器和其他組件執行以上概述的方法中的任一種方法的操作。
1.一種生成二進制可執行文件以供在安全執行環境中執行的方法,所述方法包括:
2.根據權利要求1所述的方法,其中在所述函數的所述目標代碼中插入所述開始哈希指令和所述停止哈希指令包括:
3.根據權利要求1所述的方法,還包括:
4.根據權利要求1所述的方法,還包括:使用軟件開發工具鏈來接收對哈希算法的指示,其中生成所述函數的所述指令的所述哈希值包括使用所指示的哈希算法來生成所述函數的所述指令的所述哈希值。
5.根據權利要求1所述的方法,還包括:
6.根據權利要求1所述的方法,還包括:
7.根據權利要求1所述的方法,其中
8.一種計算設備,所述計算設備包括:
9.根據權利要求8所述的計算設備,其中所述處理器被進一步配置為使所述處理器以如下方式在所述函數的所述目標代碼中插入所述開始哈希指令和所述停止哈希指令:
10.根據權利要求8所述的計算設備,其中所述處理器被進一步配置為:
11.根據權利要求8所述的計算設備,其中所述處理器被進一步配置為:
12.根據權利要求8所述的計算設備,其中所述處理器被進一步配置為:
13.根據權利要求8所述的計算設備,其中所述處理器被進一步配置為:
14.根據權利要求8所述的計算設備,其中所述處理器被進一步配置為:
15.一種在運行時在處理器的安全執行環境中執行以維持所述安全執行環境的方法,所述方法包括:
16.根據權利要求15所述的方法,還包括:
17.根據權利要求15所述的方法,還包括:基于到達用于所述函數的停止哈希指令來確定是否結束生成所述函數的所述指令的所述哈希值,其中響應于確定結束生成所述函數的所述指令的所述哈希值而將所生成的所述函數的所述指令的哈希值與所存儲的所述函數的所述指令的哈希值進行比較。
18.根據權利要求15所述的方法,還包括:確定是否為所述處理器啟用所述安全執行環境,其中響應于確定為所述處理器啟用所述安全執行環境而在執行所述函數時并行地生成所述函數的所述指令的所述哈希值。
19.根據權利要求15所述的方法,還包括:
20.根據權利要求19所述的方法,還包括:確定用于所述函數的所述指令的哈希值的所述加密且存儲的程序頭是否存在于所述專用存儲器中,其中響應于確定用于所述函數的所述指令的哈希值的所述加密且存儲的程序頭存在于所述專用存儲器中而對用于所述函數的所述指令的哈希值的所述加密且存儲的程序頭進行解密。
21.一種計算設備,所述計算設備包括:
22.根據權利要求21所述的計算設備,其中:
23.根據權利要求21所述的計算設備,其中:
24.根據權利要求21所述的計算設備,其中:
25.根據權利要求21所述的計算設備,其中所述處理器被配置為:
26.根據權利要求25所述的計算設備,其中所述處理器被進一步配置為: