TW202213217A - 安全的服務請求處理方法及裝置 - Google Patents

安全的服務請求處理方法及裝置 Download PDF

Info

Publication number
TW202213217A
TW202213217A TW110115507A TW110115507A TW202213217A TW 202213217 A TW202213217 A TW 202213217A TW 110115507 A TW110115507 A TW 110115507A TW 110115507 A TW110115507 A TW 110115507A TW 202213217 A TW202213217 A TW 202213217A
Authority
TW
Taiwan
Prior art keywords
interface
service request
service
current
trusted
Prior art date
Application number
TW110115507A
Other languages
English (en)
Other versions
TWI762293B (zh
Inventor
孟飛
Original Assignee
大陸商支付寶(杭州)信息技術有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 大陸商支付寶(杭州)信息技術有限公司 filed Critical 大陸商支付寶(杭州)信息技術有限公司
Publication of TW202213217A publication Critical patent/TW202213217A/zh
Application granted granted Critical
Publication of TWI762293B publication Critical patent/TWI762293B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4014Identity check for transactions
    • G06Q20/40145Biometric identity checks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Abstract

本說明書實施例提供一種安全的服務請求處理方法及裝置,通過部署在終端設備的可信執行環境TEE中的可信應用執行,該可信應用對外提供若干介面,其中的每個介面對應於可信應用的一個功能單元。該終端設備還包括富有執行環境REE,REE中部署有用戶端應用。該處理方法包括:從用戶端應用,接收用於請求可信應用執行第一服務的第一服務請求。該第一服務請求包括第一表達式及其輸入參數,第一表達式限定與第一服務相關的多個目標介面及其調用順序。基於輸入參數,按照調用順序依次執行多個目標介面,得到目標執行結果。將目標執行結果作為第一服務請求的處理結果,並向用戶端應用返回第一服務請求的處理結果。

Description

安全的服務請求處理方法及裝置
本說明書一個或多個實施例涉及電腦技術領域,尤其涉及一種安全的服務請求處理方法及裝置。
在終端設備中,為了支援安全應用場景,通常會將終端設備在軟體和硬體上劃分為兩個環境,一個是富有執行環境(Rich Execution Environment,REE),使用者可以根據實際需要任意安裝應用程式。REE中安裝的應用程式可以稱為用戶端應用。另一個是可信執行環境(Trusted Execution Environment,TEE),在TEE中,只有可信的或被認證的應用程式才能夠被安裝和運行。TEE中安裝的應用程式可以稱為可信應用(Trusted Application,TA)。 由於使用者可以在REE中任意安裝應用程式,從而其安全性比較差。為此,針對一些對安全性要求較高的服務請求,用戶端應用需調用TA進行處理。然而,由於用戶端應用的服務請求會頻繁發生變更,若為了處理該頻繁變更的服務請求,而對TA進行頻繁升級或變更,則會耗費極大的成本。 為此,需要提供一種方案,以便可以簡單有效地對用戶端應用的服務請求進行處理。
本說明書一個或多個實施例描述了一種安全的服務請求處理方法及裝置,可以兼顧服務請求處理的安全性和靈活性。 第一態樣,提供了一種安全的服務請求處理方法,包括: 從所述用戶端應用,接收用於請求所述可信應用執行第一服務的第一服務請求;所述第一服務請求包括第一表達式及其輸入參數,所述第一表達式限定與所述第一服務相關的多個目標介面及其調用順序; 基於所述輸入參數,按照所述調用順序依次執行所述多個目標介面,得到目標執行結果; 將所述目標執行結果作為所述第一服務請求的處理結果,並向所述用戶端應用返回所述第一服務請求的處理結果。 第二態樣,提供了一種安全的服務請求處理方法,包括: 從所述用戶端應用,接收用於請求所述可信應用執行第一服務的當前服務請求;所述當前服務請求包括當前介面及其輸入參數;所述當前介面為與第一服務相關的、具有指定調用順序的多個目標介面中的任一介面; 基於所述輸入參數,執行當前介面,得到當前執行結果; 向所述用戶端應用返回當前執行結果的指示,以供所述用戶端應用在判斷所述當前介面為最後一個介面時,基於當前執行結果的指示,確定目標執行結果。 第三態樣,提供了一種安全的服務請求處理方法,包括: 在使用者觸發所述用戶端應用執行第一服務時,獲取與所述第一服務相關的第一表達式;所述第一表達式限定與所述第一服務相關的多個目標介面及其調用順序; 確定所述第一表達式的輸入參數; 向所述可信應用發送用於請求所述可信應用執行所述第一服務的第一服務請求;所述第一服務請求包括所述第一表達式以及所述輸入參數; 接收所述可信應用在基於所述輸入參數執行所述多個目標介面後返回的目標執行結果。 第四態樣,提供了一種安全的服務請求處理方法,包括: 在使用者觸發所述用戶端應用執行第一服務時,獲取與所述第一服務相關的、具有指定調用順序的多個目標介面; 將所述多個目標介面依次作為當前介面,並調用當前介面;所述調用當前介面包括:確定當前介面的輸入參數;向所述可信應用發送包含當前介面及其輸入參數的當前調用請求;接收所述可信應用在基於所述輸入參數執行當前介面後返回的當前執行結果的指示; 在所述多個目標介面調用完成後,基於當前執行結果的指示,確定目標執行結果。 第五態樣,提供了一種安全的服務請求處理裝置,包括: 接收單元,用於從所述用戶端應用,接收用於請求所述可信應用執行第一服務的第一服務請求;所述第一服務請求包括第一表達式及其輸入參數,所述第一表達式限定與所述第一服務相關的多個目標介面及其調用順序; 執行單元,用於基於所述輸入參數,按照所述調用順序依次執行所述多個目標介面,得到目標執行結果; 返回單元,用於將所述目標執行結果作為所述第一服務請求的處理結果,並向所述用戶端應用返回所述第一服務請求的處理結果。 第六態樣,提供了一種安全的服務請求處理裝置,包括: 接收單元,用於從所述用戶端應用,接收用於請求所述可信應用執行第一服務的當前服務請求;所述當前服務請求包括當前介面及其輸入參數;所述當前介面為與第一服務相關的、具有指定調用順序的多個目標介面中的任一介面; 執行單元,用於基於所述輸入參數,執行當前介面,得到當前執行結果; 返回單元,用於向所述用戶端應用返回當前執行結果的指示,以供所述用戶端應用在判斷所述當前介面為最後一個介面時,基於當前執行結果的指示,確定目標執行結果。 第七態樣,提供了一種安全的服務請求處理裝置,包括: 獲取單元,用於在使用者觸發所述用戶端應用執行第一服務時,獲取與所述第一服務相關的第一表達式;所述第一表達式限定與所述第一服務相關的多個目標介面及其調用順序; 確定單元,用於確定所述第一表達式的輸入參數; 發送單元,用於向所述可信應用發送用於請求所述可信應用執行所述第一服務的第一服務請求;所述第一服務請求包括所述第一表達式以及所述輸入參數; 接收單元,用於接收所述可信應用在基於所述輸入參數執行所述多個目標介面後返回的目標執行結果。 第八態樣,提供了一種安全的服務請求處理裝置,包括: 獲取單元,用於在使用者觸發所述用戶端應用執行第一服務時,獲取與所述第一服務相關的、具有指定調用順序的多個目標介面; 調用單元,用於將所述多個目標介面依次作為當前介面,並調用當前介面;所述調用當前介面包括:確定當前介面的輸入參數;向所述可信應用發送包含當前介面及其輸入參數的當前調用請求;接收所述可信應用在基於所述輸入參數執行當前介面後返回的當前執行結果的指示; 確定單元,用於在所述多個目標介面調用完成後,基於當前執行結果的指示,確定目標執行結果。 第九態樣,提供了一種儲存媒體,其上儲存有電腦程式,當所述電腦程式在電腦中執行時,令電腦執行第一態樣的方法或第二態樣的方法或第三態樣的方法或第四態樣的方法。 第十態樣,提供了一種計算設備,包括記憶體和處理器,所述記憶體中儲存有可執行代碼,所述處理器執行所述可執行代碼時,實現第一態樣的方法或第二態樣的方法或第三態樣的方法或第四態樣的方法。 本說明書一個或多個實施例提供的安全的服務請求處理方法及裝置,部署在TEE中的可信應用可以對外提供若干介面,其中的每個介面對應於可信應用的一個功能單元。從而用戶端應用可以通過調用該若干介面,請求可信應用執行服務。應理解,在用戶端應用通過調用介面而請求服務時,若所請求的服務發生變更,用戶端應用只需要重新選取各目標介面和/或重新編排各目標介面的調用順序即可,而無需重新升級或變更可信應用。由此,既可以提升服務請求處理的靈活性,又可以節約可信應用的維護成本。
下面結合附圖,對本說明書提供的方案進行描述。 在描述本說明書提供的方案之前,先對本方案的發明構思作以下說明。 如前所述,用戶端應用會請求可信應用執行服務。傳統技術中,針對可信應用對外提供的每項服務,開發人員直接編寫相應的處理邏輯。之後,當用戶端應用請求執行該項服務時,傳入相應的參數,並執行對應的處理邏輯即可。可見,在傳統技術中,服務請求的整個處理流程全部部署在TEE側。 需要說明的是,在整個處理流程全部部署在TEE側時,一旦某項服務的服務請求發生變更,開發人員需要手動修改相應的處理邏輯,這無法滿足服務請求處理的靈活性要求,且增加了可信應用的維護成本。 為此本申請的發明人提出,可以針對可信應用預先抽象若干介面,並對外暴露(或稱提供)該若干介面。 具體地,可以基於TEE的能力,抽象出滿足完備性、自洽性以及資料流程獨立的若干介面。其中的每個介面可以對應於可信應用的一個功能單元。由於本說明書所述的介面僅對應於一個功能單元,而不是對應於所提供服務的完整處理邏輯(由若干功能單元構成),從而其也可以稱為原子介面。 在按照對應的各功能單元的名稱對各個介面進行命名時,上述抽象出的若干介面可以包括但不限於秘鑰產生介面:Generate()、加密介面:Encrypt()、儲存介面:storage()、資料讀取介面:read()、解密介面:Decrypt()、簽名介面:sign()、驗簽介面:verify()以及資料獲取介面GetFrame()等等。這些介面通常具備足夠可多工能力。 在抽象出上述若干介面之後,可信應用可以對外暴露上述若干介面,從而用戶端應用通過組合調用上述若干介面,可請求可信應用執行某項服務。其中,可信應用的一項服務對應於至少一個介面。比如,用戶端應用通過調用秘鑰產生介面、加密介面以及儲存介面,可以請求可信應用執行秘鑰管理服務。再比如,用戶端應用通過調用驗簽介面、資料獲取介面、讀取介面以及簽名介面,可以請求可信應用執行指紋支付服務。 在本方案中,用戶端應用可以通過如下兩種模式來調用與某項服務相關的各個介面。 第一種模式:按序依次分別調用各個介面。該種調用模式適用於服務請求的處理流程不可中斷的場景,即如果沒有全部調用各個介面,則處理結果不可用。比如,在用戶端應用請求秘鑰管理服務時,如果沒有調用秘鑰產生介面和加密介面,而直接調用儲存介面,那麼儲存的加密秘鑰不可用。 在上述第一種模式下,服務請求處理流程的控制部分(介面的選取以及排序)部署在REE側,資料部分則在TEE的各個介面之間流轉。由此可以在確保服務請求的靈活性的同時,保證了資料的安全性。 第二種模式:基於表達式實現各個介面的調用。具體地,可以向可信應用一次性傳入基於各個介面而編寫的表達式。該種調用模式適用於服務請求的處理可中斷的場景。即惡意攻擊者可以直接略過在前的介面,而直接執行在後的介面獲取一個偽造的處理結果,且該偽造的處理結果無法被識別。比如,在用戶端應用請求指紋支付服務時,略過驗簽介面、資料獲取介面以及讀取介面,而直接調用簽名介面獲取一個偽造的簽名結果。該偽造的簽名結果和真實的簽名結果是等效的,無法區分真假。 在上述第二種模式下,服務請求處理流程的部分控制部分部署到TEE側,但由於表達式由REE側編寫,從而仍然可以提升確保服務請求的靈活性。 需要說明的是,用戶端應用通過上述兩種模式,調用可信應用對外暴露的若干介面,就可以請求可信應用執行多數服務。從而本方案具有普遍適用性。 最後,雖然服務請求的處理邏輯會千變萬化,但處理邏輯的變化往往會體現在處理流程的控制部分,因此,除非涉及到底層能力的增加或修改,否則都不需要對可信應用進行升級,由此既可以滿足服務請求處理靈活性,又可以降低可信應用發佈升級的頻率。 以上就是本說明書提供的發明構思,基於該發明構思就可以得到本方案,以下對本方案進行詳細闡述。 圖1為本說明書提供的終端設備示意圖。圖1中,終端設備在軟體和硬體上被會劃分成兩個環境,一個是REE,另一個是TEE。REE屬於開放環境,其可以支援豐富的應用程式,比如支付應用、即時聊天應用以及視頻播放應用等。在本說明書中,部署在REE中的應用程式可以稱為用戶端應用。其中,任一用戶端應用可以向用戶提供一項或多項服務。需要說明的是,由於用戶端應用是部署在REE中的,從而其在向使用者提供服務時會存在被攻擊的可能,也即會存在風險。因此,對其提供的一項或多項服務中對安全性要求較高的服務,用戶端應用可以請求可信應用執行。 圖1中的TEE屬於可信環境,其中可以部署多個可信應用。其中,每個可信應用可以對外提供一項或多項安全服務。具體地,可以針對可信應用預先抽象出若干介面,其中,每個介面對應於可信應用的一個功能單元。並對外暴露該若干介面,從而用戶端應用可以通過組合調用該若干介面,請求可信應用執行某項安全服務。這裡的安全服務可以包括但不限於秘鑰管理、資料儲存以及生物識別等。 在一個具體例子中,用戶端應用可以通過部署在REE底層的代理應用,向可信應用發送服務請求,並通過該代理應用接收服務請求的處理結果。需要說明的是,這裡的代理應用可以對服務請求的來源進行認證,比如,只有服務請求的發送方為指定用戶端應用(如,支付應用)時,才向可信先用發送該服務請求。在服務請求的認證不通過時,代理應用可攔截該服務請求,由此可以確保只有指定用戶端應用才可以向可信應用發送服務請求。 此外,對於上述用戶端應用,針對其待向可信應用請求的每項服務可以執行如下的預處理:對於該項服務,可以在用戶端應用的編譯階段,通過預定義的解析程式對對應於該項服務的原始程式碼進行分析,並結合可信應用提供的各個介面各自對應的功能單元,可以確定出為執行該項服務而需調用的多個目標介面及其調用順序。此外,還可以確定出多個目標介面中至少部分介面的輸入參數(以下稱預定義參數)。之後可以根據該項服務的處理流程可中斷或者不可中斷兩種情況分別進行處理。 比如,在該項服務的處理流程不可中斷的情況下,可以按照調用順序,對確定出的多個目標介面進行排序,並將排序後的多個目標介面固化在用戶端應用當中,以便在用戶觸發用戶端應用執行該項服務時調用。而在該項服務的處理流程可中斷的情況下,則可以基於確定出的多個目標介面及其調用順序,編寫與該項服務的原始程式碼具有同等功能的表達式,並將該表達式固化在用戶端應用當中,以便在用戶觸發用戶端應用執行該項服務時調用。 需要說明的是,通過執行上述預處理,可以實現將待請求的每項服務的處理流程的控制部分最大程度地部署在REE側,這可以提升服務請求處理的靈活性,同時可以降低可信應用的編寫複雜度以及維護成本。 在預先執行上述預處理的情況下,也即在預先在用戶端應用中固化每項待請求服務對應的多個目標介面或者表達式的情況下,用戶端應用向可信應用請求執行某項服務的過程可以如下。 先以服務請求的處理流程不可中斷的場景為例,也即用戶端應用中固化有待請求服務的多個目標介面為例,對用戶端應用向可信應用請求服務的過程進行說明。 圖2為本說明書一個實施例提供的安全的服務請求處理方法流程圖。所述方法的執行主體可以為具有處理能力的設備:伺服器或者系統或者應用,如,可以為圖1中的任一可信應用。如圖2所示,所述方法具體可以包括: 步驟202,從用戶端應用,接收用於請求可信應用執行第一服務的當前服務請求。 首先,這裡的第一服務是指對應的服務請求的處理流程不可中斷的服務。或者說,這裡的第一服務是指在用戶端應用中固化有多個目標介面的服務,其例如可以為秘鑰管理、資料儲存或者資料簽名等。 此外,當前服務請求可以是由用戶端應用針對當前介面進行調用時發送的。這裡的當前介面可以是由用戶端應用預先獲取的與第一服務相關的、具有指定調用順序的多個目標介面中任一介面。該當前服務請求可以包括當前介面以及當前介面的輸入參數。其中,當前介面的輸入參數的確定方法後續說明。 以第一服務為秘鑰管理為例來說,秘鑰管理的處理流程可以如圖3所示。圖3中,與秘鑰管理相關的多個目標介面可以包括:秘鑰產生介面、加密介面以及儲存介面。其中,當前介面可以為該三個目標介面中任一介面。 步驟204,基於輸入參數,執行當前介面,得到當前執行結果。 對於圖3中的三個目標介面,秘鑰產生介面的輸入參數為:秘鑰產生演算法(Algorithm),其可以為預定義參數,即通過在編譯階段對第該服務的原始程式碼進行分析而得到。該介面的執行結果為公私鑰秘鑰對(KeypairRef)。加密介面的輸入參數為:加密秘鑰(pin)和公私鑰秘鑰對。其中,加密秘鑰可以為預定義參數。該介面的執行結果為秘鑰對的密文(Encrypted)。儲存介面的輸入參數為:密文標識(Alias)和秘鑰對的密文。其中,密文標識可以為預定義參數。 從以上例子可以看出,各個介面的輸入參數至少基於如下資訊確定:之前介面的執行結果以及預定義參數等。當然,在實際應用中,也可以結合其它資料,比如,使用者的輸入資料,確定各個介面的輸入參數,本說明書對此不作限定。 步驟206,向用戶端應用返回當前執行結果的指示,以供用戶端應用在判斷當前介面為最後一個介面時,基於當前執行結果的指示,確定目標執行結果。 需要說明的是,為了確保所請求服務處理的安全性,可信應用在基於輸入參數執行當前介面後,可以向用戶端應用返回當前介面的當前執行結果的指示。這裡的當前執行結果的指示可以為當前執行結果的標識(如,控制碼(16位的不帶正負號的整數))或者位置標識。比如,在當前介面為秘鑰產生介面時,向用戶端應用返回當前執行結果的指示可以為公私鑰秘鑰對的控制碼。 應理解,在向用戶端應用介面的執行結果的指示的情況下,各個介面的輸入參數至少基於如下資訊確定:使用者的輸入資料、預定義參數以及之前介面的執行結果的指示等。 用戶端應用在接收到當前執行結果的指示之後,可以判斷當前介面是否為上述多個目標介面中最後一個介面,若不是,則將當前介面的下一介面更新為當前介面,並確定更新的當前介面的輸入參數,以及針對更新的當前介面,再次發送當前服務請求。也即重複執行上述步驟202-步驟206直至到達最後一個介面。 而如果判斷當前介面為最後一個介面,則基於當前執行結果的指示,確定目標執行結果。比如,在當前執行結果為非敏感資料時,可以基於當前執行結果的指示,從可信應用獲取當前執行結果,並將其作為目標執行結果。而在當前執行結果為敏感資料時,可以基於當前執行結果的指示,從可信應用獲取當前執行結果的密文,並將該密文作為目標執行結果。 還以圖3為例來說,如果當前介面為秘鑰產生介面,則在接收到公私鑰秘鑰對的控制碼之後,可以將公私鑰秘鑰對的控制碼作為加密介面的輸入參數。而如果當前介面為儲存介面,則在接收到密文標識的控制碼之後,由於密文標識為非敏感資料,從而可以基於該控制碼,獲取密文標識。應理解,這裡的密文標識即為針對秘鑰管理這項服務的目標執行結果。 圖4為本說明書另一個實施例提供的安全的服務請求處理方法流程圖。所述方法的執行主體可以為具有處理能力的設備:伺服器或者系統或者應用,如,可以為圖1中的任一用戶端應用。如圖4所示,所述方法具體可以包括: 步驟402,在使用者觸發用戶端應用執行第一服務時,獲取與第一服務相關的、具有指定調用順序的多個目標介面。 首先,這裡的第一服務是指對應的服務請求的處理流程不可中斷的服務。或者說,這裡的第一服務是指在用戶端應用中固化有多個目標介面的服務,其例如可以為秘鑰管理、資料儲存或者資料簽名等。 以第一服務為秘鑰管理,且其處理流程如圖3所示時,與第一服務相關的多個目標介面可以包括:秘鑰產生介面、加密介面以及儲存介面。 步驟404,將多個目標介面依次作為當前介面,並調用當前介面。 這裡的調用當前介面可以包括:確定當前介面的輸入參數。向可信應用發送包含當前介面及其輸入參數的當前調用請求。接收可信應用在基於輸入參數執行當前介面後返回的當前執行結果的指示。 上述確定當前介面的輸入參數具體包括:基於使用者的輸入資料、預定義參數以及之前介面的執行結果的指示中的至少一項,確定當前介面的輸入參數。在一個具體例子中,如果當前介面為多個目標介面中的第一個介面,則可以基於使用者的輸入資料和/或預定義參數,確定當前介面的輸入參數。比如,在當前介面為秘鑰產生介面時,基於預定義參數:秘鑰產生演算法,確定秘鑰產生介面的輸入參數。而如果當前介面為除第一介面外任意的第二介面時,則可以基於使用者的輸入資料、預定義參數和/或之前介面的執行結果的指示,確定當前介面的輸入參數。比如,在當前介面為加密介面時,基於秘鑰產生介面產生的公私鑰秘鑰對的控制碼和自訂參數:加密秘鑰(pin),確定加密介面的輸入參數。 此外,在當前介面為秘鑰產生介面時,所接收的當前執行結果的指示可以為公私鑰秘鑰對的控制碼。再比如,在當前介面為加密介面時,所接收的當前執行結果的指示可以為秘鑰對的密文的控制碼等。 步驟406,在多個目標介面調用完成後,基於當前執行結果的指示,確定目標執行結果。 比如,在當前執行結果為非敏感資料時,可以基於當前執行結果的指示,從可信應用獲取當前執行結果,並將其作為目標執行結果。而在當前執行結果為敏感資料時,可以基於當前執行結果的指示,從可信應用獲取當前執行結果的密文,並將該密文作為目標執行結果。 還以圖3為例來說,在三個目標介面調用完成之後,所接收到的當前執行結果的指示為密文標識的控制碼。由於密文標識為非敏感資料,從而可以基於該控制碼,獲取密文標識。應理解,這裡的密文標識即為針對秘鑰管理這項服務的目標執行結果。 從以上兩個實施例可以看出,在服務請求的處理流程不可中斷的場景下,服務請求處理流程的控制部分(目標介面的選取以及排序)部署在REE側,資料部分則在TEE側的各個介面之間流轉。或者說,REE側可以調用TEE側的各個介面,但無法直接觸碰到介面計算過程的中間資料甚至結果資料,只能持有執行結果的指示。由此可以在確保服務請求的靈活性的同時,保證了資料的安全性。 以上是對服務請求的處理流程不可中斷的場景進行的說明。以下以服務請求的處理流程可中斷的場景為例進行說明,也即用戶端應用中固化有待請求服務的表達式為例,對用戶端應用向可信應用請求服務的過程進行說明。 圖5為本說明書再一個實施例提供的安全的服務請求處理方法流程圖。所述方法的執行主體可以為具有處理能力的設備:伺服器或者系統或者應用,如,可以為圖1中的任一可信應用。如圖5所示,所述方法具體可以包括: 步驟502,從用戶端應用,接收用於請求可信應用執行第一服務的第一服務請求。 首先,這裡的第一服務是指對應的服務請求的處理流程可中斷的服務。或者說,這裡的第一服務是指在用戶端應用中固化有表達式的服務,其例如可以為指紋支付、刷臉支付以及虹膜支付等。 具體地,可以是在用戶觸發用戶端應用執行第一服務時,用戶端應用獲取對應於第一服務的第一表達式。這裡的第一表達式可以限定與第一服務相關的多個目標介面及其調用順序。之後,可以確定第一表達式的輸入參數。最後,可以向可信應用發送包含獲取的第一表達式及其輸入參數的第一服務請求。 以第一服務為指紋支付為例來說,指紋支付的處理流程可以如圖6所示。圖6中,與指紋支付相關的多個目標介面可以包括:驗簽介面(verify())、資料獲取介面(Get())、資料讀取介面(read())以及簽名介面(sign())。在一個例子中,這些目標介面可以被編排為如下的表達式:
Figure 02_image001
從上述表達式可以看出,上述四個介面的調用順序可以為:驗簽介面、資料獲取介面、資料讀取介面以及簽名介面。 對於上述第一表達式,其輸入參數包括以下任一種:使用者的輸入資料(如,指紋資訊)以及預定義參數(如,用戶端應用與伺服器之間的交互資訊:挑戰資訊以及密文標識等)等。對於上述示例中的表達式,其輸入參數可以包括:使用者的指紋資訊、伺服器下發的挑戰資訊(challenge)(包括挑戰原文及挑戰簽名結果)以及密文標識(Alias)。 步驟504,基於輸入參數,按照調用順序依次執行多個目標介面,得到目標執行結果。 具體地,對於多個目標介面中的第一個介面,基於輸入參數,確定第一個介面的第一參數,並利用第一參數,執行第一個介面。對於除第一個介面外任意的第二介面,基於輸入參數和/或之前介面的執行結果,確定第二介面的第二參數,並利用第二參數,執行第二介面。其中,在第二介面為最後一個介面時,將最後一個介面的執行結果作為目標執行結果。 比如,對於上述表達式中的驗簽介面(即第一個介面),可以將挑戰資訊作為其輸入參數,並利用該挑戰資訊,執行驗簽介面。驗簽介面的執行結果為驗簽通過或者不通過。應理解,如果驗簽不通過,則直接退出。對於資料獲取介面,可以將使用者的指紋資訊作為其輸入參數,並利用該指紋資訊,執行資料獲取介面。資料獲取介面的執行結果可以為指紋識別通過或者不通過。接著,對於資料讀取介面,可以將密文標識作為其輸入參數,並利用密文標識,執行資料讀取介面。資料讀取介面的執行結果為簽名私鑰。對於簽名介面,可以將簽名私鑰和資料獲取介面的執行結果(即指紋識別通過或者不通過)作為其輸入參數,並利用簽名私鑰和資料獲取介面的執行結果,執行簽名介面。簽名介面的執行結果為簽名後的指紋識別結果。 需要說明的是,在可信應用對外暴露若干介面的情況下,這些介面存在被攻擊的可能。為此,本申請對這些介面進行了編號,並且每執行一個介面,相應地記錄對應的編號,以便基於記錄的編號對第一服務請求的處理結果進行正確性驗證。具體地,在按照調用順序依次執行多個目標介面中任意的第一介面之時或之後,記錄第一介面的編號。在多個目標介面執行完成後,基於記錄的各個介面的編號,形成編號序列。向用戶端應用返回第一服務請求的處理結果以及編號序列,以供用戶端應用基於編號序列對第一伺服器請求的處理結果進行正確性驗證。 在一個可選的例子中,對於上述編號序列,可信應用還可以利用預先產生的私鑰,對編碼序列進行簽名,得到簽名後的編號序列。之後,向用戶端應用返回第一服務請求的處理結果,以及簽名後的編號序列。以供用戶端應用在對簽名後的編號序列驗證通過後,基於其對第一伺服器請求的處理結果進行正確性驗證。 還以前述指紋支付為例,假設驗簽介面、資料獲取介面、資料讀取介面以及簽名介面各自對應的編號分別為:1、2、3和4。那麼在第一表達式執行結果後,所形成的編號序列可以為:(1,2,3,4)。如果再對第一服務請求也進行編碼的情況下,如編號為0,那麼所形成的編號序列可以為:(0,1,2,3,4)。應理解,假設當前返回的編號序列為:(0,4),那麼則認為第一服務請求的處理結果為異常資料。 步驟506,將目標執行結果作為第一服務請求的處理結果,並向用戶端應用返回第一服務請求的處理結果。 如前述指紋識別的例子中,簽名後的指紋識別結果即為第一服務請求的處理結果。 上述向用戶端應用返回第一服務請求的處理結果,包括:判斷該處理結果是否為敏感資料。若是,則針對處理結果進行加密,得到處理結果的密文。向用戶端應用返回處理結果的密文。這裡的敏感資料可以包括但不限於秘鑰資料以及通行碼資料等。 圖7為本說明書又一個實施例提供的安全的服務請求處理方法流程圖。所述方法的執行主體可以為具有處理能力的設備:伺服器或者系統或者應用,如,可以為圖1中的任一用戶端應用。如圖7所示,所述方法具體可以包括: 步驟702,在使用者觸發用戶端應用執行第一服務時,獲取對應於第一服務的第一表達式。 首先,這裡的第一服務是指對應的服務請求的處理流程可中斷的服務。或者說,這裡的第一服務是指在用戶端應用中固化有表達式的服務,其例如可以為指紋支付、刷臉支付以及虹膜支付等。 具體地,可以是在用戶觸發用戶端應用執行第一服務時,用戶端應用獲取對應於第一服務的第一表達式。這裡的第一運算式可以限定與第一服務相關的多個目標介面及其調用順序。之後,可以確定第一表達式的輸入參數。最後,可以向可信應用發送包含獲取的第一表達式及其輸入參數的第一服務請求。 步驟704,確定第一表達式的輸入參數。 具體地,可以基於使用者的輸入資料(如,指紋資訊)以及預定義參數(如,用戶端應用與伺服器之間的交互資訊:挑戰資訊以及密文標識等)等,確定第一表達式的輸入參數。 步驟706,向可信應用發送用於請求可信應用執行第一服務的第一服務請求。 這裡的第一服務請求包括第一表達式以及輸入參數。 可信應用在接收到第一服務請求之後,基於輸入參數,按照調用順序依次執行多個目標介面,得到目標執行結果。 具體地,對於多個目標介面中的第一個介面,基於輸入參數,確定第一個介面的第一參數,並利用第一參數,執行第一個介面。對於除第一個介面外任意的第二介面,基於輸入參數和/或之前介面的執行結果,確定第二介面的第二參數,並利用第二參數,執行第二介面。其中,在第二介面為最後一個介面時,將最後一個介面的執行結果作為目標執行結果。 具體地,可信應用可以判斷該目標執行結果是否為敏感資料。若是,則針對目標執行結果進行加密,得到目標執行結果的密文。向用戶端應用返回目標執行結果的密文。這裡的敏感資料可以包括但不限於秘鑰資料以及通行碼資料等。 步驟708,接收可信應用在基於輸入參數執行多個目標介面後返回的目標執行結果。 應理解,這裡的目標執行結果即為第一服務請求的處理結果,其可以為明文也可以為密文。 需要說明的是,在可信應用對外暴露若干介面的情況下,這些介面存在被攻擊的可能。為此,本申請對這些介面進行了編號,並且每執行一個介面,相應地記錄對應的編號,以便基於記錄的編號對第一服務請求的處理結果進行正確性驗證。具體地,在按照調用順序依次執行多個目標介面中任意的第一介面之時或之後,記錄第一介面的編號。在多個目標介面執行完成後,基於記錄的各個介面的編號,形成編號序列。向用戶端應用返回第一服務請求的處理結果以及編號序列,以供用戶端應用基於編號序列對第一伺服器請求的處理結果進行正確性驗證。 在一個可選的例子中,對於上述編號序列,可信應用還可以利用預先產生的私鑰,對編碼序列進行簽名,得到簽名後的編號序列。之後,向用戶端應用返回第一服務請求的處理結果,以及簽名後的編號序列。以供用戶端應用在對簽名後的編號序列驗證通過後,基於其對第一伺服器請求的處理結果進行正確性驗證。 從以上兩個實施例可以看出,用戶端應用在向可信應用一次性傳入表達式及其輸入參數之後,可信應用在執行表達式的過程中不再與用戶端應用交互,也就是說,服務請求的處理流程的部分控制部分部署在了TEE側,這可以確定服務請求處理的安全性,但由於表達式仍然在REE側編寫。比如,在服務請求發生變更時,直接修改表達式中限定的目標介面及其編排順序,而無需修改可信應用,從而可以保證服務請求處理的靈活性。總之,本方案可以兼顧服務請求處理的安全性和靈活性。 綜合以上,本方案可以對TEE的能力進行抽象,從而可以抽象出暴露給REE調用的介面。其次,本方案可以將服務請求的處理流程的控制部分和資料部分相分離。其中,控制部分部署在REE側,除輸入外,服務請求的中間結果始終保持在TEE中流轉,從而可以在解決絕大部分安全場景的需求的同時,可以及大地降低可信應用的複雜性,複雜性降低意味著維護成本、可靠性和安全性的提升。再者,對於不可中斷的場景,使用表達式求值的方式,即表達式及其輸入參數輸入到TEE中。TEE中,將輸入參數輸入給表達式進行求值,這樣,多個目標介面之間按照表達式描述的方式執行,也即控制部分部署在TEE側,保障了子過程的原子性。最後,由於介面被全部暴露給REE直接使用,通過形成編號序列來跟蹤服務請求的處理結果,以避免惡意攻擊者偽造輸出資料。 與上述安全的服務請求處理方法對應地,本說明書一個實施例還提供的一種安全的服務請求處理裝置,設置於部署在終端設備的可信執行環境TEE中的可信應用。該可信應用對外提供若干介面,其中的每個介面對應於可信應用的一個功能單元。上述終端設備還包括富有執行環境REE,REE中部署有用戶端應用。如圖8所示,該裝置可以包括: 接收單元802,用於從用戶端應用,接收用於請求可信應用執行第一服務的第一服務請求。該第一服務請求包括第一表達式及其輸入參數,第一表達式限定與第一服務相關的多個目標介面及其調用順序。 這裡的第一服務可以包括以下任一種:指紋支付、刷臉支付以及虹膜支付。 執行單元804,用於基於輸入參數,按照調用順序依次執行多個目標介面,得到目標執行結果。 執行單元804具體可以用於: 對於多個目標介面中的第一個介面,基於輸入參數,確定第一個介面的第一參數,並利用第一參數,執行第一個介面。 對於除第一個介面外任意的第二介面,基於輸入參數和/或之前介面的執行結果,確定第二介面的第二參數,並利用第二參數,執行第二介面。 其中,在第二介面為最後一個介面時,將最後一個介面的執行結果作為目標執行結果。 返回單元806,用於將目標執行結果作為第一服務請求的處理結果,並向用戶端應用返回第一服務請求的處理結果。 返回單元806具體用於: 判斷處理結果是否為敏感資料。 若是,則針對處理結果進行加密,得到處理結果的密文。 向用戶端應用返回處理結果的密文。 可選地,上述若干介面中的每個介面對應於一個編號,執行單元804包括: 記錄模組8042,用於在按照調用順序依次執行多個目標介面中任意的第一介面之時或之後,記錄第一介面的編號。 形成模組8044,用於在多個目標介面執行完成後,基於記錄的各個介面的編號,形成編號序列。 返回單元806還具體用於: 向用戶端應用返回第一服務請求的處理結果以及編號序列,以供用戶端應用基於編號序列對處理結果進行正確性驗證。 返回單元806還具體用於: 利用預先產生的私鑰,對編碼序列進行簽名,得到簽名後的編號序列。 向用戶端應用返回第一服務請求的處理結果,以及簽名後的編號序列。 本說明書上述實施例裝置的各功能模組的功能,可以通過上述方法實施例的各步驟來實現,因此,本說明書一個實施例提供的裝置的具體工作過程,在此不復贅述。 本說明書一個實施例提供的安全的服務請求處理裝置,既可以提升服務請求處理的靈活性,又可以節約可信應用的維護成本。 與上述安全的服務請求處理方法對應地,本說明書一個實施例還提供的一種安全的服務請求處理裝置,設置於部署在終端設備的可信執行環境TEE中的可信應用。該可信應用對外提供若干介面,其中的每個介面對應於可信應用的一個功能單元。上述終端設備還包括富有執行環境REE,REE中部署有用戶端應用。如圖9所示,該裝置可以包括: 接收單元902,用於從用戶端應用,接收用於請求可信應用執行第一服務的當前服務請求,該當前服務請求包括當前介面及其輸入參數。當前介面為與第一服務相關的、具有指定調用順序的多個目標介面中的任一介面。 這裡的第一服務包括以下任一種:秘鑰管理、資料儲存以及資料簽名。 執行單元904,用於基於輸入參數,執行當前介面,得到當前執行結果。 返回單元906,用於向用戶端應用返回當前執行結果的指示,以供用戶端應用在判斷當前介面為最後一個介面時,基於當前執行結果的指示,確定目標執行結果。 該當前執行結果的指示為當前執行結果的標識或者位置標識。 本說明書上述實施例裝置的各功能模組的功能,可以通過上述方法實施例的各步驟來實現,因此,本說明書一個實施例提供的裝置的具體工作過程,在此不復贅述。 本說明書一個實施例提供的安全的服務請求處理裝置,既可以提升服務請求處理的靈活性,又可以節約可信應用的維護成本。 與上述安全的服務請求處理方法對應地,本說明書一個實施例還提供的一種安全的服務請求處理裝置,設置於部署在終端設備的富有執行環境REE中的用戶端應用。該終端設備還包括可信執行環境TEE,TEE中部署有可信應用,該可信應用對外提供若干介面,其中的每個介面對應於可信應用的一個功能單元。如圖10所示,該裝置可以包括: 獲取單元1002,用於在使用者觸發用戶端應用執行第一服務時,獲取與第一服務相關的第一表達式。該第一表達式限定與第一服務相關的多個目標介面及其調用順序。 確定單元1004,用於確定第一表達式的輸入參數。 發送單元1006,用於向可信應用發送用於請求可信應用執行第一服務的第一服務請求。該第一服務請求包括第一表達式以及輸入參數。 接收單元1008,用於接收可信應用在基於輸入參數執行多個目標介面後返回的目標執行結果。 本說明書上述實施例裝置的各功能模組的功能,可以通過上述方法實施例的各步驟來實現,因此,本說明書一個實施例提供的裝置的具體工作過程,在此不復贅述。 本說明書一個實施例提供的安全的服務請求處理裝置,既可以提升服務請求處理的靈活性,又可以節約可信應用的維護成本。 與上述安全的服務請求處理方法對應地,本說明書一個實施例還提供的一種安全的服務請求處理裝置,設置於部署在終端設備的富有執行環境REE中的用戶端應用。該終端設備還包括可信執行環境TEE,TEE中部署有可信應用,該可信應用對外提供若干介面,其中的每個介面對應於可信應用的一個功能單元。如圖11所示,該裝置可以包括: 獲取單元1102,用於在使用者觸發用戶端應用執行第一服務時,獲取與第一服務相關的、具有指定調用順序的多個目標介面。 調用單元1104,用於將多個目標介面依次作為當前介面,並調用當前介面。該調用當前介面包括:確定當前介面的輸入參數。向可信應用發送包含當前介面及其輸入參數的當前調用請求。接收可信應用在基於輸入參數執行當前介面後返回的當前執行結果的指示。 確定單元1106,用於在多個目標介面調用完成後,基於當前執行結果的指示,確定目標執行結果。 本說明書上述實施例裝置的各功能模組的功能,可以通過上述方法實施例的各步驟來實現,因此,本說明書一個實施例提供的裝置的具體工作過程,在此不復贅述。 本說明書一個實施例提供的安全的服務請求處理裝置,既可以提升服務請求處理的靈活性,又可以節約可信應用的維護成本。 另一方面,本說明書的實施例提供了一種電腦可讀儲存媒體,其上儲存有電腦程式,當所述電腦程式在電腦中執行時,令電腦執行圖2或圖4或圖5或圖7所示的方法。 另一方面,本說明書的實施例提供一種計算設備,包括記憶體和處理器,所述記憶體中儲存有可執行代碼,所述處理器執行所述可執行代碼時,實現圖2或圖4或圖5或圖7所示的方法。 本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於設備實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。 結合本說明書公開內容所描述的方法或者演算法的步驟可以硬體的方式來實現,也可以是由處理器執行軟體指令的方式來實現。軟體指令可以由相應的軟體模組組成,軟體模組可以被存放於RAM記憶體、快閃記憶體、ROM記憶體、EPROM記憶體、EEPROM記憶體、暂存器、硬碟、移動硬碟、CD-ROM或者本領域熟知的任何其它形式的儲存媒體中。一種示例性的儲存媒體耦合至處理器,從而使處理器能夠從該儲存媒體讀取資訊,且可向該儲存媒體寫入資訊。當然,儲存媒體也可以是處理器的組成部分。處理器和儲存媒體可以位於ASIC中。另外,該ASIC可以位於伺服器中。當然,處理器和儲存媒體也可以作為分立元件存在於伺服器中。 本領域技術人員應該可以意識到,在上述一個或多個示例中,本發明所描述的功能可以用硬體、軟體、韌體或它們的任意組合來實現。當使用軟體實現時,可以將這些功能儲存在電腦可讀媒體中或者作為電腦可讀媒體上的一個或多個指令或代碼進行傳輸。電腦可讀媒體包括電腦儲存媒體和通信媒體,其中通信媒體包括便於從一個地方向另一個地方傳送電腦程式的任何媒體。儲存媒體可以是通用或專用電腦能夠存取的任何可用媒體。 上述對本說明書特定實施例進行了描述。其它實施例在所附申請專利範圍的範圍內。在一些情況下,在申請專利範圍中記載的動作或步驟可以按照不同於實施例中的順序來執行並且仍然可以實現期望的結果。另外,在附圖中描繪的過程不一定要求示出的特定順序或者連續順序才能實現期望的結果。在某些實施方式中,多工處理和並行處理也是可以的或者可能是有利的。 以上所述的具體實施方式,對本說明書的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本說明書的具體實施方式而已,並不用於限定本說明書的保護範圍,凡在本說明書的技術方案的基礎之上,所做的任何修改、等同替換、改進等,均應包括在本說明書的保護範圍之內。
202,204,206,402,404,406,502,504,506,702,704,706,708:步驟 802:接收單元 804:執行單元 806:返回單元 8042:記錄模組 8044:形成模組 902:接收單元 904:執行單元 906:返回單元 1002:獲取單元 1004:確定單元 1006:發送單元 1008:接收單元 1102:獲取單元 1104:調用單元 1106:確定單元
為了更清楚地說明本說明書實施例的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本說明書的一些實施例,對於本領域普通技術人員來講,在不付出進步性勞動的前提下,還可以根據這些附圖獲得其它的附圖。 [圖1]為本說明書提供的終端設備示意圖; [圖2]為本說明書一個實施例提供的安全的服務請求處理方法流程圖; [圖3]為本說明書提供的秘鑰管理的處理流程示意圖; [圖4]為本說明書另一個實施例提供的安全的服務請求處理方法流程圖; [圖5]為本說明書再一個實施例提供的安全的服務請求處理方法流程圖; [圖6]為本說明書提供的指紋支付的處理流程示意圖; [圖7]為本說明書又一個實施例提供的安全的服務請求處理方法流程圖; [圖8]為本說明書一個實施例提供的安全的服務請求處理裝置示意圖; [圖9]為本說明書另一個實施例提供的安全的服務請求處理裝置示意圖; [圖10]為本說明書再一個實施例提供的安全的服務請求處理裝置示意圖圖; [圖11]為本說明書又一個實施例提供的安全的服務請求處理裝置示意圖圖。

Claims (24)

  1. 一種安全的服務請求處理方法,通過部署在終端設備的可信執行環境TEE中的可信應用執行;所述可信應用對外提供若干介面,其中的每個介面對應於所述可信應用的一個功能單元;所述終端設備還包括富有執行環境REE,所述REE中部署有用戶端應用;所述方法包括: 從所述用戶端應用,接收用於請求所述可信應用執行第一服務的第一服務請求;所述第一服務請求包括第一表達式及其輸入參數,所述第一表達式限定與所述第一服務相關的多個目標介面及其調用順序; 基於所述輸入參數,按照所述調用順序依次執行所述多個目標介面,得到目標執行結果; 將所述目標執行結果作為所述第一服務請求的處理結果,並向所述用戶端應用返回所述第一服務請求的處理結果。
  2. 如請求項1所述的方法,所述基於所述輸入參數,按照所述調用順序依次執行所述多個目標介面,得到目標執行結果,包括: 對於所述多個目標介面中的第一個介面,基於所述輸入參數,確定所述第一個介面的第一參數,並利用所述第一參數,執行所述第一個介面; 對於除所述第一個介面外任意的第二介面,基於所述輸入參數和/或之前介面的執行結果,確定所述第二介面的第二參數,並利用所述第二參數,執行所述第二介面; 其中,在所述第二介面為最後一個介面時,將所述最後一個介面的執行結果作為所述目標執行結果。
  3. 如請求項1所述的方法,所述若干介面中的每個介面對應於一個編號; 所述按照所述調用順序依次執行所述多個目標介面,包括: 在按照所述調用順序依次執行所述多個目標介面中任意的第一介面之時或之後,記錄所述第一介面的編號; 在所述多個目標介面執行完成後,基於記錄的各個介面的編號,形成編號序列; 所述向所述用戶端應用返回所述第一服務請求的處理結果,包括: 向所述用戶端應用返回所述第一服務請求的處理結果以及所述編號序列,以供所述用戶端應用基於所述編號序列對所述處理結果進行正確性驗證。
  4. 如請求項3所述的方法,所述向所述用戶端應用返回所述第一服務請求的處理結果以及所述編號序列,包括: 利用預先產生的私鑰,對所述編碼序列進行簽名,得到簽名後的編號序列; 向所述用戶端應用返回所述第一服務請求的處理結果,以及簽名後的編號序列。
  5. 如請求項1所述的方法,所述向所述用戶端應用返回所述第一服務請求的處理結果,包括: 判斷所述處理結果是否為敏感資料; 若是,則針對所述處理結果進行加密,得到所述處理結果的密文; 向所述用戶端應用返回所述處理結果的密文。
  6. 如請求項1所述的方法,所述第一服務包括以下任一種:指紋支付、刷臉支付以及虹膜支付。
  7. 一種安全的服務請求處理方法,通過部署在終端設備的可信執行環境TEE中的可信應用執行;所述可信應用對外提供若干介面,其中的每個介面對應於所述可信應用的一個功能單元;所述終端設備還包括富有執行環境REE,所述REE中部署有用戶端應用;所述方法包括: 從所述用戶端應用,接收用於請求所述可信應用執行第一服務的當前服務請求;所述當前服務請求包括當前介面及其輸入參數;所述當前介面為與第一服務相關的、具有指定調用順序的多個目標介面中的任一介面; 基於所述輸入參數,執行當前介面,得到當前執行結果; 向所述用戶端應用返回當前執行結果的指示,以供所述用戶端應用在判斷所述當前介面為最後一個介面時,基於當前執行結果的指示,確定目標執行結果。
  8. 如請求項7所述的方法,所述當前執行結果的指示為當前執行結果的標識或者位置標識。
  9. 如請求項7所述的方法,所述第一服務包括以下任一種:秘鑰管理、資料儲存以及資料簽名。
  10. 一種安全的服務請求處理方法,通過部署在終端設備的富有執行環境REE中的用戶端應用執行;所述終端設備還包括可信執行環境TEE,所述TEE中部署有可信應用;所述可信應用對外提供若干介面,其中的每個介面對應於所述可信應用的一個功能單元;所述方法包括: 在使用者觸發所述用戶端應用執行第一服務時,獲取與所述第一服務相關的第一表達式;所述第一表達式限定與所述第一服務相關的多個目標介面及其調用順序; 確定所述第一表達式的輸入參數; 向所述可信應用發送用於請求所述可信應用執行所述第一服務的第一服務請求;所述第一服務請求包括所述第一表達式以及所述輸入參數; 接收所述可信應用在基於所述輸入參數執行所述多個目標介面後返回的目標執行結果。
  11. 一種安全的服務請求處理方法,通過部署在終端設備的富有執行環境REE中的用戶端應用執行;所述終端設備還包括可信執行環境TEE,所述TEE中部署有可信應用;所述可信應用對外提供若干介面,其中的每個介面對應於所述可信應用的一個功能單元;所述方法包括: 在使用者觸發所述用戶端應用執行第一服務時,獲取與所述第一服務相關的、具有指定調用順序的多個目標介面; 將所述多個目標介面依次作為當前介面,並調用當前介面;所述調用當前介面包括:確定當前介面的輸入參數;向所述可信應用發送包含當前介面及其輸入參數的當前調用請求;接收所述可信應用在基於所述輸入參數執行當前介面後返回的當前執行結果的指示; 在所述多個目標介面調用完成後,基於當前執行結果的指示,確定目標執行結果。
  12. 一種安全的服務請求處理裝置,設置於部署在終端設備的可信執行環境TEE中的可信應用;所述可信應用對外提供若干介面,其中的每個介面對應於所述可信應用的一個功能單元;所述終端設備還包括富有執行環境REE,所述REE中部署有用戶端應用;所述裝置包括: 接收單元,用於從所述用戶端應用,接收用於請求所述可信應用執行第一服務的第一服務請求;所述第一服務請求包括第一表達式及其輸入參數,所述第一表達式限定與所述第一服務相關的多個目標介面及其調用順序; 執行單元,用於基於所述輸入參數,按照所述調用順序依次執行所述多個目標介面,得到目標執行結果; 返回單元,用於將所述目標執行結果作為所述第一服務請求的處理結果,並向所述用戶端應用返回所述第一服務請求的處理結果。
  13. 如請求項12所述的裝置,所述執行單元具體用於: 對於所述多個目標介面中的第一個介面,基於所述輸入參數,確定所述第一個介面的第一參數,並利用所述第一參數,執行所述第一個介面; 對於除所述第一個介面外任意的第二介面,基於所述輸入參數和/或之前介面的執行結果,確定所述第二介面的第二參數,並利用所述第二參數,執行所述第二介面; 其中,在所述第二介面為最後一個介面時,將所述最後一個介面的執行結果作為所述目標執行結果。
  14. 如請求項12所述的裝置,所述若干介面中的每個介面對應於一個編號;所述執行單元包括: 記錄模組,用於在按照所述調用順序依次執行所述多個目標介面中任意的第一介面之時或之後,記錄所述第一介面的編號; 形成模組,用於在所述多個目標介面執行完成後,基於記錄的各個介面的編號,形成編號序列; 所述返回單元具體用於: 向所述用戶端應用返回所述第一服務請求的處理結果以及所述編號序列,以供所述用戶端應用基於所述編號序列對所述處理結果進行正確性驗證。
  15. 如請求項14所述的裝置,所述返回單元還具體用於: 利用預先產生的私鑰,對所述編碼序列進行簽名,得到簽名後的編號序列; 向所述用戶端應用返回所述第一服務請求的處理結果,以及簽名後的編號序列。
  16. 如請求項12所述的裝置,所述返回單元具體用於: 判斷所述處理結果是否為敏感資料; 若是,則針對所述處理結果進行加密,得到所述處理結果的密文; 向所述用戶端應用返回所述處理結果的密文。
  17. 如請求項12所述的裝置,所述第一服務包括以下任一種:指紋支付、刷臉支付以及虹膜支付。
  18. 一種安全的服務請求處理裝置,設置於部署在終端設備的可信執行環境TEE中的可信應用;所述可信應用對外提供若干介面,其中的每個介面對應於所述可信應用的一個功能單元;所述終端設備還包括富有執行環境REE,所述REE中部署有用戶端應用;所述裝置包括: 接收單元,用於從所述用戶端應用,接收用於請求所述可信應用執行第一服務的當前服務請求;所述當前服務請求包括當前介面及其輸入參數;所述當前介面為與第一服務相關的、具有指定調用順序的多個目標介面中的任一介面; 執行單元,用於基於所述輸入參數,執行當前介面,得到當前執行結果; 返回單元,用於向所述用戶端應用返回當前執行結果的指示,以供所述用戶端應用在判斷所述當前介面為最後一個介面時,基於當前執行結果的指示,確定目標執行結果。
  19. 如請求項18所述的裝置,所述當前執行結果的指示為當前執行結果的標識或者位置標識。
  20. 如請求項18所述的裝置,所述第一服務包括以下任一種:秘鑰管理、資料儲存以及資料簽名。
  21. 一種安全的服務請求處理裝置,設置於部署在終端設備的富有執行環境REE中的用戶端應用;所述終端設備還包括可信執行環境TEE,所述TEE中部署有可信應用;所述可信應用對外提供若干介面,其中的每個介面對應於所述可信應用的一個功能單元;所述裝置包括: 獲取單元,用於在使用者觸發所述用戶端應用執行第一服務時,獲取與所述第一服務相關的第一表達式;所述第一表達式限定與所述第一服務相關的多個目標介面及其調用順序; 確定單元,用於確定所述第一表達式的輸入參數; 發送單元,用於向所述可信應用發送用於請求所述可信應用執行所述第一服務的第一服務請求;所述第一服務請求包括所述第一表達式以及所述輸入參數; 接收單元,用於接收所述可信應用在基於所述輸入參數執行所述多個目標介面後返回的目標執行結果。
  22. 一種安全的服務請求處理裝置,設置於部署在終端設備的富有執行環境REE中的用戶端應用;所述終端設備還包括可信執行環境TEE,所述TEE中部署有可信應用;所述可信應用對外提供若干介面,其中的每個介面對應於所述可信應用的一個功能單元;所述裝置包括: 獲取單元,用於在使用者觸發所述用戶端應用執行第一服務時,獲取與所述第一服務相關的、具有指定調用順序的多個目標介面; 調用單元,用於將所述多個目標介面依次作為當前介面,並調用當前介面;所述調用當前介面包括:確定當前介面的輸入參數;向所述可信應用發送包含當前介面及其輸入參數的當前調用請求;接收所述可信應用在基於所述輸入參數執行當前介面後返回的當前執行結果的指示; 確定單元,用於在所述多個目標介面調用完成後,基於當前執行結果的指示,確定目標執行結果。
  23. 一種電腦可讀儲存媒體,其上儲存有電腦程式,當所述電腦程式在電腦中執行時,令電腦執行如請求項1-6中任一項所述的方法或如請求項7-9中任一項所述的方法或如請求項或請求項10所述的方法或如請求項11所述的方法。
  24. 一種計算設備,包括記憶體和處理器,所述記憶體中儲存有可執行代碼,所述處理器執行所述可執行代碼時,實現如請求項1-6中任一項所述的方法或如請求項7-9中任一項所述的方法或請求項或如請求項10所述的方法或如請求項11所述的方法。
TW110115507A 2020-09-18 2021-04-29 安全的服務請求處理方法及裝置 TWI762293B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010989975.7A CN112101949B (zh) 2020-09-18 2020-09-18 安全的服务请求处理方法及装置
CN202010989975.7 2020-09-18

Publications (2)

Publication Number Publication Date
TW202213217A true TW202213217A (zh) 2022-04-01
TWI762293B TWI762293B (zh) 2022-04-21

Family

ID=73760035

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110115507A TWI762293B (zh) 2020-09-18 2021-04-29 安全的服務請求處理方法及裝置

Country Status (4)

Country Link
US (1) US11263312B1 (zh)
EP (1) EP3971745B1 (zh)
CN (1) CN112101949B (zh)
TW (1) TWI762293B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109960582B (zh) * 2018-06-19 2020-04-28 华为技术有限公司 在tee侧实现多核并行的方法、装置及系统
CN113312630B (zh) * 2021-05-31 2022-07-01 支付宝(杭州)信息技术有限公司 实现可信调度的方法及装置
CN113468611B (zh) * 2021-06-28 2022-11-18 展讯通信(上海)有限公司 安全认证方法、系统、设备及介质
CN113706299A (zh) * 2021-09-10 2021-11-26 京东科技控股股份有限公司 数据处理的方法、装置、电子设备及介质
CN113553204B (zh) * 2021-09-16 2021-12-28 支付宝(杭州)信息技术有限公司 一种数据传输方法及装置
CN116861445B (zh) * 2023-09-04 2023-12-15 湖北芯擎科技有限公司 可信执行环境的实现方法、系统级芯片及存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9384284B2 (en) * 2012-11-05 2016-07-05 Sap Se Value-added usage of process-oriented extension fields in business mashups
CN104281455A (zh) * 2014-10-11 2015-01-14 北京金山安全软件有限公司 一种接口调用方法、装置及终端
CN105991287B (zh) * 2015-02-26 2019-07-12 阿里巴巴集团控股有限公司 一种签名数据的生成及指纹认证请求方法及装置
CN105488679B (zh) * 2015-11-23 2019-12-03 北京小米支付技术有限公司 基于生物识别技术的移动支付设备、方法和装置
DE102016105936A1 (de) * 2015-12-14 2017-06-14 Lenovo (Beijing) Limited Electronic device and method for running applications in different security environments
CN107851251B (zh) * 2016-06-29 2022-03-08 华为技术有限公司 一种支付验证方法及装置
WO2018000370A1 (zh) 2016-06-30 2018-01-04 华为技术有限公司 一种移动终端的认证方法及移动终端
CN106528418B (zh) * 2016-10-28 2019-01-22 广东浪潮大数据研究有限公司 一种测试方法及装置
CN106776349B (zh) * 2017-02-07 2020-01-03 武汉斗鱼网络科技有限公司 一种接口检测流程的设置方法和系统
WO2019010863A1 (zh) 2017-07-13 2019-01-17 华为技术有限公司 控制可信应用访问的方法和终端
CN109214215B (zh) * 2018-06-19 2021-10-26 中国银联股份有限公司 基于tee和ree的分离式切换方法及其系统
CN108848165B (zh) * 2018-06-20 2022-10-18 中国平安人寿保险股份有限公司 业务请求处理方法、装置、计算机设备和存储介质
CN109191131B (zh) * 2018-08-16 2022-06-10 沈阳微可信科技有限公司 一种基于可信环境和双安全芯片的安全人脸识别装置
CN109240838A (zh) * 2018-09-20 2019-01-18 深圳市牛鼎丰科技有限公司 接口调用方法、装置、计算机设备及存储介质
CN110098932B (zh) * 2019-05-16 2022-10-28 江苏慧世联网络科技有限公司 一种基于安全电子公证技术的电子文书签署方法
US10839107B2 (en) * 2019-05-30 2020-11-17 Advanced New Technologies Co., Ltd. Managing a smart contract on a blockchain
US11159320B2 (en) * 2019-07-01 2021-10-26 Havelsan Hava Elektronik Sanayi Ve Ticaret Anonim Sirketi Method for secure connection
US10699015B1 (en) * 2020-01-10 2020-06-30 Alibaba Group Holding Limited Method and apparatus for data transmission in a tee system
CN110515924B (zh) * 2019-08-15 2023-12-12 上海南燕信息技术有限公司 数据库操作逻辑校验方法、装置、设备及可读存储介质
CN111177701B (zh) * 2019-12-11 2022-09-13 北京握奇智能科技有限公司 基于可信执行环境和安全芯片的密码功能服务实现方法和设备
CN111158794B (zh) * 2019-12-19 2023-03-31 苏州浪潮智能科技有限公司 一种面向OpenStack的API接口组合优化方法及装置
CN111181720B (zh) * 2019-12-31 2021-04-06 支付宝(杭州)信息技术有限公司 基于可信执行环境的业务处理方法及装置

Also Published As

Publication number Publication date
TWI762293B (zh) 2022-04-21
EP3971745A1 (en) 2022-03-23
US20220092169A1 (en) 2022-03-24
CN112101949A (zh) 2020-12-18
CN112101949B (zh) 2022-12-16
US11263312B1 (en) 2022-03-01
EP3971745B1 (en) 2023-05-31

Similar Documents

Publication Publication Date Title
TWI762293B (zh) 安全的服務請求處理方法及裝置
US10924285B2 (en) Method and server for providing notary service with respect to file and verifying file recorded by the notary service
CN108923908B (zh) 授权处理方法、装置、设备及存储介质
CN108259438B (zh) 一种基于区块链技术的认证的方法和装置
US10721076B2 (en) Method, device, terminal, and server for a security check
CN112308561A (zh) 基于区块链的存证方法、系统、计算机设备和存储介质
CN110650216A (zh) 云服务请求方法和装置
CN111178840A (zh) 业务处理方法及装置、系统、电子设备、存储介质
CN112671705A (zh) 报文的处理方法、装置、电子设备及计算机可读存储介质
CN110705985B (zh) 用于存储信息的方法和装置
CN115130075A (zh) 一种数字签章方法、装置、电子设备及存储介质
CN112182635A (zh) 一种联合建模的实现方法、装置、设备和介质
Pop et al. Secure migration of WebAssembly-based mobile agents between secure enclaves
CN110602051B (zh) 基于共识协议的信息处理方法及相关装置
US10326833B1 (en) Systems and method for processing request for network resources
KR20160060017A (ko) 서버에 대한 웹 요청들의 위조의 방지
CN113329004B (zh) 一种认证方法、系统及装置
CN112637124B (zh) 报文的处理方法、装置、电子设备及计算机可读存储介质
CN110457959B (zh) 一种基于Trust应用的信息传输方法及装置
US11936798B2 (en) Securing a provable resource possession
CN111245600B (zh) 基于区块链技术的鉴权认证方法和系统
CN114329538A (zh) 一种单点登录方法及装置
US10917244B1 (en) Blockchain network communication management
CN114331437A (zh) 一种基于区块链的数字印章使用方法及装置
CN114866409B (zh) 基于密码加速硬件的密码加速方法及装置