CN107924433A - 由受控制的加密密钥管理保护的软件模块的安全进入和退出 - Google Patents

由受控制的加密密钥管理保护的软件模块的安全进入和退出 Download PDF

Info

Publication number
CN107924433A
CN107924433A CN201680047562.9A CN201680047562A CN107924433A CN 107924433 A CN107924433 A CN 107924433A CN 201680047562 A CN201680047562 A CN 201680047562A CN 107924433 A CN107924433 A CN 107924433A
Authority
CN
China
Prior art keywords
software module
instruction
secure software
secure
address
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.)
Granted
Application number
CN201680047562.9A
Other languages
English (en)
Other versions
CN107924433B (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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN107924433A publication Critical patent/CN107924433A/zh
Application granted granted Critical
Publication of CN107924433B publication Critical patent/CN107924433B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Virology (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供用于保护计算装置中的软件的技术。根据这些技术的一种方法包含:接收来自不安全软件模块的请求以执行包括经加密程序代码的安全软件模块的指令;确定所述指令是否包括与所述安全软件模块外部可存取的所述安全软件模块的受控制进入点相关联的指令;响应于所述指令包括与所述安全软件模块的所述受控制进入点相关联的指令而执行所述安全软件模块的一或多个指令;以及控制从所述安全软件模块的退出以将执行返回到所述不安全软件模块。

Description

由受控制的加密密钥管理保护的软件模块的安全进入和退出
背景技术
软件可包含黑客或竞争者可能希望从软件获取和出于其自身目的而利用的有价值的知识产权。例如受信任的执行环境的一些常规解决方案可提供对计算装置上的数据的保护。然而,这些解决方案并不提供对软件代码自身的保护。
发明内容
根据本发明的用于保护计算装置中的软件的实例方法包含接收来自不安全软件模块的请求以执行包括经加密程序代码的安全软件模块的指令;确定所述指令是否包括与所述安全软件模块外部可存取的安全软件模块的受控制进入点相关联的指令;响应于所述指令包括与所述安全软件模块的所述受控制进入点相关联的指令而执行所述安全软件模块的一或多个指令;以及控制从所述安全软件模块的退出以将执行返回到不安全软件模块。
这种方法的实施方案可包含以下特征中的一或多个。所述指令为调用指令,且确定所述指令是否包括与所述安全软件模块外部可存取的安全软件模块的受控制进入点相关联的指令包含:存取由所述不安全软件模块执行的调用指令中所指定的地址处所述安全软件模块的指令;使用特定于所述安全软件模块的解密密钥对在所述调用指令中所指定的所述地址处发现的所述指令进行解密;以及确定在所述调用指令中所指定的所述地址处发现的所述指令是否为与所述安全软件模块相关联的表示所述安全软件模块的受控制进入点的配置指令。响应于在所述调用指令中所指定的所述地址处发现的所述指令并非所述配置指令而禁止存取所述安全软件模块;以及响应于所述调用指令中所指定的所述地址并非所述配置指令而执行行动。响应于所述指令包括与所述安全软件模块的受控制进入点相关联的指令而执行所述安全软件模块的一或多个指令包含初始化所述安全软件模块的实例。初始化所述安全软件模块的所述实例包含存取表示所述安全软件模块的所述实例的状态的经加密上下文信息。控制从所述安全软件模块的退出以将执行返回到所述不安全软件模块包含:将表示所述安全软件模块的所述实例的状态的经加密上下文信息存储在安全存储器中;以及停止所述安全软件模块的指令的解密。控制从所述安全软件模块的退出以将执行返回到所述不安全软件模块包含:在执行所述安全软件模块的指令时超控异常处理;将表示所述安全软件模块的所述实例的状态的经加密上下文信息存储在安全存储器中;以及响应于出现异常而停止所述安全软件模块的指令的解密。响应于所述指令包括与所述安全软件模块的受控制进入点相关联的指令而执行所述安全软件模块的一或多个指令包含对与安全软件模块的实例相关联的安全软件模块的一或多个指令中的每一个进行解密,恰在执行所述一或多个指令之前正执行所述实例。对与恰在执行所述一或多个指令之前正执行的所述安全软件模块的所述实例相关联的安全软件模块的一或多个指令中的每一个进行解密包含使用与所述安全软件模块相关联的加密密钥对所述一或多个指令中的每一个进行解密。
根据本发明的实例设备包含用于接收来自不安全软件模块的请求以执行包括经加密程序代码的安全软件模块的指令的装置;用于确定所述指令是否包括与所述安全软件模块外部可存取的安全软件模块的受控制进入点相关联的指令的装置;用于响应于所述指令包括与所述安全软件模块的所述受控制进入点相关联的指令而执行所述安全软件模块的一或多个指令的装置;以及用于控制从所述安全软件模块的退出以将执行返回到不安全软件模块的装置。
此设备的实施方案可包含以下特征中的一或多个。所述指令为调用指令,且所述用于确定所述指令是否包括与所述安全软件模块外部可存取的所述安全软件模块的受控制进入点相关联的指令的装置包含:用于存取由所述不安全软件模块执行的调用指令中所指定的地址处所述安全软件模块的指令的装置;用于使用特定于所述安全软件模块的解密密钥对所述调用指令中所指定的所述地址处发现的所述指令进行解密的装置;以及用于确定在所述调用指令中所指定的所述地址处发现的所述指令是否为与所述安全软件模块相关联的表示所述安全软件模块的受控制进入点的配置指令的装置。用于响应于在所述调用指令中所指定的所述地址处发现的所述指令并非所述配置指令而禁止存取所述安全软件模块的装置;以及用于响应于所述调用指令中所指定的所述地址并非所述配置指令而执行行动的装置。所述用于响应于所述指令包括与所述安全软件模块的受控制进入点相关联的指令而执行所述安全软件模块的一或多个指令的装置包含用于初始化所述安全软件模块的实例的装置。所述用于初始化所述安全软件模块的所述实例的装置包含用于存取表示所述安全软件模块的所述实例的状态的经加密上下文信息的装置。所述用于控制从所述安全软件模块的退出以将执行返回到所述不安全软件模块的装置包含:用于将表示所述安全软件模块的所述实例的状态的经加密上下文信息存储在安全存储器中的装置;以及用于停止所述安全软件模块的指令的解密的装置。所述用于控制从所述安全软件模块的退出以将执行返回到不安全软件模块的装置包含:用于在执行所述安全软件模块的指令时超控异常处理的装置;用于将表示所述安全软件模块的所述实例的状态的经加密上下文信息存储在安全存储器中的装置;以及用于响应于出现异常而停止所述安全软件模块的指令的解密的装置。
根据本发明的实例设备包含存储器和耦合到存储器的处理器。所述处理器经配置以接收来自不安全软件模块的请求以执行包括经加密程序代码的安全软件模块的指令;确定所述指令是否包括与所述安全软件模块外部可存取的所述安全软件模块的受控制进入点相关联的指令;响应于所述指令包括与所述安全软件模块的所述受控制进入点相关联的指令而执行所述安全软件模块的一或多个指令;以及控制从所述安全软件模块的退出以将执行返回到所述不安全软件模块。
此设备的实施方案可包含以下特征中的一或多个。所述指令为调用指令,且经配置以确定所述指令是否包括与所述安全软件模块外部可存取的所述安全软件模块的受控制进入点相关联的指令的处理器进一步经配置以:存取由所述不安全软件模块执行的调用指令中所指定的地址处所述安全软件模块的指令;使用特定于所述安全软件模块的解密密钥对所述调用指令中所指定的所述地址处发现的所述指令进行解密;以及确定在所述调用指令中所指定的所述地址处发现的所述指令是否为与所述安全软件模块相关联的表示所述安全软件模块的受控制进入点的配置指令。所述处理器进一步经配置以:响应于在所述调用指令中所指定的所述地址处发现的所述指令并非所述配置指令而禁止存取所述安全软件模块;以及响应于所述调用指令中所指定的所述地址并非所述配置指令而执行行动。经配置以响应于所述指令包括与所述安全软件模块的受控制进入点相关联的指令而执行所述安全软件模块的一或多个指令的所述处理器进一步经配置以初始化所述安全软件模块的实例。经配置以初始化所述安全软件模块的所述实例的处理器进一步经配置以存取表示所述安全软件模块的所述实例的状态的经加密上下文信息。经配置以控制从所述安全软件模块的退出以将执行返回到不安全软件模块的处理器进一步经配置以:将表示所述安全软件模块的所述实例的状态的经加密上下文信息存储在存储器的安全部分中;以及停止所述安全软件模块的指令的解密。经配置以控制从所述安全软件模块的退出以将执行返回到不安全软件模块的处理器进一步经配置以:在执行所述安全软件模块的指令时超控异常处理;将表示所述安全软件模块的所述实例的状态的经加密上下文信息存储在存储器的安全部分中;以及响应于出现异常而停止所述安全软件模块的指令的解密。
根据本发明的实例非暂时性计算机可读媒体,上面存储有用于保护计算装置中的软件的计算机可读指令,所述计算机可读指令包含经配置以致使所述计算装置接收来自不安全软件模块的请求以进行以下操作的指令:执行包括经加密程序代码的安全软件模块的指令;确定所述指令是否包括与所述安全软件模块外部可存取的所述安全软件模块的受控制进入点相关联的指令;响应于所述指令包括与所述安全软件模块的所述受控制进入点相关联的指令而执行所述安全软件模块的一或多个指令;以及控制从所述安全软件模块的退出以将执行返回到所述不安全软件模块。
此类非暂时性计算机可读媒体的实施方案可包含以下特征中的一或多个。所述指令包括调用指令,且其中经配置以致使所述计算装置确定所述指令是否包括与所述安全软件模块外部可存取的所述安全软件模块的受控制进入点相关联的指令的所述指令包含经配置以致使所述计算装置进行以下操作的指令:存取由所述不安全软件模块执行的所述调用指令中所指定的地址处所述安全软件模块的指令;使用特定于所述安全软件模块的解密密钥对所述调用指令中所指定的所述地址处发现的所述指令进行解密;以及确定所述调用指令中所指定的所述地址处发现的所述指令是否为与所述安全软件模块相关联的表示所述安全软件模块的受控制进入点的配置指令。指令经配置以致使所述计算装置进行以下操作:响应于在所述调用指令中所指定的所述地址处发现的所述指令并非所述配置指令而禁止存取所述安全软件模块;以及响应于所述调用指令中所指定的所述地址并非所述配置指令而执行行动。经配置以致使所述计算装置响应于所述指令包括与所述安全软件模块的受控制进入点相关联的指令而执行所述安全软件模块的一或多个指令的所述指令包含经配置以致使所述计算装置初始化所述安全软件模块的实例的指令。经配置以致使所述计算装置初始化所述安全软件模块的所述实例的所述指令包含经配置以致使所述计算装置存取表示所述安全软件模块的所述实例的状态的经加密上下文信息的指令。经配置以致使所述计算装置控制从所述安全软件模块的退出以将执行返回到所述不安全软件模块的所述指令包含经配置以致使所述计算装置进行以下操作的指令:将表示所述安全软件模块的所述实例的状态的经加密上下文信息存储在安全存储器中;以及停止所述安全软件模块的指令的解密。经配置以致使所述计算装置控制从所述安全软件模块的退出以将执行返回到所述不安全软件模块的所述指令包含经配置以致使所述计算装置进行以下操作的指令:在执行所述安全软件模块的指令时超控异常处理;将表示所述安全软件模块的所述实例的状态的经加密上下文信息存储在安全存储器中;以及响应于出现异常而停止所述安全软件模块的指令的解密。
附图说明
图1为根据某些实例实施方案的实例计算装置的示意图。
图2为根据某些实例实施方案的另一计算装置的示意图。
图3为根据本文所公开的技术的用于保护计算装置中的软件的实例进程的流程图。
图4为根据本文所公开的技术的用于确定指令是否为安全软件模块的受控制进入点的实例进程的流程图。
图5为根据本文所公开的技术的用于保护计算装置中的软件的实例进程的流程图。
图6为根据本文所公开的技术的用于控制从安全软件模块的退出的实例进程的流程图。
图7为根据本文所公开的技术的用于初始化安全软件模块的实例进程的流程图。
图8为根据本文所公开的技术的用于执行安全软件模块的指令的实例进程的流程图。
图9为根据某些实例实施方案的可用于实施图1和2中所说明的计算装置的实例无线装置的示意图。
根据某些实例实施方案,各图中的相同参考符号指示相同元件。
具体实施方式
本文中描述用于保护安全软件模块的方法、系统、装置、计算机可读媒体和其它实施方案。本文中所描述的技术提供由受控制加密密钥管理保护的安全软件模块的受控制进入和退出。将安全软件模块的程序代码以加密形式存储且恰在通过计算装置的处理器执行所述软件代码之前解密所述程序代码。附图和以下描述更详细地论述这些途径中的每一个。
实例实施例包含例如包含以下各项中的一或多个的方法:
●用于保护软件模块的方法、系统、装置、计算机可读媒体和其它实施方案。根据这些技术的实例方法包含:
○接收来自不安全软件模块的请求以执行包括经加密程序代码的安全软件模块的指令;
○确定所述指令是否包括与所述安全软件模块外部可存取的所述安全软件模块的受控制进入点相关联的指令;
○响应于所述指令包括与所述安全软件模块的所述受控制进入点相关联的指令而执行所述安全软件模块的一或多个指令;以及
○控制从所述安全软件模块的退出以将执行返回到所述不安全软件模块。
●此类实例系统和方法的实施方案在附图中说明且在以下实例实施方案中详细地论述。
图1为可用于实施本文所公开的技术的实例计算装置100的示意图。计算装置100可包括计算机服务器且可以是云计算环境的部分。计算装置100还可以是其它类型的计算装置,例如膝上型计算机、平板计算机、移动装置或可穿戴计算装置。计算装置100包含处理器105和存储器125。存储器125以通信方式耦合到处理器105且可用于存储可由处理器105执行的数据和/或可执行程序代码。处理器105可经配置以执行不安全软件模块130和安全软件模块140两者。不安全软件模块130包括可由处理器105执行以执行一或多个功能的可执行程序指令。未受保护软件代码以未经加密形式存储于存储器125中且潜在地可由计算装置100上正执行的其它进程存取。未受保护软件代码可包括由计算装置100执行的一或多个应用程序和/或由计算装置100执行的高级操作系统(high-level operating system;HLOS)的组分。受保护软件代码包括一或多个安全软件模块140,其包括以加密形式存储于计算装置100的存储器125中的敏感程序代码。敏感程序代码可包括所述代码的开发者希望保护的有价值的知识产权,或可包括用于执行以下事务的代码:可存取或修改例如财务数据、医疗数据或攻击者可能希望通过攻击所述程序代码而获得或修改的其它此类数据等敏感数据。受保护软件代码可以加密形式存储直到恰在执行之前为止。恰在执行之前,相关程序代码可经解密且提供到处理器105以供执行。
计算装置100可经配置以执行安全软件模块。每个安全软件模块140均可存储于在本文中也被称作安全软件模块140的“地址域”或“软件地址域”的存储器125的一部分中。安全软件模块140包含经加密程序代码155。安全软件模块140还可包含地址域入口上下文150和地址域配置指令145。地址域配置指令145充当进入安全软件模块140的程序代码的初始点。处理器105可经由地址域调用指令135通过防止进入所述代码的跳转跳转到除进入安全软件模块140的程序代码的指定进入点之外的存储器位置而控制进入安全软件模块140的程序代码。进入在除地址域配置指令145之外的其它地址处安全软件模块140的程序代码的调用可被处理器105拒绝,这可防止攻击者尝试跳转到安全软件模块140的程序代码内的任意地址。安全软件模块140的经加密程序代码155以加密形式保存且仅在处理器105即将执行经加密程序代码155的指令时根据需要经解密。
计算装置100还可经配置以允许不安全软件模块130调用安全软件模块140。处理器105可实施一或多个地址域特定的CPU指令110。这些指令可包含地址域调用指令135、地址域配置指令145和地址域返回指令160。其它地址域特定的指令也可由处理器105实施。处理器105可经配置以实施地址域调用指令135,其为未受保护程序代码提供接口以调用安全软件模块140的程序代码。地址域调用指令135可经配置以将地址域配置指令145的地址接受为参数。地址域调用指令135可包括不安全软件模块130可存取的未经加密指令。处理器105可经配置以存取地址域调用指令135中所指定的地址;对位于所指定地址处的所述指令进行解密;以及确定在由地址域调用指令135指定的所述地址处的所述指令是否为地址域配置指令145。受保护软件可包括多个安全软件模块140或地址域,且每个地址域均可与其自身的地址域特定或安全软件模块特定的加密密钥相关联。在一些实施方案中,加密密钥可由计算装置100的受信任执行环境的密钥管理子系统管理。处理器105可经配置以响应于位于由地址域调用指令135指定的所述地址处的经解密内容并不映射到地址域配置指令145而中止地址域调用指令135。处理器105可经配置以响应于地址域调用指令中所指定的地址与地址域配置指令145的正确地址匹配而执行地址域配置指令145。每个安全软件模块140均可与其自身的地址域配置指令145相关联,且不安全软件模块130可通过执行地址域调用指令135到与所述安全软件模块140相关联的地址域配置指令145的地址而执行特定地址域中的软件,所述地址为所述特定安全软件模块140的进入点。
由处理器105执行地址域配置指令145以准备执行安全软件模块140。地址域配置指令145存取与安全软件模块140相关联的地址域入口上下文150。地址域入口上下文150存储于安全软件模块140中。地址域入口上下文150存储安全软件模块140的状态信息。安全软件模块140中实施的安全软件模块140可呈以下若干状态中的一个:(1)自由状态、(2)运行状态或(3)暂停状态。当所述地址域呈自由状态时,不存在地址域的运行或暂停实例,且可进行从不安全软件模块130进入所述地址域的调用。在图1中所说明的实施方案中,每次每个地址域的仅一个实例可能正在运行或暂停。如果所述地址域已经正在运行或暂停,且后一地址域调用指令经执行,那么处理器105可经配置以阻止地址域配置指令145直到地址域返回到自由状态为止。如果所述地址域呈自由状态,那么处理器105可经配置以执行地址域配置指令145以存取所述地址域的地址域入口上下文150,其包括可用于初始化所述地址域的状态的数据。地址域入口上下文150可包含可载入到处理器105的一或多个寄存器中的值。将地址域入口上下文150以加密形式存储于安全软件模块140中。处理器105可经配置以存取与所述地址域相关联的加密密钥且对地址域入口上下文150进行解密。所述加密密钥可由计算装置100的受信任执行环境的密钥管理子系统管理。处理器105可经配置以在解密之后验证地址域入口上下文150以确保地址域入口上下文150在存储于安全软件模块140中时尚未损坏或篡改。地址域入口上下文150的信息按需要由处理器105解密且不可由不安全软件模块130存取。地址域入口上下文150的地址可存储于处理器105的地址域入口上下文(realm entry context;REC)寄存器120中。一旦已载入地址域入口上下文150,处理器105便可更新地址域入口上下文150以指示所述地址域呈运行状态。当呈运行状态时,处理器105可经配置以执行包括安全软件模块140的程序代码的一或多个指令。处理器105可经配置以在由处理器105执行安全软件模块140的程序代码155的一或多个指令时更新存储于处理器105的一或多个寄存器中的信息和/或地址域入口上下文150。
处理器105经配置以仅按需要存取安全软件模块140的程序代码155的每个指令且对其进行解密以供执行,从而确保所述程序代码保持受保护。处理器105可经配置以仅在成功地执行地址域配置指令145且安全软件模块140的程序代码155的地址提供到处理器105时才存取安全软件模块140的程序代码155的指令且对其进行解密。
处理器105还可经配置以响应于外部调用而使所述地址域处于暂停状态。举例来说,安全软件模块140的程序代码155可经配置以调用不安全软件模块130的库或软件模块。处理器还可经配置以归因于例如中断或上下文切换等异常而使所述地址域处于暂停状态。处理器105的异常超控处理逻辑115可经配置以将地址域的当前状态存储在存储于REC寄存器120中所指定的地址处的地址域入口上下文150中。已经存储的地址域入口上下文150可用于在完成从安全软件模块140的程序代码155调用的不安全软件模块130的库或模块的执行之后恢复所述地址域的执行。
图2为可用于实施本文所公开的技术的实例计算装置100的示意图。图2中所说明的实例说明计算装置100的替代实例,其中地址域配置指令的功能性已整合到地址域调用指令135中,使得并不需要地址域配置指令。
地址域调用指令和地址域配置指令的功能性可合并到地址域调用指令中,使得所述地址域调用指令负责存取地址域入口上下文150且使用所述地址域入口上下文而初始化安全软件模块140。或者,地址域调用指令可调用地址域配置指令且将地址域入口上下文150的地址传递到地址域配置指令,且地址域配置指令可使用具备地址域调用指令的所述地址所参考的地址域入口上下文150而继续初始化安全软件模块140。
地址域调用指令可经配置以将地址域入口上下文150的地址和线程或进程标识符接受为参数。处理器105可存取所提供地址处的存储器且确定地址域入口上下文150是否存在于所述存储器位置处。如果存储在所述存储器地址处的数据并非地址域入口上下文,那么处理器105可经配置以引发异常从而停止安全软件模块140的执行。
图2中所说明的实例可用于支持安全软件模块140的多线程执行。每一线程或进程可负责存储与所述线程或进程相关联的地址域入口上下文150的地址。为了确保线程或进程尚未尝试存取与另一线程或进程相关联的上下文信息,地址域入口上下文150可包含属主验证标签。属主验证标签可为使用线程或进程标识符所产生的验证标签,所述标识符唯一地识别发出真实调用指令的线程或进程。所述验证标签可使用各种技术且使用与安全软件模块140相关联的加密密钥而产生。地址域调用指令可经配置以将地址域入口上下文150的地址和线程或进程标识符接受为参数。处理器105可存取所提供地址处的存储器且确定地址域入口上下文150是否存在于所述存储器位置处。如果存储在所述存储器地址处的数据并非地址域入口上下文,那么处理器105可经配置以引发异常从而停止安全软件模块140的执行。如果地址域入口上下文150存在于所指定地址处,那么处理器105可经配置以从地址域入口上下文150获取属主验证标签。处理器105也可基于线程或进程标识符而确定属主验证标签且将其与从地址域入口上下文150获取的属主验证标签进行比较。如果所确定属主验证标签与从地址域入口上下文150获取的属主验证标签并不匹配,那么处理器可经配置以引发异常从而停止安全软件模块140的执行。
图3为根据本文所公开的技术的用于保护计算装置中的软件的实例进程的流程图。图3中所说明的进程可由图1和2中所说明的计算装置100的处理器105实施。
可从不安全软件模块接收请求以执行包括经加密程序代码的安全软件模块的指令(阶段305)。不安全软件模块可包括安装在计算装置上的应用程序、计算装置的HLOS的组分和/或计算装置上并不包括安全软件模块140的其它软件。安全软件模块140可包括程序代码,其具有软件的开发者希望防止其它人从所述软件获取的知识产权价值。不安全软件可通过将安全软件模块存储在与未受保护软件分离的存储器的受信任部分中而与安全软件模块140分离。安全软件模块140的程序代码也可使用与安全软件模块140相关联的加密密钥加密以防止攻击者在获得源码的情况下使用源码。不安全软件可经配置以使用一或多个安全软件模块140以处理数据和/或执行其它任务。不安全软件模块可经配置以包含参考安全软件模块的指令的指令。计算装置的处理器可经配置以执行此指令,其参考安全软件模块的指令的地址。
可确定所述指令是否包括与安全软件模块外部可存取的所述安全软件模块的受控制进入点相关联的指令(阶段310)。本文中所论述的计算装置100经配置以控制安全软件模块的进入和退出,以防止攻击者在除安全软件模块的受控制进入点之外的指令处跳转到所述安全软件模块中。所述计算装置可被配置成使得可仅在通过调用包括安全软件模块的受控制进入点的指令而开始执行安全软件模块的情况下才起始安全软件模块的软件指令和/或与安全软件模块相关联的数据的解密。举例来说,受控制进入点可包括地址域调用指令,例如上文所论述的地址域调用指令135。地址域调用指令135可以是可被不安全软件模块调用的未经加密指令。计算装置100的处理器105可经配置以存取地址域调用指令135中所指定的地址以对位于所指定地址处的指令进行解密,且确定由地址域调用指令135所指定的所述地址处的所述指令是否为地址域配置指令145。如果地址域调用指令135中所指定的地址指向有效的地址域配置指令145,那么计算装置100的处理器105可经配置以初始化所述安全软件模块且执行所述安全软件模块的一或多个指令。
可响应于所述指令包括与所述安全软件模块的受控制进入点相关联的指令而执行安全软件模块的一或多个指令(阶段315)。计算装置的处理器可经配置以响应于不安全软件模块已执行与安全软件模块的受控制进入点相关联的所述指令而执行与所述安全软件模块相关联的一或多个程序指令。如上文所论述,安全软件模块140的程序代码155(在本文中也被称作地址域代码)可经加密,且所述处理器可经配置以恰在执行每个指令之前对所述指令进行解密以确保所述程序代码的所述指令始终保持受保护。计算装置的处理器可经配置以采取一或多个措施以防止响应于所述指令并不与受控制进入点相关联而执行所述安全软件模块。图5中所说明的实例进程可用于防止在除上文所论述的受控制进入点之外的指令处进入所述安全软件模块。可在执行一或多个指令之前起始安全软件模块140。在图7中说明实例初始化进程,但本文所公开的技术不限于图7中所说明的特定实施方案。
从安全软件模块的退出可受控制以将执行返回到不安全软件模块(阶段320)。计算装置100还经配置以在不损害包括安全软件模块的软件指令和/或安全软件模块所利用的数据的安全性的情况下控制从安全软件模块的退出。攻击者可能试图通过引发异常或通过其它行动而避开对与安全软件模块相关联的软件指令和/或数据的保护,所述其它行动可致使计算装置100的处理器105在可由安全软件模块采取措施清除供所述安全软件模块使用的数据和/或停止所述安全软件模块的经加密指令的解密之前退出所述安全软件指令。计算装置100的处理器105可经配置以包含在执行安全软件模块的指令时超控异常处理的逻辑。如果在处理器105正执行安全软件模块的指令时出现异常,那么所述处理器可经配置以捕捉到所述异常且采取措施清除表示安全软件模块(或在多线程环境下执行安全软件模块的线程)的当前状态的上下文信息;将上下文信息的经加密副本存储在安全存储器位置中;以及停止安全软件模块的指令和/或数据的解密。在图6中说明此进程的实例,其在下文详细论述。
图4为根据本文所公开的技术的用于确定指令是否为安全软件模块的受控制进入点的实例进程的流程图。图4中所说明的进程可由图1和2中所说明的计算装置100的处理器105实施。图4中所说明的进程可用于至少部分地实施图3中所说明的进程的阶段310。
可存取在由不安全软件模块执行的调用指令中所指定的地址处安全软件模块的指令或地址域入口上下文(阶段405)。如上文所论述,不安全软件模块可经配置以执行地址域调用指令,例如上文所论述的地址域调用指令135。地址域调用指令135可经配置以指向安全软件模块的指令的地址。计算装置的处理器可经配置以存取例如上文所说明的安全软件模块140的程序代码155的地址域代码中的存储器地址。根据图1中所说明的实例实施方案,地址域调用指令135中所指定的地址可指向安全软件模块的受控制进入点,其包括地址域配置指令145。根据图2中所说明的实例实施方案,地址域调用指令中所指定的地址可指向安全软件模块的受控制进入点,其包括地址域入口上下文150。图1中所说明的实例实施方案可用于每次可执行安全软件模块的单个实例的单线程实施方案,且图2中所说明的实例实施方案可用于多于一个线程可同时执行安全软件模块140的程序代码155的实施方案。每一线程可跟踪与所述线程相关联的地址域入口上下文150的地址且提供地址域调用指令中的地址以存取与所述线程相关联的地址域入口上下文150。然而,图2中所说明的实施方案也可用于安全软件模块的单线程实施方案。
在调用指令中所指定的地址处发现的指令或地址域入口上下文可使用特定于安全软件模块的解密密钥解密(阶段410)。计算装置100的处理器105可经配置以存取与安全软件模块相关联的加密密钥。加密密钥可存储于计算装置100的存储器中,所述存储器基本上不可由例如不安全软件模块130的不安全软件存取。处理器105可经配置以使用与安全软件模块相关联的加密密钥对调用指令中所指定的地址处发现的指令或地址域入口上下文进行解密。计算装置上的每个安全软件模块均可与加密密钥相关联,且所述加密密钥对于安全软件模块中的每一个可能不同。
可确定所述指令是否为与安全软件模块相关联的表示安全软件模块的受控制进入点的配置指令或在调用指令中所指定的地址处发现的表示安全软件模块的受控制进入点的地址域入口上下文150(阶段415)。当调用指令中所指定的地址指向指令时,计算装置100的处理器105可经配置以在阶段410中对如上文所论述的指令进行解密且接着确定所述指令是否包括真实配置指令。地址域配置指令145经配置以指向安全软件模块的地址域入口上下文150,且在执行时将地址域入口上下文150的地址载入到计算装置的处理器的REC寄存器120中。当调用指令中所指定的地址指向地址域入口上下文150时,计算装置的处理器可经配置以在阶段410中对如上文所论述的地址域入口上下文150进行解密且接着确定地址域入口上下文150是否可信。地址域入口上下文150可包括计算装置的处理器可用以确定地址域配置信息合理的验证标签或其它值。计算装置100的处理器105可经配置以引发异常和/或响应于地址域调用指令中所指定的地址并不指向地址域配置指令或地址域入口上下文而采取其它行动以防止攻击者在未经授权的进入点处进入跳转到安全软件模块中从而试图获取关于程序代码和/或由安全程序代码处理的数据的信息。
图5为根据本文所公开的技术的用于保护计算装置中的软件的实例进程的流程图。图5中所说明的进程可由图1和2中所说明的计算装置100的处理器105实施。图5中所说明的进程可实施为图3中所说明的进程的部分。
可响应于在调用指令中所指定的地址处发现的指令并非配置指令或地址域入口上下文150而禁止存取安全软件模块(阶段505)。计算装置100的处理器105可经配置以响应于地址域调用指令中所指定的地址并不指向地址域调用指令或地址域入口上下文150而执行防止进入安全软件模块的一或多个行动。处理器105可经配置以从处理器105的寄存器清除与安全软件模块相关联的解密密钥以使得安全软件模块的软件指令的随后提取将传回不可由计算装置的处理器执行的经加密值。
可响应于调用指令中所指定的地址并非配置指令或真实入口上下文而执行行动(阶段510)。计算装置100的处理器105还可经配置以响应于调用指令中所指定的地址并非配置指令或真实入口上下文而执行一或多个其它行动。处理器105可经配置以引发可使调用安全软件模块的不安全软件的执行停止的异常。此途径可用于防止不安全软件探测安全软件模块从而试图获取关于安全软件模块所利用的程序代码和/或数据的信息。处理器105可经配置以在一些实施方案中将执行返回到不安全软件模块且不安全软件模块可经配置以处理由不能执行安全软件模块引起的一或多个错误情况。在又其它实施方案中,处理器105可经配置以引发异常或以其它方式指示计算装置的HLOS的错误情况,所述处理器可经配置以采取一或多个行动,包含但不限于重启计算装置、停止执行不安全软件和/或防止计算装置上不安全软件的执行。
图6为根据本文所公开的技术的用于控制从安全软件模块的退出的实例进程的流程图。图6中所说明的进程可由图1和2中所说明的计算装置100的处理器105实施。图4中所说明的进程可用于至少部分地实施图3中所说明的进程的阶段320。
在执行安全软件模块的指令时的异常处理可经超控(阶段605)。计算装置的处理器可经配置以在执行安全软件模块的程序代码时超控异常处理115。攻击者可试图在安全软件模块中引发异常以使得处理器停止执行安全软件模块从而试图暴露安全软件模块的数据和/或程序代码。在所述模块呈中间状态时停止执行安全软件模块可导致安全软件模块的程序代码遗留下攻击者可用以推断关于安全软件模块的实施细节的中间数据。此外,可暴露用于对安全软件模块的经加密指令进行解密的解密密钥和真实上下文信息。处理器可经配置以超控异常处理直到执行指示安全软件模块的执行已完成且不安全软件模块的执行将恢复的返回指令或出现将引起安全软件模块的终止的错误或异常为止。
可将表示安全软件模块的实例的状态的经加密上下文信息存储在安全存储器中(阶段610)。表示安全软件模块的当前状态的信息可经加密且作为地址域入口上下文150存储。地址域入口上下文150包括可用于在计算装置的处理器执行其它程序代码的上下文切换之后恢复安全软件模块的状态的信息。当安全软件模块经配置以支持多线程时,地址域入口上下文150可为线程特定的,且所述线程可经配置以跟踪与所述线程相关联的地址域入口上下文150的地址。否则,地址域入口上下文150可存储在由地址域配置指令指定的存储器地址处,且一旦处理器恢复执行安全软件模块,地址域配置指令便可存取所述地址域入口上下文。
可停止安全软件模块的指令的解密(阶段615)。计算装置的处理器可经配置以停止对与所述安全模块相关联的指令进行解密以作为从安全软件模块的受控制退出的部分。所述处理器可经配置以从已经存储有一或多个加密密钥的存储器位置清除用于对安全软件模块的经加密指令进行解密的一或多个加密密钥的副本。所述一或多个加密密钥可存储于计算装置的处理器的一或多个寄存器中且所述处理器可经配置以清除存储于所述一或多个寄存器中的值。
图7为根据本文所公开的技术的用于初始化安全软件模块的实例进程的流程图。图7中所说明的进程可由图1和2中所说明的计算装置100的处理器105实施。图7中所说明的进程可用于至少部分地实施图3中所说明的进程的阶段315。
可初始化安全软件模块的实例(阶段705)。如上文所论述,地址域调用指令可充当安全软件模块140的受控制进入点,地址域调用指令可经配置以指向地址域配置指令的地址。地址域配置指令可经配置以执行一或多个软件指令从而准备执行安全软件模块140。初始化进程可包含确定安全软件模块140的当前状态。
安全软件模块140可呈自由状态、运行状态或暂停状态。运行状态指示安全软件模块140当前正由另一线程或另一进程执行,且处理器105可经配置以阻止安全软件模块140的程序代码的执行直到安全软件模块140通过正执行安全软件模块140的程序代码的另一线程或进程而返回到自由状态为止。暂停状态指示安全软件模块140当前由当前并非正在执行安全软件模块140的程序代码的另一线程或进程保留,但所述另一线程或进程在执行安全软件模块140的程序代码的进程中且将在完成某一其它任务之后返回继续执行安全软件模块140的程序代码。暂停状态可用于实现安全软件模块140外部未受保护程序代码的执行。举例来说,安全软件模块140的程序代码的指令可依赖于未受保护共享库以执行一或多个计算。安全软件模块140的指令可经配置以致使处理器105调用程序指令,其在执行时将安全软件模块140的当前状态保存在地址域入口上下文150中且在跳转到安全软件模块140外部的指令之前将安全软件模块140的指示符设为安全软件模块140呈暂停状态。一旦完成安全软件模块140外部一或多个指令的执行,处理器105便可将执行返回到安全软件模块140。处理器105可经配置以将地址域调用指令的地址推送到程式堆栈上,且地址域调用指令可执行地址域配置指令以载入地址域入口上下文150且在暂停所述执行之前恢复安全软件模块140的状态。安全软件模块140的状态可返回到运行状态。
如果安全软件模块140当前呈自由状态,那么安全软件模块140当前并非正由另一线程或进程执行且可经初始化,且所述进程可继续阶段705。否则,处理器105可经配置以在阶段705处进行阻止直到安全软件模块140的状态返回到自由状态为止。
在例如图2中所说明的安全软件模块140的多线程实施方案中,安全软件模块140可归因于从另一线程或进程到当前线程或进程的上下文切换而呈暂停状态或可呈运行状态。在此情形下,当前线程或进程将与其自身的地址域入口上下文150相关联且可开始执行安全软件模块140,如同相对于安全软件模块140的单线程版本,安全软件模块140如上文所论述呈自由状态一般。
可存取表示安全软件模块的实例的状态的经加密上下文信息(阶段710)。处理器105可经配置以存取与安全软件模块140相关联的存储于安全软件模块140中的地址域入口上下文150信息。地址域入口上下文150经加密且可包含例如验证标签的验证信息,其可用于确定地址域入口上下文150是否由于已产生验证标签而已被更改。处理器105可经配置以使用与安全软件模块相关联的加密密钥而重新产生用于地址域入口上下文150的验证标签。如果重新产生的验证标签和与地址域入口上下文150相关联的验证标签并不匹配,那么处理器105可经配置以引发异常以停止执行安全软件模块140。地址域入口上下文150可能已经损坏或被篡改且应停止执行安全软件模块140以确保是否正对安全软件模块140执行攻击。处理器105可经配置以在执行安全软件模块140的程序代码155时超控异常处理且可如上文关于图6所论述执行各种行动以在停止执行安全软件模块140之前清除。
在安全软件模块140的单线程实施方案中,地址域配置指令可经配置以指向地址域入口上下文150的地址且将地址域入口上下文150的地址载入到处理器105的REC寄存器120中,以使得处理器105可按需要存取地址域入口上下文150,例如在出现返回指令或出现异常时。或者,在包含多线程实施方案的其它实施方案中,地址域入口上下文150的地址可提供为地址域调用指令的参数。线程或进程可负责存储与所述线程或进程相关联的地址域入口上下文150的地址。在此实施方案中,地址域调用指令和地址域配置指令的功能性可合并到地址域调用指令中。或者,地址域调用指令可调用地址域配置指令且将与所述线程或进程相关联的地址域入口上下文150的地址传递到地址域配置指令,且地址域配置指令可使用具备地址域调用指令的所述地址所参考的地址域入口上下文150而继续初始化安全软件模块140。
为了确保线程或进程尚未尝试存取与另一线程或进程相关联的上下文信息,地址域入口上下文150可包含属主验证标签。属主验证标签可为使用线程或进程标识符所产生的验证标签,所述标识符唯一地识别发出真实调用指令的线程或进程。所述验证标签可使用各种技术且使用与安全软件模块140相关联的加密密钥而产生。地址域调用指令可经配置以将地址域入口上下文150的地址和线程或进程标识符接受为参数。处理器105可存取所提供地址处的存储器且确定地址域入口上下文150是否存在于所述存储器位置处。如果存储在所述存储器地址处的数据并非地址域入口上下文,那么处理器105可经配置以引发异常从而停止安全软件模块140的执行。如果地址域入口上下文150存在于所指定地址处,那么处理器105可经配置以从地址域入口上下文150获取属主验证标签。处理器105也可基于线程或进程标识符而确定属主验证标签且将其与从地址域入口上下文150获取的属主验证标签进行比较。如果所确定属主验证标签与从地址域入口上下文150获取的属主验证标签并不匹配,那么处理器可经配置以引发异常从而停止安全软件模块140的执行。
可使用与安全软件模块140相关联的加密密钥由处理器105对地址域入口上下文150进行解密。处理器105可使用包含在地址域入口上下文150中的数据填充处理器105的一或多个寄存器且可使用此数据执行其它行动以恢复安全软件模块140的上下文。如果安全软件模块140先前呈暂停状态,那么地址域入口上下文150可包含例如中间计算结果的安全软件模块140的状态信息,和/或安全软件模块140在进入到暂停状态中之前已产生或正使用的其它数据。如果安全软件模块140先前呈自由状态,那么地址域入口上下文150可包含用于初始化安全软件模块140的一或多个组分的数据。
一旦已存取且解密地址域入口上下文150,处理器105便可跳转到安全软件模块140的指令且执行安全软件模块140。处理器105可经配置以恰在执行每个指令之前对所述指令进行解密以确保仅当前正执行的指令呈可能易受攻击者影响的经解密状态。一旦已完成程序代码的执行,便可由处理器105执行地址域返回指令以引起与安全软件模块140相关联的数据的清除,地址域入口上下文150可在存储于安全软件模块140中之前经更新和加密,且用于对安全软件模块140的指令进行解密的加密密钥可从处理器105的寄存器或其它存储器位置清除。
图8为根据本文所公开的技术的用于执行安全软件模块的指令的实例进程的流程图。图3中所说明的进程可由图1和2中所说明的计算装置100的处理器105实施。图8中所说明的进程可用于至少部分地实施图3中所说明的进程的阶段315。
可恰在执行一或多个指令之前对安全软件模块的一或多个指令中的每一个进行解密(阶段805)。安全软件模块140的程序代码155的程序指令中的每一个可以加密形式存储且仅在需要所述指令中的每一个以供执行时才对其进行解密。计算装置的处理器105可经配置以存取与安全软件模块140相关联的加密密钥。所述一或多个加密密钥可存储于安全软件模块140中且可被复制到计算装置100的处理器的寄存器。处理器105可经配置以恰在正由处理器105执行每个指令之前对所述指令进行解密。仅按需要对所述指令进行解密可有助于维持包括安全软件模块140的程序代码的安全性。也可使用计算装置100的受信任执行环境中所实施的密钥存储机构来存储所述加密密钥。所述密钥存储机构可经配置以使用存储于其中的加密密钥而执行密码编译操作且可经配置以防止密钥从密钥存储机构的输出。所述密钥存储机构可经配置以需要验证以便使用加密密钥。地址域配置指令或地址域调用指令可经配置以在安全软件模块140的实例经初始化时载入来自安全软件模块140的此验证信息且所述验证信息可存储于处理器105的寄存器中。处理器105可将所述验证信息提供到具有待对其执行一或多个密码编译操作的数据的密钥存储机构,且所述一或多个操作的结果可由密钥存储机构提供到处理器105。
图9为可用于实施图1和2中所说明的计算装置100的实例计算装置的功能框图。图9为说明可与图1中所描绘的计算装置100类似或相同的实例计算装置900的各个组件的示意图。为简单起见,图9的示意性方框中说明的各种特征/组件/功能使用共同总线连接在一起以表示这些各种特征/组件/功能以操作方式耦合在一起。可提供其它连接、机构、特征、功能等且在必要时对其进行调适而以可操作方式耦合且配置便携式无线装置。此外,图9的实例中所说明的特征或功能中的一或多个可进一步细分,或图9中所说明的特征或功能中的两个或多于两个可组合。另外,可排除图9中所说明的特征或功能中的一或多个。
如所展示,计算装置900可包含可连接到一或多个天线902的一或多个局域网收发器906。一或多个局域网收发器906包括合适的装置、电路、硬件和/或软件以用于与WLAN接入点中的一或多个通信和/或检测到达/来自所述WLAN接入点中的一或多个的信号和/或直接在网络内与其它无线装置通信。在一些实施例中,局域网收发器906可包括适合于与一或多个无线接入点通信的WiFi(802.11x)通信收发器;然而,在一些实施例中,局域网收发器906可经配置以与其它类型的局域网、个域网(例如,蓝牙(无线技术网络))等等通信。另外,可使用任何其它类型的无线联网技术,例如超宽带、紫蜂、无线USB等。
在一些实施方案中,计算装置900还可包含可连接到一或多个天线902的一或多个广域网收发器904。广域网收发器904可包括合适的装置、电路、硬件和/或软件以用于与例如WWAN接入点中的一或多个通信和/或检测来自所述WWAN接入点中的一或多个的信号和/或直接在网络内与其它无线装置通信。在一些实施方案中,广域网收发器904可包括适合于与无线基站的CDMA网络通信的CDMA通信系统。在一些实施方案中,无线通信系统可包括其它类型的蜂窝式电话网络,例如TDMA、GSM、WCDMA、LTE等。另外,可使用任何其它类型的无线联网技术,包含例如WiMax(802.16)等。
在一些实施例中,SPS接收器(也被称作全球导航卫星系统(GNSS)接收器)908也可包含在计算装置900内。SPS接收器908可连接到一或多个天线902以用于接收卫星信号。SPS接收器908可以包括用于接收并处理SPS信号的任何合适硬件和/或软件。SPS接收器908可在适当时从其它系统请求信息,且可部分地使用由任何合适的SPS程序获得的测量值而执行确定计算装置900的位置所必需的计算。
如图9中进一步说明,实例计算装置900包含耦合到控制器/处理器910的一或多个传感器912。举例来说,传感器912可包含运动传感器以提供相对移动和/或定向信息(其独立于来源于由广域网收发器904、局域网收发器906和/或SPS接收器908所接收到的信号的运动数据)。借助实例但非限制,运动传感器可包含加速度计、陀螺仪和地磁(磁力计)传感器(例如,指南针),其中任一者可基于微机电系统(MEMS)或基于某种其它技术而实施。一或多个传感器912可进一步包含温度计(例如,热敏电阻)、音频传感器(例如,麦克风)和/或其它传感器。一或多个传感器912还可包含相机(例如,电荷耦合装置(CCD)类型相机、基于CMOS的图像传感器等等),其可产生静止或移动图像(例如,视频序列),所述图像可显示于例如显示器或屏幕等用户接口装置上且可进一步用于确定环境照明水平和/或有关UV和/或红外照明的颜色和存在和水平的信息。
处理器(也被称作控制器)910可连接到局域网收发器906、广域网收发器904、SPS接收器908和一或多个传感器912。所述处理器可包含提供处理功能以及其它计算和控制功能性的一或多个微处理器、微控制器和/或数字信号处理器。处理器910可耦合到存储媒体(例如,存储器)914以用于将数据和用于执行编程功能性的软件指令存储在移动装置内。存储器914可装载于处理器910上(例如,在同一IC封装内),及/或所述存储器可为处理器外部的存储器且功能上经由数据总线耦合。
多个软件模块和数据表可驻存在存储器914中且可被处理器910利用以便管理与远程装置/节点的通信两者、执行定位确定功能性和/或执行装置控制功能性。如图9中所说明,在一些实施例中,存储器914可包含可实施一或多个应用程序的应用程序模块918。应注意,取决于计算装置900的实施方案,模块和/或数据结构的功能性可经组合、分离和/或以不同方式构造。应用程序模块918可包括可由计算装置900的受信任执行环境980或安全元件990执行的一或多个受信任应用程序。
应用程序模块918可为在计算装置900的处理器910上运行的进程或线程,所述应用程序模块可请求来自计算装置900的一或多个其它模块(未展示)的数据。应用程序通常在软件架构的上部层内运行且可在计算装置900的丰富的执行环境中实施,且可包含室内导航应用程序、购物应用程序、位置感知服务应用程序等等。
处理器910可包含受信任执行环境980和/或计算装置900可包含安全元件990。受信任执行环境980和/或安全元件990可用于实施安全处理环境以用于实施用于执行上文所说明的安全软件模块的进程。受信任执行环境980可实施为处理器910的安全区域,所述处理器可用于在与可执行操作系统和/或应用程序(例如应用程序模块918的应用程序)的丰富执行环境分离的环境下处理和存储敏感数据。受信任执行环境980可经配置以执行受信任应用程序,其通过加强存储于其中的敏感数据的机密性、完整性和保护而为敏感数据提供端到端安全性。受信任执行环境980可用于存储加密密钥、防重放计数器数据和/或其它敏感数据。此外,受信任执行环境980可用于实施图1到8中所说明的和本文中所论述的各个进程。受信任应用程序环境可经配置以将数据和/或可执行程序指令存储在存储器914中,且存储于存储器914中的所述数据可经加密和验证以确保所述数据无法被不受信任的进程利用或修改。
计算装置900可包含安全元件990(在本文中也被称作受信任组件)。计算装置900可包含除受信任执行环境980之外或替代所述受信任执行环境的安全元件990。安全元件990可包括可用于执行安全应用程序和与此类应用程序相关联的机密数据的自主且防篡改硬件。安全元件990可用于存储加密密钥、防重放计数器数据和/或其它敏感数据。安全元件990可包括近场通信(NFC)标签、订户身份模块(SIM)卡或可用于安全地存储数据的其它类型的硬件装置。安全元件990可以永久性或半永久性方式与计算装置900的硬件整合或在一些实施方案中可为计算装置900的可拆卸组件,其可用于安全地存储数据和/或为应用程序提供安全执行环境。
计算装置900可进一步包含用户接口950,其提供实现与计算装置900的用户交互的合适的接口系统,例如麦克风/扬声器952、小键盘954和显示器956。麦克风/扬声器952(其可与音频传感器相同或不同)提供语音通信服务(例如,使用广域网收发器904和/或局域网收发器906)。小键盘954可包括用于用户输入的合适的按钮。显示器956可包含例如背光式LCD显示器等合适显示器,且可以进一步包含用于额外用户输入模式的触摸屏显示器。
计算机程序(也被称作程序、软件、软件应用程序或代码)包含用于可编程处理器的机器指令,且可以高级程序和/或面向对象的编程语言和/或以汇编/机器语言实施。如本文中所使用,术语“机器可读媒体”指代用于将机器指令和/或数据提供到可编程处理器的任何非暂时性计算机程序产品、设备和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(Programmable Logic Device;PLD)),包含将机器指令接收为机器可读信号的非暂时性机器可读媒体。
存储器可实施于基于计算的装置内或装置的外部。如本文中所使用,术语“存储器”是指任何类型的长期、短期、易失性、非易失性或其它存储器,且并不限于任何特定类型的存储器或任何特定数目的存储器或存储存储器的媒体的类型。如果部分地通过硬件或固件连同软件一起实施,那么所述功能可作为一或多个指令或代码存储在计算机可读媒体上。实例包含编码有数据结构的计算机可读媒体及编码有计算机程序的计算机可读媒体。计算机可读媒体包含物理计算机存储媒体。存储媒体可为可由计算机存取的任何可用媒体。借助于实例而非限制,此计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置、半导体存储装置或其它存储装置,或可用于存储呈指令或数据结构形式的所要程序代码且可由计算机存取的任何其它媒体;如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
除非另外定义,否则本文所使用的所有技术和科学术语具有与通常或常规理解相同的含义。如本文中所使用,冠词“一(a/an)”指代所述冠词的一个或多于一个(即,至少一个)语法对象。作为实例,“一元件”意味着一个元件或多于一个元件。当参考例如量、持续时间等可测量值时,如本文中所使用的“约”和/或“近似”涵盖从指定值的±20%或±10%、±5%或+0.1%的变化,这是因为此类变化在本文中所描述的系统、装置、电路、方法和其它实施方案的上下文中是适当的。当参考例如量、持续时间、物理属性(例如频率)等可测量值时,如本文所使用的“大体上”也涵盖从指定值的±20%或±10%、±5%或+0.1%的变化,这是因为此类变化在本文所描述的系统、装置、电路、方法和其它实施方案的上下文中是适当的。
如本文所使用,包含在权利要求书中,以“...中的至少一个”或“...中的一或多个”开始的项目的列表中所使用的“或”指示分离性列表,以使得例如“A、B或C中的至少一个”的列表意味着A或B或C或AB或AC或BC或ABC(即,A及B及C),或与多于一个特征的组合(例如,AA、AAB、ABBC等)。并且,如本文中所使用,除非另有陈述,否则功能或操作是“基于”项目或条件的陈述意味着所述功能或操作是基于所陈述的项目或条件且可基于除了所陈述的项目或条件之外的一或多个项目和/或条件。
如本文中所使用,移动装置或台(MS)指代装置,例如蜂窝式或其它无线通信装置、智能电话、平板计算机、个人通信系统(PCS)装置、个人导航装置(PND)、个人信息管理器(PIM)、个人数字助理(PDA)、膝上型计算机,或能够接收无线通信和/或导航信号(例如,导航定位信号)的其它合适移动装置。术语“移动台”(或“移动装置”或“无线装置”)还希望包含例如通过短程无线、红外线、电缆连接或其它连接与个人导航装置(PND)通信的装置,而不管装置处或PND处是否发生卫星信号接收、辅助数据接收和/或位置相关处理。并且,“移动台”希望包含能够例如经由因特网、WiFi或其它网络与服务器通信且与一或多种类型的节点通信的所有装置,包含无线通信装置、计算机、膝上型计算机、平板计算机装置等,而不管装置处、服务器处或与网络相关联的另一装置或节点处是否发生卫星信号接收、辅助数据接收和/或位置相关处理。上述各项的任何可操作组合也被视为“移动台”。移动装置也可被称作移动终端、终端、用户设备(UE)、装置、启用了安全用户层面定位的终端(SET)、目标装置、目标或某个其它名称。
虽然本文呈现的技术、进程和/或实施方案中的一些可遵守一或多个标准中的全部或部分,但在一些实施例中,这些技术、进程和/或实施方案可能不遵守这一或多个标准中的部分或全部。

Claims (30)

1.一种用于保护计算装置中的软件的方法,所述方法包括:
接收来自不安全软件模块的请求以执行包括经加密程序代码的安全软件模块的指令;
确定所述指令是否包括与所述安全软件模块外部可存取的所述安全软件模块的受控制进入点相关联的指令;
响应于所述指令包括与所述安全软件模块的所述受控制进入点相关联的指令而执行所述安全软件模块的一或多个指令;以及
控制从所述安全软件模块的退出以将执行返回到所述不安全软件模块。
2.根据权利要求1所述的方法,其中所述指令包括调用指令,且其中确定所述指令是否包括与所述安全软件模块外部可存取的所述安全软件模块的所述受控制进入点相关联的所述指令进一步包括:
存取在由所述不安全软件模块执行的所述调用指令中所指定的地址处所述安全软件模块的指令;
使用特定于所述安全软件模块的解密密钥对在所述调用指令中所指定的所述地址处所发现的所述指令进行解密;以及
确定在所述调用指令中所指定的所述地址处所发现的所述指令是否为与所述安全软件模块相关联的表示所述安全软件模块的所述受控制进入点的配置指令。
3.根据权利要求2所述的方法,其进一步包括:
响应于在所述调用指令中所指定的所述地址处所发现的所述指令并非所述配置指令而禁止存取所述安全软件模块;且
响应于所述调用指令中所指定的所述地址并非所述配置指令而执行行动。
4.根据权利要求1所述的方法,其中响应于所述指令包括与所述安全软件模块的所述受控制进入点相关联的指令而执行所述安全软件模块的所述一或多个指令进一步包括:
初始化所述安全软件模块的实例。
5.根据权利要求4所述的方法,其中初始化所述安全软件模块的所述实例包括:
存取表示所述安全软件模块的所述实例的状态的经加密上下文信息。
6.根据权利要求4所述的方法,其中控制从所述安全软件模块的所述退出以将执行返回到所述不安全软件模块进一步包括:
将表示所述安全软件模块的所述实例的状态的经加密上下文信息存储在安全存储器中;且
停止所述安全软件模块的指令的解密。
7.根据权利要求4所述的方法,其中控制从所述安全软件模块的所述退出以将执行返回到所述不安全软件模块进一步包括:
当执行所述安全软件模块的指令时超控异常处理;
将表示所述安全软件模块的所述实例的状态的经加密上下文信息存储在安全存储器中;以及
响应于出现异常而停止所述安全软件模块的指令的解密。
8.根据权利要求1所述的方法,其中响应于所述指令包括与所述安全软件模块的所述受控制进入点相关联的指令而执行所述安全软件模块的所述一或多个指令进一步包括:
对与恰在执行所述一或多个指令之前正执行的所述安全软件模块的实例相关联的所述安全软件模块的所述一或多个指令中的每一个进行解密。
9.根据权利要求8所述的方法,其中对与恰在执行所述一或多个指令之前正执行的所述安全软件模块的所述实例相关联的所述安全软件模块的所述一或多个指令中的每一个进行解密进一步包括:
使用与所述安全软件模块相关联的加密密钥对所述一或多个指令中的每一个进行解密。
10.一种设备,其包括:
用于接收来自不安全软件模块的请求以执行包括经加密程序代码的安全软件模块的指令的装置;
用于确定所述指令是否包括与所述安全软件模块外部可存取的所述安全软件模块的受控制进入点相关联的指令的装置;
用于响应于所述指令包括与所述安全软件模块的所述受控制进入点相关联的指令而执行所述安全软件模块的一或多个指令的装置;以及
用于控制从所述安全软件模块的退出以将执行返回到所述不安全软件模块的装置。
11.根据权利要求10所述的设备,其中所述指令包括调用指令,且其中所述用于确定所述指令是否包括与所述安全软件模块外部可存取的所述安全软件模块的所述受控制进入点相关联的所述指令的装置进一步包括:
用于存取在由所述不安全软件模块执行的所述调用指令中所指定的地址处所述安全软件模块的指令的装置;
用于使用特定于所述安全软件模块的解密密钥对在所述调用指令中所指定的所述地址处所发现的所述指令进行解密的装置;以及
用于确定在所述调用指令中所指定的所述地址处所发现的所述指令是否为与所述安全软件模块相关联的表示所述安全软件模块的所述受控制进入点的配置指令的装置。
12.根据权利要求11所述的设备,其进一步包括:
用于响应于在所述调用指令中所指定的所述地址处所发现的所述指令并非所述配置指令而禁止存取所述安全软件模块的装置;以及
用于响应于所述调用指令中所指定的所述地址并非所述配置指令而执行行动的装置。
13.根据权利要求10所述的设备,其中所述用于响应于所述指令包括与所述安全软件模块的所述受控制进入点相关联的指令而执行所述安全软件模块的所述一或多个指令的装置进一步包括:
用于初始化所述安全软件模块的实例的装置。
14.根据权利要求13所述的设备,其中所述用于初始化所述安全软件模块的所述实例的装置包括:
用于存取表示所述安全软件模块的所述实例的状态的经加密上下文信息的装置。
15.根据权利要求13所述的设备,其中所述用于控制从所述安全软件模块的所述退出以将执行返回到所述不安全软件模块的装置进一步包括:
用于将表示所述安全软件模块的所述实例的状态的经加密上下文信息存储在安全存储器中的装置;以及
用于停止所述安全软件模块的指令的解密的装置。
16.根据权利要求13所述的设备,其中所述用于控制从所述安全软件模块的所述退出以将执行返回到所述不安全软件模块的装置进一步包括:
用于当执行所述安全软件模块的指令时超控异常处理的装置;
用于将表示所述安全软件模块的所述实例的状态的经加密上下文信息存储在安全存储器中的装置;以及
用于响应于出现异常而停止所述安全软件模块的指令的解密的装置。
17.一种设备,其包括:
存储器;以及
处理器,其耦合到所述存储器,所述处理器经配置以:
接收来自不安全软件模块的请求以执行包括经加密程序代码的安全软件模块的指令;
确定所述指令是否包括与所述安全软件模块外部可存取的所述安全软件模块的受控制进入点相关联的指令;
响应于所述指令包括与所述安全软件模块的所述受控制进入点相关联的指令而执行所述安全软件模块的一或多个指令;以及
控制从所述安全软件模块的退出以将执行返回到所述不安全软件模块。
18.根据权利要求17所述的设备,其中所述指令包括调用指令,且其中经配置以确定所述指令是否包括与所述安全软件模块外部可存取的所述安全软件模块的所述受控制进入点相关联的所述指令的所述处理器进一步经配置以:
存取在由所述不安全软件模块执行的所述调用指令中所指定的地址处所述安全软件模块的指令;
使用特定于所述安全软件模块的解密密钥对在所述调用指令中所指定的所述地址处所发现的所述指令进行解密;以及
确定在所述调用指令中所指定的所述地址处所发现的所述指令是否为与所述安全软件模块相关联的表示所述安全软件模块的所述受控制进入点的配置指令。
19.根据权利要求18所述的设备,其中所述处理器进一步经配置以:
响应于在所述调用指令中所指定的所述地址处所发现的所述指令并非所述配置指令而禁止存取所述安全软件模块;且
响应于所述调用指令中所指定的所述地址并非所述配置指令而执行行动。
20.根据权利要求17所述的设备,其中经配置以响应于所述指令包括与所述安全软件模块的所述受控制进入点相关联的指令而执行所述安全软件模块的所述一或多个指令的所述处理器进一步经配置以:
初始化所述安全软件模块的实例。
21.根据权利要求20所述的设备,其中经配置以初始化所述安全软件模块的所述实例的所述处理器进一步经配置以:
存取表示所述安全软件模块的所述实例的状态的经加密上下文信息。
22.根据权利要求20所述的设备,其中经配置以控制从所述安全软件模块的所述退出以将执行返回到所述不安全软件模块的所述处理器进一步经配置以:
将表示所述安全软件模块的所述实例的状态的经加密上下文信息存储在所述存储器的安全部分中;且
停止所述安全软件模块的指令的解密。
23.根据权利要求20所述的设备,其中经配置以控制从所述安全软件模块的所述退出以将执行返回到所述不安全软件模块的所述处理器进一步经配置以:
当执行所述安全软件模块的指令时超控异常处理;
将表示所述安全软件模块的所述实例的状态的经加密上下文信息存储在所述存储器的安全部分中;且
响应于出现异常而停止所述安全软件模块的指令的解密。
24.一种非暂时性计算机可读媒体,在其上存储有用于保护计算装置中的软件的计算机可读指令,包括经配置以致使所述计算装置进行以下操作的指令:
接收来自不安全软件模块的请求以执行包括经加密程序代码的安全软件模块的指令;
确定所述指令是否包括与所述安全软件模块外部可存取的所述安全软件模块的受控制进入点相关联的指令;
响应于所述指令包括与所述安全软件模块的所述受控制进入点相关联的指令而执行所述安全软件模块的一或多个指令;以及
控制从所述安全软件模块的退出以将执行返回到所述不安全软件模块。
25.根据权利要求24所述的非暂时性计算机可读媒体,其中所述指令包括调用指令,且其中经配置以致使所述计算装置确定所述指令是否包括与所述安全软件模块外部可存取的所述安全软件模块的所述受控制进入点相关联的所述指令的所述指令进一步包括经配置以致使所述计算装置进行以下操作的指令:
存取在由所述不安全软件模块执行的所述调用指令中所指定的地址处所述安全软件模块的指令;
使用特定于所述安全软件模块的解密密钥对在所述调用指令中所指定的所述地址处所发现的所述指令进行解密;以及
确定在所述调用指令中所指定的所述地址处所发现的所述指令是否为与所述安全软件模块相关联的表示所述安全软件模块的所述受控制进入点的配置指令。
26.根据权利要求25所述的非暂时性计算机可读媒体,其进一步包括经配置以致使所述计算装置进行以下操作的指令:
响应于在所述调用指令中所指定的所述地址处所发现的所述指令并非所述配置指令而禁止存取所述安全软件模块;且
响应于所述调用指令中所指定的所述地址并非所述配置指令而执行行动。
27.根据权利要求24所述的非暂时性计算机可读媒体,其中经配置以致使所述计算装置响应于所述指令包括与所述安全软件模块的所述受控制进入点相关联的指令而执行所述安全软件模块的所述一或多个指令的所述指令进一步包括经配置以致使所述计算装置进行以下操作的指令:
初始化所述安全软件模块的实例。
28.根据权利要求27所述的非暂时性计算机可读媒体,其中经配置以致使所述计算装置初始化所述安全软件模块的所述实例的所述指令进一步包括经配置以致使所述计算装置进行以下操作的指令:
存取表示所述安全软件模块的所述实例的状态的经加密上下文信息。
29.根据权利要求27所述的非暂时性计算机可读媒体,其中经配置以致使所述计算装置控制从所述安全软件模块的所述退出以将执行返回到所述不安全软件模块的所述指令进一步包括经配置以致使所述计算装置进行以下操作的指令:
将表示所述安全软件模块的所述实例的状态的经加密上下文信息存储在安全存储器中;且
停止所述安全软件模块的指令的解密。
30.根据权利要求27所述的非暂时性计算机可读媒体,其中经配置以致使所述计算装置控制从所述安全软件模块的所述退出以将执行返回到所述不安全软件模块的所述指令进一步包括经配置以致使所述计算装置进行以下操作的指令:
当执行所述安全软件模块的指令时超控异常处理;
将表示所述安全软件模块的所述实例的状态的经加密上下文信息存储在安全存储器中;且
响应于出现异常而停止所述安全软件模块的指令的解密。
CN201680047562.9A 2015-09-10 2016-08-30 由受控制的加密密钥管理保护的软件模块的安全进入和退出 Active CN107924433B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562216986P 2015-09-10 2015-09-10
US62/216,986 2015-09-10
US15/232,723 2016-08-09
US15/232,723 US10235303B2 (en) 2015-09-10 2016-08-09 Secure entry and exit for software modules protected by controlled encryption key management
PCT/US2016/049383 WO2017044345A1 (en) 2015-09-10 2016-08-30 Secure entry and exit for software modules protected by controlled encryption key management

Publications (2)

Publication Number Publication Date
CN107924433A true CN107924433A (zh) 2018-04-17
CN107924433B CN107924433B (zh) 2021-09-07

Family

ID=58238110

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680047562.9A Active CN107924433B (zh) 2015-09-10 2016-08-30 由受控制的加密密钥管理保护的软件模块的安全进入和退出

Country Status (7)

Country Link
US (1) US10235303B2 (zh)
EP (1) EP3347847B1 (zh)
JP (1) JP2018532183A (zh)
KR (1) KR20180052695A (zh)
CN (1) CN107924433B (zh)
BR (1) BR112018004653A2 (zh)
WO (1) WO2017044345A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11132233B2 (en) * 2018-05-07 2021-09-28 Micron Technology, Inc. Thread priority management in a multi-threaded, self-scheduling processor
US11397834B2 (en) * 2020-07-31 2022-07-26 EMC IP Holding Company LLC Methods and systems for data backup and recovery on power failure
US20220206951A1 (en) * 2020-12-24 2022-06-30 Intel Corporation Method and apparatus for run-time memory isolation across different execution realms

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1451117A (zh) * 2000-06-30 2003-10-22 英特尔公司 采用安全存储器分区来实现安全执行的方法和装置
CN1685297A (zh) * 2001-11-01 2005-10-19 英特尔公司 在多处理器环境中单方地加载安全操作系统的装置和方法
US20060036851A1 (en) * 1998-10-26 2006-02-16 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US20060259764A1 (en) * 2005-05-16 2006-11-16 Texas Instruments Incorporated Transferring control between programs of different security levels
CN101238473A (zh) * 2005-08-03 2008-08-06 Nxp股份有限公司 保护密钥的安全终端、例程和方法
CN103282913A (zh) * 2010-12-29 2013-09-04 维亚塞斯公司 用于加载至少一个软件模块的代码的方法
CN104471587A (zh) * 2012-05-16 2015-03-25 诺基亚公司 处理器中的方法,装置和计算机程序产品

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002095554A2 (en) 2001-05-18 2002-11-28 Imprivata Inc. System and method for authentication using biometrics
US8533859B2 (en) 2009-04-13 2013-09-10 Aventyn, Inc. System and method for software protection and secure software distribution
WO2012000091A1 (en) 2010-06-28 2012-01-05 Lionstone Capital Corporation Systems and methods for diversification of encryption algorithms and obfuscation symbols, symbol spaces and/or schemas
EP2963576B1 (en) 2014-07-04 2022-03-23 Vodafone GmbH Secure installation of software in a device for accessing protected content

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060036851A1 (en) * 1998-10-26 2006-02-16 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
CN1451117A (zh) * 2000-06-30 2003-10-22 英特尔公司 采用安全存储器分区来实现安全执行的方法和装置
CN100350394C (zh) * 2000-06-30 2007-11-21 英特尔公司 用于安全执行指令的方法、处理器和计算机系统
CN1685297A (zh) * 2001-11-01 2005-10-19 英特尔公司 在多处理器环境中单方地加载安全操作系统的装置和方法
US20060259764A1 (en) * 2005-05-16 2006-11-16 Texas Instruments Incorporated Transferring control between programs of different security levels
CN101238473A (zh) * 2005-08-03 2008-08-06 Nxp股份有限公司 保护密钥的安全终端、例程和方法
CN103282913A (zh) * 2010-12-29 2013-09-04 维亚塞斯公司 用于加载至少一个软件模块的代码的方法
CN104471587A (zh) * 2012-05-16 2015-03-25 诺基亚公司 处理器中的方法,装置和计算机程序产品

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DAN SHOEMAKER ET AL: "Defining the Discipline of Secure Software Assurance: Initial Findings from the National Software Assurance Repository", 《IEEE》 *
肖强: "混合加密算法在软件安全中的应用", 《中国优秀硕士学位论文全文数据库(电子期刊) 信息科技辑》 *

Also Published As

Publication number Publication date
JP2018532183A (ja) 2018-11-01
KR20180052695A (ko) 2018-05-18
EP3347847A1 (en) 2018-07-18
BR112018004653A2 (pt) 2018-09-25
WO2017044345A1 (en) 2017-03-16
US10235303B2 (en) 2019-03-19
EP3347847B1 (en) 2019-11-06
US20170075820A1 (en) 2017-03-16
CN107924433B (zh) 2021-09-07

Similar Documents

Publication Publication Date Title
EP3387813B1 (en) Mobile device having trusted execution environment
CN112596802B (zh) 一种信息处理方法及装置
CN105447406B (zh) 一种用于访问存储空间的方法与装置
CN104331644B (zh) 一种智能终端文件的透明加解密方法
CN103403669A (zh) 使设备上的app变得安全和管理设备上的app
CN104205114A (zh) 用于提供安全的进程间通信的系统和方法
CN106921799A (zh) 一种移动终端安全防护方法以及移动终端
US10126960B2 (en) Fuse-based anti-replay mechanism
EP3447666B1 (en) Processing fingerprint information
CN107924433A (zh) 由受控制的加密密钥管理保护的软件模块的安全进入和退出
US11995220B2 (en) Secure CPU architecture using encryption of return addresses
TW201349002A (zh) 電子裝置的解鎖密碼鑒權系統及方法
EP3455779A1 (en) Techniques for determining an anti-replay counter for preventing replay attacks
CN109753793A (zh) 一种热补丁方法及热补丁装置
CN105592039A (zh) 可设置权限的安全设备实现系统及其实现方法
CN106549934B (zh) 网络设备安全系统
US20180107826A1 (en) Techniques for trusted application fuzzing mitigation
US10402562B2 (en) Method and device for encrypting application
CN116635851A (zh) 用于应用安全性的方法和系统
CN106529228A (zh) 个人信息安全操作方法及装置
KR20170073843A (ko) 보안실행환경 온라인본인확인 시스템 및 방법
KR101532873B1 (ko) 스마트 폰의 듀얼 운영체제를 실행하는 방법
JP5502049B2 (ja) 通信端末及び端末制御方法
Zhao et al. Privacy protection for perceptual applications on smartphones
KR101655439B1 (ko) 컴퓨팅 장치의 인증 방법 및 이를 수행하기 위한 장치

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
GR01 Patent grant
GR01 Patent grant