CN112101949B - 安全的服务请求处理方法及装置 - Google Patents

安全的服务请求处理方法及装置 Download PDF

Info

Publication number
CN112101949B
CN112101949B CN202010989975.7A CN202010989975A CN112101949B CN 112101949 B CN112101949 B CN 112101949B CN 202010989975 A CN202010989975 A CN 202010989975A CN 112101949 B CN112101949 B CN 112101949B
Authority
CN
China
Prior art keywords
interface
service request
service
target
client application
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN202010989975.7A
Other languages
English (en)
Other versions
CN112101949A (zh
Inventor
孟飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202010989975.7A priority Critical patent/CN112101949B/zh
Publication of CN112101949A publication Critical patent/CN112101949A/zh
Priority to TW110115507A priority patent/TWI762293B/zh
Priority to US17/348,572 priority patent/US11263312B1/en
Priority to EP21181307.6A priority patent/EP3971745B1/en
Application granted granted Critical
Publication of CN112101949B publication Critical patent/CN112101949B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Accounting & Taxation (AREA)
  • General Engineering & Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

本说明书实施例提供一种安全的服务请求处理方法及装置,通过部署在终端设备的可信执行环境TEE中的可信应用执行,该可信应用对外提供若干接口,其中的每个接口对应于可信应用的一个功能单元。该终端设备还包括富有执行环境REE,REE中部署有客户端应用。该处理方法包括:从客户端应用,接收用于请求可信应用执行第一服务的第一服务请求。该第一服务请求包括第一表达式及其输入参数,第一表达式限定与第一服务相关的多个目标接口及其调用顺序。基于输入参数,按照调用顺序依次执行多个目标接口,得到目标执行结果。将目标执行结果作为第一服务请求的处理结果,并向客户端应用返回第一服务请求的处理结果。

Description

安全的服务请求处理方法及装置
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种安全的服务请求处理方法及装置。
背景技术
在终端设备中,为了支持安全应用场景,通常会将终端设备在软件和硬件上划分为两个环境,一个是富有执行环境(Rich Execution Environment,REE),用户可以根据实际需要任意安装应用程序。REE中安装的应用程序可以称为客户端应用。另一个是可信执行环境(Trusted Execution Environment,TEE),在TEE中,只有可信的或被认证的应用程序才能够被安装和运行。TEE中安装的应用程序可以称为可信应用(Trusted Application,TA)。
由于用户可以在REE中任意安装应用程序,从而其安全性比较差。为此,针对一些对安全性要求较高的服务请求,客户端应用需调用TA进行处理。然而,由于客户端应用的服务请求会频繁发生变更,若为了处理该频繁变更的服务请求,而对TA进行频繁升级或变更,则会耗费极大的成本。
为此,需要提供一种方案,以便可以简单有效地对客户端应用的服务请求进行处理。
发明内容
本说明书一个或多个实施例描述了一种安全的服务请求处理方法及装置,可以兼顾服务请求处理的安全性和灵活性。
第一方面,提供了一种安全的服务请求处理方法,包括:
从所述客户端应用,接收用于请求所述可信应用执行第一服务的第一服务请求;所述第一服务请求包括第一表达式及其输入参数,所述第一表达式限定与所述第一服务相关的多个目标接口及其调用顺序;
基于所述输入参数,按照所述调用顺序依次执行所述多个目标接口,得到目标执行结果;
将所述目标执行结果作为所述第一服务请求的处理结果,并向所述客户端应用返回所述第一服务请求的处理结果。
第二方面,提供了一种安全的服务请求处理方法,包括:
从所述客户端应用,接收用于请求所述可信应用执行第一服务的当前服务请求;所述当前服务请求包括当前接口及其输入参数;所述当前接口为与第一服务相关的、具有指定调用顺序的多个目标接口中的任一接口;
基于所述输入参数,执行当前接口,得到当前执行结果;
向所述客户端应用返回当前执行结果的指示,以供所述客户端应用在判断所述当前接口为最后一个接口时,基于当前执行结果的指示,确定目标执行结果。
第三方面,提供了一种安全的服务请求处理方法,包括:
在用户触发所述客户端应用执行第一服务时,获取与所述第一服务相关的第一表达式;所述第一表达式限定与所述第一服务相关的多个目标接口及其调用顺序;
确定所述第一表达式的输入参数;
向所述可信应用发送用于请求所述可信应用执行所述第一服务的第一服务请求;所述第一服务请求包括所述第一表达式以及所述输入参数;
接收所述可信应用在基于所述输入参数执行所述多个目标接口后返回的目标执行结果。
第四方面,提供了一种安全的服务请求处理方法,包括:
在用户触发所述客户端应用执行第一服务时,获取与所述第一服务相关的、具有指定调用顺序的多个目标接口;
将所述多个目标接口依次作为当前接口,并调用当前接口;所述调用当前接口包括:确定当前接口的输入参数;向所述可信应用发送包含当前接口及其输入参数的当前调用请求;接收所述可信应用在基于所述输入参数执行当前接口后返回的当前执行结果的指示;
在所述多个目标接口调用完成后,基于当前执行结果的指示,确定目标执行结果。
第五方面,提供了一种安全的服务请求处理装置,包括:
接收单元,用于从所述客户端应用,接收用于请求所述可信应用执行第一服务的第一服务请求;所述第一服务请求包括第一表达式及其输入参数,所述第一表达式限定与所述第一服务相关的多个目标接口及其调用顺序;
执行单元,用于基于所述输入参数,按照所述调用顺序依次执行所述多个目标接口,得到目标执行结果;
返回单元,用于将所述目标执行结果作为所述第一服务请求的处理结果,并向所述客户端应用返回所述第一服务请求的处理结果。
第六方面,提供了一种安全的服务请求处理装置,包括:
接收单元,用于从所述客户端应用,接收用于请求所述可信应用执行第一服务的当前服务请求;所述当前服务请求包括当前接口及其输入参数;所述当前接口为与第一服务相关的、具有指定调用顺序的多个目标接口中的任一接口;
执行单元,用于基于所述输入参数,执行当前接口,得到当前执行结果;
返回单元,用于向所述客户端应用返回当前执行结果的指示,以供所述客户端应用在判断所述当前接口为最后一个接口时,基于当前执行结果的指示,确定目标执行结果。
第七方面,提供了一种安全的服务请求处理装置,包括:
获取单元,用于在用户触发所述客户端应用执行第一服务时,获取与所述第一服务相关的第一表达式;所述第一表达式限定与所述第一服务相关的多个目标接口及其调用顺序;
确定单元,用于确定所述第一表达式的输入参数;
发送单元,用于向所述可信应用发送用于请求所述可信应用执行所述第一服务的第一服务请求;所述第一服务请求包括所述第一表达式以及所述输入参数;
接收单元,用于接收所述可信应用在基于所述输入参数执行所述多个目标接口后返回的目标执行结果。
第八方面,提供了一种安全的服务请求处理装置,包括:
获取单元,用于在用户触发所述客户端应用执行第一服务时,获取与所述第一服务相关的、具有指定调用顺序的多个目标接口;
调用单元,用于将所述多个目标接口依次作为当前接口,并调用当前接口;所述调用当前接口包括:确定当前接口的输入参数;向所述可信应用发送包含当前接口及其输入参数的当前调用请求;接收所述可信应用在基于所述输入参数执行当前接口后返回的当前执行结果的指示;
确定单元,用于在所述多个目标接口调用完成后,基于当前执行结果的指示,确定目标执行结果。
第九方面,提供了一种存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法或第二方面的方法或第三方面的方法或第四方面的方法。
第十方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法或第二方面的方法或第三方面的方法或第四方面的方法。
本说明书一个或多个实施例提供的安全的服务请求处理方法及装置,部署在TEE中的可信应用可以对外提供若干接口,其中的每个接口对应于可信应用的一个功能单元。从而客户端应用可以通过调用该若干接口,请求可信应用执行服务。应理解,在客户端应用通过调用接口而请求服务时,若所请求的服务发生变更,客户端应用只需要重新选取各目标接口和/或重新编排各目标接口的调用顺序即可,而无需重新升级或变更可信应用。由此,既可以提升服务请求处理的灵活性,又可以节约可信应用的维护成本。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书提供的终端设备示意图;
图2为本说明书一个实施例提供的安全的服务请求处理方法流程图;
图3为本说明书提供的秘钥管理的处理流程示意图;
图4为本说明书另一个实施例提供的安全的服务请求处理方法流程图;
图5为本说明书再一个实施例提供的安全的服务请求处理方法流程图;
图6为本说明书提供的指纹支付的处理流程示意图;
图7为本说明书又一个实施例提供的安全的服务请求处理方法流程图;
图8为本说明书一个实施例提供的安全的服务请求处理装置示意图;
图9为本说明书另一个实施例提供的安全的服务请求处理装置示意图;
图10为本说明书再一个实施例提供的安全的服务请求处理装置示意图图;
图11为本说明书又一个实施例提供的安全的服务请求处理装置示意图图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
在描述本说明书提供的方案之前,先对本方案的发明构思作以下说明。
如前所述,客户端应用会请求可信应用执行服务。传统技术中,针对可信应用对外提供的每项服务,开发人员直接编写相应的处理逻辑。之后,当客户端应用请求执行该项服务时,传入相应的参数,并执行对应的处理逻辑即可。可见,在传统技术中,服务请求的整个处理流程全部部署在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 BDA0002690538740000141
从上述表达式可以看出,上述四个接口的调用顺序可以为:验签接口、数据获取接口、数据读取接口以及签名接口。
对于上述第一表达式,其输入参数包括以下任一种:用户的输入数据(如,指纹信息)以及预定义参数(如,客户端应用与服务器之间的交互信息:挑战信息以及密文标识等)等。对于上述示例中的表达式,其输入参数可以包括:用户的指纹信息、服务器下发的挑战信息(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可以位于服务器中。当然,处理器和存储介质也可以作为分立组件存在于服务器中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述的具体实施方式,对本说明书的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的具体实施方式而已,并不用于限定本说明书的保护范围,凡在本说明书的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的保护范围之内。

Claims (16)

1.一种安全的服务请求处理方法,通过部署在终端设备的可信执行环境TEE中的可信应用执行;所述可信应用对外提供若干接口,其中的每个接口对应于所述可信应用的一个功能单元;所述终端设备还包括富有执行环境REE,所述REE中部署有客户端应用;所述方法包括:
从所述客户端应用,接收用于请求所述可信应用执行第一服务的第一服务请求;所述第一服务请求包括第一表达式及其输入参数,所述第一表达式限定与所述第一服务相关的多个目标接口及其调用顺序;
基于所述输入参数,按照所述调用顺序依次执行所述多个目标接口,并记录所述多个目标接口各自的编号,以形成编号序列;
将执行所述多个目标接口后得到的目标执行结果作为所述第一服务请求的处理结果,并向所述客户端应用返回所述第一服务请求的处理结果以及所述编号序列,以供所述客户端应用基于所述编号序列对所述处理结果进行正确性验证。
2.根据权利要求1所述的方法,所述基于所述输入参数,按照所述调用顺序依次执行所述多个目标接口,包括:
对于所述多个目标接口中的第一个接口,基于所述输入参数,确定所述第一个接口的第一参数,并利用所述第一参数,执行所述第一个接口;
对于除所述第一个接口外任意的第二接口,基于所述输入参数和/或之前接口的执行结果,确定所述第二接口的第二参数,并利用所述第二参数,执行所述第二接口;
其中,在所述第二接口为最后一个接口时,将所述最后一个接口的执行结果作为所述目标执行结果。
3.根据权利要求1所述的方法,所述记录所述多个目标接口各自的编号,包括:
在按照所述调用顺序依次执行所述多个目标接口中任意的第一接口之时或之后,记录所述第一接口的编号;
在所述多个目标接口执行完成后,基于记录的各个接口的编号,形成所述编号序列。
4.根据权利要求1所述的方法,所述向所述客户端应用返回所述第一服务请求的处理结果以及所述编号序列,包括:
利用预先生成的私钥,对所述编号序列进行签名,得到签名后的编号序列;
向所述客户端应用返回所述第一服务请求的处理结果,以及签名后的编号序列。
5.根据权利要求1所述的方法,所述向所述客户端应用返回所述第一服务请求的处理结果,包括:
判断所述处理结果是否为敏感数据;
若是,则针对所述处理结果进行加密,得到所述处理结果的密文;
向所述客户端应用返回所述处理结果的密文。
6.根据权利要求1所述的方法,所述第一服务包括以下任一种:指纹支付、刷脸支付以及虹膜支付。
7.一种安全的服务请求处理方法,通过部署在终端设备的富有执行环境REE中的客户端应用执行;所述终端设备还包括可信执行环境TEE,所述TEE中部署有可信应用;所述可信应用对外提供若干接口,其中的每个接口对应于所述可信应用的一个功能单元;所述方法包括:
在用户触发所述客户端应用执行第一服务时,获取与所述第一服务相关的第一表达式;所述第一表达式限定与所述第一服务相关的多个目标接口及其调用顺序;
确定所述第一表达式的输入参数;
向所述可信应用发送用于请求所述可信应用执行所述第一服务的第一服务请求;所述第一服务请求包括所述第一表达式以及所述输入参数;
接收所述可信应用在基于所述输入参数执行所述多个目标接口后返回的目标执行结果以及编号序列,以基于所述编号序列对所述目标执行结果进行正确性验证;所述编号序列是基于在执行所述多个目标接口之时或之后记录的各目标接口的编号形成的。
8.一种安全的服务请求处理装置,设置于部署在终端设备的可信执行环境TEE中的可信应用;所述可信应用对外提供若干接口,其中的每个接口对应于所述可信应用的一个功能单元;所述终端设备还包括富有执行环境REE,所述REE中部署有客户端应用;所述装置包括:
接收单元,用于从所述客户端应用,接收用于请求所述可信应用执行第一服务的第一服务请求;所述第一服务请求包括第一表达式及其输入参数,所述第一表达式限定与所述第一服务相关的多个目标接口及其调用顺序;
执行单元,用于基于所述输入参数,按照所述调用顺序依次执行所述多个目标接口,并记录所述多个目标接口各自的编号,以形成编号序列;
返回单元,用于将执行所述多个目标接口后得到的目标执行结果作为所述第一服务请求的处理结果,并向所述客户端应用返回所述第一服务请求的处理结果以及所述编号序列,以供所述客户端应用基于所述编号序列对所述处理结果进行正确性验证。
9.根据权利要求8所述的装置,所述执行单元具体用于:
对于所述多个目标接口中的第一个接口,基于所述输入参数,确定所述第一个接口的第一参数,并利用所述第一参数,执行所述第一个接口;
对于除所述第一个接口外任意的第二接口,基于所述输入参数和/或之前接口的执行结果,确定所述第二接口的第二参数,并利用所述第二参数,执行所述第二接口;
其中,在所述第二接口为最后一个接口时,将所述最后一个接口的执行结果作为所述目标执行结果。
10.根据权利要求8所述的装置,所述执行单元包括:
记录模块,用于在按照所述调用顺序依次执行所述多个目标接口中任意的第一接口之时或之后,记录所述第一接口的编号;
形成模块,用于在所述多个目标接口执行完成后,基于记录的各个接口的编号,形成所述编号序列。
11.根据权利要求8所述的装置,所述返回单元还具体用于:
利用预先生成的私钥,对所述编号序列进行签名,得到签名后的编号序列;
向所述客户端应用返回所述第一服务请求的处理结果,以及签名后的编号序列。
12.根据权利要求8所述的装置,所述返回单元具体用于:
判断所述处理结果是否为敏感数据;
若是,则针对所述处理结果进行加密,得到所述处理结果的密文;
向所述客户端应用返回所述处理结果的密文。
13.根据权利要求8所述的装置,所述第一服务包括以下任一种:指纹支付、刷脸支付以及虹膜支付。
14.一种安全的服务请求处理装置,设置于部署在终端设备的富有执行环境REE中的客户端应用;所述终端设备还包括可信执行环境TEE,所述TEE中部署有可信应用;所述可信应用对外提供若干接口,其中的每个接口对应于所述可信应用的一个功能单元;所述装置包括:
获取单元,用于在用户触发所述客户端应用执行第一服务时,获取与所述第一服务相关的第一表达式;所述第一表达式限定与所述第一服务相关的多个目标接口及其调用顺序;
确定单元,用于确定所述第一表达式的输入参数;
发送单元,用于向所述可信应用发送用于请求所述可信应用执行所述第一服务的第一服务请求;所述第一服务请求包括所述第一表达式以及所述输入参数;
接收单元,用于接收所述可信应用在基于所述输入参数执行所述多个目标接口后返回的目标执行结果以及编号序列,以基于所述编号序列对所述目标执行结果进行正确性验证;所述编号序列是基于在执行所述多个目标接口之时或之后记录的各目标接口的编号形成的。
15.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-7中任一项所述的方法。
16.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-7中任一项所述的方法。
CN202010989975.7A 2020-09-18 2020-09-18 安全的服务请求处理方法及装置 Active CN112101949B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202010989975.7A CN112101949B (zh) 2020-09-18 2020-09-18 安全的服务请求处理方法及装置
TW110115507A TWI762293B (zh) 2020-09-18 2021-04-29 安全的服務請求處理方法及裝置
US17/348,572 US11263312B1 (en) 2020-09-18 2021-06-15 Secure service request processing methods and apparatuses
EP21181307.6A EP3971745B1 (en) 2020-09-18 2021-06-24 Secure service request processing methods and apparatuses

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
CN112101949A CN112101949A (zh) 2020-12-18
CN112101949B true CN112101949B (zh) 2022-12-16

Family

ID=73760035

Family Applications (1)

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

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 湖北芯擎科技有限公司 可信执行环境的实现方法、系统级芯片及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106776349A (zh) * 2017-02-07 2017-05-31 武汉斗鱼网络科技有限公司 一种接口检测流程的设置方法和系统
CN110098932A (zh) * 2019-05-16 2019-08-06 江苏慧世联网络科技有限公司 一种基于安全电子公证技术的电子文书签署方法
CN110515924A (zh) * 2019-08-15 2019-11-29 平安普惠企业管理有限公司 数据库操作逻辑校验方法、装置、设备及可读存储介质
CN111158794A (zh) * 2019-12-19 2020-05-15 苏州浪潮智能科技有限公司 一种面向OpenStack的API接口组合优化方法及装置

Family Cites Families (18)

* 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
WO2018000275A1 (zh) * 2016-06-29 2018-01-04 华为技术有限公司 一种支付验证方法及装置
CN109416800B (zh) 2016-06-30 2022-06-14 华为技术有限公司 一种移动终端的认证方法及移动终端
CN106528418B (zh) * 2016-10-28 2019-01-22 广东浪潮大数据研究有限公司 一种测试方法及装置
EP3644569B1 (en) 2017-07-13 2021-09-29 Huawei Technologies Co., Ltd. Method and terminal for controlling trusted application access
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 深圳市牛鼎丰科技有限公司 接口调用方法、装置、计算机设备及存储介质
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
CN111177701B (zh) * 2019-12-11 2022-09-13 北京握奇智能科技有限公司 基于可信执行环境和安全芯片的密码功能服务实现方法和设备
CN111181720B (zh) * 2019-12-31 2021-04-06 支付宝(杭州)信息技术有限公司 基于可信执行环境的业务处理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106776349A (zh) * 2017-02-07 2017-05-31 武汉斗鱼网络科技有限公司 一种接口检测流程的设置方法和系统
CN110098932A (zh) * 2019-05-16 2019-08-06 江苏慧世联网络科技有限公司 一种基于安全电子公证技术的电子文书签署方法
CN110515924A (zh) * 2019-08-15 2019-11-29 平安普惠企业管理有限公司 数据库操作逻辑校验方法、装置、设备及可读存储介质
CN111158794A (zh) * 2019-12-19 2020-05-15 苏州浪潮智能科技有限公司 一种面向OpenStack的API接口组合优化方法及装置

Also Published As

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

Similar Documents

Publication Publication Date Title
CN112101949B (zh) 安全的服务请求处理方法及装置
CN110036613B (zh) 提供用于去中心化应用的身份认证的系统和方法
US11367054B2 (en) Biological recognition technology-based mobile payment device, method and apparatus, and storage medium
EP3171315A1 (en) Payment verification system, method and apparatus, computer program and recording medium
CN108964925B (zh) 一种文件认证设备方法、装置、设备及可读介质
US10721076B2 (en) Method, device, terminal, and server for a security check
CN111431719A (zh) 一种移动终端密码保护模块、移动终端及密码保护方法
CN112861191B (zh) 一种应用程序监控方法及装置
US20150188916A1 (en) Vpn connection authentication system, user terminal, authentication server, biometric authentication result evidence information verification server, vpn connection server, and computer program product
US9350761B1 (en) System for the distribution and deployment of applications, with provisions for security and policy conformance
CN108833431B (zh) 一种密码重置的方法、装置、设备及存储介质
CN111159657A (zh) 一种应用程序鉴权方法及系统
CN109150811B (zh) 一种实现可信会话的方法及装置、计算设备
CN111259411B (zh) 区块链管理方法、装置、电子设备及可读存储介质
CN115001714B (zh) 资源访问方法及装置、电子设备、存储介质
CN114584324B (zh) 一种基于区块链的身份授权方法和系统
CN112507302B (zh) 基于密码模块执行的调用方身份鉴别方法及装置
CN112637124A (zh) 报文的处理方法、装置、电子设备及计算机可读存储介质
CN106533685A (zh) 身份认证方法、装置及系统
US20240129113A1 (en) Method for providing oracle service of blockchain network by using zero-knowledge proof and aggregator terminal using the same
US12034851B2 (en) Transaction security techniques
CN114938299B (zh) 基于应用服务接口的设备授权方法及装置
US11743327B2 (en) Topological ordering of blockchain associated proposals
CN114866409B (zh) 基于密码加速硬件的密码加速方法及装置
US20240004986A1 (en) Cla certificateless authentication of executable programs

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40042997

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant