CN105391840A - 自动创建目标应用程序 - Google Patents

自动创建目标应用程序 Download PDF

Info

Publication number
CN105391840A
CN105391840A CN201510516422.9A CN201510516422A CN105391840A CN 105391840 A CN105391840 A CN 105391840A CN 201510516422 A CN201510516422 A CN 201510516422A CN 105391840 A CN105391840 A CN 105391840A
Authority
CN
China
Prior art keywords
safety element
electronic equipment
destination application
small routine
digital signature
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
CN201510516422.9A
Other languages
English (en)
Other versions
CN105391840B (zh
Inventor
K·A·迪亚博尔特
M·泽阿特
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.)
Apple Inc
Original Assignee
Apple Computer 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 Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN105391840A publication Critical patent/CN105391840A/zh
Application granted granted Critical
Publication of CN105391840B publication Critical patent/CN105391840B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/35Protecting application or service provisioning, e.g. securing SIM application provisioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请公开了自动创建目标应用程序。本发明公开了一种电子设备(诸如蜂窝电话),所述电子设备自动在所述电子设备中的安全元件上安装目标应用程序(有时称为“小程序”)并且任选地使所述目标应用程序个性化(有时称为“创建小程序”)。具体地,当从安装设备(诸如服务器)接收包含所述小程序的数字签名的安装包时,所述安全元件使用与安全元件的供应商相关联的加密密钥来验证所述安装包的数字签名。然后,所述安全元件安装所述小程序。另外,所述安全元件可任选地从安装在所述安全元件上的另一个小程序导出用户数据。而且,所述安全元件可使用来自其他小程序的用户数据来使安装的小程序个性化。通过这种方式,电子设备在允许从其他小程序个性化的同时提供可扩展的安装解决方案。

Description

自动创建目标应用程序
技术领域
所述实施例整体涉及无线电子设备,包括用于在无线电子设备上创建或安装目标应用程序的技术。
背景技术
许多现代电子设备通常包括组网子系统,其用于和其他电子设备无线通信。例如,这些电子设备能包括具有蜂窝网络接口(UMTS、LTE等)、无线局域网络接口(例如,诸如在电子与电气工程师协会(IEEE)802.11标准或来自华盛顿柯克兰蓝牙技术联盟的BluetoothTM(BluetoothTMfromtheBluetoothSpecialInterestsGroupofKirkland,Washington)中描述的无线网络)、和/或另一种类型的无线接口(诸如近场通信接口)的组网子系统。
目前,使用此类电子设备进行金融交易的兴趣正在增长。为了促进此功能,电子设备可包括安全元件以提供:安全性、保密性以及一个或多个应用环境。该安全元件可包括在该安全元件环境内执行的一个或多个小程序或应用程序(诸如与信用卡关联的支付小程序),其中小程序允许该安全元件与另一个电子设备诸如销售点终端进行金融交易。
所以,存在对可扩展安全技术以更新安装在电子设备上的小程序的需要。
发明内容
所述实施例涉及一种电子设备(诸如蜂窝电话),该电子设备包括:天线;接口电路,该接口电路与安装设备(其为电子设备提供更新)无线通信;和安全元件。在操作期间,安全元件从安装设备接收具有数字签名的安装包,其中安装包包括待安装在安全元件上的目标应用程序。然后,安全元件使用与安全元件的供应商相关联的加密密钥来验证数字签名。接下来,安全元件任选地导出与安装在安全元件上的另一个目标应用程序相关联的用户数据。此外,安全元件安装目标应用程序,并且任选地使用用户数据来使目标应用程序个性化。
在一些实施例中,在安装目标应用程序之前,安全元件使用与供应商相关联的第二加密密钥来解密安装包。此第二加密密钥可与前述加密密钥相同或不同。
而且,数字签名可与供应商的私有加密密钥相关联,并且安全元件可使用供应商的对应的公共加密密钥来验证数字签名。然而,在其他实施例中,使用对称加密密钥。如此,数字签名可与供应商的加密密钥相关联,安全元件可使用供应商的加密密钥来验证数字签名。
此外,接收、验证、安装和/或个性化操作可由安装操作系统执行,该安装操作系统由安全元件中的处理器执行,并且该安装操作系统可与由处理器执行的正常操作系统分开,该正常操作系统执行安全元件的其他功能。
此外,安装包可包括多个目标应用程序,并且单个加密操作可用于验证针对多个目标应用程序的数字签名。
在一些实施例中,安全元件包括处理器以及耦接至处理器的存储器,存储器存储由处理器执行的程序模块。程序模块可包括用于由安全元件执行的前述操作的至少一些操作的指令。
另一个实施例提供了安全元件。
另一个实施例提供了与电子设备中的安全元件结合使用的电脑程序产品。此电脑程序产品可包括用于由安全元件执行的前述操作的至少一些操作的指令。
另一个实施例提供了一种用于在电子设备中的安全元件上安装目标应用程序的方法,该方法可由安全元件中的处理器执行。在操作期间,处理器从安装设备接收具有数字签名的安装包,其中安装包包括待安装在安全元件上的目标应用程序。然后,处理器使用与安全元件的供应商相关联的加密密钥来验证数字签名。接下来,处理器任选地导出与安装在安全元件上的另一个目标应用程序相关联的用户数据。此外,处理器安装目标应用程序,并且任选地使用用户数据来使目标应用程序个性化。
另一个实施例提供了一种系统,该系统包括电子设备和安装设备。
提供前述概要的目的是总结一些示例性实施例,以提供对本发明所述的主旨的一些方面的基本了解。相应地,上述特征仅仅是示例,而不应解释为以任何方式缩小本发明所述主旨的范围或实质。本发明所述的主旨的其他特征、方面和优势将在以下具体实施方式、附图说明和权利要求书中显而易见。
附图说明
图1是示出根据本公开的实施例进行通信的电子设备的框图;
图2是示出根据本公开的实施例的图1的电子设备中的一者的框图;
图3是示出根据本公开的实施例的用于更新安装在图1的电子设备中的一者上的小程序的方法的流程图;
图4是示出根据本公开的实施例的用于在图1的电子设备中的一者中卸载小程序和导出个人数据的方法的流程图;
图5是示出根据本公开的实施例的在图1的电子设备中的一者内通信的图示;
图6是示出根据本公开的实施例的用于在图1的电子设备中的一者中安装新版本小程序以及导入个人数据的方法的流程图;
图7是示出根据本公开的实施例的在图1的电子设备中的一者内通信的图示;
图8是示出根据本公开的实施例的在图1的电子设备中的一者中的安全元件中的注册表项的图示;
图9是示出根据本公开的实施例的图6的方法中的预检脚本的图示;
图10是示出根据本公开的实施例的用于将小程序安装在图1的电子设备中的一者中的方法的流程图;
图11是示出根据本公开的实施例的在图1的电子设备中的一者内通信的图示。
注意,相似的附图标号指的是附图中的对应部分。而且,相同部分的多个实例由通过破折号与实例编号隔开的公共前缀标出。
具体实施方式
一种电子设备(诸如蜂窝电话)自动在该电子设备中的安全元件上安装目标应用程序(有时称为“小程序”),并且任选地使目标应用程序个性化(有时称为“创建小程序”)。具体地,当从安装设备(诸如服务器)接收包含该小程序的经电子签名的安装包时,安全元件可任选地使用与安全元件的供应商相关联的加密密钥来验证安装包的数字签名。(然而,在其他实施例中,该加密密钥与电子设备的供应商和/或认证机构相关联。)然后,安全元件安装该小程序。此外,安全元件可任选地从安装在安全元件上的另一个小程序导出用户数据。而且,安全元件可使用来自另一个小程序的用户数据来使安装的小程序个性化。通过这种方式,电子设备提供了可扩展安装解决方案,同时允许从另一个小程序个性化。
此更新技术可提供目标应用程序的安全更新,同时安全地保存先前用户数据。此外,该更新技术可以分布式的方式在多个电子设备上执行,这可防止集中式安装服务器变成瓶颈。
在随后的讨论中,应当理解,目标应用程序(有时称为“应用程序”、“小应用程序”或“小程序”)包括执行一个或多个具体任务、功能或目标以及在专用引擎或更大程序或应用程序(有时统称为“平台环境”)范围内运行的小应用程序。例如,目标应用程序可作为“插件”运行,插件是将一个或多个特定特征添加至已有的软件应用程序的软件部件。注意,目标应用程序在系统的平台环境上执行。目标应用程序可用解释语言或编译语言来编写。
安装包或更新包可经由电子设备和更新设备之间的无线通信接收。此无线通信可涉及按照通信协议,诸如电子与电气工程师协会(IEEE)802.11标准、(来自华盛顿柯克兰蓝牙技术联盟的)BluetoothTM、和/或另外一类无线接口诸如(来自马萨诸塞州威克菲尔德NFC论坛的)近场通信标准或规范,传输由电子设备和更新设备中的无线电部件传送和接收的包。此外,通信协议可兼容第三代移动通信科技(诸如符合瑞士日内瓦国际电信联盟国际移动通信-2000规范的通信协议)、第四代移动通信科技(诸如符合瑞士日内瓦国际电信联盟超国际移动电信规范的通信协议)、和/或另外一种蜂窝电话通信技术。在随后的讨论中,蜂窝电话通信技术用作例证性示例。
电子设备和更新设备之间的通信如图1所示,图1呈现示出电子设备110和更新设备112(有时称为“安装设备”)通信的框图。参考图3-图7如下文进一步所述,当更新设备112(诸如服务器或更新计算机)提供具有对安装在电子设备110(诸如蜂窝电话)上的先前版本小程序的更新(即新版本的小程序)的更新包时,这些电子设备可通信。例如,先前版本的小程序可安装在电子设备110中的安全元件上。此外,电子设备110的用户以前可能通过用户数据定制先前版本或使先前版本个性化。另选地或另外地,更新设备112可提供具有小程序的安装包以安装在电子设备110上。
在下文所述的更新技术中,安全元件通过识别至少一个先前安装的小程序版本(或另选地,实例)来确定该更新包是否与电子设备110相关。然后,安全元件通过验证与安全元件的供应商相关联的数字签名来认证更新包。(另选地,该数字签名可与电子设备110的供应商或与安装在电子设备110中的安全元件上的小程序的供应商相关联。)例如,安全元件可使用与供应商相关联的加密密钥(诸如公共加密密钥)来验证更新包。另外,安全元件可使用可与上述加密密钥相同或不同的第二加密密钥来解密更新包。在一个示例性实施例中,使用公共-私有加密密钥技术。具体地,可使用供应商的私有加密密钥来签名更新包,并且可验证数字签名,以及可使用供应商的公共加密密钥来解密更新包。然而,在其他实施例中,使用对称加密技术。因此,相同加密密钥可用于签名、加密和/或解密更新包。
然后,安全元件卸载至少一个(以及在一些实施例中,所有)先前版本的小程序并且导出相关联的用户数据。接下来,安全元件对小程序安装更新并且使用用户数据来使新版本的小程序个性化。
通过这些方式,电子设备110和更新设备112可用于安全灵活地传播和安装一个或多个先前安装在电子设备110上的小程序的个性化更新,同时迁移或保留相关联的用户数据。
相似地,在下文所述的安装技术中,安全元件通过验证与安全元件供应商相关联的数字签名来认证安装包。(另选地,该数字签名可与电子设备110的供应商或与安装在电子设备110中的安全元件上的小程序的供应商相关联。)例如,安全元件可使用与供应商相关联的加密密钥(诸如公共加密密钥)来验证安装包。此外,安全元件可使用可与上述加密密钥相同或不同的第二加密密钥来解密安装包。在一个示例性实施例中,使用公共-私有加密密钥技术。具体地,可使用供应商的私有加密密钥来签名安装包,并且可验证数字签名,以及可使用供应商的公共加密密钥来解密安装包。然而,在其他实施例中,使用对称加密技术。如此,相同加密密钥可用于签名、加密和/或解密安装包。
然后,安全元件任选地导出与安装在安全元件上的另一个小程序相关联的用户数据。接下来,安全元件安装小程序,并且任选地使用用户数据来使小程序个性化。
通过这些方式,电子设备110和更新设备112可用于安全灵活地传播和在电子设备110上安装小程序,同时任选地迁移与另一个小程序相关联的用户数据(以及,如此,任选地使小程序个性化)。
如前所述,电子设备110和/或更新设备112之间的通信可涉及包括更新包或安装包的包的交换。这些包可被包括在位于一个或多个无线信道中的帧中。
参考图2,如下文进一步所述,电子设备110和/或更新设备112可包括子系统,诸如:组网子系统、存储器子系统、处理子系统和安全子系统。另外,电子设备110和/或更新设备112可在组网子系统中包括无线电部件114。更一般地,电子设备110和/或更新设备112能通过组网子系统包括(或能被包括在)任何电子设备(内),组网子系统使电子设备110和/或更新设备112能够与另一个电子设备无线通信。这能包括通过无线信道传送帧以使电子设备能够进行初次联系,紧接着,交换后续数据/管理帧(诸如:建立连接的连接请求),配置安全选项(例如:IPSEC),传送和接收包或帧,等等。
如图1中能够看到,无线信号116(如锯齿形线所表示)由电子设备110中的无线电部件114-1传送/接收。这些无线信号由更新设备112中的无线电部件114-2接收/传送。(注意,电子设备110和/或更新设备112之间的通信也可经由网络118发生,该通信可涉及使用不同于无线信号116的通信协议的有线通信。)而且,无线通信可或可不涉及在电子设备110和/或更新设备112之间建立连接,因此,可或可不涉及经由无线网络(诸如蜂窝电话网络)的通信。
在所述实施例中,处理电子设备110和/或更新设备112中的包或帧包括:接收具有该包或帧的无线信号116;从接收的无线信号116中解码/提取该包或帧以获取该包或帧;以及处理该包或帧以确定该包或帧(诸如至少部分更新包)中包含的信息。
如前所述,一般地,电子设备110和/或更新设备112之间的通信可被加密。此加密可使用加密密钥(诸如与小程序和/或与安全元件供应商相关联的加密密钥)。此外,加密可使用对称或非对称加密技术。
尽管我们将图1所示的环境作为一个示例描述,在另选的实施例中,可出现不同数量或类型的电子设备。例如,一些实施例包括更多或更少的电子设备。再如,在另一个实施例中,不同电子设备传送和/或接收包或帧。
现在我们描述电子设备的实施例。图2示出了电子设备110的框图。此电子设备包括处理子系统210、存储器子系统212、组网子系统214、认证子系统216、以及安全子系统218。处理子系统210包括被配置为执行计算操作的一个或多个设备。例如,处理子系统210能包括一个或多个微处理器、专用集成电路(ASIC)、微控制器、可编程逻辑设备、和/或一个或多个数字信号处理器(DSP)。
此外,处理子系统210可包括(是处理子系统210中的一个或多个处理器之内的片上系统的)安全区域处理器220,处理器220执行处理子系统210中其他部件的安全服务并且与电子设备110中的其他子系统安全地通信。安全区域处理器220可包括一个或多个处理器、安全引导ROM、一个或多个安全外围设备、和/或其他部件。该安全外围设备可硬件配置为协助安全区域处理器220执行安全服务。例如:安全外围设备可包括:认证硬件,其实施各种认证技术;加密硬件,其被配置为执行加密;安全接口控制器,其被配置为通过安全接口与其他组件通信;和/或其他部件。在一些实施例中,可由安全区域处理器220执行的指令存储在被分配给安全区域处理器220的存储器子系统212的信任区中,并且安全区域处理器220从信任区中取得该指令用于执行。安全区域处理器220可与处理子系统210的除了严格控制接口以外的其余部件隔开,因此形成了安全区域处理器220及其部件的安全区域。由于至安全区域处理器220的接口被严格控制,直接访问安全区域处理器220内的部件(诸如处理器或安全引导ROM)可被阻止。在一些实施例中,安全区域处理器220加密和或解密与认证子系统216通信的认证信息,以及加密和/或解密与安全子系统218通信的信息(诸如令牌)。此外,安全区域处理器220可比较认证信息和存储的认证,如果获得匹配,可向安全元件230提供具有authentication-complete指示符的加密令牌,和/或可断言authentication-complete指示符为操作系统244中的标识。
存储器子系统212包括用于存储针对处理子系统210、组网子系统214、认证子系统216和/或安全子系统218的数据和/或指令的一个或多个设备。例如,存储器子系统212能包括动态随机访问存储器(DRAM)、静态随机访问存储器(SRAM)、和/或其他类型的存储器。在一些实施例中,用于存储器子系统212中的处理子系统210的指令包括:可由处理子系统210执行的一个或多个程序模块或指令集(诸如程序模块246,例如,数字钱包、卡券包和/或移动支付应用程序)。注意,一个或多个计算机程序可构成一个计算机程序机制或程序模块。而且,存储器子系统212中的各模块中的指令可用以下语言实现:高阶程序性语言、面向对象编程语言、和/或汇编或机器语言。此外,编程语言可编译或翻译,例如可配置或配置的(在此讨论中可交换使用),以由处理子系统210执行。
此外,存储器子系统212能包括用于控制访问存储器的机制。在一些实施例中,存储器子系统212包括存储器层级,该层级包括耦接至电子设备110中的存储器的一个或多个高速缓存。在这些实施例的一些实施例中,一个或多个高速缓存位于处理子系统210中。
在一些实施例中,存储器子系统212耦接至一个或多个大容量海量存储设备(未示出)。例如,存储器子系统212能耦接至磁驱动器或光驱动器、固态驱动器、或另一种类型的海量存储设备。在这些实施例中,存储器子系统212能被电子设备110用作常用数据的快速访问存储,而海量存储设备用于存储较不常用数据。
组网子系统214包括一个或多个设备,其被配置为耦接至有线和/或无线网络并且在网络中通信(例如,执行网络操作),组网子系统包括接口电路222(诸如近场通信电路)和天线224。例如,组网子系统214能包括BluetoothTM组网系统、蜂窝组网系统(例如,诸如UMTS、LTE等3G/4G网络)、通用串行总线(USB)组网系统、基于IEEE802.11中所述标准的组网系统(例如,组网系统)、以太网组网系统、和/或另一种通信系统(诸如:近场通信系统)。
组网子系统214包括用于耦接至每个支持的组网或通信系统、在每个支持的组网或通信系统上通信、以及处理每个支持的组网或通信系统的数据和事件的处理器、控制器、无线电部件/天线、插座/插头、和/或其他设备。注意,用于耦接至每个网络系统的网络、在每个网络系统的网络上通信、以及处理每个网络系统的网络上的数据和事件的机制有时统称为网络系统的“网络接口”。而且,在一些实施例中,电子设备之间的“网络”还不存在。因此,电子设备110可使用组网子系统214中的机制以执行电子设备110和更新设备112(图1)之间简单的无线通信,例如,传送广告帧和/或近场通信。
认证子系统216可包括用于从电子设备110的用户接收认证信息以及用于安全地将此认证信息传送至处理子系统210(诸如通过加密认证信息)的一个或多个处理器、控制器和设备。例如,认证信息可包括:由生物特征传感器226(诸如指纹传感器、视网膜传感器、手掌传感器、数字签名识别传感器等)获取的生物特征标识符;与支付小程序236中的一者相关联的使用用户接口设备228(诸如小键盘、触摸显示器、光学字符辨识和/或语音辨识)接收的个人识别码(PIN);以及用于解锁电子设备110至少一些功能的使用用户接口设备228接收的密码。
此外,安全子系统218可包括安全元件230,该安全元件230包括一个或多个处理器和存储器。注意,安全元件230可为防篡改部件,该防篡改部件用在电子设备110中以提供支持各种商务模式所要求的安全性、保密性和多种应用环境。安全元件230可存在于各种形状因数中的一个或多个中,诸如通用集成电路卡(UICC)、嵌入式安全元件(在电子设备110中的电路板上)、智能安全数字(SD)卡、智能微SD卡等。
而且,安全元件230可包括在安全元件230的环境中(诸如在安全元件230的操作系统232中,和/或在执行于安全元件230上的Java运行环境)执行的一个或多个小程序或应用程序。例如,该一个或多个小程序可包括认证小程序,该认证小程序用于:执行无接触注册服务,加密/解密与安全区域处理器220通信的包或令牌,设置安全元件230的操作系统232中的一个或多个软件标识(诸如:authentication-complete标识),和/或传输信息至一个或多个支付小程序236。该一个或多个小程序可包括一个或多个支付小程序236,该一个或多个支付小程序在被程序模块246激活时,基于一个或多个软件标识,和/或当电子设备110接近另一个电子设备时,与另一个电子设备进行金融交易。具体地,支付小程序236各自可与金融工具(诸如:信用卡、借记卡、预付费借记卡、礼品卡、和更一般地,由金融机构例如银行提供的与用户例如电子设备110的用户的金融账户相关联的金融工具)关联。另外,安全元件230可包括与进行金融交易时使用的一个或多个支付小程序236相关联的信息(诸如:金融凭证,例如,设备主账号或DPAN、PIN,例如与指定支付小程序关联的借记卡号、以及与指定支付小程序关联的一个或多个加密密钥)。注意,DPAN可与金融主账号或金融账号(诸如信用卡号)FPAN相关联但不同于后者。DPAN可为金融账户的虚拟识别符。
认证小程序可在安全元件230中的主要或发行人安全域(诸如控制权限安全域)中执行,而支付小程序236可在附加安全域中执行。这些安全域之间的通信可使用特定于安全域的不同的的加密/解密秘钥加密。在电子设备110中,和/或在电子设备110和/或更新设备112(图1)之间的通信期间,加密/解密可涉及对称和/或非对称加密。此外,传送的信息也可包括特定于电子设备110和/或电子设备110中的部件(诸如支付小程序236中的一者或安全元件230)的数字签名。
在电子设备110的操作期间,用户可使用卡券包248来选择或激活支付小程序236中的一个或多个支付小程序。如果支付小程序支持(如通过启用或设置支付小程序中的认证支持来指示的)authentication-complete标识,为了使支付小程序与另一个电子设备进行金融交易,支付小程序可需要被激活,而且authentication-complete标识可需要在安全元件230中被设置或启用(指示用户已经被认证)。相反,对于支付小程序236中的不支持authentication-complete标识的一者,金融交易可在此支付小程序激活时进行(例如,在此支付小程序的操作不由设置或启用安全元件230中的authentication-complete标识而调控时)。虽然当前讨论说明了全局authentication-complete标识的使用,注意,在一些实施例中,不同的authentication-complete标识与至少一些支付小程序236相关联(例如:对于指定的支付小程序可有特定的authentication-complete标识等)。
当电子设备110接近另一个电子设备(诸如销售点终端)时,或当安全区域处理器220向安全元件230提供支付命令时,规定的、激活的和/或经过认证的支付小程序236中的一者可向接口电路222或向安全区域处理器220(然后220向接口电路222提供支付包)提供(可被加密或非加密的)支付包。然后,接口电路222可使用天线224将支付包传送至另一个电子设备(诸如:销售点终端)。注意,支付包可包括金融信息(诸如:与支付小程序236中的一者相关联的金融凭证或DPAN)。
此金融信息(以及另一个电子设备提供的附加信息,诸如:商业识别码、金融交易量等)可由另一个电子设备传送至支付网络118(图1)以完成金融交易。一旦金融交易完成,来自(可与电子设备110的供应商关联的)管理电子设备的通知可被接口电路222接收。卡券包248可向显示子系统240提供该通知以用于显示,这样电子设备110的用户能被提醒金融交易已经成功完成。
如前所述,在更新技术期间,电子设备110可从更新设备112(图1)接收经数字签名的更新包。具体地,接口电路222可接收该更新包,并且可向安全区域处理器220提供该更新包。然后,安全区域处理器220可安全地将该更新包传送至安全元件230。作为响应,操作系统232(或由安全元件230中的处理器在操作系统232的环境中执行的程序模块)可识别安装在安全元件230上的小程序236(诸如支付小程序)中的一者的至少一个先前版本。例如,可通过搜索与操作系统232关联的注册表来识别小程序236中的一者的至少一个先前版本。
而且,操作系统232可任选地使用与安全元件230的供应商(或小程序的供应商)相关联的加密密钥来验证数字签名。然而,在其他实施例中,该加密密钥与电子设备的供应商和/或认证机构相关联。
在一些实施例中,操作系统232使用与安全元件230的供应商(或小程序的供应商)相关联的第二加密密钥来解密更新包。此第二加密密钥可与前述加密密钥相同或不同。
接下来,操作系统232可卸载至少一个先前版本的小程序,并且可导出与至少一个以前版本的小程序相关联的用户数据。此外,操作系统232可向小程序安装更新,并且可使用该用户数据使该小程序个性化。小程序的卸载(或删除)、导出、安装以及个性化可发生在安全元件230上的安全域内。
注意,由操作系统232执行的上述操作中的一个或多个操作可由更新操作系统234(诸如高端引导加载器)执行,更新操作系统234由安全元件中的处理器执行。此更新操作系统可与操作系统232分开,操作系统232执行安全元件230其他功能。更新操作系统234可更新操作系统232的部分和/或与小程序236中的一者或多者相关联的软件。
相似地,如前所述,在安装技术期间,电子设备110可从更新设备112(图1)接收经数字签名的安装包。具体地,接口电路222可接收该安装包,并且可向安全区域处理器220提供该安装包。然后,安全区域处理器220可安全地将该安装包传送至安全元件230。作为响应,操作系统232(或由安全元件230中的处理器在操作系统232的环境中执行的程序模块)可任选地使用与安全元件230的供应商(或小程序的供应商)相关联的加密密钥来验证数字签名。然而,在其他实施例中,该加密密钥与电子设备的供应商和/或认证机构相关联。
在一些实施例中,操作系统232使用与安全元件230的供应商(或小程序的供应商)相关联的第二加密密钥来解密安装包。此第二加密密钥可与前述加密密钥相同或不同。
接下来,操作系统232可任选地导出与安装在安全元件230上的另一个小程序相关联的用户数据。此外,操作系统232可安装该小程序,并且可使用该用户数据任选地使该小程序个性化。小程序的导出、安装以及个性化可发生在安全元件230上的安全域内。
注意,由操作系统232执行的上述操作中的一个或多个操作可由(有时称为“安装操作系统”的)更新操作系统234诸如高端引导加载器执行,更新操作系统234由安全元件中的处理器执行。此更新操作系统可与操作系统232分开,操作系统232执行安全元件230其他功能。更新操作系统234可更新操作系统232的部分,和/或可安装与小程序236中的一者或多者相关联的软件。
在电子设备110内,处理子系统210、存储器子系统212、组网子系统214、认证子系统216和安全子系统218可使用一个或多个互连件诸如总线238来耦接。这些互连件可包括子系统能使用的以在彼此之间传送命令和数据的电子连接件、光学连接件、和/或光电连接件。注意,不同实施例能包括子系统间不同数量或配置的电子连接件、光学连接件、和/或光电连接件。在一些实施例中,电子设备110能使用安全元件(诸如安全区域处理器220、安全元件230、和/或总线238)来检测篡改,并且,如果检测到篡改,可销毁加密/解密秘钥或认证信息(诸如存储的生物特征标识符)。
在一些实施例中,电子设备110包括显示子系统240,以用于在显示器上显示信息(诸如金融交易成功完成的通知),显示子系统240可包括显示驱动器和显示器(诸如液晶显示器、多点触控触摸屏等)。此外,在一些实施例中,电子设备110包括安全输入/输出(I/O)子系统242(诸如:小键盘),以用于接收与支付小程序236中的一者相关联的用户的PIN。如前所述,显示子系统240和/或安全I/O子系统242可被包括在认证子系统216中。
电子设备110能为具有至少一个网络接口的任何电子设备(或能被包括在具有至少一个网络接口的任何电子设备中)。例如,电子设备110能为(或能被包括在如下设备中):台式电脑、手提电脑、服务器、媒体播放器(诸如MP3播放器)、家电、小型笔记本电脑/上网本、平板电脑、智能手机、蜂窝电话、一台测试设备、网络家电、机顶盒、个人数字助理(PDA)、玩具、控制器、数字信号处理器、游戏控制台、家电内的计算引擎、消费电子设备、便携式计算设备、电子记事簿、和/或另一个电子设备。
尽管专用部件用于描述电子设备110,在另选的实施例中,不同弩箭和/或子系统可出现在电子设备110中。例如,电子设备110可包括一个或多个附加处理子系统、存储器子系统、组网子系统、认证子系统、安全子系统、显示子系统、和/或安全I/O子系统。另外,子系统中的一者或多者可不出现在电子设备110中。而且,在一些实施例中,电子设备110可包括图2中没有示出的一个或多个附加子系统。例如,电子设备110能包括,但是不限于,数据收集子系统、音频和/或视频子系统、报警子系统、和/或媒体处理子系统。同样,尽管图2也显示了分开的子系统,但在一些实施例中,一些或所有指定的子系统或部件能被集成至电子设备110中的一个或多个其他子系统或部件中。例如,在一些实施例中,程序模块246被包括在操作系统244中。另选地或附加地,程序模块246的至少一些功能可被包括在卡券包248中。
而且,电子设备110中的电路和部件可使用模拟电路系统和/或数字电路系统的任何组合,包括双级、PMOS、和/或NMOS门或晶体管来实现。此外,在这些实施例中,信号可包括具有近似离散值的数字信号和/或具有连续值的模拟信号。附加地,部件和电路可为单端或差分的,并且电源可为单级或双极。
集成电路可实现组网子系统214的一些或所有功能(诸如无线电),以及更一般地,电子设备110的一些或所有功能。而且,集成电路可包括硬件和/或软件机制,用于从电子设备110传送无线信号至更新设备112,以及从更新设备112接收电子设备110的信号(图1)。除了本文所述的机制,无线电部件在本领域众所周知,因此不详细描述。一般来说,组网子系统214和/或集成电路能包括任何数量的无线电部件。注意,在多无线电部件实施例中的无线电部件以与单无线电部件实施例中所述的无线电部件相似的方式运作。
在一些实施例中,组网子系统214和/或集成电路包括配置机制(诸如一个或多个硬件机制和/或软件机制),该配置机制配置无线电部件以在指定的通信信道上(例如,指定的载频)传送和/或接收。例如,在一些实施例中,该配置机制能用于将无线电部件从在指定通信信道监测和/或传送切换至在不同通信信道监测和/或传送。(注意,本文所用“监测”包括从其他电子设备接收信号以及可能地执行对接收信号的一个或多个处理操作,例如确定接收信号是否包括广告帧等。)
虽然与蜂窝电话网络兼容的通信协议被用作说明性示例,但是所述更新技术的实施例可用于各种网络或通信接口。此外,虽然前面实施例中的一些操作实现在硬件或软件中,一般来说,前面实施例中的操作能在广泛配置和架构中实现。因此,前面实施例中的一些或所有操作可在硬件、在软件、或二者中执行。
虽然前面得讨论专注于电子设备110中的硬件、软件和功能,但是更新设备112(图1)可具有相同或相似的硬件(处理器、存储器、组网接口等)和/或软件以支持由这些实体执行的操作,参考图3-图7以及图10-图11,如下文进一步所述。具体地,这些实体可包括具有处理子系统的一个或多个计算机系统,该处理子系统执行存储在存储器子系统中的一个或多个程序模块以执行操作;以及一个或多个组网接口,用于与其他电子设备诸如电子设备110通信。
现在进一步描述更新或迁移安装在电子设备中的安全元件上的小程序。图3示出了用于更新安装在电子设备(诸如图1中的电子设备110)上的小程序的方法300的流程图,该方法可由电子设备中的安全元件中的处理器执行。例如,该处理器可执行程序模块,该程序模块包括方法300中的用于操作的指令。在操作期间,该处理器从更新设备接收具有数字签名的更新包(操作310),其中更新包包括安装在安全元件上的小程序的更新。
然后,该处理器识别安装在安全元件上的至少一个先前版本的小程序(操作312)。例如,安全元件可识别先前安装在安全元件上的二个或更多版本的小程序,并且可卸载先前安装的这二个或更多版本的小程序。在一些实施例中,安全元件识别所有先前安装版本的小程序,并且卸载所有先前安装版本的小程序。注意,通过搜索与由安全元件中的处理器执行的正常操作系统相关联的注册表,可识别至少一个先前版本的小程序。
而且,处理器使用与安全元件的供应商相关联的加密密钥来验证数字签名(操作314)。具体地,该数字签名可与供应商的私有加密密钥相关联,并且安全元件可使用供应商的公共加密密钥来验证数字签名。然而,在其他实施例中,使用对称加密密钥。如此,在这些实施例中,数字签名可与供应商的加密密钥相关联,并且安全元件可使用供应商的加密密钥来验证数字签名。
在一些实施例中,安全元件任选地使用可与供应商关联的第二加密密钥来解密更新包(操作316)。此第二加密密钥可与前述加密密钥相同或不同。
接下来,处理器卸载至少一个先前版本的小程序,并且导出与至少一个先前版本的小程序相关联的用户数据(操作318)。
此外,处理器安装小程序的更新,并且使用该用户数据来使该小程序个性化(操作320)。
注意,方法300中的一个或多个操作可由更新操作系统执行,该更新操作系统由安全元件中的处理器执行,并且更新操作系统可与由处理器执行的正常操作系统分开,该正常操作系统执行安全元件的其他功能。(另选地,方法300中的操作的一个或多个操作可由正常操作系统或由程序模块执行,该程序模块在与正常操作系统相关联的环境中执行。)此方法参考图4和图6,在下文中进一步说明。
在示例性实施例中,更新技术允许更新包括安全元件(诸如图2中的安全元件230)的电子设备上的一个或多个JavaCard小程序。除了例示或安装新版本的小程序(或另选地,新实例),更新技术可安全地将用户数据从先前版本的小程序(例如,当前安装的版本)转移至新版本的小程序,并且可卸载(或删除)先前版本的小程序。此更新技术可解决与安装在安全元件上的JavaCard小程序的安全更新相关联的若干问题和挑战。
具体地,在已有的更新技术中,JavaCard小程序可以二进制形式(可执行加载文件)加载至安全元件上。小程序实例或版本可从这些二进制安装,并且可用于支持各种用例。注意,更新包可包括具有通用类应用程序标识符或类AID的一个或多个小程序的二进制(如此,对具有不同类AID的小程序的更新可被包括在不同更新包中)。对小程序软件的更新通常涉及加载新版本的二进制至安全元件,安装新版本的小程序,然后使新版本的小程序个性化。
然而,一旦新二进制被加载至安全元件上,可没有任何信息供安全元件用于确定新二进制是已有的二进制的新版本,并且能用于为与新二进制相关联的安装的每个版本的小程序继续创建新版本小程序。因此,在已有的更新技术中,可需要为当前安装在安全元件上的每个实例或版本创建一个新实例。
此外,小程序可使用能在个性化阶段和/或其使用期间被填入的用户数据。然而,在已有的更新技术中缺乏用于安全地将此数据从一个小程序实例转移至另一个小程序实例的方法的情况下,可需要耗时的重新个性化操作,并且/或者用户数据可能丢失。
此外,通过要求将相同二进制的两个版本与双倍数量的小程序实例一起保持,现有的更新技术可制约安全元件中的有限存储器。
在所公开的更新技术中,安全元件(诸如图2中的安全元件230)中的补充安全域数据存储全局服务提供加密密钥管理和至外部实体(诸如图1中的更新设备112)的通信访问。此外,安全元件上的安全域可向其相关联的应用程序暴露全局服务,从而允许相关联的应用程序将数据导入和导出至由补充安全域管理的安全数据存储。
参考图4和图5,如下文所述,当电子设备接收更新包(其可包括新操作系统代码、具有与当前包AID不同的AID的新包或二进制、和/或元数据)时,可发生板上(或内部)删除和数据导出过程。然后,参考图6和图7如下文所述的,可发生板上安装和小程序个性化过程。
此外,在这些过程期间,正常操作系统(诸如图2中的操作系统232)中的一个或多个注册表项对象可增加“第二AID”字段。具体地,小程序实例或版本的注册表项可包括:包AID、类AID、AID、第二AID、相关联的安全域、权限、和生命周期状态。更新包中的元数据段可包括包AID、以及使用操作系统更新私有验证加密密钥来签名的先前版本的小程序的包AID。
在接收更新包之后,安全区域处理器(诸如图2中的安全区域处理器220)可提取元数据,并且使用该元数据构建更新小程序命令(有时称为“update-appletsapplication-protocol-data-unit命令”),并发送至安全元件。然后,安全元件可接收发送至主/发行人安全域的update-applets命令。
如图4所示,图4示出了卸载小程序版本以及导出电子设备110(图1)中的个人数据的方法400的流程图,作为对接收update-applets命令的响应,安全元件中的正常操作系统可浏览用于搜索当前包AID(CPAID)的注册表。如果找到类似的包AID,则正常操作系统可继续验证元数据的数字签名。此外,如果签名验证成功,则安全元件可开始板上删除。然后,正常操作系统可在包的注册表项中挂起“on_board_flag”。此on_board_flag可一直挂起直到下文所述的安装和个性化过程完成。另外,正常操作系统可将当前包AID复制至包注册表项的第二AID字段中。因此,包的注册表项可包括on_board_load标识和一个或多个小程序表项。包的这些小程序表项中的每个小程序表项可包括相关联的on_board_install标识、以及包AID、类AID、AID、第二AID、相关联的安全域、权限和生命周期状态。
此外,正常操作系统可浏览根据更新的包实例化的所有小程序的注册表。对于每个小程序(1至N),正常操作系统可在小程序的当前版本(CVA)的注册表项中挂起以下标识:“on_board_install”(可一直挂起直到来自更新包的对应的小程序已安装)以及“on_board_perso”(可一直挂起直到来自更新包的对应的小程序已使用迁移的用户数据进行个性化)。
另外地,正常操作系统可存储新版本小程序(NVA)AID,该NVAAID在每个对应注册表项中的更新包中的更新表中提供。一旦on_board_install标识被卸下,该AID可替换当前版本的小程序AID。注意,对于没有包括在更新表中的小程序AID,当前版本的小程序AID可被填入第二AID字段中。
此外,需要注意,将被删除的每个版本或实例(包括更新表中没有出现的小程序)可在其删除前被触发,并且可将其用户数据导出至其相关联的补充安全域(SSD)。如前所述,该补充安全域可实现全局服务并且暴露数据存储接口。在接收全局服务请求时,相关联的补充安全域可基于小程序的注册表项来检查请求全局服务的小程序是否是其相关联的应用程序中的一个应用程序。
一旦所有当前版本的小程序被成功删除,安全元件中的正常操作系统可阻挡任何后续application-protocol-data-unit消息(例如电子设备中的实体或组件之间的原子消息)除了:选择发行人安全域的命令;以及另一个update-applets命令。如此,正常操作系统可拒绝其他(例如:具有特定状态字的)application-protocol-data-unit命令(例如:具有特定状态字词)。
在方法400期间,电子设备110内的通信如图5所示。具体地,安全区域处理器220(并且更一般地,图2中的处理子系统210)可向安全元件230中的发行人安全域(ISD)510提供来自更新包的元数据。这作为导出命令转发至当前版本的小程序(CVA)512,该当前版本的CVA512从操作系统232请求全局服务的补充安全域。在接收规定了补充安全域(SSD)514的信息之后,CVA512从操作系统232请求注册表项对象或指针。
然后,CVA512确认该信息与SSD514相关联,该SSD514继而与操作系统232确认该关联。接下来,SSD514向CVA512提供对数据存储的处理。作为响应,CVA512将用户数据导出至SSD514,并且向ISD510指示该导入已完成,该ISD510继而通知安全区域处理器220。
在成功删除当前版本的小程序实例或版本以及其用户数据被成功导出其相关联的安全域后,电子设备(诸如安全区域处理器)可触发安全元件按照操作系统更新模式引导(例如:可使用图2中的更新操作系统234)。然后,电子设备可将操作系统更新捆绑发送至安全元件,安全元件除了在其存储器上存储更新包之外还任选地更新其操作系统软件。另外,更新操作系统可将新包AID值填入包AID字段中。注意,更新操作系统以及正常操作系统可经由标识诸如on_board_load标识来交换信息。
在操作系统更新后,电子设备可将update-appletsapplication-protocol-data-unit命令发送至发行人安全域。然后,如图6所示,图6示出了安装新版本小程序以及将个人数据导入至电子设备110(图1)上的方法600的流程图,正常操作系统(诸如图2中的操作系统232)可浏览挂起“on_board_load”标识的包的注册表。如果更新或新包已上载,则更新包AID可出现在包的注册表项的第二AID字段中。否则,可出现现有包AID。
如果更新包已上载,则正常操作系统可为利用on_board_install标识进行标识的注册表项的每个小程序(1至N)创建新实例或版本。具体地,正常操作系统可首先将小程序的注册表项的当前包AID字段替换为更新或新包AID,然后可将小程序的注册表项的AID字段替换为先前存储在小程序的注册表项的第二AID字段中的更新或新版本小程序AID。
另选地,如果没有上载更新或新包,则正常操作系统可重新创建在板上删除期间被删除的所有实例或版本。
如果安装成功,则正常操作系统可卸下on_board_install标识,并且正常操作系统可清除小程序的注册表项的第二AID字段。注意,每次更新或新版本小程序可在其安装期间被触发,并且可从相关联的安全域中导入其数据。
此外,如果用户数据已成功导入(例如,所安装的新版本小程序已被个性化),则正常操作系统可卸下小程序的注册表项中的on_board_perso标识。
安装更新或新版本小程序可在update-appletsapplication-protocol-data-unit命令的上下文内发生。如果错误由安全元件报告,则电子设备可发送另一个update-appletsapplication-protocol-data-unit命令。
注意,安全元件中的正常操作系统可实施如下原则:在操作系统更新发生之后仅有一个成功的update-appletsapplication-protocol-data-unit命令能处理。然而,电子设备可发送多个update-appletsapplication-protocol-data-unit命令直到电子设备从发行人安全域接收了完成响应。
在所有小程序实例或版本被创建和重新个性化之后,安全元件中的正常操作系统可从包的注册表项中卸下on_board-load标识,并且可清除第二AID字段。
在方法600期间,电子设备110内的通信如图7所示。具体地,安全区域处理器220(并且更一般地,图2中的处理子系统210)可向安全元件230中的发行人安全域(ISD)510提供更新命令。这作为导入命令转发至更新或新版本小程序(NVA),该更新或新版本小程序从操作系统232请求全局服务的补充安全域。在接收信息规定(SSD)514之后,NVA710从操作系统232请求注册表项对象或指针。
然后,NVA710确认该信息规定与SSD514相关联,该SSD514继而与操作系统232确认该关联。接下来,SSD514向NVA710提供对数据存储的处理。作为响应,NVA710导入来自SSD514的用户数据,并且向ISD510指示该导入已完成,ISD510继而通知安全区域处理器220。
如前所述,包的注册表项可在更新技术期间更新。这如图8所述,图8示出了具有包AID的信用卡包的注册表项以及更新前后的信用卡支付小程序的三个相关联的实例。
通过这些方式,更新技术可促进安全和可扩展的传播、安装以及使先前安装在电子设备上的一个或多个小程序的更新个性化。
注意,图5和7所述的操作可包括怀疑和响应操作,为了清晰起见,这些怀疑和响应操作并未示出。
在方法300(图3)、方法400(图4)、方法600(图6)的一些实施例中,可存在附加的或更少的操作。此外,操作顺利可改变,和/或两个或更多个操作可合并为单个操作。例如,方法300(图3)方法400(图4)、和/或方法600(图6)中的操作可由电子设备中的不同处理器诸如安全区域处理器执行。
在另一个示例性实施例中,更新技术涉及三阶段过程。在第一阶段期间,选择发行人安全域。然后,将所谓的“预检脚本”从服务器发送至电子设备。这如图9所示,图9呈现了用于示出方法600(图6)中的预检脚本900的图示。具体地,预检脚本900包括一个或多个包。每个包包括具有指示迁移候选的一个或多个包AID的包AID列表、上载至安全元件的新包AID、以及具有一个或多个小程序AID的小程序AID的列表。这些包AID将被更新至新包AID,并且与小程序AID相关联的数据需要被迁移。预检脚本900也包括计数器值,该计数器值在预检脚本900在指定的电子设备上运行一次以防止重放攻击之后增加。此外,预检脚本900可使用加密密钥进行签名。
当预检脚本900由安全元件中的操作系统执行时,注册表中的给定小程序(由小程序AID中的一个小程序AID规定的)的表项被找到并且转移至临时或第二注册表。然后,该小程序使用JavaCardexportData()和/或exportObject()方法(或命令)。如果该小程序被个性化,则exportData()和/或exportObject()将相关联的数据和/或加密密钥以及引脚转移至所选择的安全域。具体地,exportData()转移数据,并且exportObject()转移加密密钥和引脚。接下来,执行返回命令。另选地,如果该小程序没有被个性化,则执行返回命令而不用使用exportData()和/或exportObject()方法或命令来调用该小程序。
此外,删除该小程序。具体地,小程序使用JavaCarduninstall()方法进行调用,在小程序层级处执行清除,并且执行返回命令。另外地,安全元件中的操作系统删除该小程序,并且执行垃圾收集操作以收回先前与该小程序相关联的存储器。
在第二阶段期间,高端引导加载器(诸如图2中的更新操作系统234)用于替代一个或多个规定的包以及如前所述挂起标识。
此外,在第三阶段期间,所谓的后检脚本,除了单个应用程序协议数据单元命令诸如导入以外皆为空,其由安全元件中的操作系统来执行。作为响应,安全元件中的操作系统解析第二注册表。对于给定的小程序,这可涉及安全元件中的操作系统:创建包括第二注册表的复本的给定小程序的实例,;使用install()方法来调用该小程序;使用import()方法来调用该小程序,import()方法调用importData()和/或importObject()方法;执行清理;以及执行垃圾收集操作以收回相关联的存储器。
注意,使用更新技术安装的新版本小程序可具有新AID,或取决于使用情况,可任选地保留与以前版本小程序相同的AID。
虽然前面实施例使用更新或迁移个性化小程序(例如:一个具有关联数据的小程序)作为一个示例性实例,但在其他实施例中,更新技术可用于更新非个性化小程序(例如:一个不具有相关联的数据的小程序),诸如在工厂生产或配置电子设备期间。
现在进一步描述在电子设备中的安全元件上创建或安装小程序的实施例。图10呈现了在电子设备(诸如:图1中的电子设备110)上安装小程序的方法1000的流程图,该方法可由电子设备中的安全元件中的处理器执行。例如,该处理器可执行程序模块,该程序模块包括方法1000中的操作的指令。在操作期间,该处理器从安装设备接收具有数字签名的安装包(操作1010),其中安装包包括待安装在安全元件上的小程序。
然后,处理器使用与安全元件供应商相关联的加密密钥来验证数字签名(操作1012)。具体地,该数字签名可与供应商的私有加密密钥相关联,并且安全元件可使用供应商的公共加密密钥来验证数字签名。然而,在其他实施例中,使用对称加密密钥。如此,在这些实施例中,数字签名可与供应商的加密密钥相关联,并且安全元件可使用供应商的加密密钥来验证数字签名。注意,安装包可包括多个小程序,并且单个加密操作可用于验证多个小程序的数字签名。
在一些实施例中,安全元件任选地使用可与供应商相关联的第二加密密钥来解密安装包(操作1014)。此第二加密密钥可与该加密密钥相同或不同。
接下来,处理器任选地导出与安装在安全元件上的另一个小程序相关联的用户数据(操作1016)。
此外,处理器安装该小程序(操作1018),并且任选地使用该用户数据来使该小程序个性化(操作1022)。
在一些实施例中,applet-migration过程被修改以便该过程可任选地用于(在安全元件上)创建具有相关联的证书的一个或多个安全域(操作1020)。具体地,为了防止恶意代码安装在安全元件上,安装包中的文件(有时称为“转换的小程序文件”或CAP文件)可使用一个或多个证书诸如电子设备供应商的和/或提供电子设备中的部件(诸如安全元件)的供应商的私钥来进行数字签名。注意,CAP文件可为对象,从该对象中可实例化或安装安全元件中的对象的其他实例。
然而,为了检验或验证该CAP文件,安全元件可需要访问一个或多个对应公钥。如果电子设备的多个实例试图经由互联网或网络来访问服务器上的公钥,可存在时延(因为服务器是一个具有有限资源的潜在瓶颈)和/或附加操作(诸如对安全元件中的发行人安全域的认证操作)。
相反地,通过修改前述的三阶段小程序迁移过程中的后检操作,可在安全元件上创建一个或多个安全域,该一个或多个安全域可插入相关联的证书(诸如一个或多个公钥)。例如,应用程序协议数据单元命令可创建一个或多个安全域(诸如检验权限安全域)和/或可安装相关联的证书。然后,当接收到该CAP文件时,安全元件可验证该CAP文件而不用访问服务器或执行附加认证。具体地,该一个或多个安全域可启用电子设备上的所谓的强制专用访问权限(DAP)。具体地,使用该证书,安全元件可确认加载至安全元件上的CAP文件上的一个或多个签名(诸如加载块上的一个或多个签名)。因此,如果CAP文件使用二个私钥签字,则安全元件可能能够执行两个步骤的验证。
虽然前面的讨论示出了具有公钥的操作1020,但在其他实施例中,可使用对称加密密钥加密。因此,一个或多个安全域中的证书可包括对称加密信息、非对称加密信息、和/或安全散列函数信息。
注意,方法1000中的一个或多个操作可由被安全元件中的处理器执行的安装操作系统执行,并且安装操作系统可与被处理器执行的执行安全元件的其他功能的正常操作系统分开。(另选地,方法1000中的一个或多个操作可由正常操作系统或由程序模块执行,该程序模块在与正常操作系统相关联的环境中执行。)此方法先前是针对图4和6中的更新技术示出的,并且在安装技术中可使用类似的方法。
在方法1000期间,电子设备110内的通信如图11所示。具体地,安装设备1110可向接口电路1114提供安装包1112(具有小程序和数字签名),该接口电路1114可将安装包1112转发至安全区域处理器220。然后,安全区域处理器220(并且更一般地,图2中的处理子系统210)可向安全元件230提供安装包1112。
接下来,安全元件230使用与安全元件230的供应商相关联的加密密钥来验证(1116)数字签名(操作1012)。此外,安全元件230任选地使用可与供应商相关联的第二加密密钥来解密(1118)安装包1112。该第二加密密钥可与该加密密钥相同或不同。
此外,安全元件230任选地导出(1120)与安装在安全元件230上的另一个小程序相关联的用户数据。
另外地,安全元件230安装(1122)小程序,并且任选地使用用户数据来使小程序个性化。如前所述,安装1122可任选地包括创建一个或多个安全域,该安全域具有能用于验证CAP文件中的加载块的相关联的证书。
通过这些方式,安装技术可促进安全和可扩展的传播、安装和/或使一个或多个小程序个性化。
注意,图11所述的操作可包括怀疑和响应操作,为了清晰起见,这些怀疑和响应操作并未示出。
在方法1000(图10)和1100的一些实施例中,可存在附加的或更少的操作。此外,操作顺利可改变,和/或两个或更多个操作可合并为单个操作。例如,方法1000(图10)和1100中的操作可由电子设备中的不同处理器诸如安全区域处理器执行。
在另外一个示例性实施例中,安装技术用于创建新小程序实例或新小程序。具体地,安装技术可涉及前述三阶段过程的修改版本。在第一阶段期间,预检脚本除了单个应用程序协议数据单元命令以外皆为空,其由安全元件中的操作系统来执行。例如,预检脚本可安装具有静态字段的容器(因为JavaCard可见性原则)和/或可卸载支付小程序。
此外,第二阶段可与前述阶段一样,除了当包被安装时,可使用添加的方法或命令而不是替代的方法或命令。
在第三阶段期间,后检脚本可类似于图9所示的预检脚本。具体地,后检脚本可包括一个或多个包AID。每个包AID可包括一个或多个模块,并且这些模块中的每个模块可包括一个或多个create()方法。例如,模块AID1可包括createapplet1()、createapplet2()等。此外,每个create()方法可规定安装参数,诸如:权限、安全域AID、小程序专用参数等。另外,在后检脚本末尾处可存在计数器值,该计数器值在执行后检脚本以防止或减少重放攻击的可能性之后增加。
作为一个例证,安装技术可用于添加与新支付网络相关联的支付小程序(例如在特定国家)。在安装技术中可使用预定义的后检脚本,而不是向此网络提供新支付卡小程序(这可涉及创建网络实例、利用服务器进行验证、创建安全域、创建加密密钥等),这耗时、昂贵,并且如果不同电子设备的多个用户同时试图这样做,则可形成瓶颈。这样可能更快、更经济并且可避免瓶颈(例如,通过使用包的单个加密密钥)。例如,使用单个加密密钥可允许一个加密操作创建多个小程序。此方法可允许小程序与其他操作(例如后检脚本可与安全元件中的操作系统的更新一起安装)同时创建。所以,安装技术可为在电子设备上安全地创建小程序提供可扩展性更高的解决方案。
在另一个实施例中,使用更新技术和安装技术的混合式组合。在这种情况下,预检脚本可包括多于单个应用程序协议数据单元命令,并且在用于指定包AID中的一个或多个模块的create()方法之后,后检脚本可包括import()方法。这可允许动态提供用户数据。更一般地,此混合方法可允许添加、创建和/或删除小程序。
虽然前面的讨论示出了可利用所导出的用户数据进行个性化的小程序的更新和安装,在其他实施例中,可能并不存在任何用户数据。在这些情况下,预检脚本和/或后检脚本可为空壳。此方法可用于非个性化小程序,诸如特定支付小程序、中转小程序、或驾照小程序。
此外,虽然前面的实施例使用JavaCard小程序作为例证,但在其他实施例中,小程序可使用另一编程语言诸如Objective-C或另外一个面向对象的编程语言来实现。
在前面的描述中,我们参考了“一些实施例”。注意,“一些实施例”描述了所有可能实施例的子集,但是并不一定规定了相同子集的实施例。
前面的描述旨在使得本领域的任何技术人员能够得到并且使用本公开,并且在特定应用程序和其要求的上下文中被提供。此外,呈现对本公开的实施例的前面的描述以仅用于说明和描述目的。这些描述并非旨在是穷举性的或将本公开限制为所公开的形式。相应地,许多修改和变型对于本领域技术的从业者将是显而易见的,并且本发明所限定的一般原理可应用于其他实施例和应用程序,而不脱离本公开的实质和范围。另外地,前面的实施例的讨论并非旨在限制本公开。如此,本公开并非旨在限制所示出的实施例,而是要符合与本文所公开的原理和特性一致的最大范围。
相关申请交叉引用
根据美国专利法第35卷第119条(e)款,本专利申请要求以下申请的优先权:于2015年6月5日提交的以KyleA.Diebolt和MehdiZiat为作者的名称为“AutomaticAppletCreation”(代理人案卷号APL-P24743USP2)的美国临时专利申请序列No.62/171,503;以及于2014年8月22日提交的以KyleA.Diebolt和MehdiZiat为作者的名称为“AutomaticAppletCreation”(代理人案卷号APL-P24743USP1)的美国临时申请序列No.62/040,941;以上申请内容均以引用方式并入本发明。
本专利申请与以下申请有关:于2014年8月22日提交的以AhmerA.Khan、JoakimLinde和MehdiZiat为作者的名称为“On-BoardAppletMigration”(代理人案卷号APL-P21629US1)的美国非临时专利申请No.14/466,850,以上申请内容以引用方式并入本发明。

Claims (17)

1.一种电子设备,包括:
天线;
接口电路,所述接口电路耦接至所述天线并被配置为与安装设备通信;和
安全元件,所述安全元件被配置为:
从所述安装设备接收具有数字签名的安装包,其中所述安装包包括待安装在所述安全元件上的目标应用程序;
使用与所述安全元件的供应商相关联的加密密钥来验证所述数字签名;以及
安装所述目标应用程序。
2.根据权利要求1所述的电子设备,其中所述安全元件被配置为:在安装所述目标应用程序之后,使用与安装在所述安全元件上的另一个目标应用程序相关联的用户数据来使所述目标应用程序个性化。
3.根据权利要求1所述的电子设备,其中所述安装包包括多个目标应用程序;并且
其中单个加密操作用于验证针对所述多个目标应用程序的所述数字签名。
4.根据权利要求1所述的电子设备,其中所述安全元件被配置为:在安装所述目标应用程序之前,使用与所述供应商相关联的第二加密密钥来解密所述安装包。
5.根据权利要求1所述的电子设备,其中所述数字签名与所述供应商的私有加密密钥相关联;并且
其中所述安全元件使用所述供应商的公共加密密钥来验证所述数字签名。
6.根据权利要求1所述的电子设备,其中所述安装操作的至少一部分由安装操作系统来执行,所述安装操作系统由所述安全元件中的处理器执行;并且
其中所述安装操作系统与由所述处理器执行的正常操作系统分开,所述正常操作系统执行所述安全元件的其他功能。
7.一种电子设备,包括:
天线;
接口电路,所述接口电路耦接至所述天线并被配置为与安装设备通信;和
安全元件,其中所述安全元件包括:
处理器;和
存储器,所述存储器耦接至所述处理器,所述存储器存储被配置为由所述处理器执行的程序模块,所述程序模块包括:
用于从所述安装设备接收具有数字签名的安装包的指令,其中所述安装包包括待安装在所述安全元件上的目标应用程序;
用于使用与所述安全元件的供应商相关联的加密密钥来验证所述数字签名的指令;和
用于安装所述目标应用程序的指令。
8.根据权利要求7所述的电子设备,其中所述程序模块包括:用于在安装所述目标应用程序之后使用与安装在所述安全元件上的另一个目标应用程序相关联的用户数据来使所述目标应用程序个性化的指令。
9.根据权利要求7所述的电子设备,其中所述安装包包括多个目标应用程序;并且
其中单个加密操作用于验证针对所述多个目标应用程序的所述数字签名。
10.根据权利要求7所述的电子设备,其中所述程序模块包括:用于在安装所述目标应用程序之前使用与所述供应商相关联的第二加密密钥来解密所述安装包的指令。
11.根据权利要求7所述的电子设备,其中所述数字签名与所述供应商的私有加密密钥相关联;并且
其中所述安全元件使用所述供应商的公共加密密钥来验证所述数字签名。
12.根据权利要求7所述的电子设备,其中所述安装操作的至少一部分由安装操作系统来执行,所述安装操作系统由所述安全元件中的处理器执行;并且
其中所述安装操作系统与由所述处理器执行的正常操作系统分开,所述正常操作系统执行所述安全元件的其他功能。
13.一种用于电子设备的安全元件,包括:
处理器;和
存储器,所述存储器耦接至所述处理器,所述存储器存储被配置为由所述处理器执行的程序模块,所述程序模块包括:
用于从安装设备接收具有数字签名的安装包的指令,其中所述安装包包括待安装在所述安全元件上的目标应用程序;
用于使用与所述安全元件的供应商相关联的加密密钥来验证所述数字签名的指令;和
用于安装所述目标应用程序的指令。
14.根据权利要求13所述的安全元件,其中所述程序模块包括:用于在安装所述目标应用程序之后使用与安装在所述安全元件上的另一个目标应用程序相关联的用户数据来使所述目标应用程序个性化的指令。
15.根据权利要求13所述的安全元件,其中所述安装包包括多个目标应用程序;并且
其中单个加密操作用于验证针对所述多个目标应用程序的所述数字签名。
16.一种用于在电子设备中的安全元件上安装目标应用程序的处理器实现的方法,其中所述方法包括:
从安装设备接收具有数字签名的安装包,其中所述安装包包括待安装在所述安全元件上的目标应用程序;
使用所述处理器,使用与所述安全元件的供应商相关联的加密密钥来验证所述数字签名;以及
安装所述目标应用程序。
17.根据权利要求19所述的方法,其中所述方法还包括:在安装所述目标应用程序之后,使用与安装在所述安全元件上的另一个目标应用相程序关联的用户数据来使所述目标应用程序个性化。
CN201510516422.9A 2014-08-22 2015-08-21 自动创建目标应用程序 Active CN105391840B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201462040941P 2014-08-22 2014-08-22
US62/040,941 2014-08-22
US201562171503P 2015-06-05 2015-06-05
US62/171,503 2015-06-05
US14/825,052 US9934014B2 (en) 2014-08-22 2015-08-12 Automatic purposed-application creation
US14/825,052 2015-08-12

Publications (2)

Publication Number Publication Date
CN105391840A true CN105391840A (zh) 2016-03-09
CN105391840B CN105391840B (zh) 2018-12-25

Family

ID=54011556

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510516422.9A Active CN105391840B (zh) 2014-08-22 2015-08-21 自动创建目标应用程序

Country Status (3)

Country Link
US (1) US9934014B2 (zh)
EP (1) EP2988470B1 (zh)
CN (1) CN105391840B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105975302A (zh) * 2016-05-03 2016-09-28 深圳市金立通信设备有限公司 一种应用安装方法及终端
CN107493291A (zh) * 2017-08-31 2017-12-19 阿里巴巴集团控股有限公司 一种基于安全元件se的身份认证方法和装置
CN109388419A (zh) * 2018-10-17 2019-02-26 阳光电源股份有限公司 一种光伏电站设备软件升级系统、方法及装置
CN109491672A (zh) * 2018-10-23 2019-03-19 平安普惠企业管理有限公司 金融小程序的实现方法、装置、计算机设备及存储介质
CN109669736A (zh) * 2018-12-18 2019-04-23 北京城市网邻信息技术有限公司 一种小程序的加载方法、装置、终端设备和存储介质
CN110786032A (zh) * 2017-06-21 2020-02-11 微软技术许可有限责任公司 设备供应
CN111651734A (zh) * 2020-05-27 2020-09-11 支付宝(杭州)信息技术有限公司 小程序应用的安装管理方法、装置、设备及系统
CN112416374A (zh) * 2020-11-18 2021-02-26 北京字跳网络技术有限公司 数据处理方法、装置、终端和存储介质
US11374760B2 (en) 2017-09-13 2022-06-28 Microsoft Technology Licensing, Llc Cyber physical key
CN115017498A (zh) * 2021-11-19 2022-09-06 荣耀终端有限公司 小应用程序的操作方法和电子设备

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012022875A1 (de) * 2012-11-22 2014-05-22 Giesecke & Devrient Gmbh Verfahren und System zur Applikationsinstallation
CN104683409B (zh) * 2013-11-29 2019-03-01 华为终端(东莞)有限公司 终端间应用共享的方法和终端
US9436455B2 (en) 2014-01-06 2016-09-06 Apple Inc. Logging operating system updates of a secure element of an electronic device
US9483249B2 (en) * 2014-01-06 2016-11-01 Apple Inc. On-board applet migration
CN106031050B (zh) * 2014-09-30 2019-06-11 华为技术有限公司 一种信息处理方法及nfc终端
KR20170032715A (ko) * 2015-09-15 2017-03-23 삼성전자주식회사 어플리케이션 관리 방법 및 이를 지원하는 전자 장치
SG10201509221YA (en) * 2015-11-06 2017-06-29 Huawei Int Pte Ltd System and method for managing installation of an application package requiring high-risk permission access
EP3176695A1 (en) * 2015-12-04 2017-06-07 Gemalto Sa Method for managing a package in a secure element
EP3208717A1 (en) * 2016-02-17 2017-08-23 Gemalto Sa Method for managing objects in a secure element
JP2017156938A (ja) * 2016-03-01 2017-09-07 ヤンマー株式会社 端末装置およびソフトウェア書き換えプログラム
US10937019B2 (en) 2016-06-08 2021-03-02 Square, Inc. Wireless communication system with auxiliary antenna
US10318953B2 (en) 2016-06-29 2019-06-11 Square, Inc. Near field communication flex circuit
US10594599B2 (en) 2016-08-26 2020-03-17 Cisco Technology, Inc. Fibre channel fabric slow drain mitigation
US10936719B2 (en) * 2016-09-23 2021-03-02 Apple Inc. Preserving trust data during operating system updates of a secure element of an electronic device
US11165565B2 (en) * 2016-12-09 2021-11-02 Microsoft Technology Licensing, Llc Secure distribution private keys for use by untrusted code
US10762495B2 (en) 2016-12-30 2020-09-01 Square, Inc. Third-party access to secure hardware
US10783517B2 (en) * 2016-12-30 2020-09-22 Square, Inc. Third-party access to secure hardware
CN107145781A (zh) * 2017-04-18 2017-09-08 北京思特奇信息技术股份有限公司 一种对应用程序进行安全检测的方法及装置
US11194562B2 (en) * 2017-05-19 2021-12-07 Blackberry Limited Method and system for hardware identification and software update control
WO2018227729A1 (zh) * 2017-06-14 2018-12-20 华为技术有限公司 一种嵌入式通用集成电路卡配置文件的管理方法及装置
US10558812B2 (en) * 2017-06-21 2020-02-11 Microsoft Technology Licensing, Llc Mutual authentication with integrity attestation
US10938560B2 (en) 2017-06-21 2021-03-02 Microsoft Technology Licensing, Llc Authorization key escrow
US10440006B2 (en) 2017-06-21 2019-10-08 Microsoft Technology Licensing, Llc Device with embedded certificate authority
US10949189B2 (en) 2017-06-28 2021-03-16 Square, Inc. Securely updating software on connected electronic devices
US10635820B1 (en) 2017-09-29 2020-04-28 Square, Inc. Update policy-based anti-rollback techniques
CN108363580A (zh) * 2018-03-12 2018-08-03 平安普惠企业管理有限公司 应用程序安装方法、装置、计算机设备和存储介质
US11625725B1 (en) * 2018-08-09 2023-04-11 Amazon Technologies, Inc. Stateless secure payment system
US10671375B1 (en) * 2018-11-09 2020-06-02 Capital One Services, Llc Tokenized mobile device update systems and methods
CN110908738B (zh) 2019-11-29 2021-03-23 百度在线网络技术(北京)有限公司 用于运行小程序的方法和装置
CA3116935A1 (en) * 2020-05-05 2021-11-05 Legic Identsystems Ag Electronic device
US11277525B2 (en) * 2020-07-31 2022-03-15 Xerox Corporation Methods and systems for customization of a secured kiosk device
US11475140B1 (en) * 2020-11-24 2022-10-18 Amazon Technologies, Inc. Enclave-based cryptography services in edge computing environments
CN115599409B (zh) * 2022-11-30 2023-03-21 紫光同芯微电子有限公司 一种Java卡的应用程序安装方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6005942A (en) * 1997-03-24 1999-12-21 Visa International Service Association System and method for a multi-application smart card which can facilitate a post-issuance download of an application onto the smart card
US20070067373A1 (en) * 2003-11-03 2007-03-22 Steven Higgins Methods and apparatuses to provide mobile applications
CN101073098A (zh) * 2004-12-07 2007-11-14 皇家飞利浦电子股份有限公司 多应用程序智能卡上的应用程序管理系统及方法
CN101258505A (zh) * 2005-07-26 2008-09-03 苹果公司 安全的软件更新
US20110010699A1 (en) * 2009-07-09 2011-01-13 Simon Cooper Methods and Systems for Upgrade and Synchronization of Securely Installed Applications on a Computing Device
US20130347064A1 (en) * 2012-06-15 2013-12-26 Visa International Services Association Method and apparatus for secure application execution

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5887163A (en) 1997-04-04 1999-03-23 Compaq Computer Corporation Method and apparatus for providing dual booting capabilities to a computer system
US6718549B1 (en) * 1999-05-05 2004-04-06 Microsoft Corporation Methods for managing the distribution of client bits to client computers
US6880084B1 (en) * 2000-09-27 2005-04-12 International Business Machines Corporation Methods, systems and computer program products for smart card product management
US6792564B2 (en) 2001-03-01 2004-09-14 International Business Machines Corporation Standardized format for reporting error events occurring within logically partitioned multiprocessing systems
US6775823B2 (en) 2001-03-07 2004-08-10 Palmsource, Inc. Method and system for on-line submission and debug of software code for a portable computer system or electronic device
JP2003044155A (ja) 2001-07-30 2003-02-14 Hitachi-Lg Data Storage Inc ソフトウェアのインストール方法及びファームウェアのアップデート方法及びそれらに用いる記録再生装置及び記録媒体
JP2003114806A (ja) 2001-10-04 2003-04-18 Hitachi Ltd Os更新方法及びセキュリティ制御方法並びにその実施装置
JP2003187190A (ja) * 2001-12-19 2003-07-04 Hitachi Ltd Icカード管理システム
US7496757B2 (en) * 2002-01-14 2009-02-24 International Business Machines Corporation Software verification system, method and computer program element
US7275105B2 (en) 2002-01-16 2007-09-25 Laszlo Systems, Inc. Enabling online and offline operation
US7127456B1 (en) 2002-12-05 2006-10-24 Ncr Corp. System and method for logging database queries
US7519630B2 (en) 2002-12-16 2009-04-14 Dell Products L.P. Method and system for automated testing of versioned information handling system applications
US7734549B2 (en) * 2002-12-31 2010-06-08 Motorola, Inc. Methods and apparatus for managing secured software for a wireless device
US7177915B2 (en) * 2002-12-31 2007-02-13 Kurt Kopchik Method and apparatus for wirelessly establishing user preference settings on a computer
US8219801B2 (en) * 2003-03-10 2012-07-10 International Business Machines Corporation Method of authenticating digitally encoded products without private key sharing
US7191364B2 (en) 2003-11-14 2007-03-13 Microsoft Corporation Automatic root cause analysis and diagnostics engine
JP4762693B2 (ja) 2005-11-22 2011-08-31 株式会社日立製作所 ファイルサーバ、ファイルサーバのログ管理システム及びファイルサーバのログ管理方法
JP4946141B2 (ja) 2006-04-11 2012-06-06 ブラザー工業株式会社 構成変更プログラム、および情報処理装置
EP1936574A1 (en) * 2006-12-01 2008-06-25 Cassis International PTE Ltd. CAP file for the personalisation of a Java application
CA2578466A1 (en) * 2007-01-12 2008-07-12 Truecontext Corporation Method and system for customizing a mobile application using a web-based interface
US8688093B2 (en) * 2007-09-13 2014-04-01 Sony Corporation Device and method for preserving customized user settings when transitioning between mobile communication devices
US8606765B2 (en) 2007-11-30 2013-12-10 Red Hat, Inc. Systems and methods for updating software appliances
DE102008033976A1 (de) * 2008-07-21 2010-01-28 Giesecke & Devrient Gmbh Laden und Aktualisieren einer personalisierungsbedürftigen Applikation
US8150808B2 (en) 2009-10-21 2012-04-03 Delphix Corp. Virtual database system
US8296756B1 (en) 2009-11-06 2012-10-23 Southern Company Services, Inc. Patch cycle master records management and server maintenance system
US20110179268A1 (en) * 2010-01-20 2011-07-21 Microsoft Corporation Protecting applications with key and usage policy
TWI514896B (zh) 2010-02-09 2015-12-21 Interdigital Patent Holdings 可信賴聯合身份方法及裝置
US8881055B1 (en) * 2010-05-18 2014-11-04 Google Inc. HTML pop-up control
US8578214B2 (en) 2010-09-09 2013-11-05 International Business Machines Corporation Error handling in a virtualized operating system
US9158605B2 (en) 2010-12-01 2015-10-13 Microsoft Technology Licensing, Llc Method, system and device for validating repair files and repairing corrupt software
US8826260B2 (en) * 2011-01-11 2014-09-02 Intuit Inc. Customization of mobile-application delivery
US8745612B1 (en) * 2011-01-14 2014-06-03 Google Inc. Secure versioning of software packages
US9990237B2 (en) 2011-02-23 2018-06-05 Red Hat Israel, Ltd. Lockless write tracking
DE102011015711A1 (de) 2011-03-31 2012-10-04 Giesecke & Devrient Gmbh Aktualisierung einer Datenträgerapplikation
AU2012284047B2 (en) 2011-07-18 2016-10-06 Visa International Service Association Mobile device with secure element
US20130067451A1 (en) * 2011-09-12 2013-03-14 Microsoft Corporation Application deployment and registration in a multi-user system
WO2013073034A1 (ja) 2011-11-17 2013-05-23 トヨタ自動車株式会社 車両および電力供給システム
EP2605202B1 (en) 2011-12-15 2015-07-08 BlackBerry Limited Method and device for managing a secure element
US20140031024A1 (en) * 2012-02-05 2014-01-30 Rfcyber Corporation Method and system for providing controllable trusted service manager
EP2626804B1 (en) * 2012-02-09 2017-09-13 Inside Secure Method for managing memory space in a secure non-volatile memory of a secure element
KR102003850B1 (ko) * 2012-06-04 2019-07-25 삼성전자주식회사 단말의 애플리케이션 제공 방법 및 그 단말
US20140019367A1 (en) 2012-07-13 2014-01-16 Apple Inc. Method to send payment data through various air interfaces without compromising user data
FR2993682B1 (fr) * 2012-07-20 2014-08-22 Oberthur Technologies Mise a jour d'un systeme d'exploitation pour element securise
CA2830260C (en) 2012-10-17 2021-10-12 Royal Bank Of Canada Virtualization and secure processing of data
GB201221433D0 (en) 2012-11-28 2013-01-09 Hoverkey Ltd A method and system of providing authentication of user access to a computer resource on a mobile device
EP2816825B1 (en) * 2013-02-13 2019-04-24 Nxp B.V. NFC-enabled Mobile Device, NFC reader and NFC system for Supporting a Plurality of Proximity Services
US10108409B2 (en) * 2014-01-03 2018-10-23 Visa International Service Association Systems and methods for updatable applets

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6005942A (en) * 1997-03-24 1999-12-21 Visa International Service Association System and method for a multi-application smart card which can facilitate a post-issuance download of an application onto the smart card
US20070067373A1 (en) * 2003-11-03 2007-03-22 Steven Higgins Methods and apparatuses to provide mobile applications
CN101073098A (zh) * 2004-12-07 2007-11-14 皇家飞利浦电子股份有限公司 多应用程序智能卡上的应用程序管理系统及方法
CN101258505A (zh) * 2005-07-26 2008-09-03 苹果公司 安全的软件更新
US20110010699A1 (en) * 2009-07-09 2011-01-13 Simon Cooper Methods and Systems for Upgrade and Synchronization of Securely Installed Applications on a Computing Device
US20130347064A1 (en) * 2012-06-15 2013-12-26 Visa International Services Association Method and apparatus for secure application execution

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105975302A (zh) * 2016-05-03 2016-09-28 深圳市金立通信设备有限公司 一种应用安装方法及终端
CN110786032A (zh) * 2017-06-21 2020-02-11 微软技术许可有限责任公司 设备供应
CN107493291A (zh) * 2017-08-31 2017-12-19 阿里巴巴集团控股有限公司 一种基于安全元件se的身份认证方法和装置
CN107493291B (zh) * 2017-08-31 2020-03-27 阿里巴巴集团控股有限公司 一种基于安全元件se的身份认证方法和装置
US11374760B2 (en) 2017-09-13 2022-06-28 Microsoft Technology Licensing, Llc Cyber physical key
CN109388419A (zh) * 2018-10-17 2019-02-26 阳光电源股份有限公司 一种光伏电站设备软件升级系统、方法及装置
CN109491672A (zh) * 2018-10-23 2019-03-19 平安普惠企业管理有限公司 金融小程序的实现方法、装置、计算机设备及存储介质
CN109669736A (zh) * 2018-12-18 2019-04-23 北京城市网邻信息技术有限公司 一种小程序的加载方法、装置、终端设备和存储介质
CN111651734A (zh) * 2020-05-27 2020-09-11 支付宝(杭州)信息技术有限公司 小程序应用的安装管理方法、装置、设备及系统
CN112416374A (zh) * 2020-11-18 2021-02-26 北京字跳网络技术有限公司 数据处理方法、装置、终端和存储介质
CN112416374B (zh) * 2020-11-18 2022-10-25 北京字跳网络技术有限公司 数据处理方法、装置、终端和存储介质
CN115017498A (zh) * 2021-11-19 2022-09-06 荣耀终端有限公司 小应用程序的操作方法和电子设备
CN115017498B (zh) * 2021-11-19 2023-02-28 荣耀终端有限公司 小应用程序的操作方法和电子设备
CN116305093A (zh) * 2021-11-19 2023-06-23 荣耀终端有限公司 小应用程序的操作方法和电子设备

Also Published As

Publication number Publication date
EP2988470B1 (en) 2020-07-01
CN105391840B (zh) 2018-12-25
US20160054989A1 (en) 2016-02-25
EP2988470A1 (en) 2016-02-24
US9934014B2 (en) 2018-04-03

Similar Documents

Publication Publication Date Title
CN105391840A (zh) 自动创建目标应用程序
US9880830B2 (en) On-board applet migration
KR101712784B1 (ko) 글로벌 플랫폼 규격을 사용하는 발행자 보안 도메인에 대한 키 관리 시스템 및 방법
US10936719B2 (en) Preserving trust data during operating system updates of a secure element of an electronic device
US7882208B2 (en) Information management apparatus, information management method, and program for managing an integrated circuit
US10699277B2 (en) Security for mobile payment applications
AU2015334634B2 (en) Transaction messaging
KR100978053B1 (ko) 무선 단말기에서 보안 요소를 초기화하기 위한 방법 및장치
US20130145455A1 (en) Method for accessing a secure storage, secure storage and system comprising the secure storage
US20120284514A1 (en) Managing data for authentication devices
CN106156607B (zh) 一种SElinux安全访问方法和POS终端
CN102999839A (zh) 一种基于云平台、虚拟se的电子货币安全支付系统和方法
KR101040577B1 (ko) 모바일 애플리케이션 재발급 방법 및 시스템
CN105825116B (zh) 用于管理内容的方法和安全元件
Tamrakar Applications of Trusted Execution Environments (TEEs)
EP2985724B1 (en) Remote load and update card emulation support
Leinonen et al. Implementing Open Authentication for Web Services with a Secure Memory Card
CN116686315A (zh) 用于支持二级平台包的方法和装置
Yeung et al. Securing iMash: Integration of Smart Card Technology With A Pervasive Computing Framework
Magic Remote Method Invocation for Android Platform

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant