CN108781210B - 具有可信执行环境的移动设备 - Google Patents

具有可信执行环境的移动设备 Download PDF

Info

Publication number
CN108781210B
CN108781210B CN201680081545.7A CN201680081545A CN108781210B CN 108781210 B CN108781210 B CN 108781210B CN 201680081545 A CN201680081545 A CN 201680081545A CN 108781210 B CN108781210 B CN 108781210B
Authority
CN
China
Prior art keywords
application
trusted
execution
mobile
mobile device
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
CN201680081545.7A
Other languages
English (en)
Other versions
CN108781210A (zh
Inventor
M.兰
S.S.斯克阿布杜尔阿齐兹
S.拉马钱德兰
V.沙尔佩尼内
P.安格利尼
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.)
Thales Digital Security France Easy Stock Co
Thales DIS Design Services SAS
Original Assignee
Gemalto SA
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 Gemalto SA filed Critical Gemalto SA
Publication of CN108781210A publication Critical patent/CN108781210A/zh
Application granted granted Critical
Publication of CN108781210B publication Critical patent/CN108781210B/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/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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/72Protecting 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 in cryptographic circuits
    • G06F21/725Protecting 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 in cryptographic circuits operating on a secure reference time value
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/041Key generation or derivation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/069Authentication using certificates or pre-shared keys
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Power Engineering (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Telephone Function (AREA)
  • Debugging And Monitoring (AREA)
  • Automatic Cycles, And Cycles In General (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

一种用于保护用于在移动设备上执行的移动应用程序的机制。机制包括将来自不可信应用提供者的移动应用程序的不可信部分加载到移动设备上,操作密钥供应服务器以生成与可信执行环境相关联的密钥,将与可信执行环境相关联的密钥传输到移动设备并且传输到密钥目录服务器,对移动设备认证,并且在对移动设备认证后,将包括可信应用的移动应用程序的可信部分传输到移动设备,以及将移动应用程序的可信部分安装在移动设备上,由此提供可信执行环境。公开了其他系统和方法。

Description

具有可信执行环境的移动设备
技术领域
本发明一般地涉及移动设备,并且更特别地涉及向移动设备供应可信执行环境和贯穿这样的可信应用的生命周期在移动设备上加载和执行的可信应用的安全的管理。
背景技术
在移动通信设备的简短历史中,设备已经从被主要或甚至排他性地专用于移动电话通信迅速地演进成是非常强大的多用途设备。随着最近的技术发展,使用移动设备(例如,移动电话)用于不同的应用,诸如支付、交通购票、忠诚计划、银行账户访问、对建筑物或办公室的物理访问控制等,现在是可能的。近场通信是一种使这些新功能在移动设备上可能的使能技术。
安全是针对这些功能中的许多功能的导入标准;例如,对于成功商业程序而言,能够具有移动交易是安全的并且不容易被想要窃取信息(诸如在使交易安全中使用的账号、交易模式、个人数据或密码密钥)的攻击者拦截的置信度,这通常是必要因素。
可信执行环境(TEE)提供一种用于在某些移动设备上执行的应用的增强安全的机制,所述可信执行环境(TEE)是移动设备的主处理器的安全区域。可信执行环境以硬件实现。TEE为可信应用提供隔离的执行环境,由此提供更高级别的安全。
GlobalPlatform™发布了用于在安全芯片技术上安全计算的规范,包括提供标准化的可信执行环境(TEE),所述标准化的可信执行环境(TEE)包括确保敏感数据在可信环境中被存储、处理和保护的主处理器中的安全区域。GlobalPlatform提供标准应用程序接口(API),通过所述标准应用程序接口(API),应用程序(也称为应用程序(app))可以访问由GlobalPlatform可信执行环境的安全处理器区域提供的安全功能。
商业TEE技术方案的一个示例是来自英国Cambridge的ARM公司的ARM TrustZone技术,ARM TrustZone,http://www.arm.com/products/processors/technologies/ trustzone/。TrustZone技术被紧密集成到处理器中同时将处理器的外部的安全环境扩展到例如外设(诸如存储器和加密块),以允许安全意识应用(例如,可信应用)的系统范围安全。
不幸的是,许多移动设备没有配备以硬件实现可信执行环境的技术。然而,那没有减少对在这样的更多限制的设备上以可信执行环境的方式提供安全计算功能的需要。否则,在设备上执行的应用易受恶意软件和可能揭露设备的用户的秘密信息或对用户或对服务提供者造成经济损失的广泛的可能攻击的攻击。
根据前述内容将显而易见的是,仍然存在对用于提供灵活的、方便的并且又强大的机制以向没有配备在它们的处理器的硬件中实现的安全区域的设备提供安全的可信执行环境的改进的方法的需要。理想地,这样的解决方案与例如由GlobalPlatform提供的可信执行环境解决方案的硬件实现兼容,使得可以开发在基于处理器的可信执行环境上以及在不要求这样的硬件的替代机制上执行的应用程序。
根据前述内容将显而易见的是,仍然存在对用于在缺乏硬件TEE的具体硬件特征的移动设备上提供与硬件实现的TEE相当的安全增强的改进的方法的需要。
发明内容
本发明的实施例的各方面一般地涉及一种用于保护用于在移动设备上执行的移动应用的方法,包括:
移动设备被配置成:
将来自不可信应用提供者的移动应用的不可信部分加载到移动设备上;
将来自可信应用提供者的移动应用的可信部分加载到移动设备中;
将移动应用的可信部分安装在移动设备上,由此提供可信执行环境。
根据本发明的实施例,将移动应用的可信部分加载到移动设备中包括以下步骤:
移动应用根据移动应用的标识符和移动设备的设备指纹来生成可信执行环境idTEE ID;所述生成的可信执行环境id TEE ID由移动应用传输到密钥供应服务器;
操作密钥供应服务器以生成要与可信执行环境id TEE ID相关联的密钥并将可信执行环境id TEE ID和生成的密钥传输到密钥导向器并将生成的密钥传输到移动设备;
可信应用提供者被配置成接收TEE ID并且根据由移动设备发送的生成的密钥来计算的TEE ID的散列,并且被配置成通过密钥导向器服务器来认证移动设备;
在成功认证移动设备时,操作可信应用提供者以将包括可信应用的移动应用的可信部分传输到移动设备;以及
移动设备被配置成将移动应用的可信部分安装在移动设备上,由此提供可信执行环境。
根据本发明的实施例,移动应用的不可信部分包括:
客户端应用,其在移动设备的丰富执行环境中可执行;以及
可信应用解释器,其用于可以在其中实现可信应用的指令集。
根据本发明的实施例,可信应用在由可信应用解释器可解释的指令集中实现。
根据本发明的实施例,与移动应用相关联的密钥包括白盒密钥“WBC密钥”和初始pin加密密钥“IPEK”,并且其中,方法进一步包括在将与移动应用相关联的密钥传输到移动设备之前使用WBC密钥对IPEK加密,并且其中,IPEK的加密的版本被传输到移动设备。
根据本发明的实施例,在由可信服务器提供者传输到移动设备之前,用根据初始pin加密密钥“IPEC”生成的会话密钥来加密移动应用的可信部分。
根据本发明的实施例,移动应用的不可信部分包括实现与可信执行环境的硬件实现类似的功能的应用程序接口。
根据本发明的实施例,用于保护用于在移动设备上执行的移动应用的方法包括以下步骤:
将可信应用与可信安全存储设备相关联;以及
将初始随机秘密存储在移动设备的安全存储设备中;以及
在对可信应用的安全存储设备中的数据的每次访问时,使用初始随机秘密“IRS”、设备指纹和用于可信应用的唯一id“UUID”来生成用于对存储在与可信应用相关联的可信存储设备中的数据加密的安全存储数据密钥“TA_SK”。
根据本发明的实施例,用于保护用于在移动设备上执行的移动应用的方法包括以下步骤:
在可信应用的执行期间:
确定与可信应用的该特定执行相关联的一次性运行时密钥;
当在可信应用的该特定执行期间将量存储到由可信应用使用的运行时存储器中时,使用一次性运行时密钥来对量掩蔽;以及
当在可信应用的该特定执行期间从由可信应用使用的运行时存储器取回量时,使用一次性运行时密钥来对量取消掩蔽。
根据本发明的实施例,用于保护用于在移动设备上执行的移动应用的方法包括以下步骤:
在对具有用于执行或解释的编译形式的可信应用的第一次运行时,基于可信应用的编译形式来计算第一值并且基于可信应用的编译形式来存储该值;
在可信应用的随后执行时,基于可信应用的编译形式来执行相同的计算以基于可信应用的编译形式来产生第二值,比较第一值与第二值,并且如果第一值与第二值不是相同的则采取校正动作。
根据本发明的实施例,用于保护用于在移动设备上执行的移动应用的方法进一步包括通过以下操作来针对潜在时移攻击保护:
在软件可信执行环境的第一执行时确定用于移动应用的特定指令的预期执行时间;
存储针对所述某些指令的预期执行时间;
在软件可信执行环境的随后执行期间:
跟踪指令计数;
周期性地取出系统时钟;
根据当前指令计数来计算预期执行时间;
比较当前系统时钟与预期执行时间;以及
如果比较指示不可接受的偏差,则采取校正动作。
根据本发明的实施例,特定指令是对应用程序接口的函数的调用。
根据本发明的实施例,用于保护用于在移动设备上执行的移动应用的方法包括以下步骤:
用具有多个循环的虚设代码段来修改可信应用的关键部分,所述多个循环中的每个可以作为短循环或作为长循环来执行;
将多个检查点分配在虚设代码段中并且与可信应用的所述关键部分相邻;
在对可信应用的执行时,确定通过虚设代码的执行路径,其中,执行路径执行定义数量的短循环和长循环;
确定针对每个检查点的预期到达时间;以及
在到达检查点时,比较实际到达时间与预期到达时间,并且如果实际到达时间与预期到达时间之间的偏差超出预定阈值则采取校正动作。
附图说明
图1是图示其中移动应用可以从应用程序商店被加载到移动计算设备上并且用于访问来自服务提供者(SP)的服务的环境的框图。
图2是图示图1的网络的更多细节的高级示意图。
图3是图示图1和2的移动设备的硬件部件的框图。
图4是图示可以被存储在图1、2和3的移动设备的存储器中的包括应当被保护免受攻击的数据的示例性软件模块和数据的框图。
图5是图示根据一个实施例将移动应用程序加载到图1、2、3和4的移动设备上并且将这样的移动应用程序的安全方面初始化的步骤的流程图。
图6是图示根据实施例的具有用于移动应用的可信执行环境的移动设备的实施例的框图。
图7是图示可信应用与可信存储区域之间的关系的框图。
图8是图示在移动应用被加载在其上的移动设备与用于执行在图6的可信应用的供应中使用的密钥多样化的可信服务管理器集线器之间的连接的连接图。
图9是图示允许安全供应可信应用的密钥多样化的时序图。
图10是图示将来自在图9中图示的过程的白盒密码密钥用作用于保护用于图6的可信应用的存储的信任根(root-of-trust)的数据流图。
图11是图示对运行时存储器的部分加密以防止从运行时存储器转储(dump)恶意提取数据的时序图。
图12是图示用于检测可信应用的操纵的一个实施例的机制的流程图。
图13是图示其中时钟完整性检查被用于防止时钟变更攻击的实施例的机制的流程图。
图14是图示移动应用程序的示例执行的执行路径图,其中已知持续时间的选择的循环的执行时间例如通过调试器的使用来检查以确定可能的操纵。
图15是图示在运行时期间的执行路径的随机化的流程图,其中随机化的执行持续时间被检查以确定可能的操纵。
具体实施方式
在以下详细描述中,对附图做出了参考,所述附图通过图示的方式示出了其中可以实施本发明的具体实施例。足够详细地描述这些实施例以使本领域技术人员能够实施本发明。要理解,本发明的各种实施例(尽管不同)不必是相互排斥的。例如,在本文中结合一个实施例描述的特定特征、结构或特性可以在其他实施例内实现。此外,要理解,在不脱离本发明的精神和范围的情况下,可以修改每个公开的实施例内的各个元素的位置或布置。因此,不将以下详细描述看作是限制的意义,并且本发明的范围由适当地解释的所附权利要求限定。在附图中,相同的标号贯穿若干视图指代相同或相似的功能。
在本发明的实施例中,呈现了提供一种机制的技术,通过所述机制使可信执行环境(TEE)在没有配备用于支持可信执行环境的硬件机制的移动设备上可用。呈现的机制允许可信应用被开发,在针对标准硬件支持的可信执行环境的应用程序员接口被开发时,所述可信应用可以被最终用户和服务提供者同样信任,由此允许针对在本文中描述的机制开发的应用容易移植到这样的基于硬件的可信执行环境。
图1是网络111的示意性图示,所述网络111将移动设备103连接到一个或多个远程服务提供者(SP)服务器113。SP可以提供大量的可能的服务中的任何服务。典型的示例包括在线银行业务、在线商务、在线教育(instruction)、在线投票等。如本文的读者理解的那样,在这些示例中,交易的安全是极其重要的。
用户101操作移动设备103以通过网络与SP服务器113中的一个交互。使用被下载到移动设备103的专用应用程序来有利地执行这样的交互。这样的专用应用程序(也被称为应用程序)向用户提供特征丰富环境,用户101通过所述特征丰富环境与服务器应用交互。用户可以从应用程序商店115获得应用程序。应用程序商店115的示例包括由美国California的Cupertino的苹果公司针对用于诸如iPhone和iPad的IOS设备的应用程序提供的应用程序商店、由美国California的Mountain View的谷歌公司提供的Google Play应用程序商店以及由美国Washington的Redmond的微软公司提供的Windows商店。
如本文的读者理解的那样,对于许多在线交易,安全是至关重要的。因此,应用程序本身必须是可信的并且由应用程序管理的数据必须被保护。
图2是图示网络111的更多细节的高级示意图。每个订户移动设备103通过移动网络运营商(MNO)117与其他网络设备通信,设备103的用户101是对移动网络运营商(MNO)117的订户,例如,MNO 117可以是移动电话服务的提供者。
如果个体服务提供者(SP)必须与每个个体移动网络运营商交互以传送消息、管理应用、供应服务以及供应安全机制,则不管作为交易的部分还是作为部署的部分,混乱将接着发生。因此,被称为可信服务管理器(TSM)的中心参与者被引入GlobalPlatform中以管理SP与MNO之间的通信。
图2提供了可信服务管理器(TSM)可以如何结合服务提供者(SP)和移动网络运营商(MNO)起作用的示例。每个TSM 1191建立服务提供者(SP)115与移动网络运营商(MNO)117之间的链接,所述每个TSM 119是计算机硬件119-C和软件(未图示)的组合。每个TSM可以将多个MNO连接到多个SP。反之,给定SP 115或MNO 117可以被连接到TSM 119或多个TSM 119。
图3是移动设备103的示意性图示。移动设备103可以包括经由总线202连接到随机访问存储器(RAM)203、只读存储器(ROM)204以及非易失性存储器(NVM)205的处理器201。移动设备103进一步包括用于再次通常经由总线202将处理器201连接到天线211的输入/输出接口207,移动设备103可以通过所述天线211被连接到主机计算机或其他外围设备。
NVM 205可以包括如在图4中被图示的计算机程序301。尽管此处描绘了计算机程序301全部都共同位于NVM 205中,但是在实际实施中,不存在这样的限制,因为程序可以被分布在多个存储器上并且甚至被临时安装在RAM 203中。此外,移动设备103可以包括多个ROM或NVM。程序301包括操作系统程序以及加载到移动设备103上的应用程序。移动应用程序215的NVM 205还可以包含私有数据,诸如以其基本形式或以导出量存储的私有密钥212或共享秘密密钥209,以及诸如账号的其他用户私有信息214。以下在本文中描述了用于保护这样的数据的机制。
移动设备103程序301可以包括密码模块213、通信模块217以及操作系统OS 219。
如以上在本文中讨论的那样,移动应用程序215可以被用于对非常敏感的数据操作,例如访问在线银行账户,以及提供对秘密数据的访问。为了保护这样的移动应用程序215,提供了将移动应用程序215划分成两个部分的技术,所述两个部分在本文中被称为不可信部分和被称为可信部分。不可信部分是在由移动平台(例如,IOS或Android)提供的丰富执行环境(REE)501中执行的该部分。不可信部分因此可以提供由移动平台提供的丰富用户体验,而开发者和服务提供者不需要关心该部分的安全漏洞。换言之,将不可信部分的分发转存(unload)到不可信的分发器(例如,应用程序商店)上被认为是安全的。
另一方面,可信部分是对其而言需要安全措施的移动应用程序215的部分。那些部分通过安全通道从可信站点被下载并且通过密码被进一步保护。
图5是图示根据一个实施例的加载和初始化安全移动应用程序215的步骤的流程图。用户101(或诸如移动网络运营商117的另一个参与者)将不可信部分安装到移动设备103的NVM 205中,步骤551。如在图5中图示的那样,初始步骤551可以包括从应用程序商店下载不可信部分,所述应用程序商店例如针对IOS设备的苹果公司应用程序商店或针对Android设备的Google Play。结合下面的图6讨论不可信部分的细节。
加载和保护移动应用程序215的可信部分可以在对移动应用程序215的第一次使用时发生,步骤553,通常在引导模块509的支持下。在子步骤555中,从被称为供应服务器的可信服务器(例如,可信服务管理器119、服务提供者或可以被认证的服务提供者的代表)下载可信部分。结合图6讨论了移动应用程序215的可信部分的部件的细节,然而,注意,每个移动应用程序215由一个或多个可信应用519组成。
移动应用程序215的可信部分和不可信部分的加载可以后面跟着步骤557,所述步骤557以某方式将这些部分相关联,使得来自不可信部分的方法调用到达预期的可信应用219处,并且相关联步骤可以包括链接步骤。
用于保护可信部分和存储在与可信应用219相关联的可信存储设备中的数据的机制依赖于密码密钥。在移动应用的初始运行期间,密钥供应步骤559被执行以获得必要的密钥。以下例如结合图8和9更详细地描述密钥供应步骤559。
然后,一旦可信部分已经被加载并与不可信部分链接,移动应用程序215就被执行,步骤561。
图6图示了用于为移动应用215提供可信执行环境的一个实施例。在高级别处,移动应用程序215包括两个部分,不可信部分和可信部分。前者可能从不可信源被下载并且不需要被保护。不可信部分包括在由移动平台OS提供的丰富执行环境(REE)501中执行的移动应用程序215的元素以及不需要被保护的可信执行环境的基础设施部分。可信部分从可信源被加载,被密码地保护,并且然后通过被并入到移动应用程序215中的软件可信执行环境(软TEE)503执行。
移动平台OS的虚拟机解释器515解释移动应用程序215的不可信部分的指令。
诸如智能电话的移动平台提供丰富执行环境(REE)501。REE 501提供广泛和灵活的功能的指令表(repertoire),可以从所述功能的指令表构建强大的、有吸引力的和有用的移动应用程序215。智能电话的任何用户在电话可以被用于的许多事物和由用户可以在每天的基础上使用的各种应用程序提供的聪明用户界面处。尽管REE提供了丰富和强大的执行环境,但是REE使设备易受可能损害设备的用户的敏感的或有价值的信息的攻击的攻击。在本文中描述的技术提供一种机制,通过所述机制,这些安全风险通过将软TEE 503引入到移动应用程序215中来减轻。
在步骤551中加载的不可信部分包括在REE 501中执行的移动应用程序215的部分。这些REE部件507包括客户端应用505、引导模块509、REE代理511以及安全应用API 513。引导模块509包含用于将从供应服务器供应的密钥编组(marshal)、可信部件的初始加载以及链接部件的指令。REE代理511提供一种机制,通过所述机制,移动应用程序215可以与外部服务器(特别地,可信服务管理器119)交互。REE代理511进一步与发行者安全域(ISD)529对接。为具体GlobalPlatform应用分配的存储器区域可以在被称为安全域(SD)的安全区域中被管理。安全域是设备外授权的设备上代表。安全域(SD)支持安全服务,诸如密钥处理、加密、解密、数字签名生成和针对与每个SD相关联的实体(例如,发行者或可信服务管理器)的应用的验证。每个SD代表特定参与者被建立,所述特定参与者例如卡发行者(发行者安全域)、应用提供者(应用安全域)或TSM(TSM SD)。SD被建立以将来自一个参与者的密钥和其他安全信息与其他参与者隔离,并且反之亦然。
因此,ISD发行者安全域是与设备的发行者相关联的移动设备上的安全域并且用于管理与发行者相关联的密钥。在步骤551中的移动应用程序的初始加载期间,ISD 529可以被下载到移动设备103。
安全应用API 513可以例如是如在TEE Client API Specification v1.0 | GPD_SPE_007,GlobalPlatform,2011年12月(http://www.globalplatform.org/ specificationsdevice.asp)中定义的GlobalPlatform客户端API的实现。移动应用程序215的非安全部分使用安全应用API 513访问移动应用程序215的安全部分。在GlobalPlatform中,可信执行环境(TEE)以硬件实现并且由应用使用GlobalPlatform客户端API来访问。在一个实施例中,安全应用API 513被实现为仿真GlobalPlatform客户端API,使得移动应用程序215可以被写入一次并且在具有TEE的硬件实现的设备上执行或者使用如在本文中描述的软TEE 503。因此,通过将安全应用API 513实现为GlobalPlatform客户端API仿真,移动应用程序215容易被移植到实现GlobalPlatform TEE的设备。
在步骤551中,安全应用API 513可以在移动应用程序的初始加载期间被下载到移动设备103。
因此,为了克服REE 501的安全风险,在移动应用215中提供软件可信执行环境(软TEE)503。在初始下载步骤551中,软TEE 503基础设施与REE部件507一起下载。
软TEE虚拟机(软TEE VM)517是软TEE 503的中心部件。在初始下载步骤551中,可以下载软TEE VM 517。软TEE VM 517在移动应用程序215内提供仿真层。软TEE VM 517执行与主机环境的指令集不同的指令集并且因此不应当与机器的本地虚拟机解释器515混淆。在软TEE 503中执行的程序,例如可信应用,针对该特殊指令集被编译并且得到的可信应用二进制文件(binary)519由软TEE VM 517解释。
整个软TEE 503系统在软TEE VM 517内执行以确保与客户端应用505执行隔离。当客户端应用505请求对由软TEE 503保护的资源的访问时,所述客户端应用505对安全应用API 513进行调用。软TEE VM 517取回这些请求并将这些请求分派到对应的可信应用519。
如以上讨论的那样,针对由软TEE VM 517可解释的指令集编译可信应用519。为了访问TEE的功能,可信应用经由内部安全应用API 525使用对TEE内核527的调用。
可信执行环境的重要功能是用于将需要被保护的数据条目与不可信部件(诸如客户端应用程序505)隔离。因此,软TEE 503包括可信存储设备523。可信存储设备523的部分与每个可信应用519相关联。图7是图示在可信应用519与可信存储区域523之间的关系的框图。存储在可信存储区域523中的数据分别用数据加密密钥(例如,可信应用存储密钥)来加密。作为密钥供应步骤559的结果,可信应用存储密钥被提供给可信应用519,这在下面被更详细地描述。
此外,在密钥供应步骤559期间移动应用程序215的个性化包括向软TEE 503供应个性化的密码密钥材料521,所述个性化的密码密钥材料521被用于安全地接收可信应用519以及用于针对每个可信应用519导出可信应用存储密钥。
图8是图示在移动应用被加载在其上的移动设备103与用于执行在图6的可信应用的供应中使用的密钥多样化的可信服务管理器集线器605之间的连接的连接图。
移动设备103被连接到可信服务管理器119,并且如在图2中描绘的那样,连接可以是经由移动网络运营商117的。
可信服务管理器119可以与若干相关服务器(例如,密钥供应服务器601和密钥目录服务器603)一起被共同定位在本文中我们可以将其称为可信服务管理器集线器605中。可信服务管理器集线器605的这些部件与移动设备103合作以提供软件TEE 503来增强移动应用215的安全。
密钥供应服务器601的主要作用是用于生成白盒密码密钥和初始Pin加密密钥(IPEK),其被用于对应于移动应用215的REE部件507的可信应用519的供应中。在S. Chow、P. Eisen、H. Johnson、P.C. van Oorschot于2002年8月15-16日的第9届Annual Workshopon Selected Areas in Cryptography(关于密码学中的选择领域的年度研讨会)(SAC2002)的White-Box Cryptography and an AES Implementation中以及在JulienBringer、Herve Chabanne和Emmanuelle Dottax的White Box Cryptography: A NewAttempt,Cryptology ePrint Archive,报告2006/468,2006年中描述了白盒密码,两者都通过引用并入到本文中。
私有密钥Pr.K.Kps与密钥供应服务器相关联以允许其对其产生的密钥签名。
密钥目录服务器603的主要作用是用于维持与用于软件TEE 503的唯一标识符相关联的IPEK密钥的数据库,所述软件TEE 503用于在特定设备103上执行的移动应用程序215的特定实例化。该目录在本文中被称为密钥目录607,该目录可以是数据库表。用于软件TEE的唯一标识符在本文中被称为TEE ID并且在下面被更详细地描述。给定特定TEE ID,密钥目录服务器可以向询问客户端(例如,可信服务管理器119)提供对应的IPEK。
在将可信应用519提供给移动设备103的上下文中的可信服务管理器119的主要作用是用于从移动设备103接收针对可信应用519的请求。请求包括一种机制,通过所述机制,移动设备103(具体地,移动应用215)可以识别其本身并且证明其真实性(即,通过提供TEEID和IPEK)。在一个实施例中,如以下在本文中描述的那样,IPEK由移动设备103以散列的形式来提供。
图9是图示允许安全供应可信应用的密钥多样化的时序图。作为初步步骤(未示出),移动应用程序215的REE部件例如从应用程序商店被下载到移动设备103。
步骤701。移动应用215(具体地,移动应用215的REE部件)在其在移动设备103上执行时确定用于移动应用215的唯一标识符(TEE ID)。换言之,TEE ID依赖于应用和设备两者。在一个实施例中,TEE ID被计算为依赖于被分配给应用的通用唯一标识符(UUID)和移动设备103的设备指纹。这些可以例如被用于产生散列或者可以被并置(concatenate)以创建TEE ID。
设备指纹可以被计算为应用标识符、唯一OS标识符、移动设备103的无线电系列以及移动设备103的IMEI的并置的散列,例如SHA1。应用标识符是应用的封装名称(作为示例,com.companyname.appname)。唯一OS标识符是由底层OS提供的参数,诸如用于Android OS中的AndroidID和iOS中的卷UUID。无线电系列是移动设备上的无线电单元的系列号。IMEI(国际移动台设备标识)是被分配给移动设备的唯一号码并且在第3代合作伙伴计划的3GPPTS 23.003规范中被指定。
步骤703。将TEE ID从移动应用程序215传输到密钥供应服务器601。
步骤705。密钥供应服务器601从移动应用程序215接收TEE ID并且生成要与TEEID相关联的初始PIN加密密钥(IPEK)和动态白盒密码密钥(WBC密钥K m )。
在优选实施例中,IPEK是由密钥供应服务器601生成的唯一随机AES-256密钥。AES-256是使用256位密钥的高级加密标准的版本。
白盒密码在本文档的范围之外。然而,以下要点对理解在本文中呈现的技术是有用的。白盒密码被用于保护超出分发器的访问控制执行分发的分发的材料。例如,在当前上下文中,移动设备超出设备的发行者的控制以及超出服务提供者的控制,所述服务提供者可以分发应用程序用于在移动设备上使用。白盒密码使用模糊技术来保护分发的材料。在步骤3(705)中,白盒密码库(WBC)二进制文件被创建以包含包括TEE ID的散列的唯一随机AES-128密钥、使用白盒密码技术被隐藏在AES加密的消息中的WBC密钥。
步骤707。由密钥供应服务器601使用WBC密钥对IPEK密钥加密。
步骤709。TEE ID和IPEK密钥被传输到密钥目录服务器603。
步骤711。密钥目录服务器603将TEE ID和IPEK密钥相关联并且将它们存储在密钥目录607中。
步骤713。与将TEE ID和IPEK密钥发送到密钥目录服务器603同时,密钥供应服务器601将WBC密钥库和加密的IPEK密钥传输到移动应用215。
步骤715。移动应用215安装WBC库。通过安装WBC库,移动应用215可以使用所述库来解密使用库加密的信息,在该情况中,IPEK密钥。
步骤717。移动应用215使用WBC库来解密IPEK密钥。
步骤719。IPEK密钥被存储到发行者安全域(ISD)529中,其与移动应用程序215的不可信部件一起在图5的步骤551中被下载。
步骤723。移动应用215将TEE ID和使用IPEK的TEEID的散列(HMAC(TEEID,IPEK))传输到可信服务管理器119。
步骤725。可信服务管理器119将TEE ID和散列(HMAC(TEEID,IPEK))转发到密钥目录服务器603以验证存在匹配。当密钥目录服务器603维护TEE ID和对应的IPEK的表(以上的步骤711)时,密钥目录服务器603可以验证在步骤723中从移动应用程序215传输到可信服务管理器119的散列与人们根据正确IPEK将预期的散列匹配。
步骤727。如果密钥目录服务器603已经确认IPEK和TEE ID对应关系,则密钥目录服务器603将IPEK传输回到可信服务管理器。
步骤729。可信服务管理器119存储IPEK。可信服务管理器119还用利用IPEK生成的会话密钥对TA 519加密。
步骤731。可信服务管理器119将加密的TA 519传输到移动应用程序215。
步骤733。移动应用程序215使用根据IPEK生成的会话密钥对TA 519解密并将TA519安装到软TEE 503中。
由此,移动应用程序215已经被完成以包括可信部件、密钥材料521和TA 519以及最初下载的不可信部件。
如以上指出的那样,对应于每个可信应用519的可信存储设备523由可信应用存储密钥(TA_SK)保护。图10是图示这些存储密钥的生成的流程图。
步骤1001。由移动应用程序215生成初始随机秘密(IRS)。
步骤1003。IRS由移动应用程序215使用来自图9的步骤705并在步骤713中被提供给移动应用程序的动态白盒密码密钥(WBK)来加密。
步骤1005。加密的IRS由移动应用程序215存储在由NVM 205中的移动应用程序215管理的文件存储设备中。
在替代实施例中,步骤1001到1005由用户输入PIN来替换。PIN未被存储。而是,如以下在步骤1009中讨论的那样,其必须在每次执行时被正确地重新输入,否则计算的存储密钥将与在第一次执行时使用的存储密钥不匹配。
步骤1007。与步骤1001-1005同时,由移动应用程序215计算设备指纹(DFP)。DFP可以通过应用标识符、唯一OS标识符、无线电系列号和设备的IMEI号的并置的SHA1来计算。
图10的前述步骤被有利地执行一次,其中结果(即,加密的IRS和DFP)被存储在NVM205中。以下步骤是当访问可信存储设备时使用的运行时步骤。
步骤1009。在运行时,针对每个TA 519,使用例如在RFC 5869中指定的基于HMAC的密钥导出函数(IETF,基于HMAC的提取和扩展密钥导出函数(于2015年9月3日访问的 http://tools.ietf.org/html/rfc5869))来计算TA存储密钥(TA_SK)。对HASH函数的输入包括IRS、DFP和TA 519的UUID。在使用用户PIN的替代实施例中,针对PIN提示用户。最初输入的PIN未被存储。然而,因为对于每次执行,PIN被用于计算TA存储密钥,所以必须输入正确的PIN以在随后的执行时在步骤1009中计算出正确的TA_SK。
步骤1013。当可信应用519寻求对其对应的存储设备523的访问时,可信应用使用其存储密钥TA_SK对来自可信存储设备523的存储或取回的内容加密或解密。
对针对移动应用程序215的攻击的一个弱点是在移动应用程序215的执行期间攻击由移动应用程序215使用的RAM中的存储器区域。在移动应用程序215的执行期间攻击者可以执行对存储在RAM 203中的数据的存储器转储,并且试图从存储在RAM 203中的内容取回敏感信息,诸如账号、密码密钥、个人标识符等。
为了阻挠这样的攻击,在本文中的实施例对由移动应用程序215使用的运行时存储器的部分加密,以便防止从运行时存储器转储恢复有意义的数据。图11是图示该实施例的时序图。在软TEE 503内部执行的每个可信应用519可以从堆或栈访问RAM 203。针对每个TA 519的堆或栈与任何其他可信应用519的堆或栈分离和隔离。
如以上在本文中结合图9讨论的那样,例如,密钥供应服务器601生成包括WBC密钥K m 的白盒密码库并且将该库传输到移动应用程序215,步骤705和713。在步骤715中,移动应用程序215安装WBC库。
根据本实施例,可信应用通过使用一次性密钥(OTK)对数据加密来对存储在RAM203中的数据加密:
E = 明文 XOR OTK(E = PlainText XOR OTK
如下导出OTK:
步骤1101:TA 519生成随机数(nonce)使得其对于可信应用519的每次执行是唯一的。在优选实施例中,使用随机数来生成OTK。然而,可以使用替代机制来生成OTK,在这种情况下,随机数可以不是必需的。
步骤1103:TA 519使用随机数生成器来生成运行时密钥K r 。在优选实施例中,使用随机密钥来生成OTK。然而,可以使用替代机制来生成OTK,在这种情况下,随机密钥K r 可以不是必需的。
在每次存储操作1104时,生成与可信应用519的存储器位置和特定执行相关联的OTK,所述OTK被掩蔽以便存储,使用OTK来加密要被存储在RAM中的明文,并且丢弃OTK。
步骤1105:生成OTK。在优选实施例中,使用以下公式来生成OTK:
OTK= ENC(mem_addr ||计数器||随机数, K r )(OTK= ENC(mem_addr || counter|| nonce, K r ))
其中,
mem_addr是要被加密的(一个或多个)存储器页的开始地址,
计数器是(1)在TA 519的每次执行时重置并且在每次存储器访问时被递增的计数器,以及
ENC是加密函数,其中使用密钥K r 来加密并置mem_addr ||计数器||随机数
步骤1107:OTK被掩蔽。在优选实施例中,TA 519使用WBC密钥K m 来掩蔽OTK
OTKm = OTK XOR K m
步骤1109和1111:掩蔽的OTK,即OTK m 被存储在RAM 203中。
步骤1113:使用OTK来掩蔽要被存储的量的明文:
E = 明文XOR OTK
步骤1115和1117:掩蔽的量E被传递到RAM 203并且被存储在RAM 203中。
步骤1119:丢弃OTK。因此,用于在存储在RAM中之前掩蔽明文的实际密钥(OTK)从未被保留;而是,OTK的仅掩蔽的版本OTK m 被保留并且仅当其被第一次成功地取消掩蔽时其才可以被使用。
反之,在用于读取存储在RAM 203中的值的每个操作时,掩蔽的OTK被取回和取消掩蔽,加密的量被解密成明文,并且丢弃OTK,步骤1121。
步骤1123:TA 519取回先前在写操作期间存储的掩蔽的OTK,即OTK m
步骤1125:使用白盒密钥KmOTKm对OTK取消掩蔽。
步骤1127:取回加密的量E
步骤1129:将加密的量E解密成明文:
明文 = E XOR OTK(Plaintext = E XOR OTK)
步骤1131:再次丢弃OTK。
因此,提出了针对攻击保护运行时RAM的技术,所述攻击利用存储器转储来恶意地辨别移动应用程序的机密信息。
通过虚拟机执行的软件应用易受基于应用的静态或运行时实例化的变更的攻击的攻击。例如,攻击者可能检查应用并且变更应用试图提取由应用操纵的保护的内容以及操纵应用的行为以使其直接地或以对于攻击者而言以某种方式辨别保护的内容是可能的形式揭露保护的内容。
为了阻挠这样的攻击,本技术的实施例采用若干技术中的一个或多个。
其在图12中被图示的这样的技术中的第一个技术用于提供应用完整性检查。当移动应用程序215的可信应用519被第一次安装到软Tee 503中时,软TEE虚拟机517计算比较值,例如与可信应用519对应的散列值,步骤1201。比较值可以是在可信应用519二进制文件上计算的HMAC-SHA256 MAC散列代码。比较值然后被存储在可信容器中,例如被前置于(prepended to)TA 519二进制文件,步骤1203。
在每次执行时,当TA 519再次由软TEE虚拟机517加载时,相同的比较值计算在二进制文件上被执行并且与第一次加载的存储的计算的比较值(称为“当前值”)比较,步骤1205。在步骤1207中,做出存储的比较值与当前比较值是否不同的决定。如果它们相同,则软TEE虚拟机517将加载并且执行TA 519。如果它们的确不同,则软TEE虚拟机517拒绝加载TA 519并且发出校正动作,诸如向用户、发行者或服务提供者通知潜在的攻击,步骤1209。
在针对移动应用程序215的另一个可能攻击中,攻击者变更时钟速率或执行时移;后者对数字版权管理DRM应用而言是特别关注的。因此,为了阻挠这样的攻击,在另一个实施例中,TA 519可以附加地或替代地使用时钟完整性验证技术来验证。图13是图示时钟完整性验证技术的流程图。
为了防止时钟变更攻击,在例如在步骤555或附属步骤555中安装移动应用程序215的可信部分时,可信部分的某些指令(例如,通过软TEE 503的虚拟机517对内部安全API525中的具体功能的调用)的执行时间被测量,步骤1301,并被记录在安全存储设备1303中,步骤1302。在执行移动应用程序215时执行时钟验证1305。在执行移动应用程序215时,启动软TEE虚拟机517,步骤1307,并且软TEE虚拟机517保持跟踪指令计数,步骤1309。周期性地,软TEE虚拟机517通过取出系统时钟来执行时钟验证检查1311,步骤1313,根据指令计数来计算预期时间,步骤1315,并比较系统时钟与预期时间,步骤1317。如果预期时间与系统时间之间的差相对于某预定阈值是超出范围的,则可以采取某校正动作,步骤1319,例如,停止移动应用程序215或对关于哪些硬件资源可以由移动应用程序215访问设置约束。在一个实施例中,如果n数量的指令将花费一定数量的时间t并且因此在已经对特定指令计数(例如,m*n)跟踪之后,将预期的是执行时间将是m*t。与那的偏差超出特定阈值将触发校正动作。
针对移动应用程序215的攻击可以包括在由虚拟机执行的同时使用调试技术来检查移动应用程序215的关键功能。在本文中描述的技术的实施例还可以包括用于阻挠这样的检查攻击的技术,这样的检查攻击在可信应用519的安装期间通过对添加到可信应用519的短循环和长循环基准测试(benchmark)来绕过反调试技术。图14是图示概念的时序。
图14图示要被保护免受攻击的可信应用519的关键部分1401,例如密码代码。代码段1403被添加到关键部分1401。关键部分包含多个可能的路径和若干循环。例如,第一循环1405包含短块1407和长块1409。如果用于第一循环的执行路径通过1407的短块,则第一循环1405的给定迭代的次数的执行将比在执行通过长块1409时短得多。类似地,可以使循环2至n 1411执行通过短块1413或长块1415,从而再次影响总体执行时间。
由随机数确定无论哪个执行路径被用于代码段1403,所述随机数将指示要执行哪些块并且达多少次迭代。
通过了解针对短块和长块的块执行次数和针对每次循环的迭代的次数,预测代码中的检查点的各种位置之间的预期经过时间是可能的。例如,如果预期长块1409采取t个循环并且预期短块采取5*t个循环,并且已知预期循环1 1405执行短块n次,则可以预测在检查点1417处的时间b与在开始点1419处的时间a之间的时间差应当是n*t。与那的偏差可能指示代码已经由调试器在循环1的执行期间的某个时间暂停。类似地,分别在检查点1421和1423处用时间c和d。
图15是图示使用图14的机制在运行时期间对执行路径随机化的流程图,其中随机化的执行持续时间被检查以确定可能的操纵。
步骤1501:生成随机数R,所述随机数R被用于确定通过添加的虚设代码段1403的执行路径。
步骤1503:随机数R被用于确定执行路径。例如,R的不同位可以指示针对各种循环是否执行长块或短块。其他位可以指示迭代的次数。
步骤1505:包括是否执行短块或长块的执行路径以及迭代的次数被用于确定在各种标识的检查点处的预期到达时间。
步骤1507:由检查点索引的预期到达时间以及预期总执行时间(即,在检查点1423处的要被保护的关键代码1401的执行之后)以某种保护形式被理想地记录在诸如可信存储设备523中。
步骤1509:在可信应用的执行期间:
步骤1511:在每个检查点处,将在检查点处的到达时间与预期到达时间比较。如果存在超出预定阈值的偏差(步骤1513),则采取校正动作(步骤1515)。
否则,即,如果偏差是可接受地小的,则执行继续1517,直到在步骤1511处遇到接下来的检查点。
因此,如果在可信应用的执行期间的某个时刻处,执行被暂停(例如,使用调试器),则执行时间将被扰乱并且到达时间将与预期到达时间不匹配。这将触发将针对其采取校正动作的条件。
为了说明性目的,我们将在本文中呈现的技术描述为其可以被用于移动设备103中。然而,呈现的技术可适用于具有对安全可信执行环境的需要的任何可编程电子设备。
根据前述内容将显而易见的是,已经呈现了一种技术,所述技术通过提供将可信执行环境引入到移动应用程序中的机制来改进在移动设备上执行的应用的安全,使得当移动设备被用于执行这样的移动应用程序以操纵被存储在移动设备上或使用移动设备在远程服务器上访问的敏感数据时,可以预期增加的信任的级别。这些增强以鲁棒的、灵活的和经济的方式来实现,其不要求对移动设备硬件的修改而又增强与移动设备硬件的操作相关联的安全。
尽管已经描述和说明了本发明的具体实施例,但是本发明不限于如此描述和说明的部分的具体形式或布置。本发明仅由权利要求限制。
在本说明书中,若干相关元素分别由n-E、n-C和n-S指代。E代表实体,C代表计算机,并且S代表软件。因此,n-E是实体n-E,其操作计算机n-C,所述计算机n-C根据指令n-S来执行。例如,可信服务管理器实体119-E操作计算机119-C,所述计算机119-C执行可信服务管理器软件。为了易于描述,我们有时通过数字n来指代这些元素,例如TSM 119。除非上下文明确相反,否则这通常应当被理解为意指对执行它们相应的角色的所有三个元素的引用,例如,可信服务管理器计算机119-C执行由可信服务管理器软件119-S中的软件规定的一些动作。

Claims (12)

1.一种用于保护用于在移动设备上执行的移动应用的方法,其特征在于,包括:
移动设备被配置成:
-将来自不可信应用提供者的移动应用的不可信部分加载到移动设备上;
-将来自可信应用提供者的移动应用的可信部分加载到移动设备中;
-将移动应用的可信部分安装在移动设备上,由此提供可信执行环境;
其中,将移动应用的可信部分加载到移动设备中包括以下步骤:
移动应用根据移动应用的标识符和移动设备的设备指纹来生成可信执行环境TEE ID;所述生成的可信执行环境TEE ID由移动应用传输到密钥供应服务器;
操作密钥供应服务器以生成要与可信执行环境TEE ID相关联的密钥并将可信执行环境TEE ID和生成的密钥传输到密钥导向器并将生成的密钥传输到移动设备;
可信应用提供者被配置成接收TEE ID和根据由移动设备发送的生成的密钥来计算的TEE ID的散列,并且被配置成通过密钥导向器服务器对移动设备认证;
在成功认证移动设备时,操作可信应用提供者以将包括可信应用的移动应用的可信部分传输到移动设备。
2.根据权利要求1所述的用于保护用于在移动设备上执行的移动应用的方法,其特征在于,其中,移动应用的不可信部分包括:
客户端应用,其在移动设备的丰富执行环境中可执行;以及
可信应用解释器,其用于可以在其中实现可信应用的指令集。
3.根据权利要求1所述的用于保护用于在移动设备上执行的移动应用的方法,其特征在于,其中,可信应用在由可信应用解释器可解释的指令集中实现。
4.根据权利要求1所述的用于保护用于在移动设备上执行的移动应用的方法,其特征在于,其中,与移动应用相关联的密钥包括白盒密钥WBC密钥和初始pin加密密钥IPEK,并且其中,方法进一步包括在将与移动应用相关联的密钥传输到移动设备之前使用WBC密钥对IPEK加密,并且其中,IPEK的加密的版本被传输到移动设备。
5.根据权利要求1所述的用于保护用于在移动设备上执行的移动应用的方法,其特征在于,其中,移动应用的可信部分在由可信应用提供者传输到移动设备之前用根据初始pin加密密钥IPEK生成的会话密钥来加密。
6.根据权利要求1所述的用于保护用于在移动设备上执行的移动应用的方法,其特征在于,其中,移动应用的不可信部分包括实现与可信执行环境的硬件实现类似的功能的应用程序接口。
7.根据权利要求1所述的用于保护用于在移动设备上执行的移动应用的方法,其特征在于,进一步包括:
将可信应用与可信安全存储设备相关联;以及
将初始随机秘密IRS存储在移动设备的安全存储设备中;以及
在对可信应用的安全存储设备中的数据的每次访问时,使用初始随机秘密IRS、设备指纹和用于可信应用的唯一id UUID来生成用于对存储在与可信应用相关联的可信存储设备中的数据加密的安全存储数据密钥TA_SK。
8.根据权利要求1所述的用于保护用于在移动设备上执行的移动应用的方法,其特征在于,进一步包括:
在可信应用的执行期间:
确定与可信应用的该执行相关联的一次性运行时密钥;
当在可信应用的该执行期间将量存储到由可信应用使用的运行时存储器中时,使用一次性运行时密钥来对量掩蔽;以及
当在可信应用的该执行期间从由可信应用使用的运行时存储器取回量时,使用一次性运行时密钥来对量取消掩蔽。
9.根据权利要求1所述的用于保护用于在移动设备上执行的移动应用的方法,其特征在于,进一步包括:
在对具有用于执行或解释的编译形式的可信应用的第一运行时,基于可信应用的编译形式来计算第一值并基于可信应用的编译形式来存储该值;
在可信应用的随后执行时,基于可信应用的编译形式来执行相同的计算以基于可信应用的编译形式来产生第二值,比较第一值与第二值,并且如果第一值与第二值不是相同的则采取校正动作。
10.根据权利要求1所述的用于保护用于在移动设备上执行的移动应用的方法,其特征在于,进一步包括通过以下操作来针对潜在时移攻击保护:
在软件可信执行环境的第一执行时确定针对移动应用的指令的预期执行时间;
存储针对所述指令的预期执行时间;
在软件可信执行环境的随后执行期间:
跟踪指令计数;
周期性地取出系统时钟;
根据当前指令计数来计算预期执行时间;
比较当前系统时钟与预期执行时间;以及
如果比较指示不可接受的偏差,则采取校正动作。
11.根据权利要求10所述的用于保护用于在移动设备上执行的移动应用的方法,其特征在于,其中,指令是对应用程序接口的函数的调用。
12.根据权利要求1所述的用于保护用于在移动设备上执行的移动应用的方法,其特征在于,进一步包括:
用具有多个循环的虚设代码段来修改可信应用的关键部分,所述多个循环中的每个可以作为短循环或作为长循环来执行;
将多个检查点分配在虚设代码段中并且与可信应用的所述关键部分相邻;
在对可信应用的执行时,确定通过虚设代码的执行路径,其中,执行路径执行定义数量的短循环和长循环;
确定针对每个检查点的预期到达时间;以及
在到达检查点时,比较实际到达时间与预期到达时间并且如果实际到达时间与预期到达时间之间的偏差超出预定阈值则采取校正动作。
CN201680081545.7A 2015-12-11 2016-12-09 具有可信执行环境的移动设备 Active CN108781210B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP15306989.3A EP3179690A1 (en) 2015-12-11 2015-12-11 Mobile device having trusted execution environment
EP15306989.3 2015-12-11
PCT/EP2016/080527 WO2017098024A1 (en) 2015-12-11 2016-12-09 Mobile device having trusted execution environment

Publications (2)

Publication Number Publication Date
CN108781210A CN108781210A (zh) 2018-11-09
CN108781210B true CN108781210B (zh) 2021-11-09

Family

ID=55027656

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680081545.7A Active CN108781210B (zh) 2015-12-11 2016-12-09 具有可信执行环境的移动设备

Country Status (8)

Country Link
US (1) US10878083B2 (zh)
EP (2) EP3179690A1 (zh)
JP (1) JP6888011B2 (zh)
KR (1) KR102217501B1 (zh)
CN (1) CN108781210B (zh)
BR (1) BR112018011782A2 (zh)
ES (1) ES2917183T3 (zh)
WO (1) WO2017098024A1 (zh)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11424931B2 (en) * 2016-01-27 2022-08-23 Blackberry Limited Trusted execution environment
KR102604046B1 (ko) * 2016-11-28 2023-11-23 삼성전자주식회사 전자 기기의 프로그램 관리 방법 및 장치
US10897360B2 (en) 2017-01-26 2021-01-19 Microsoft Technology Licensing, Llc Addressing a trusted execution environment using clean room provisioning
US10972265B2 (en) * 2017-01-26 2021-04-06 Microsoft Technology Licensing, Llc Addressing a trusted execution environment
US10897459B2 (en) 2017-01-26 2021-01-19 Microsoft Technology Licensing, Llc Addressing a trusted execution environment using encryption key
US10528749B2 (en) * 2017-03-20 2020-01-07 Huawei Technologies Co., Ltd. Methods and apparatus for containerized secure computing resources
CN109218260B (zh) 2017-07-03 2020-11-06 深圳市中兴微电子技术有限公司 一种基于可信任环境的认证保护系统及方法
US11403540B2 (en) * 2017-08-11 2022-08-02 Google Llc On-device machine learning platform
CN109787943B (zh) * 2017-11-14 2022-02-22 华为技术有限公司 一种抵御拒绝服务攻击的方法及设备
US10872144B1 (en) * 2017-12-07 2020-12-22 Ent. Services Development Corporation Lp Systems and methods for secure processing of data streams having differing security level classifications
US10911236B2 (en) * 2017-12-13 2021-02-02 Paypal, Inc. Systems and methods updating cryptographic processes in white-box cryptography
US10922441B2 (en) * 2018-05-04 2021-02-16 Huawei Technologies Co., Ltd. Device and method for data security with a trusted execution environment
WO2020019083A1 (en) * 2018-07-27 2020-01-30 BicDroid Inc. Personalized and cryptographically secure access control in trusted execution environment
US11206130B2 (en) * 2018-07-31 2021-12-21 Nxp B.V. Customizing cryptographic keys between multiple hosts
US10908935B1 (en) * 2018-08-02 2021-02-02 Raytheon Company Estimation of guest clock value based on branch instruction count and average time between branch instructions for use in deterministic replay of execution
EP3608806A1 (en) * 2018-08-09 2020-02-12 Gemalto Sa Anti cloning for white box protected data
US11132440B2 (en) 2018-11-01 2021-09-28 Foundation Of Soongsil University-Industry Cooperation Hybrid trust execution environment based android security framework, android device equipped with the same and method of executing trust service in android device
US11126754B2 (en) 2018-11-30 2021-09-21 BicDroid Inc. Personalized and cryptographically secure access control in operating systems
KR102137894B1 (ko) * 2018-12-18 2020-07-24 서울여자대학교 산학협력단 커널 무결성 검사 장치 및 방법
CN109739522B (zh) * 2019-01-03 2022-02-18 中国—东盟信息港股份有限公司 一种适用于eSIM应用的TEE OS适配系统
US11646870B2 (en) * 2019-01-23 2023-05-09 International Business Machines Corporation Securing mobile device by RAM-encryption
WO2020182302A1 (en) * 2019-03-13 2020-09-17 Huawei Technologies Co., Ltd. Apparatus and method for dynamic configuration of trusted application access control
CN110543764B (zh) * 2019-09-11 2021-07-23 飞腾信息技术有限公司 片上系统内存防护方法、密码加速引擎及内存防护装置
US11416619B1 (en) * 2019-09-24 2022-08-16 Sprint Communications Company L.P. Trusted boot-loader authentication
CN110855667B (zh) * 2019-11-14 2023-04-07 宁夏吉虎科技有限公司 一种区块链加密方法、装置及系统
JP7380251B2 (ja) * 2020-01-27 2023-11-15 株式会社Ihi 仮想マシンにおけるデータ改ざんの監視方法及び装置
CN111881467B (zh) * 2020-06-12 2022-10-28 海光信息技术股份有限公司 利用安全处理器保护文件的方法、装置、cpu和计算机设备
CN111740824B (zh) * 2020-07-17 2020-11-17 支付宝(杭州)信息技术有限公司 可信应用管理方法及装置
KR102390381B1 (ko) * 2020-11-25 2022-04-25 고려대학교 산학협력단 시뮬레이션 데이터 기반 웹 페이지 로드 시간 예측 장치, 방법 및 이를 수행하기 위한 프로그램을 기록한 기록매체
CN112506531A (zh) * 2020-12-11 2021-03-16 中国科学院信息工程研究所 软件安装方法、装置、电子设备和存储介质
FR3118223B1 (fr) * 2020-12-17 2023-11-17 Tages Methode d’association d’un programme logiciel executable avec une plateforme informatique
US11979396B2 (en) 2021-05-19 2024-05-07 Bank Of America Corporation Information security system and method for machine-to-machine (M2M) security and validation
CN114021141A (zh) * 2021-10-29 2022-02-08 中国银联股份有限公司 一种电子设备、可信应用调用方法、装置、设备及介质
CN115017495B (zh) * 2021-11-09 2023-08-08 荣耀终端有限公司 定时校验方法、电子设备和可读存储介质
SE2250289A1 (en) * 2022-03-03 2023-09-04 Crunchfish Digital Cash Ab Preventing fraudulent use by cloning of a trusted application
CN114553603B (zh) * 2022-04-25 2022-07-29 南湖实验室 一种基于隐私计算的新型数据可信解密的方法
WO2024075929A1 (ko) * 2022-10-04 2024-04-11 삼성전자 주식회사 신뢰 실행 환경을 제공하기 위한 전자 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103430222A (zh) * 2010-12-17 2013-12-04 谷歌公司 用于非接触式智能卡的本地可信服务管理器
US20140040622A1 (en) * 2011-03-21 2014-02-06 Mocana Corporation Secure unlocking and recovery of a locked wrapped app on a mobile device
CN104765612A (zh) * 2015-04-10 2015-07-08 武汉天喻信息产业股份有限公司 一种访问可信执行环境、可信应用的系统及方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037237A1 (en) * 2001-04-09 2003-02-20 Jean-Paul Abgrall Systems and methods for computer device authentication
CN101507248B (zh) * 2006-09-07 2012-04-11 诺基亚公司 管理涉及安全模块应用的信息
KR101744748B1 (ko) * 2011-01-05 2017-06-09 한국전자통신연구원 화이트박스 암호 테이블을 이용한 콘텐츠 보호 장치, 콘텐츠 암호화 및 복호화 장치
US9317689B2 (en) * 2012-06-15 2016-04-19 Visa International Service Association Method and apparatus for secure application execution
US11228427B2 (en) * 2014-02-11 2022-01-18 Ericsson Ab System and method for securing content keys delivered in manifest files
CN104134038B (zh) * 2014-07-31 2016-11-23 浪潮电子信息产业股份有限公司 一种基于虚拟平台的安全可信运行保护方法
US9871821B2 (en) * 2014-11-11 2018-01-16 Oracle International Corporation Securely operating a process using user-specific and device-specific security constraints
EP3086585B1 (en) * 2015-04-23 2019-12-11 Nxp B.V. Method and system for securing data communicated in a network
US10114958B2 (en) * 2015-06-16 2018-10-30 Microsoft Technology Licensing, Llc Protected regions
US10178164B2 (en) * 2015-08-31 2019-01-08 Visa International Service Association Secure binding of software application to communication device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103430222A (zh) * 2010-12-17 2013-12-04 谷歌公司 用于非接触式智能卡的本地可信服务管理器
US20140040622A1 (en) * 2011-03-21 2014-02-06 Mocana Corporation Secure unlocking and recovery of a locked wrapped app on a mobile device
CN104765612A (zh) * 2015-04-10 2015-07-08 武汉天喻信息产业股份有限公司 一种访问可信执行环境、可信应用的系统及方法

Also Published As

Publication number Publication date
KR102217501B1 (ko) 2021-02-18
US10878083B2 (en) 2020-12-29
BR112018011782A2 (pt) 2018-12-04
KR20180093038A (ko) 2018-08-20
JP2019505887A (ja) 2019-02-28
JP6888011B2 (ja) 2021-06-16
WO2017098024A1 (en) 2017-06-15
CN108781210A (zh) 2018-11-09
US20190005229A1 (en) 2019-01-03
EP3387813A1 (en) 2018-10-17
EP3179690A1 (en) 2017-06-14
EP3387813B1 (en) 2022-04-20
ES2917183T3 (es) 2022-07-07

Similar Documents

Publication Publication Date Title
CN108781210B (zh) 具有可信执行环境的移动设备
US9054865B2 (en) Cryptographic system and methodology for securing software cryptography
US9514300B2 (en) Systems and methods for enhanced security in wireless communication
KR100851623B1 (ko) 암호 코프로세서를 포함하는 장치
KR20060127206A (ko) 보안 모드 제어 메모리
JP2007512787A (ja) トラステッド・モバイル・プラットフォーム・アーキテクチャ
US20190012664A1 (en) Method and system for enhancing the security of a transaction
Ahmad et al. Enhancing the security of mobile applications by using TEE and (U) SIM
Cooijmans et al. Secure key storage and secure computation in Android
Lee et al. Secure mobile device structure for trust IoT
US20230058046A1 (en) Apparatus and Method for Protecting Shared Objects
Ribeiro et al. DBStore: A TrustZone-backed Database Management System for Mobile Applications.
KR101906484B1 (ko) 어플리케이션 보안 방법 및 이를 수행하기 위한 시스템
CN107862209B (zh) 一种文件加解密方法、移动终端和具有存储功能的装置
Kumbhar et al. Hybrid Encryption for Securing SharedPreferences of Android Applications
Choi et al. Hardware-assisted credential management scheme for preventing private data analysis from cloning attacks
JP2018026651A (ja) プログラムを保護する方法
Sitawarin iOS Security
Sharma Onboard credentials: Hardware assisted secure storage of credentials
Park et al. Analyzing security of Korean USIM-based PKI certificate service
ES2798077T3 (es) Sistema criptográfico y metodología para asegurar criptografía de software
Ju et al. The Issue of Data Transfer for the Embedded SE on Mobile Devices
Jones An analysis of vulnerabilities presented by Android malware and iOS jailbreaks

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
CP01 Change in the name or title of a patent holder

Address after: French Meudon

Patentee after: Thales Digital Security France

Address before: French Meudon

Patentee before: GEMALTO S.A.

CP01 Change in the name or title of a patent holder
TR01 Transfer of patent right

Effective date of registration: 20230327

Address after: French Meudon

Patentee after: Thales Digital Security France Easy Stock Co.

Address before: French Meudon

Patentee before: Thales Digital Security France

TR01 Transfer of patent right