CN105900104B - 安全元件中的小应用程序迁移 - Google Patents

安全元件中的小应用程序迁移 Download PDF

Info

Publication number
CN105900104B
CN105900104B CN201480072376.1A CN201480072376A CN105900104B CN 105900104 B CN105900104 B CN 105900104B CN 201480072376 A CN201480072376 A CN 201480072376A CN 105900104 B CN105900104 B CN 105900104B
Authority
CN
China
Prior art keywords
applet
safety element
update
previous version
electronic equipment
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
CN201480072376.1A
Other languages
English (en)
Other versions
CN105900104A (zh
Inventor
A·A·柯恩
J·林德
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 CN105900104A publication Critical patent/CN105900104A/zh
Application granted granted Critical
Publication of CN105900104B publication Critical patent/CN105900104B/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/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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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/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
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles

Abstract

电子设备(诸如蜂窝电话)在电子设备中的安全元件上自动安装对小应用程序的更新并使对小应用程序的更新个性化。具体地,当从更新设备(诸如服务器)接收包含更新的数字签名的更新包时,安全元件识别被安装在安全元件上的任何先前版本的小应用程序。如果存在任何先前安装的版本,则安全元件使用与安全元件的供应商相关联的加密密钥来验证更新包的数字签名。随后,安全元件卸载先前版本的小应用程序并且导出相关联的用户数据。接下来,安全元件安装对小应用程序的更新,并且使用用户数据来使新版本的小应用程序个性化。

Description

安全元件中的小应用程序迁移
技术领域
所述实施方案一般涉及无线电子设备,并且更具体地涉及用于更新被安装在无线电子设备上的小应用程序的技术。
背景技术
许多现代的电子设备通常包括用于与其他电子设备进行无线通信的联网子系统。例如,这些电子设备可包括联网子系统,该联网子系统具有蜂窝网络接口(UMTS,LTE等)、无线局域网接口(诸如电气与电子工程师协会(IEEE)802.11标准中所述的无线网络或来自Kirkland,Washington的蓝牙特别兴趣小组的BluetoothTM、和/或另一种类型的无线接口(诸如近场通信接口)。
当前,对使用此类电子设备进行金融交易的兴趣日益增加。为了促进该功能,电子设备可包括用于提供安全性、保密性和一个或多个应用程序环境的安全元件。该安全元件可包括在安全元件的环境中执行的一个或多个小应用程序或应用程序(诸如与信用卡相关联的支付小应用程序),其中小应用程序允许安全元件与另一电子设备诸如销售终端进行金融交易。
然而,可能难以安全地更新此类小应用程序。具体地,如果在安装新版本的小应用程序之前卸载或删除旧版本的小应用程序,则用户数据可能会丢失。而且,在安装之前从旧版本小应用程序向电子设备迁移用户数据存在安全风险。
此外,问题还与从安全服务器安装新版本的小应用程序相关联。具体地,服务器可能变成瓶颈,尤其是如果小应用程序需要在许多电子设备上同时更新时。
因此,需要可升级技术和安全技术来更新被安装在电子设备上的小应用程序。
发明内容
所述实施方案涉及电子设备(诸如蜂窝电话),该电子设备包括:天线;与更新设备(向电子设备提供更新)进行无线通信的接口电路;以及安全元件。在操作期间,该安全元件从更新设备接收具有数字签名的更新包,其中更新包包括对被安装在安全元件上的小应用程序的更新。随后,安全元件识别被安装在安全元件上的小应用程序的至少一个先前版本。该安全元件还可选地使用与安全元件的供应商相关联的加密密钥来验证数字签名。(然而,在其他实施方案中,加密密钥可与电子设备的提供商和/或认证管理机构相关联。)接下来,安全元件卸载小应用程序的至少一个先前版本,并且导出与该小应用程序的至少一个先前版本相关联的用户数据。而且,安全元件安装对小应用程序的更新,并且使用用户数据来使小应用程序个性化。
在一些实施方案中,在安装对小应用程序的更新之前,安全元件识别先前被安装在安全元件上的小应用程序的两个或更多个版本,并且卸载先前安装的小应用程序的两个或更多个版本。
另外,在安装对小应用程序的更新之前,安全元件可使用与供应商相关联的第二加密密钥来对更新包进行解密。该第二加密密钥可与加密密钥相同或不同。
注意,可通过搜索与由安全元件中的处理器执行的正常操作系统相关联的注册表来识别小应用程序的至少一个先前版本。
而且,数字签名可与供应商的私有加密密钥相关联,并且安全元件可使用供应商的对应公共加密密钥来验证该数字签名。而且,在其他实施方案中,使用对称加密密钥。因此,数字签名可与供应商的加密密钥相关联,并且安全元件可选地使用供应商的加密密钥来验证该数字签名(同样,在其他实施方案中,加密密钥可与电子设备的提供商和/或认证管理机构相关联)。
而且,接收、识别、验证、卸载、安装和/或个性化操作可由更新操作系统来执行(该更新操作系统由安全元件中的处理器执行),并且更新操作系统可与由处理器所执行的、执行安全元件的其他功能的正常操作系统分开。
在一些实施方案中,安全元件包括处理器和耦接至该处理器并存储由处理器所执行的程序模块的存储器。该程序模块可包括用于由安全元件执行的上述操作中的至少一些操作的指令。
另一实施方案提供安全元件。
另一实施方案提供一种与电子设备中的安全元件结合使用的计算机程序产品。该计算机程序产品可包括用于由安全元件执行的上述操作中的至少一些操作的指令。
另一实施方案提供一种更新被安装在电子设备中的安全元件中的小应用程序的方法,该小应用程序可由安全元件中的处理器执行。在操作期间,处理器从更新设备接收具有数字签名的更新包,其中该更新包包括对被安装在安全元件上的小应用程序的更新。随后,处理器识别被安装在安全元件上的小应用程序的至少一个先前版本。处理器还使用与安全元件的供应商相关联的加密密钥来验证数字签名。接下来,处理器卸载小应用程序的至少一个先前版本并且导出与小应用程序的至少一个先前版本相关联的用户数据。而且,处理器安装对小应用程序的更新,并且使用用户数据来使小应用程序个性化。
另一实施方式提供一种包括电子设备和更新设备的系统。
提供前述发明内容是为了概述一些示例性实施方案,以便提供对本文所述的主题的各个方面的基本理解。因此,上述特征仅为示例并且不应理解为以任何方式缩小本文所述的主题的范围或实质。本文所述的主题的其他特征、方面和优点将根据以下具体实施方式、附图和权利要求书而变得显而易见。
附图说明
图1是示出电子设备根据本公开的实施方案进行通信的框图。
图2是根据本公开的实施方案的示出图1的电子设备中的一个电子设备的框图。
图3是示出根据本公开的实施方案的用于更新被安装在图1中的电子设备中的一个电子设备上的小应用程序的方法的流程图。
图4是示出根据本公开的实施方案的用于卸载图1中的电子设备中的一个电子设备中的某版本的小应用程序并且导出个人数据的方法的流程图。
图5是示出根据本公开的实施方案的在图1的电子设备中的一个电子设备内进行通信的图示。
图6是示出根据本公开的实施方案的用于在图1中的电子设备中的一个电子设备中安装新版本的小应用程序并且导入个人数据的方法的流程图。
图7是示出根据本公开的实施方案的在图1的电子设备中的一个电子设备内进行通信的图示。
图8是示出根据本公开的实施方案的图1的电子设备中的一个电子设备中的注册表条目的图示。
图9是示出根据本公开的实施方案的图6的方法中的预检脚本(preflightscript)的图示。
需注意,在整个附图中类似的附图标号指代对应的部件。此外,相同部件的多个实例由公共前缀指定,该公共前缀通过破折线与实例标号分开。
具体实施方式
电子设备(诸如蜂窝电话)在电子设备中的安全元件上自动安装对小应用程序的更新并使对小应用程序的更新个性化(有时被称为“小应用程序迁移”)。具体地,当从更新设备(诸如服务器)接收包含更新的数字签名的更新包时,安全元件识别被安装在安全元件上的任何先前版本的小应用程序。如果存在任何先前安装的版本,则安全元件可选地使用与安全元件的供应商相关联的加密密钥来验证更新包的数字签名。(然而,在其他实施方案中,加密密钥与电子设备的提供商和/或认证管理机构相关联。)随后,安全元件卸载先前版本的小应用程序并且导出相关联的用户数据。接下来,安全元件安装对小应用程序的更新,并且使用用户数据来使新版本的小应用程序个性化。以此方式,电子设备在从先前版本的小应用程序保持个性化的同时提供可升级的更新解决方案。
该更新包可经由电子设备与更新设备之间的无线通信而被接收。该无线通信可涉及输送由电子设备和更新设备中的无线电部件根据通信协议诸如电气与电子工程师协会(IEEE)802.11标准、BluetoothTM(来自Kirkland,Washington的蓝牙特别兴趣小组)、和/或另一种类型的无线接口(诸如近场通信标准或规范(来自Wakefield,Massachusetts的NFC论坛))传输和接收的分组。此外,通信协议可与第三代移动电信技术(诸如符合瑞士日内瓦的国际电信联盟的国际移动电信-2000规范的通信协议)、第四代移动电信技术(诸如符合瑞士日内瓦的国际电信联盟的国内移动电信高级规范的通信协议)和/或其他蜂窝电话通信技术兼容。
电子设备和更新设备之间的通信在图1中示出,该图1呈现了示出电子设备110和更新设备112进行通信的框图。如下文参考图3-图7进一步所述的,这些电子设备可在更新设备112(诸如服务器或者更新计算机)向更新包提供对被安装在电子设备110(诸如蜂窝电话)上的先前版本的小应用程序(即,新版本的小应用程序)的更新时进行通信。例如,先前版本的小应用程序可被安装在电子设备110中的安全元件上。此外,电子设备110的用户可利用用户数据先前定制先前版本或使先前版本个性化。
在下文所述的更新技术中,该安全元件通过识别至少一个(并且在一些实施方案中,所有)先前安装版本(或可替代地,实例)的小应用程序来确定更新包是否与电子设备110有关。随后,安全元件通过验证与安全元件的供应商相关联的数字签名来认证更新包。(可替代地,数字签名可与电子设备110的提供商或者被安装在电子设备110中的安全元件上的小应用程序相关联。)例如,安全元件可使用与供应商相关联的加密密钥(诸如公共加密密钥)来验证更新包。此外,安全元件可使用可与加密密钥相同或不同的第二加密密钥来对更新包进行解密。在示例性实施方案中,使用公-私加密密钥技术。具体地,可使用供应商的私有加密密钥来对更新包进行标记,并且数字签名可被验证以及可使用供应商的公共加密密钥来对该更新包进行解密。然而,在其他实施方案中,使用对称加密技术。因此,可使用相同加密密钥来标记、加密和/或解密更新包。
随后,安全元件卸载(以及在一些实施方案中,所有)先前版本的小应用程序并且导出相关联的用户数据。接下来,安全元件安装对小应用程序的更新,并且使用用户数据来使新版本的小应用程序个性化。
采用这些方式,电子设备110和更新设备112可用于安全和灵活地散布和安装对先前被安装在电子设备110上的一个或多个小应用程序的个性化更新,同时迁移或保持相关联的用户数据。
如前所述,电子设备110和/或更新设备112之间的通信可涉及对包括更新包的分组的交换。这些分组可被包括在一个或多个无线信道中的帧中。
如下文参考图2进一步所述的,电子设备110和/或更新设备112可包括子系统,诸如:联网子系统,存储器子系统和处理子系统和安全子系统。此外,电子设备110和/或更新设备112可包括联网子系统中的无线电部件114。更一般地,电子设备110和/或更新设备112可包括具有联网子系统的任何电子设备(或可被包括在该任何电子设备内),该联网子系统使得电子设备110和/或更新设备112能够与另一电子设备进行无线通信。其可包括在无线信道上传输帧,以使得电子设备能够进行初始接触,之后是交换后续的数据帧/管理帧(诸如用于建立连接的连接请求),配置安全选项(例如IPSEC),传输和接收分组或帧等。
如图1中可看出,无线信号116(由锯齿状线表示)从电子设备110中的无线电部件114-1被传输/由电子设备110中的无线电部件114-1接收。这些无线信号由更新设备112中的无线电部件114-2接收/从更新设备112中的无线电部件114-2被传输。(注意,电子设备110和/或更新设备112之间的通信还可经由网络118发生,该网络118可涉及利用不同于无线信号116的通信协议进行有线通信。)而且,无线通信可涉及或也可不涉及在电子设备110和/或更新设备112之间建立连接,因此可涉及或也可不涉及经由无线网络(诸如蜂窝电话网络)进行通信。
在所述实施方案中,处理电子设备110和/更新设备112中的分组或帧包括:接收具有分组或帧的无线信号116;从所接收的无线信号116中解码/提取分组或帧以获取分组或帧;以及处理分组或帧以确定被包含在分组或帧中的信息(诸如更新包的至少一部分)。
如先前所述,通常电子设备110和/或更新设备112之间的通信可被加密。该加密可使用加密密钥(诸如与小应用程序和/或安全元件的供应商相关联的加密密钥)。而且,加密可使用对称加密技术或非对称加密技术。
虽然我们以图1所示的环境为示例进行描述,但是在另选的实施方案中,可呈现不同数量或类型的电子设备。例如,一些实施方案包括更多或更少的电子设备。又如,在另一个实施方案中,不同的电子设备传输和/或接收分组或帧。
现在对电子设备的实施方案进行描述。图2呈现了用于示出电子设备110的框图。该电子设备包括处理子系统210、存储器子系统212、联网子系统214、认证子系统216和安全子系统218。处理子系统210包括被配置为执行计算操作的一个或多个设备。例如,处理子系统210可包括一个或多个微处理器、专用集成电路(ASIC)、微控制器、可编程逻辑器件和/或一个或多个数字信号处理器(DSP)。
此外,处理子系统210可包括执行处理子系统210中的其他部件的安全服务并且与电子设备110中的其他子系统进行安全通信的安全区域处理器220(其为处理子系统210中的一个或多个处理器内的片上系统)。安全区域处理器220可包括安全启动ROM、一个或多个处理器、一个或多个安全外围设备和/或其他部件。该安全外围设备可为被配置为有助于由安全区域处理器220执行的安全服务的硬件。例如,该安全外围设备可包括:实现各种认证技术的认证硬件、被配置为执行加密的加密硬件、被配置为通过安全接口传送至其他部件的安全接口控制器、和/或其他部件。在一些实施方案中,能够由安全区域处理器220执行的指令被存储在存储器子系统212中的被分配给安全区域处理器220的可信区域中,并且安全区域处理器220从可信区域获取指令以供执行。安全区域处理器220可与处理子系统210的其余部分(谨慎控制的接口除外)隔离,从而形成用于安全区域处理器220及其部件的安全区域。由于到安全区域处理器220的接口被谨慎地控制,所以可阻止对安全区域处理器220内的部件(诸如处理器或安全引导ROM)的直接访问。在一些实施方案中,安全区域处理器220加密和/或解密与认证子系统216进行通信的认证信息,并加密和/或解密与安全子系统218进行通信的信息(诸如令牌)。此外,安全区域处理器220可将认证信息与所存储的认证进行比较,并且如果获得匹配,则可将具有认证完成指示符的加密令牌提供到安全元件230,和/或可将认证完成指示符作为标记在操作系统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联网系统、蜂窝联网系统(诸如,3G/4G网络,诸如UMTS、LTE等)、通用串行总线(USB)联网系统、基于IEEE 802.11中所述的标准的联网系统(例如联网系统)、以太网联网系统、和/或另一种通信系统(诸如近场通信系统)。
联网子系统214包括处理器、控制器、无线电部件/天线、插座/插头、和/或用于耦接到每个所支持的联网系统或通信系统、在每个所支持的联网系统或通信系统上进行通信并且为每个所支持的联网系统或通信系统处理数据和事件的其他设备需要指出,用于耦接到每个网络系统的网络、在每个网络系统的网络上进行通信、和处理每个网络系统的网络上的数据和事件的机构有时被统称为用于该网络系统的“网络接口”。此外,在一些实施方案中,电子设备之间的“网络”尚不存在。因此,电子设备110可使用联网子系统214中的机构来执行电子设备110和更新设备112(图1)之间的简单无线通信,例如传输通告帧和/或近场通信。
认证子系统216可包括一个或多个处理器、控制器和设备,以用于从电子设备110的用户接收认证信息,并且用于将该认证信息安全地传送至处理子系统210(诸如通过加密认证信息)。例如,认证信息可包括:由生物特征传感器226(诸如指纹传感器、视网膜传感器、手掌传感器、数字签名识别传感器等)所获取的生物特征标识符;使用用户界面设备228(诸如小键盘、触敏显示器、光学字符识别和/或语音识别)所接收的与支付小应用程序236中的一个支付小应用程序相关联的个人识别码(PIN);以及使用用户界面设备228所接收的用于对电子设备110的至少一些功能进行解码的密码。
此外,安全子系统218可包括安全元件230,该安全元件包括存储器和一个或多个处理器。需要指出,安全元件230可以是在电子设备110中的用于提供安全性、机密性、以及为了支持各种商业模型所需的多个应用环境的防篡改部件。安全元件230可以多种形状因数中的一种或多种形状因数存在,诸如:通用集成电路卡(UICC)、嵌入式安全元件(位于电子设备110中的电路板上)、智能安全数字(SD)卡、智能微型SD卡等。
此外,安全元件230可包括在安全元件230的环境中(诸如在安全元件230的操作系统232中、和/或在安全元件230上执行的Java运行环境中)执行的一个或多个小应用程序或应用程序。例如,一个或多个小应用程序可包括用于以下操作的认证小应用程序:执行非接触式注册服务、加密/解密与安全区域处理器220进行通信的分组或令牌、在安全元件230的操作系统232中设置一个或多个软件标记(诸如认证完成标记)、和/或将信息传送至一个或多个支付小应用程序236。一个或多个小应用程序可包括一个或多个支付小应用程序236,当由程序模块246激活时,以及基于一个或多个软件标记和/或当电子设备110靠近其他电子设备时与另一电子设备进行金融交易。具体地,支付小应用程序236可各自与金融工具(诸如信用卡、借记卡、预付费借记卡、礼品卡,以及更具体地由金融机构例如银行提供的金融工具,该金融工具与用户诸如电子设备110的用户的金融账户相关联)相关联。此外,安全元件230可包括与一个或多个支付小应用程序236相关联的信息(诸如,金融凭据,例如设备主账号或DPAN或PIN,例如与给定支付小应用程序相关联的借记卡号,以及与给定支付小应用程序相关联的一个或多个加密密钥),当进行金融交易时使用该支付小应用程序。(注意,DPAN可与金融账户的金融主账号或FPAN诸如信用卡号相关联但不同。DPAN可为用于金融账户的虚拟标识符。)
该认证小应用程序可在安全元件230中的主安全域或发行者安全域(诸如控制管理机构安全域)中执行,而支付小应用程序236可在补充安全域中执行。这些安全域之间的通信可使用特定于安全域的不同加密/解密密钥来进行加密。在电子设备110中和/或在电子设备110和/或更新设备112(图1)之间的通信期间,加密/解密可涉及对称加密和/或非对称加密。此外,所传送的信息还可包括特定于电子设备110和/或电子设备110中的部件诸如安全元件230或支付小应用程序236中的一个支付小应用程序的数字签名。
在电子设备110的操作期间,用户可使用卡券簿248来选择或激活一个或多个支付小应用程序236。如果支付小应用程序支持认证完成标记(如通过启用或设定支付小应用程序中的认证支持所指示的),为了支付小应用程序与另一电子设备进行金融交易,支付小应用程序可能需要被激活并且认证完成标记可能需要在安全元件230中被设定或启用(指示用户已被认证)。相反,对于不支持认证完成标记的支付小应用程序236中的一个支付小应用程序,可在该支付小应用程序活动时进行金融交易(即,支付小应用程序的操作并未受到安全元件230中的认证完成标记的设定或启用的门控)。尽管本论述示出了使用全局认证完成标记,但需注意,在一些实施方案中,独立的认证完成标记与至少一些支付小应用程序236相关联(即,可能存在用于给定支付小应用程序的特定认证完成标记等)。
当电子设备110邻近其他电子设备(诸如,销售点终端)时或当安全区域处理器220向安全元件230提供支付命令时,特定的、激活的和/或认证的支付小应用程序236中的一个支付小应用程序可向接口电路222或向安全区域处理器220(随后向接口电路222提供支付包)提供支付包(可经过加密或未经加密)。随后,接口电路222可使用天线224来将支付包传送至其他电子设备(诸如销售点终端)。注意,支付包可包括金融信息(诸如与支付小应用程序236中的一个支付小应用程序相关联的金融凭据或DPAN)。
该金融信息(以及由其他电子设备提供的附加信息,诸如商户标识符、金融交易量等)可由其他电子设备传送至支付网络118(图1),以完成金融交易。一旦金融交易完成,则接口电路222可接收来自管理电子设备的通知(可与电子设备110的提供商相关联)。卡券簿248可将该通知提供至显示子系统240以用于显示,因此可警告电子设备110的用户该金融交易成功完成。
如前所述,在更新技术期间,电子设备110可从更新设备112(图1)接收数字签名的更新包。具体地,接口电路222可接收更新包,并且可将该更新包提供至安全区域处理器220。随后,安全区域处理器220可将更新包安全地传输至安全元件230。作为响应,操作系统232(或由操作系统232的环境中的安全元件230中的处理器执行的程序模块)可识别被安装在安全元件230上的小应用程序236中的一个小应用程序(诸如,支付小应用程序)的至少一个先前版本。例如,可通过搜索与操作系统232相关联的注册表来识别小应用程序236中的一个小应用程序的至少一个先前版本。
而且,操作系统232可使用与安全元件230的供应商(或小应用程序的供应商)相关联的加密密钥来可选地验证数字签名。然而,在其他实施方案中,加密密钥与电子设备的提供商和/或认证管理机构相关联。
在一些实施方案中,操作系统232使用与安全元件230的供应商(或小应用程序的供应商)相关联的第二加密密钥来对更新包进行解密。此第二加密密钥可与加密密钥相同或不同。
接下来,操作系统232可卸载小应用程序的至少一个先前版本,并且可导出与小应用程序的至少一个先前版本相关联的用户数据。而且,操作系统232可安装对小应用程序的更新,并且可使用用户数据来使小应用程序个性化。卸载(或删除)、导出、安装小应用程序并使小应用程序个性化可发生在安全元件230上的安全域内。
注意,由操作系统232执行的上述操作中的一个或多个操作可由更新操作系统234(诸如高端引导加载器)执行,该更新操作系统234由安全元件中的处理器执行。该更新操作系统可与执行安全元件230的其他功能的操作系统232分开。更新操作系统234可更新操作系统232和/或与一个或多个小应用程序236相关联的软件的一部分。
在电子设备110内,处理子系统210、存储器子系统212、联网子系统214、认证子系统216和安全子系统218可使用一个或多个互连件诸如总线238而被耦接。这些互连件可包括可供子系统用于在彼此之间传送命令和数据的电连接件、光学连接件、和/或光电连接件。需注意,不同的实施方案可包括子系统之间的不同数量或配置的电连接件、光连接件、和/或光电连接件。在一些实施方案中,电子设备110可检测对安全部件(诸如安全区域处理器220、安全元件230和/或总线238)的篡改,并且如果检测到篡改,则可破坏对密钥或认证信息(诸如所存储的生物特征标识符)的加密/解密。
在一些实施方案中,电子设备110包括用于在显示器上显示信息的显示子系统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(图1)以及在电子设备110处从更新设备112(图1)接收信号的硬件机构和/或软件机构。除了本文所述的机制,无线电部件在本领域中是公知的,因此没有详细描述。通常,联网子系统214和/或集成电路可包括任意数量的无线电部件。需注意,多无线电部件实施方案中的无线电部件以类似于所述单无线电部件实施方案的方式起作用。
在一些实施方案中,联网子系统214和/或集成电路包括将一个或多个无线电部件配置为在给定的通信信道(诸如给定的载波频率)上进行传输和/或接收的配置机构(诸如一个或多个硬件机构和/或软件机构)。例如,在一些实施方案中,该配置机构可用于将无线电部件从在给定通信信道上进行监视和/或传输切换到在另一通信信道上进行监视和/或传输。(需注意,本文所使用的“监视”包括从另一电子设备接收信号,并且可能对所接收的信号执行一个或多个处理操作,诸如确定所接收的信号是否包括通告帧等)
尽管使用与蜂窝电话网络兼容的通信协议作为示例性示例,但更新技术的所述实施方案可用于多种网络接口或通信接口。此外,虽然前述实施方案中的一些操作在硬件或软件中实现,但是一般来讲,前述实施方案中的操作可在多种配置和架构中实现。因此,前述实施方案中的一些或全部操作可在硬件、软件中执行或在硬件和软件两者中执行。
尽管前述论述关注电子设备110中的硬件、软件和功能,但更新设备112(图1)可具有相同或类似的硬件(处理器、存储器、联网接口等)和/或软件来支持由这些实体所执行的操作,如下文参考图3-图7进一步所述的。具体地,这些实体可包括具有执行被存储在存储器子系统中的一个或多个程序模块以执行操作的处理子系统的一个或多个计算机系统、以及用于与其他电子设备诸如电子设备110进行通信的一个或多个联网接口。
现在进一步描述更新或迁移被安装在电子设备中的安全元件上的小应用程序。图3呈现了示出用于更新被安装在电子设备(诸如,图1的电子设备110)上的小应用程序的方法300的流程图,该方法可由电子设备中的安全元件中的处理器执行。例如,处理器可执行包括用于方法300中的操作的指令的程序模块。在操作期间,处理器从更新设备接收具有数字签名的更新包(操作310),其中该更新包包括对被安装在安全元件上的小应用程序的更新。
随后,处理器识别被安装在安全元件上的小应用程序的至少一个先前版本(操作312)。例如,该安全元件可识别先前被安装在安全元件上的小应用程序的两个或更多个版本,并且可卸载先前安装的小应用程序的两个或更多个版本。在一些实施方案中,该安全元件识别先前安装的所有版本的小应用程序,并且卸载先前安装的所有版本的小应用程序。注意,可通过搜索与由安全元件中的处理器执行的正常操作系统相关联的注册表来识别小应用程序的至少一个先前版本。
而且,处理器可选地使用可与安全元件的供应商相关联的加密密钥来验证数字签名(操作314)。(然而,在其他实施方案中,加密密钥与电子设备的提供商和/或认证管理机构相关联。)具体地,数字签名可与供应商的私有加密密钥相关联,并且安全元件可使用供应商的公共加密密钥来验证该数字签名。而且,在其他实施方案中,使用对称加密密钥。因此,在这些实施方案中,数字签名可与供应商的加密密钥相关联,并且安全元件可使用供应商的加密密钥来验证该数字签名。
在一些实施方案中,该安全元件使用可与供应商相关联的第二加密密钥来可选地对更新包进行解密(操作316)。此第二加密密钥可与加密密钥相同或不同。
接下来,处理器卸载小应用程序的至少一个先前版本,并且导出与小应用程序的至少一个先前版本相关联的用户数据(操作318)。
而且,处理器安装对小应用程序的更新,并且使用用户数据来使小应用程序个性化(操作320)。
注意,方法300中的操作中的一个或多个操作可由更新操作系统来执行(该更新操作系统由安全元件中的处理器执行),并且更新操作系统可与由处理器所执行的、执行安全元件的其他功能的正常操作系统分开。(另选地,方法300中的操作中的一个或多个操作可由正常操作系统或可由在与正常操作系统相关联的环境中运行的程序模块来执行。)下面参考图4和图6进一步描述该方法。
在示例性实施方案中,更新技术允许对包括安全元件(诸如图2中的安全元件230)的电子设备上的一个或多个Java Card小应用程序的更新。除了实例化或安装新版本(或可选地,新实例)的小应用程序之外,更新技术还可将用户数据从一个或多个先前版本的小应用程序(例如,当前安装的版本)安全地转移到新版本的小应用程序,并且可卸载(或删除)一个或多个先前版本的小应用程序。该更新技术可解决与对被安装在安全元件上的JavaCard小应用程序的安全更新相关联的若干个问题和挑战。
具体地,在现有更新技术中,Java Card小应用程序可以二进制的格式(可执行加载文件)被加载到安全元件上。小应用程序实例或版本可从这些二进制文件安装,并且可用于支持各种使用情况。注意,更新包可包括用于具有公共类应用标识符或类AID的一个或多个小应用程序的二进制文件(因此,用于小应用程序的具有不同类AID的更新可被包含在不同的更新包中)。对小应用程序软件的更新通常涉及将新版本的二进制文件加载到安全元件,安装新版本的小应用程序并且任何使新版本的小应用程序个性化。
然而,一旦将新二进制文件加载到安全元件上,可能不存在安全元件可用于确定新二进制文件为新版本的现有二进制文件以及针对与新二进制文件相关联的已安装的小应用程序的每个版本继续创建新版本的小应用程序的任何信息。结果,在现有更新技术中,新实例可能需要针对当前被安装在安全元件上的每个实例或版本来创建。
而且,小应用程序可使用可在个性化阶段期间和/或在其使用期间被填充的用户数据。然而,在现有更新技术中不存在用于将该数据从一个小应用程序实例安全转移到另一个小应用程序实例的方法的情况下,可能需要耗时的重新个性化操作和/或用户数据可能会丢失。
此外,通过要求两个版本的相同二进制文件与两倍小应用程序实例的数量一起保持,现有更新技术可能限制安全元件中的有限的存储器。
在公开的更新技术中,安全元件(在图2中的安全元件230)中的补充安全域数据存储全局服务向外部实体(诸如图1中的更新设备112)提供加密密钥管理和通信访问。而且,安全元件上的安全域可将全局服务暴露于其相关联的应用程序,从而允许应用程序导入数据并将数据导出到由补充安全域管理的安全数据存储器。
如下参考图4和图5所述的,当电子设备接收更新包(可包括新操作系统代码、新包或具有不同于现有包AID的AID的二进制文件、和/或元数据)时,可发生板上(或内部)删除和数据导出处理。随后,如下参考图6和图7所述的,可发生板上安装和小应用程序个性化处理。
然而,在这些处理期间,正常操作系统(诸如图2中的操作系统232)中的一个或多个注册表条目对象可增添“第二AID”字段。具体地,用于小应用程序实例或版本的注册表条目可包括:包AID、类别AID、AID、第二AID、相关联的安全域、特权和生命周期状态。更新包中的元数据部分可包括包AID以及使用操作系统更新私有验证加密密钥进行标记的先前版本的小应用程序的包AID。
在接收到更新包之后,该安全区域处理器(诸如图2中的安全区域处理器220)可提取元数据并且将其用于构建发送到安全元件的更新小应用程序命令(有时被称为“更新小应用程序应用程序协议数据单元命令”)。随后,安全元件可接收被发送给主安全域或发行者安全域的更新小应用程序命令。
如图4所示,图4呈现示出了方法400的流程图,该方法用于卸载某版本的小应用程序以及导出数字设备110(图1)中的个人数据,响应于接收到更新小应用程序命令,安全元件中的正常操作系统可浏览注册表来搜索当前包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存储在每个对应的注册表条目中。一旦放下on_board_install标记,则该AID可替代当前版本的小应用程序AID。注意,对于未被包括在更新表中的小应用程序AID,当前版本的小应用程序AID可被填充在第二AID字段中。
而且,注意,待删除的每个版本或实例(包括不存在于更新表中的小应用程序)可在删除之前被触发并且可将其用户数据导出到其相关联的补充安全域(SSD)。如前所述,补充安全域可实现全局服务并且暴露数据存储器接口。在接收到全局服务请求时,相关联的补充安全域可基于小应用程序的注册表条目来检查用于请求全局服务的小应用程序为其相关联的应用程序中的一个应用程序。
一旦已成功删除所有当前版本的小应用程序,则安全元件中的正常操作系统可阻挡任何随后的应用程序协议数据单元消息(即,实体与电子设备中的部件之间的原子消息),除了:用于选择发行者安全域的命令;以及其他更新小应用程序命令。因此,正常操作系统可拒绝其他应用程序协议数据单元命令(例如,具有特定状态字词)。
在图5中示出了方法400期间的电子设备110内的通信。具体地,安全区域处理器220(并且更一般地,图2中的处理子系统210)可将来自更新包的元数据提供至安全元件230中的发行者安全域(ISD)510。这被作为导出命令被转发至当前版本的小应用程序(CVA)512,该导出命令从操作系统232请求全局服务的补充安全域。在接收到用于指定补充安全域(SSD)514的信息之后,CVA 512从操作系统232请求注册表条目对象或指针。
随后,CVA 512确认其与SSD 514相关联,继而确认与操作系统232的关联。接下来,SSD 514将数据存储器的句柄提供至CVA 512。作为响应,CVA 512将用户数据导出到SSD514,并且指示ISD 510已经完成,这继而通知安全区域处理器220。
在已成功删除当前版本的小应用程序实例或版本并且其用户数据已成功导出到其相关联的安全域之后,电子设备(诸如安全区域处理器)可触发安全元件在操作系统更新模式中进行引导(即,可使用图2中的更新操作系统234)。随后,该电子设备可将操作系统更新包发送到安全元件,除了将更新包存储在其存储器中之外该操作系统更新包还可选地更新其操作系统软件。此外,该更新操作系统可利用新包AID值来填充包AID字段。注意,更新操作系统和正常操作系统可经由标记诸如on_board_load标记来交换信息。
在操作系统更新之后,电子设备可将更新小应用程序应用程序协议数据单元命令发送到发送方安全域。随后,如图6所示,其呈现示出了方法600的流程图,该方法用于安装新版本的小应用程序并且将个人数据导入到电子设备110(图1)上,正常操作系统(诸如图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标记。
安装更新或新版本的小应用程序可发生在更新小应用程序应用程序协议数据单元命令的上下文内。如果安全元件报告错误,则电子设备可发送另一更新小应用程序应用程序协议数据单元命令。
注意,安全元件中的正常操作系统可强化以下规则:可在操作系统更新发生之后处理唯一成功更新小应用程序应用程序协议数据单元命令。然而,电子设备可发送多个更新小应用程序应用程序协议数据单元命令,直到其从发行者安全域接收到完成响应。
在创建并重新个性化所有小应用程序实例或版本之后,安全元件中的正常操作系统可放下来自包的注册表条目的on_board_load标记并且可清除第二AID字段。
在图7中示出了方法600期间电子设备110内的通信。具体地,安全区域处理器220(并且更一般地,图2中的处理子系统210)可将更新命令提供至安全元件230中的发行者安全域(ISD)510。这被作为导入命令被转发至更新或新版本的小应用程序(NVA),该导入命令从操作系统232请求全局服务的补充安全域。在接收到用于指定(SSD)514的信息之后,NVA710从操作系统232请求注册表条目对象或指针。
随后,NVA 710确认与SSD 514相关联,继而确认与操作系统232的关联。接下来,SSD 514将数据存储器的句柄提供至NVA 710。作为响应,NVA 710将用户数据导入SSD 514,并且指示ISD 510已完成,这继而通知安全区域处理器220。
如前所述,可在更新技术期间更新包的注册表条目。这在图8中示出,其呈现了在更新之前和之后具有包AID和三个相关联的信用卡支付小应用程序实例的信用卡包的注册表条目。
采用这些方式,更新技术可有助于对先前被安装在电子设备上的一个或多个小应用程序的更新进行安全和可升级传播、安装和并使其个性化。
需注意,图5和图7中所示的操作可包括质疑操作和响应操作,为清楚起见未将其示出。
在方法300(图3)、400(图4)和600(图6)的一些实施方案中,可存在更多的或更少的操作。此外,可改变操作的顺序,和/或将两个或更多个操作合并为单个操作。例如,方法300(图3)、400(图4)和/或600(图6)中的操作可由电子设备中的不同处理器诸如安全区域处理器来执行。
在另一示例性实施方案中,更新技术涉及三个阶段处理。在第一阶段期间,选择发行者安全域。随后,将所谓的“预检脚本”从服务器发送到电子设备。图9中示出了这种情况,其呈现了示出方法600(图6)中的预检脚本900的图示。具体地,预检脚本900包括一个或多个包。每个包包括具有指示用于迁移的候选的一个或多个包AID的包AID列表、被加载到安全元件的新包AID以及具有一个或多个小应用程序AID的小应用程序AID的列表。包AID将被更新到新包AID并且与小应用程序AID相关联的数据需要被迁移。预检脚本900还包括计数器值,在预检脚本900在给定电子设备上运行一次之后使该计数器值递增以防止重放攻击。而且,可使用加密密钥来标记预检脚本900。
当安全元件中的操作系统执行预检脚本900时,注册表中的用于给定小应用程序(由小应用程序AID之一指定)的条目被找到并且被转移到临时注册表或第二注册表。随后,使用Java Card exportData()和/或exportObject()方法(或命令)来调用该小应用程序。如果该小应用程序被个性化,则exportData()和/或exportObject()将相关联的数据和/或加密密钥和密码转移到所选择的安全域。具体地,exportData()转移数据而exportObject()转移加密密钥和密码。接下来,执行返回命令。另选地,如果该小应用程序未被个性化,则执行返回命令,而无需使用exportData()和/或exportObject()方法或命令来调用该小应用程序。
而且,删除该小应用程序。具体地,使用Java Card uninstall()方法调来用该小应用程序,在小应用程序级别下执行清除,并且执行返回命令。此外,安全元件中的操作系统删除该小应用程序并且执行垃圾收集操作以收回先前与该小应用程序相关联的内存。
如前所述,在第二阶段期间,使用高端引导加载器(诸如图2中的更新操作系统234)来替代一个或多个指定包并且挂起标记。
而且,在第三阶段期间,除了单个应用程序协议数据单元命令诸如导入之外为空的所谓的检后脚本(postflight script)由安全元件中的操作系统执行。作为响应,安全元件中的操作系统解析第二注册表。对于给定小应用程序,这可涉及安全元件中的操作系统:创建包括第二注册表的副本的给定小应用程序的实例;使用install()方法来调用小应用程序;使用调用importData()和/或importObject()方法的import()方法来调用小应用程序;执行清除;以及执行垃圾收集操作来收回相关联的内存。
注意,使用更新技术安装的新版本的小应用程序可具有新AID,取决于使用情况,可选地保留与先前版本小应用程序相同的AID。
尽管前述实施方案使用更新或迁移个性化的小应用程序(即,具有相关联的数据的小应用程序)作为示例性示例,但是在其他实施方案中,可使用更新技术来更新非个性化的小应用程序(例如,无需相关联的数据的小应用程序),诸如在工厂中制造或配置电子设备期间。
在前面的描述中提到过“一些实施方案”。需注意,“一些实施方案”描述所有可能实施方案的子集,但并非始终指定实施方案的相同子集。
前述描述旨在使得任何本领域的技术人员能够实现和使用本公开,并且在特定应用及其要求的上下文中提供。此外,仅出于例证和描述的目的,给出本公开的实施方案的前述描述。它们并非旨在为穷尽的或将本公开限制于所公开的形式。因此,许多修改和变型对于本领域熟练的从业者而言将是显而易见的,并且本文所定义的一般性原理可在不脱离本公开的实质和范围的前提下应用于其他实施方案和应用。此外,前述实施方案的论述并非旨在限制本公开。因此,本公开并非旨在限于所示出的实施方案,而是将被赋予与本文所公开的原理和特征一致的最宽范围。

Claims (23)

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.根据权利要求13所述的安全元件,其中所述程序模块包括用于在由操作系统提供对所述补充安全域的访问之后把与所述小应用程序的所述先前版本关联的所述用户数据导出到与所述补充安全域关联的所述数据存储器的指令。
17.一种存储指令的计算机可读介质,所述指令当由一个或多个处理器执行时使所述一个或多个处理器执行用于更新被安装在电子设备中的安全元件中的小应用程序的方法,所述方法包括:
从更新设备接收具有数字签名的更新包,其中所述更新包包括对被安装在所述安全元件上的小应用程序的先前版本的更新;
识别被安装在所述安全元件上的所述小应用程序的所述先前版本;
使用与所述安全元件的供应商相关联的加密密钥来验证所述数字签名;
把与所述小应用程序的所述先前版本关联的用户数据导出到与补充安全域关联的数据存储器;
在所述导出后卸载所述小应用程序的所述先前版本;
在所述安全元件上安装对所述小应用程序的所述更新;以及
至少部分地基于所述用户数据来使所述安全元件上的经更新的小应用程序个性化。
18.根据权利要求17所述的计算机可读介质,其中所述计算机可读介质包括用于在安装对所述小应用程序的所述更新之前执行以下操作的指令:
识别先前被安装在所述安全元件上的所述小应用程序的两个或更多个版本;以及
卸载先前安装的所述小应用程序的所述两个或更多个版本。
19.根据权利要求17所述的计算机可读介质,其中通过搜索与将要由所述安全元件中的处理器执行的操作系统相关联的注册表来识别所述小应用程序的所述先前版本。
20.根据权利要求17所述的计算机可读介质,其中所述计算机可读介质包括用于在由操作系统提供对所述补充安全域的访问之后把与所述小应用程序的所述先前版本关联的所述用户数据导出到与所述补充安全域关联的所述数据存储器的指令。
21.一种用于更新被安装在电子设备中的安全元件上的小应用程序的处理器实现的方法,其中所述方法包括:
从更新设备接收具有数字签名的更新包,其中所述更新包包括对所述小应用程序的先前版本的更新;
使用处理器来识别被安装在所述安全元件上的所述小应用程序的所述先前版本;
把与所述小应用程序的所述先前版本关联的用户数据导出到与补充安全域关联的数据存储器;
在所述导出后卸载所述小应用程序的所述先前版本;
在所述安全元件上安装对所述小应用程序的所述更新;以及
至少部分地基于所述用户数据来使所述安全元件上的经更新的小应用程序个性化。
22.根据权利要求21所述的方法,其中所述方法进一步包括在安装对所述小应用程序的所述更新之前:
识别先前被安装在所述安全元件上的所述小应用程序的两个或更多个版本;以及
卸载先前安装的所述小应用程序的所述两个或更多个版本。
23.根据权利要求21所述的方法,所述导出还包括:
在由操作系统提供对所述补充安全域的访问之后把与所述小应用程序的所述先前版本关联的所述用户数据导出到与所述补充安全域关联的所述数据存储器。
CN201480072376.1A 2014-01-06 2014-12-19 安全元件中的小应用程序迁移 Active CN105900104B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461923952P 2014-01-06 2014-01-06
US61/923,952 2014-01-06
US14/466,850 US9483249B2 (en) 2014-01-06 2014-08-22 On-board applet migration
US14/466,850 2014-08-22
PCT/US2014/071481 WO2015102944A1 (en) 2014-01-06 2014-12-19 Applet migration in a secure element

Publications (2)

Publication Number Publication Date
CN105900104A CN105900104A (zh) 2016-08-24
CN105900104B true CN105900104B (zh) 2019-01-15

Family

ID=52432911

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480072376.1A Active CN105900104B (zh) 2014-01-06 2014-12-19 安全元件中的小应用程序迁移

Country Status (5)

Country Link
US (2) US9483249B2 (zh)
CN (1) CN105900104B (zh)
DE (1) DE112014006112T5 (zh)
TW (1) TWI537765B (zh)
WO (1) WO2015102944A1 (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201309577D0 (en) * 2013-05-29 2013-07-10 Barclays Bank Plc Linked registration
US9483249B2 (en) * 2014-01-06 2016-11-01 Apple Inc. On-board applet migration
US9436455B2 (en) 2014-01-06 2016-09-06 Apple Inc. Logging operating system updates of a secure element of an electronic device
CN105302666A (zh) * 2015-10-13 2016-02-03 东信和平科技股份有限公司 一种基于java card的应用内部数据备份与恢复方法
CN105354112B (zh) * 2015-11-05 2018-09-21 网易(杭州)网络有限公司 单机游戏的数据恢复方法、装置与系统
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
US11050726B2 (en) * 2016-04-04 2021-06-29 Nxp B.V. Update-driven migration of data
DE102016007189A1 (de) * 2016-06-14 2017-12-14 Giesecke+Devrient Mobile Security Gmbh Ressourcenbeschränktes Java Card Device
EP3264816A1 (en) * 2016-06-30 2018-01-03 Sequans Communications S.A. Secure boot and software upgrade of a device
US10885520B2 (en) * 2016-09-22 2021-01-05 Apple Inc. Script deployment through service provider servers
US10613849B2 (en) * 2016-09-23 2020-04-07 Visa International Service Association Update migration system and method
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
CN108279914A (zh) * 2016-12-30 2018-07-13 北京润信恒达科技有限公司 对安全元件中的数据进行升级的方法、系统及电子设备
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
GB2562199B (en) 2017-02-03 2022-02-16 Worldpay Ltd Terminal for conducting electronic transactions
US10404691B2 (en) 2017-03-02 2019-09-03 Bank Of America Corporation Preventing unauthorized access to secured information systems using authentication tokens
US11194562B2 (en) * 2017-05-19 2021-12-07 Blackberry Limited Method and system for hardware identification and software update control
EP3416086A1 (en) * 2017-06-15 2018-12-19 Gemalto Sa Method for managing an instance of a class
CN109802929B (zh) * 2017-11-17 2022-09-30 厦门雅迅网络股份有限公司 基于双系统的客户端程序升级方法及计算机可读存储介质
US10592710B1 (en) 2018-10-02 2020-03-17 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
KR102618386B1 (ko) * 2018-11-21 2023-12-28 삼성전자주식회사 보안 요소를 통해 보안이 필요한 서비스를 제공하는 전자 장치 및 그 전자 장치를 제어하는 방법
EP3722981A1 (en) * 2019-04-12 2020-10-14 Nxp B.V. System and method for applying patches to executable codes
CN110908738B (zh) 2019-11-29 2021-03-23 百度在线网络技术(北京)有限公司 用于运行小程序的方法和装置
CN111782229B (zh) * 2020-06-30 2024-04-23 百度在线网络技术(北京)有限公司 一种小程序启动方法、装置及电子设备
US11475140B1 (en) * 2020-11-24 2022-10-18 Amazon Technologies, Inc. Enclave-based cryptography services in edge computing environments
CN116305093A (zh) * 2021-11-19 2023-06-23 荣耀终端有限公司 小应用程序的操作方法和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1512369A (zh) * 2002-12-26 2004-07-14 成都卫士通信息产业股份有限公司 代理模式安全远程接入技术
CN101258505A (zh) * 2005-07-26 2008-09-03 苹果公司 安全的软件更新
CN102783115A (zh) * 2010-02-09 2012-11-14 交互数字专利控股公司 用于可信联合标识的方法和装置
EP2605202A1 (en) * 2011-12-15 2013-06-19 Research In Motion Limited Method And Device For Managing A Secure Element

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233683B1 (en) * 1997-03-24 2001-05-15 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
US5887163A (en) 1997-04-04 1999-03-23 Compaq Computer Corporation Method and apparatus for providing dual booting capabilities to a computer system
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
JP2003114806A (ja) 2001-10-04 2003-04-18 Hitachi Ltd Os更新方法及びセキュリティ制御方法並びにその実施装置
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
US7191364B2 (en) 2003-11-14 2007-03-13 Microsoft Corporation Automatic root cause analysis and diagnostics engine
US20130332343A1 (en) * 2005-10-06 2013-12-12 C-Sam, Inc. Multi-tiered, secure mobile transactions ecosystem enabling platform comprising a personalization tier, a service tier, and an enabling tier
JP4762693B2 (ja) 2005-11-22 2011-08-31 株式会社日立製作所 ファイルサーバ、ファイルサーバのログ管理システム及びファイルサーバのログ管理方法
JP4946141B2 (ja) 2006-04-11 2012-06-06 ブラザー工業株式会社 構成変更プログラム、および情報処理装置
US8606765B2 (en) 2007-11-30 2013-12-10 Red Hat, Inc. Systems and methods for updating software appliances
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
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
US8646059B1 (en) * 2010-12-17 2014-02-04 Google Inc. Wallet application for interacting with a secure element application without a trusted server for authentication
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
WO2013012953A1 (en) 2011-07-18 2013-01-24 Visa International Service Association Mobile device with secure element
US20140019367A1 (en) 2012-07-13 2014-01-16 Apple Inc. Method to send payment data through various air interfaces without compromising user data
US9082119B2 (en) * 2012-10-17 2015-07-14 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
EP2827275A1 (en) 2013-07-16 2015-01-21 Gemalto SA Method for transferring user data between two instances of an application
WO2015047807A1 (en) * 2013-09-30 2015-04-02 Jvl Ventures, Llc Systems, methods, and computer program products for securely managing data on a secure element
US10552830B2 (en) * 2013-12-23 2020-02-04 Apple Inc. Deletion of credentials from an electronic device
US10108409B2 (en) * 2014-01-03 2018-10-23 Visa International Service Association Systems and methods for updatable applets
US9483249B2 (en) * 2014-01-06 2016-11-01 Apple Inc. On-board applet migration
US9436455B2 (en) * 2014-01-06 2016-09-06 Apple Inc. Logging operating system updates of a secure element of an electronic device
US10362010B2 (en) * 2014-05-29 2019-07-23 Apple Inc. Management of credentials on an electronic device using an online resource
US9934014B2 (en) * 2014-08-22 2018-04-03 Apple Inc. Automatic purposed-application creation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1512369A (zh) * 2002-12-26 2004-07-14 成都卫士通信息产业股份有限公司 代理模式安全远程接入技术
CN101258505A (zh) * 2005-07-26 2008-09-03 苹果公司 安全的软件更新
CN102783115A (zh) * 2010-02-09 2012-11-14 交互数字专利控股公司 用于可信联合标识的方法和装置
EP2605202A1 (en) * 2011-12-15 2013-06-19 Research In Motion Limited Method And Device For Managing A Secure Element

Also Published As

Publication number Publication date
WO2015102944A1 (en) 2015-07-09
US9483249B2 (en) 2016-11-01
US20170003954A1 (en) 2017-01-05
DE112014006112T5 (de) 2016-10-27
TW201539242A (zh) 2015-10-16
US20150193221A1 (en) 2015-07-09
TWI537765B (zh) 2016-06-11
CN105900104A (zh) 2016-08-24
US9880830B2 (en) 2018-01-30

Similar Documents

Publication Publication Date Title
CN105900104B (zh) 安全元件中的小应用程序迁移
CN105391840B (zh) 自动创建目标应用程序
US10223096B2 (en) Logging operating system updates of a secure element of an electronic device
US10936719B2 (en) Preserving trust data during operating system updates of a secure element of an electronic device
KR102604046B1 (ko) 전자 기기의 프로그램 관리 방법 및 장치
KR100978053B1 (ko) 무선 단말기에서 보안 요소를 초기화하기 위한 방법 및장치
KR101712784B1 (ko) 글로벌 플랫폼 규격을 사용하는 발행자 보안 도메인에 대한 키 관리 시스템 및 방법
US8942672B2 (en) Mobile integrated distribution and transaction system and method for NFC services, and a mobile electronic device thereof
CN105814590A (zh) 使用电子设备的个人对个人支付
WO2013155562A1 (en) Nfc card lock
CN104380652A (zh) 用于nfc使能设备的多发行商安全元件分区架构
CN107209884B (zh) 存储不同区域中的安全凭据信息
CN103973444A (zh) 安全令牌和服务访问系统
CN102694795B (zh) 一种在离线情况下使用应用服务的方法
CN102999839A (zh) 一种基于云平台、虚拟se的电子货币安全支付系统和方法
KR101040577B1 (ko) 모바일 애플리케이션 재발급 방법 및 시스템
JP2015228570A (ja) 認証システム、及び携帯通信端末
Tamrakar Applications of Trusted Execution Environments (TEEs)
CN107679858B (zh) 移动终端及移动支付方法
Zhao et al. Design and implementation of a mobile transactions client system: Secure UICC mobile wallet
WO2015008167A2 (en) A moblie integrated distribution and transaction system and method for nfc services, and a mobile electronic device thereof
CN113127535B (zh) 基于区块链的数据处理方法、装置和电子设备
CN105809011B (zh) 一种可以动态加载应用的二代USB Key兼容Java Card平台的方法
CN106250750A (zh) 基于MacOSX系统的USB设备接入方法及装置
JP2007249544A (ja) 電子媒体およびそれを含む情報端末

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