雙執行環境之間雙向訪問應用的方法
【技術領域】
[0001] 本發明涉及智能移動設備技術領域,更具體地說,涉及一種雙執行環境之間雙向 訪問應用的方法。
【背景技術】
[0002] 隨著智能移動設備(如智能手機)逐步"支付工具"化,其現有的智能操作系統已無 法滿足支付應用對其所處的運行環境的安全性要求。由于系統資源所限,若提高智能操作 系統的安全性,幾乎肯定會使功能及用戶體驗有所降低。針對于此,當前業界基于最新移動 芯片的技術發展,提出了雙執行環境方案:即一個設備上同時運行有兩個執行環境,其中一 個是注重功能、用戶體驗的多媒體執行環境,另一個是注重安全的可信執行環境。
[0003] 當前,GlobalPlatform 所提出的可信執行環境(Trusted execution environment,簡稱TEE)作為該方案的一個技術實現平臺,得到了廣泛應用。在該平臺上, 滿足某項業務需求的功能實現由原先的單一應用分為兩種應用:一種作為客戶應用部署在 多媒體執行環境中,也稱為REE (Rich execution environment)應用,另一種作為安全應 用部署在可信執行環境中,也稱為TEE應用。為實現系統的安全功能,多媒體執行環境中的 REE應用需要訪問可信執行環境中的TEE應用,即,訪問TEE應用所提供的服務,相應的服務 結果再由TEE應用返回給多媒體執行環境中的REE應用。
[0004] 如圖1所示,REE應用和TEE應用之間采用以下機制進行通信:REE通信模塊和TEE 通信模塊分別運行在多媒體執行環境和可信執行環境下,采用一種請求-應答方式來實現 REE應用和TEE應用之間的數據交互。具體地,REE應用請求訪問TEE應用時,首先將訪問請 求轉送至REE通信模塊,REE通信模塊通過雙系統之間的切換機制切換到安全操作系統下, 再以Request命令的形式將請求發送至TEE通信模塊,TEE通信模塊獲取到請求后,確定該 請求要具體發往的TEE應用并將請求數據轉送到該TEE應用,該TEE應用收到請求之后,進 行處理以產生結果數據,再調用TEE通信模塊的Response命令,將結果數據返回給REE應 用。上述方案中,在Response命令沒有返回REE應用前,不能發起新的Request命令。
[0005] 這種方案存在如下問題:當TEE應用需要對REE應用的訪問請求進行較為復雜的 處理時,由于前一對Request-Response命令之間無法插入新的Request命令,TEE應用無法 再從多媒體執行環境中的REE應用獲取進行復雜處理所需的有關基礎數據,從而要求可信 執行環境自身具備更多、更強的能力來支撐這種復雜處理。比如:在TEE應用需要后臺的參 與、或需要訪問智能存儲卡等來進行復雜處理時,TEE應用就相應地需要可信執行環境能夠 聯網、或設有智能存儲卡訪問接口等,這無疑會使可信執行環境結構變大、變復雜,從而使 安全操作系統可驗證性的難度增加,也會產生更多的系統缺陷,進而會降低系統的安全性。
[0006] 因此,本領域技術人員期望獲得一種使TEE應用在處理來自REE應用的請求過程 中可以回訪REE應用的方法。
【發明內容】
[0007] 本發明的目的在于提供一種雙執行環境之間雙向訪問應用的方法,以便于安全應 用對客戶應用的訪問請求進行分階段的復雜處理。
[0008] 為實現上述目的,本發明提供一種技術方案如下: 一種雙執行環境之間雙向訪問應用的方法,其中,雙執行環境包括可信執行環境與多 媒體執行環境,多媒體執行環境部署有至少一個客戶應用和第一通信模塊,可信執行環境 部署有至少一個安全應用和第二通信模塊,客戶應用和安全應用之間通過第一通信模塊和 第二通信模塊進行數據交互,該方法包括如下步驟:a)、第一客戶應用通過第一通信模塊發 出對第一安全應用的訪問請求;其中,第一客戶應用為任一客戶應用,第一安全應用為第一 客戶應用需要訪問的安全應用;b)、第一安全應用對訪問請求進行第一階段處理,以得到第 一結果數據并轉送到第二通信模塊;其中,第一結果數據指定至少一第二客戶應用,第二客 戶應用為第一安全應用需要回訪的客戶應用;c)、第二通信模塊根據第一結果數據,在第一 通信模塊和第二通信模塊之間建立至少一雙向通信信道,以使第一安全應用分別通過各雙 向通信信道回訪各第二客戶應用;其中,雙向通信信道與第二客戶應用一一對應;d)、第 一安全應用基于回訪各第二客戶應用所得的各回訪結果,對訪問請求進行第二階段處理, 以生成對應于訪問請求的最終結果數據;e)、第一安全應用向第一客戶應用返回最終結果 數據。
[0009] 優選地,步驟C)中,第二通信模塊以與第一通信模塊之間的請求-響應方式建立 至少一雙向通信信道。
[0010] 優選地,步驟c)具體包括:cl)、第二通信模炔基于第一結果數據生成對客戶應用 的至少一回訪請求,并將至少一回訪請求發送至第一通信模塊;其中,回訪請求與第二客戶 應用一一對應;c2)、第一通信模塊接收各回訪請求,并基于各回訪請求分別選擇各第二客 戶應用;c3)、各第二客戶應用分別對相應的回訪請求進行處理,以生成至少一回訪結果并 轉送給第一通信模塊;其中,回訪結果與回訪請求一一對應;c4)、第一通信模炔基于各回 訪結果分別生成至少一回訪響應,并將各回訪響應發送回第二通信模塊;其中,回訪響應與 回訪結果一一對應;c5)、第二通信模塊將各回訪響應分別解析為各回訪結果并將各回訪結 果轉送至第一安全應用。
[0011] 優選地,第二客戶應用為多個,第一安全應用并行地回訪各第二客戶應用。
[0012] 本發明各實施例所提供的雙執行環境之間雙向訪問應用的方法,使得TEE應用在 處理來自REE應用的請求過程中可以回訪REE應用,從而TEE應用能夠對來自REE應用的 訪問請求進行復雜處理以實現更完備的功能。本發明各實施例還可在保證系統安全性的同 時有效降低可信執行環境的結構復雜度,從而降低了產生系統缺陷的可能性。此外,本發明 各實施例支持某一安全應用并行地回訪多個客戶應用,且每一回訪是通過獨立的雙向通信 信道來進行的,這顯著提高了系統工作效率。
【附圖說明】
[0013] 圖1示出現有技術中多媒體執行環境中REE應用與可信執行環境中TEE應用之間 數據交互過程的示意圖。
[0014] 圖2示出本發明第一實施例提供的雙執行環境之間雙向訪問應用的方法的流程 示意圖。
[0015] 圖3示出本發明第一實施例提供的雙執行環境之間雙向訪問應用的方法中的數 據交互過程示意圖。
【具體實施方式】
[0016] 在本文所提供實施例中,雙執行環境包括可信執行環境與多媒體執行環境,兩者 共同運行于同一智能移動裝置中,例如,智能手機。多媒體執行環境部署有至少一個客戶應 用和第一通信模塊,可信執行環境部署有至少一個安全應用和第二通信模塊,各客戶應用 和安全應用分別提供至少一種服務,客戶應用和安全應用之間通過第一通信模塊和第二通 信模塊進行通信。需要說明的是,本文所指"回訪"表示在多媒體執行環境中的第一客戶應 用向可信執行環境中的第一安全應用發出訪問請求時,為使第一安全應用獲取多媒體執行 環境中的某些服務資源以實現對該訪問請求的響應,而逆向訪問多媒體執行環境中的任一 個或任多個客戶應用,而非僅訪問第一客戶應用。
[0017] 在本文所提供的實施例中,任一客戶應用或安全應用均可提供至少一項服務,本 文所指"服務"為客戶應用或安全應用所實現的功能,換言之,任一客戶應用或安全應用均 可實現至少一項功能。第一客戶應用訪問第一安全應用本質上即為訪問第一安全應用所提 供的至少一項服務。
[0018] 本文所指"第一客戶應用"為多媒體執行環境中任一客戶應用,而"第一安全應用" 為第一客戶應用需要訪問的、可信執行環境中的安全應用。
[0019] 如圖2和圖3所示,本發明第一實施例提供一種雙執行環境之間雙向訪問應用的 方法,其包括如下步驟: 步驟S10、第一客戶應用通過第一通信模塊發出對第一安全應用的訪問請求; 具體地,第一客戶應用產生對第一安全應用的訪問請求100,第一通信模塊會按照一定 的數據格式對訪問請求100進行封裝,例如封裝為Request命令101,隨后發送給第二通信 模塊;第二通信模塊收到封裝數據(Request命令101)后進行解析,獲得訪問請求100并轉 送到第一安全應用。
[0020] 步驟S20、第一安全應用對訪問請求進行第一階段處理,以得到第一結果數據102 并轉送到第二通信模塊。
[0021] 其中,第一結果數據102指定至少一個第二客戶應用,該至少一個第二客戶應用 可能包括第一客戶應用,也可能不包括。本文所指第二客戶應用為第一安全應用需要回訪 的、多媒體執行環境中的客戶應用。
[0022] 第一安全應用對來自第一客戶應用的訪問請求100進行分階段處理,第一階段處 理所需的基礎數據從該訪問請求100中即可獲得,而第二階段處理所需的基礎數據則需要 回訪第二客戶應用來獲得。第一階段處理生成第一結果數據102,第一安全應用將該第一結 果數據102轉送到第二通信模塊。
[0023] 本領域技術人員可以理解,可能存在如下情況:第一安全應用在對訪問請求進行 第一階段處理后,得知需要訪問同處于可信執行環境中的第二安全應用來完成后續處理, 而第二安全應用需要回訪多媒體執行環境中的至少一個客戶應用,從而此時第一結果數據 可由第二安全應用來生成。這種情況涵蓋于本發明的范圍內。
[0024] 步驟S30、第二通信模塊根據第一結果數據102,在第一通信模塊和第二通信模塊 之間建立至少一雙向通信信道,以使第一安全應用分別通過各雙向通信信道回訪各第二客 戶應用。
[0025] 該步驟中,第二通信模塊以與第一通信模塊之間的請求-響應方式在第二通信模 塊與第一通信模塊之間建立至少一雙向通信信道,雙向通信信道與第二客戶應用一一對 應,以便第一安全應用分別通過獨立的雙向通信信道來并行地回訪各第二客戶應用。
[0026] 優選情況下,步驟S30具體包括: 步驟S301、第二通信模炔基于第一結果數據102生成對客戶應用的至少一回訪請求 200,并將該至少一回訪請求200發送至第一通信模塊。
[0027] 其中,回訪請求200與第二客戶應用--對應。
[0028] 步驟S302、第一通信模塊接收各回訪請求200,并基于各回訪請求200分別選擇各 第二客戶應用。
[0029] 步驟S303、各第二客戶應用分別對相應的回訪請求200進行處理,以生成至少一 回訪結果201并轉送給第一通信模塊。
[0030]