用于非接触式智能卡的本地可信服务管理器的制造方法

文档序号:6638553阅读:242来源:国知局
用于非接触式智能卡的本地可信服务管理器的制造方法
【专利摘要】本发明涉及用于非接触式智能卡的本地可信服务管理器。本文公开用于在非接触式智能卡设备的安全元件内部署本地可信服务管理器的系统、方法、计算机程序以及设备。所述安全元件是并入到非接触式智能卡设备中的非接触式智能卡的部件。不对称密码算法用于生成公共-私有密钥对。所述私有密钥被存储在所述安全元件中,并且可由所述安全元件中的可信服务管理器(TSM)软件应用程序或控制软件应用程序进行存取。有权存取所述公共密钥的非TSM计算机进行加密并且随后将所加密的应用数据或软件应用程序传输到所述安全元件,其中所述TSM软件应用程序将所述软件应用程序解密并且安装到所述安全元件以用于事务处理目的。
【专利说明】用于非接触式智能卡的本地可信服务管理器
[0001] 分案说明
[0002] 本申请属于申请日为2011年12月16日的中国发明专利申请201180060859. 6的 分案申请。
[0003] 相关申请
[0004] 本申请要求2011年9月26日提交的标题为"用于非接触式智能卡的本地可信 服务管理器(LocalTrustedServicesManagerforaContactlessSmartCard) " 的美 国专利申请号13/244,715的优先权,所述美国专利申请号13/244,715是2011年9月17 日提交的标题为"用于非接触式智能卡的本地可信服务管理器(LocalTrustedServices ManagerforaContactlessSmartCard)的美国专利申请号13/235, 375的延续并且要求 其优先权,所述美国专利申请号13/235, 375要求2010年12月17日提交的标题为"用于在 非接触式支付设备中本地部署可信服务管理器的系统和方法(SystemsAndMethodsFor DeployingATrustedServiceManagerLocallyInAContactlessPaymentDevice)" 的美国临时专利申请号61/424, 604的优先权。上述优先权申请中的每一个的全部内容在 此通过引用完全并入本文中。

【技术领域】
[0005] 本公开大体上涉及用于对非接触式智能卡设备中的安全元件的名称空间进行划 分并且用于使用来自在所述安全元件外的软件应用程序的请求将应用数据写入到所述安 全元件中的计算机实施的系统、方法以及设备。
[0006] 背景
[0007] 出于事务处理目的,非接触式事务处理系统使用安全非接触式智能卡。某些示例 性事务处理系统包括交通运输卡、身份认证卡、停车卡以及电话卡。一种示例性安全非接 触式智能卡是来自恩智浦半导体公司(NXPSemiconductors)的MIFARE?卡或来自HID Global的iClass?卡。某些常规智能卡使用射频标识(RFID)标准来将信息发射到读卡器 设备以及从读卡器设备接收信息。基于RFID的非接触式智能卡设备由用于智能卡和读卡 器的国际标准化组织和国际电工协会标准(IS0/IEC) 14443支持。某些非接触式卡类型设 备能够使用电子部件(如天线和安全存储器)并且支持半导体部件(如存储器管理单元、 处理器以及密码生成器)。
[0008] 不同类型的软件应用程序或应用数据存储区域包括随机存取存储器(RAM)、只读 存储器(ROM)以及非易失性闪存。这些存储区域典型地是安全存储区域,并且存储运行软 件应用程序所需的所有安全信息,以便实现访问、成员隶属或支付目的。某些低端非接触式 智能卡可能并不具有显著处理能力;这些智能卡通常是被动的,并且用来自被动存储器的 信息发射射频。此外,每个安全存储区域被指派特定应用功能,所述特定应用功能被包括在 非接触式智能卡内的安全元件区域中。
[0009] 某些非接触式智能卡包括用于硬件和软件的平台,其支持EMV(电子信用卡标准) 和MIFARE?:操作功能。此类卡进一步包括处理器,其用于在非接触式智能卡设备的组合 的或分开的安全元件内保持不同区域。可以得到不同存储大小的非接触式智能卡,例如, 4KB的EEPROM(闪存)或IKB的EEPROM包。然而,某些广泛使用的智能卡并不具有任何智 能处理能力,并且经过软件编码,以使得只有某些存储区域能够仅由某些读卡器读取。在许 多广泛使用的非接触式事务卡(如MIFAREClassic?)中,可以在智能卡内获得有限量的资 源来实现进一步开发。例如,对于4KB卡,存在卡内所有4KB应当在任何给定时间处有效的 要求。
[0010] 在非接触式卡内的一些安全元件名称空间(也称作"存储区域")中,可用存储器 被静态地划分,并且分区在读卡器中进一步被编码。最终,读卡器只读取预定分区。已经 超额订制的名称空间的这种分割导致频繁的冲突,并且因此产生进一步减少可用存储空间 的防冲突协议。此外,针对不具有任何处理器能力的卡强制执行有限安全性协议。与(例 如)通常用于信用卡应用的EMV型卡相比,这种强制执行可能减少卡和读卡器内的安全性 选项。
[0011] 一些软件应用程序可以限制存储在卡内的信息,并且限制对安全密钥所有者的信 息控制。在包括多个应用的非接触式智能卡上,由于共享存储器而产生冲突和错误。此外, 如果第二家公司需要保护卡上部分数据,那么这种保护将因为一个密钥无法提供超越另一 密钥的安全性而不可行。在当前应用中,有限的应用空间、数据空间以及受到多方关注的安 全性存在不足。此外,在没有密钥"B"所有者的准许时,无法更新卡上的存取密钥。
[0012] 概述
[0013] 在某些示例性实施方案中,一种用于在非接触式智能卡设备的安全元件内本地实 施可信服务管理器(TSM)的计算机实施的方法包括:在所述非接触式智能卡设备的所述安 全元件中安装TSM软件应用程序,其中所述TSM软件应用程序包括用于执行传输功能以请 求应用数据并且执行解密功能以对加密形式的所接收的应用数据进行解密的计算机代码, 所述所接收的应用数据响应于来自所述传输功能的请求而在所述非接触式智能卡设备处 接收;在所述安全元件中存储指派给所述TSM软件应用程序的私有密钥,所述私有密钥与 对应公共密钥一起使用不对称密码算法生成;通过所述TSM软件应用程序的所述传输功能 将针对应用数据的请求传输到多个注册的远程非TSM计算机之一,其中所述远程非TSM计 算机被配置来存取所述公共密钥,并且其中所述远程非TSM计算机用所述公共密钥对所请 求的应用数据进行加密;在所述非接触式智能卡设备中接收响应于所传输的请求的所加密 的应用数据;以及通过所述TSM软件应用程序的所述解密功能使用所述私有密钥对所述所 加密的应用数据进行解密。
[0014] 附图简述
[0015] 图1示出根据某些示例性实施方案的用于对非接触式智能卡设备中的安全元件 的名称空间进行划分并且用于使用来自在所述安全元件外的软件应用程序的请求将应用 数据写入到所述安全元件中的计算机实施的系统和设备。
[0016] 图2示出根据某些示例性实施方案的用于对非接触式智能卡设备中的安全元件 的名称空间进行划分并且用于使用来自在所述安全元件外的软件应用程序的请求将应用 数据写入到所述安全元件中的计算机实施的系统和设备。
[0017] 图3示出根据某些示例性实施方案的用于非接触式智能卡设备中的安全元件的 名称空间的数据结构以及与控制所述安全元件名称空间中的划分和应用数据存储的控制 软件应用程序相关联的应用数据。
[0018] 图4示出根据某些示例性实施方案的用于通过安全元件内的控制软件应用程序 将安全元件的名称空间划分成至少两个存储类型的计算机实施的方法。
[0019] 图5示出根据某些示例性实施方案的用于使用来自驻存在安全元件外的用户接 口软件应用程序的请求来将应用数据写入到安全元件名称空间中的计算机实施的方法。
[0020] 图6示出根据某些示例性实施方案的用于在非接触式智能卡设备的安全元件内 本地实施可信服务管理器(TSM)的计算机实施的方法。
[0021] 图7示出根据某些示例性实施方案的出于划分和配备目的而控制对安全元件名 称空间的存取的计算机实施的方法。
[0022] 示例性实施方案详述
[0023] 应用目录表将安全元件名称空间中的特殊块保留为元数据块。这些块包含应用标 识符(AID)到槽/块的逻辑映射,所述槽/块包含要呈现给外部读卡器设备的软件应用程 序。当外部读卡器设备遇到非接触式智能卡时,所述外部读卡器设备尝试用所述读卡器和 软件应用程序已知的所定义的存取密钥来向目录中标识出的特殊元数据块进行验证。当块 是有效的时,读卡器读取在所指派的块中的应用目录表的内容,并且执行查找来找出应用 ID映射到哪些扇区/块。举例来说,当零售商的积分卡的AID是' 10'时,目标读卡器设备 将读取安全元件名称空间的数据存储块中的应用目录表,并且查找AID' 10'。尽管目录服 务是一项有用服务,但其需要充分使用块及其AID名称空间,并且是由第三方在外部进行 管理。
[0024] 在非接触式智能卡内的应用标识符(AID)是16位代码,这个16位代码被分割成 功能群集和应用代码,各自具有8位长度。扇区0的密钥"A"或"A密钥"是带有6字节代 码的公共扇区,而扇区0的密钥"B"或"B密钥"是由非接触式智能卡发行商或卡所有者确 定的,其中卡发行商控制某些存取密钥和控制软件应用程序或在非接触式智能卡上的其它 软件应用程序的某些方面。
[0025] 术语"卡发行商"或"卡所有者"在本文中可互换地使用,并且大体上指代将安全 元件和应用目录放置在非接触式智能卡内的实体。NFC服务提供商可以是卡发行商类型实 体的一个实例。
[0026] B密钥可为6字节代码,其被保密,用来对相关存储块内的软件应用程序或应用数 据做出改变。
[0027] 本文所用的"应用数据"定义这样的数据:所述数据向软件应用程序增补、更新或 提供数据。本文所用的"软件应用程序"指代以任何格式从外部计算机获得的任何软件应用 程序,所述软件应用程序可以在非接触式智能卡的安全元件内进行安装和执行。此外,"软 件应用程序"和"应用数据"在本文中可互换地用来指代来自外部计算机的存储在安全元件 内的那些类型的数据。除非另有描述,否则术语"软件应用程序"还包括所有格式的软件应 用程序,包括下载格式、任何中间格式以及最终执行格式。
[0028] 在安全元件名称空间中的用于应用目录表的数据存储块中,通过使用用于存取控 制的单字节群集代码和作为软件应用程序代码或最低有效位(LSB)的另一单字节,软件应 用程序使用其2字节应用标识符(AID)来进行映射。
[0029] 在某些示例性实施方案(即,某些非接触式智能卡或非接触式智能卡的实施方 式)中,安全元件名称空间可以被分割成用于不同卡类型的不同分区,所述不同卡类型包 括不同卡协议或平台,例如,在JavaCard平台上的EMVCo、用于接近感测的近场通信(NFC) 或MIFARE。在一个实施方案中,安全元件名称空间被虚拟地分割成多个扇区,其中每个扇区 包括各自长度为16字节的4个存储块,其中扇区可以选择将大小调整成不同于默认的16 字节。每个扇区的尾块是专用存取存储块,所述专用存取存储块被分割成3个存储区段,用 于将存取信息存储到存储块的剩余部分。存取信息包括A密钥、存取存储块内的存取位以 及B密钥。存取存储块依据用于对存储块进行存取的单独存取密钥或存取密钥的组合来控 制对扇区中的其余块的存取。扇区中的存储块的剩余部分是数据存储块,所述数据存储块 包含应用数据或软件应用程序。软件应用程序还可以通过提供指向前一扇区中的软件应用 程序的结束字节的指针或连续性信息来跨扇区存储。指针可以包括软件应用程序的AID以 及软件应用程序的连续区段的块位置和扇区位置。
[0030] 在某些示例性实施方案中,存取存储块中的存取密钥支持对扇区0中的用于应用 数据或应用目录表的数据存储块的不同存取类型。存取控制块可以被配置来描述密钥A的 权限,而密钥B维持在控制块中旋转密钥以及盖写存取控制块内的存取位的能力。在扇区 0的包括应用目录表的数据存储块中,密钥B可以用来编辑目录,改变AID到扇区和存储块 位置的映射,并且通过在安全元件名称空间内改变存取类型来重新分配存储块。这些功能 性允许非接触式智能卡在功能上支持多个应用和存取类型,这取决于存取存储块中的存取 密钥和存取位。可供用于非接触式智能卡的存取类型包括写入存取、读取存取、递增存取、 递减存取,或读取、写入、递增和递减存取中的每一个的两个或更多个的组合。写入存取包 括将软件应用程序或应用数据写入或安装到安全元件名称空间内的数据存储块的能力。
[0031] 安全元件名称空间中的每个扇区被指派有唯一标识符,设备密钥集是从所述唯一 标识符中导出的,其中所述唯一标识符可以在制造商处或由卡所有者指派给非接触式智能 卡。卡所有者可以指代将安全元件和应用目录结构部署到非接触式智能卡上的实体。举例 来说,服务身份模块(SIM)、安全数字(SD)存储卡或通用集成电路卡(UICC)制造商可以通 过在将SM、nCC或SD卡出售给无线服务提供商来部署在智能电话中之前将安全元件和应 用目录结构嵌入所述SM、或SD卡中而成为卡所有者。或者,用于全球移动通信系统 (GSM)、通用移动电信系统(UMTS)或码分多址(CDM)的无线服务提供商可以在出售这些卡 来启用移动通信之前嵌入安全元件并且创建应用目录。
[0032] "卡制造商"、"卡所有者"或"无线服务提供商"中的每一个可以被称为"卡发行 商",用于提供安全元件并且支持非接触式智能卡内的应用目录。在一个示例性实施方案 中,术语"卡发行商"还可以指代在非接触式智能卡的安全元件内创建和部署控制软件应用 程序的服务提供商,其中所述控制软件应用程序可以用来控制、启动和划分安全元件名称 空间。在嵌入阶段,应用目录可以被视为嵌入式软件应用程序。
[0033] 在某些示例性实施方案中,非接触式智能卡设备制造商或非接触式智能卡设备操 作系统开发商可以被认为是卡发行商。卡发行商可以独立地或与卡所有者共同地经由安全 元件或外部安全元件在非接触式智能卡内提供一个或多个额外软件应用程序。额外软件应 用程序可以使用单个NFC控制器和天线来在非接触式智能卡设备内的多个卡协议之间起 到管理作用,或者可以控制非接触式智能卡的安全元件名称空间。此外,软件应用程序提供 商使用卡发行商的服务或通过使用802. 11标准的正规无线因特网经由无线方法提供软件 应用程序。
[0034] 作为应用目录结构的一部分,安全元件的每个扇区可以存储具有应用标识(AID) 的单个应用程序,从而使得多个软件应用程序能够在非接触式智能卡内共存。在扇区地址0 处的一个存储块可能只包含制造商数据,而其它存储块是包括卡上唯一应用程序的AID的 数据存储块和提供对应用目录表进行存取的存取存储块。在存在质量问题的情况下,制造 商数据用于跟踪集成电路(IC)明细。因此,安全元件名称空间的扇区0包含各自为16字 节的2个数据块,所述数据块通常是位于非接触式智能卡内的其它存储块中的应用程序的 AID信息。
[0035] 在某些示例性实施方案中,非接触式智能卡设备并入非接触式智能卡并且提供用 户接口软件应用程序对所述非接触式智能卡的存取。示例性非接触式智能卡设备包括智能 电话;移动电话;PDA;移动计算设备,如上网本和iPad?;电子启用式钥匙扣卡;电子启用 式卡类型设备;以及其它电子启用式设备,其中每个设备可以用于多个目的,包括(但不限 于)金融交易、优惠券、票务、安全验证以及相关应用。
[0036] 在某些示例性实施方案中,在交通环境应用的上下文中,非接触式智能卡上的软 件应用程序允许读卡器对某些扇区的存储块进行存取,以便记录进入或退出交通系统时所 处的位置、设置初始值以及递减卡上的值。检票闸门可以由存取密钥A进行限制,所述存取 密钥A是较低安全性密钥,并且所述存取密钥A验证读卡器检票闸门来读取卡值并将退出 点或进入点写入到非接触式智能卡的某个块中,这取决于卡上的存取存储块指派。因此,交 通软件应用程序可以存储在参考用于值(递增/递减)和用于站(退出/进入)的其它扇 区的某个块中,其中递减值可以根据对应数据存储块中的站值分配来计算。在适当时,每个 扇区可以包括一组不同的密钥A和密钥B。
[0037] 软件应用程序提供商(例如,交通办公处)能够存取用于非接触式智能卡的不同 扇区和存储块中的初始值设置的密钥B,其中扇区允许使用密钥B进行写入。因此,卡可以 被配置来允许能够存取密钥B的设备将初始值写入到非接触式智能卡的预定"初始值"数 据存储块或扇区。扇区的用于存储"站信息"的不同数据存储块包括一组不同的存取密钥 (密钥A和密钥B),其允许对站信息进入和退出进行登记。计算在进站与出站之间的费值, 然后在卡用户出站时将所述费值应用到非接触式智能卡的"初始值"数据存储块或扇区上。 交通系统检验用于"初始值"数据存储块或扇区的密钥A,以便在允许进入之前读取剩余值。 不同的密钥B将进入位置写入到由密钥B分配并保护的站信息数据存储块中。当退出检票 闸门时,卡会收到通知,并且根据退出点和进入点计算费用并将其从初始值递减,同时消除 初始位置。或者,当递减值大于初始值时,卡将对检票闸门发送信号以阻止退出。经由售票 机或在办公处使用用于进行存取的密钥B来向卡上增加更多值将解决这个问题。
[0038] 非接触式智能卡可以被制造有已知的默认密钥(例如,OxFF是典型的默认密钥) 以用于初始化目的。由于默认密钥是已知的,因此嵌在非接触式智能卡上或非接触式智能 卡设备内的安全性元件可以被认为是停用的,这意味着可以经由非接触式接口(外部读卡 器)或接触式接口(如应用程序编程接口(API)或安全元件内的不同软件应用程序)来防 止存取。API可以由安全元件或托管所述安全元件的非接触式智能卡设备的运行时环境支 持。一旦扇区中的密钥由卡制造商位置或卡发行商(或所有者)位置处的初始设置设备使 用一组存取密钥来指定,主存取密钥(即,密钥B)就将能通过任何超越选项来对扇区进行 独占管理存取。因此,密钥旋转或改变被设置成已知状态,以便保持对存储块的控制。存储 块内的消息、软件应用程序或应用数据大体上采用明文格式,而加密消息(通过适用密钥A 或B进行加密)采用密文格式。密钥B可以用来在某些扇区中改变密钥A,并且可以针对某 些扇区改变与所述密钥相关联的存取位。
[0039] 在某些示例性实施方案中,读卡器终端或设备通过浏览用于相关应用目录的安全 元件存储器并且随后针对读卡器中所指定的预定软件应用程序AID或预定扇区扫描AID来 读取非接触式智能卡。应用目录(AD)可以建立用于目录和应用条目的数据结构表,进而使 读卡器能够识别用来处理事务的正确软件应用程序。非接触式智能卡可以被视为存储器存 储区域,因为读卡器将向所述存储器存储区域请求应用数据以用于处理如支付或甚至交通 等应用。非接触式智能卡典型地向读卡器提供随机数字口令,而所述读卡器使用相互私密 密钥来将其自己的响应提供回到所述非接触式智能卡。非接触式智能卡随后通过比较其随 机数字来检验来自读卡器的响应以确保密钥是相同的。在此之后,使用相互达成一致的加 密密钥来处理实际事务。
[0040] 在某些示例性实施方案中,非接触式智能卡中的交通软件应用程序可以包括多个 软件应用程序或用于不同地区或目的。举例来说,纽约交通系统和洛杉矶交通系统可以向 非接触式智能卡设备内的单个非接触式智能卡提供不同软件应用程序。这两种软件应用程 序可以用在处于对应位置的终端上,因为对应读卡器可以通过检查AD来自动确定要对哪 个目录进行存取。数据存储块的目录部分中的信息或应用目录数据提供AD的参考区段,并 且包括指向卡发行商或制造商扇区的指针以获得剩余自由卡扇区的分布信息,在所述剩余 自由卡扇区上分配有软件应用程序。
[0041] 在某些示例性实施方案中,安全元件名称空间由安装在所述安全元件名称空间内 的控制软件应用程序划分成两个存储类型。控制软件应用程序可以安装在物理上或虚拟上 不同的安全元件名称空间内,其中物理上不同的安全元件名称空间包括与本文公开的存储 块和扇区结构的安全元件名称空间的安全通信信道。举例来说,控制软件应用程序可以是 JavaCard小程序,所述JavaCard小程序在并入有非接触式智能卡的非接触式智能卡设备 中的不同安全元件名称空间内的JavaCard虚拟机上执行。因此,JavaCard小程序可以使 用API并且经由安全通信信道与非接触式智能卡的安全元件交互来控制存取密钥、软件应 用程序、应用数据、应用目录以及存取存储块中的存取位的部署。
[0042] 在某些示例性实施方案中,安全元件名称空间被划分成出售存储块或出售槽 (SSLOT)和出租存储块或出租槽(RSLOT)。此外,SSLOT或RSLOT可以是形成扇区的存储块 组或跨多个扇区的存储块组。SSLOT是出售槽并且可以由非接触式智能卡制造商以合同方 式出售给卡发行商。卡发行商随后将软件应用程序提供商拥有的软件应用程序部署到卡中 以供最终用户使用。举例来说,在发行SIM或卡时,电话服务提供商可以兼任非接触 式智能卡制造商,其中SIM或卡包括安全元件。RSLOT是可以出租给第二方卡用户的 槽。软件应用程序提供商是将卡内定制应用程序用于如下操作的组织:金融交易、安全验 证、票务或优惠券。卡发行商设置在分配的出租或出售SLOT内的应用程序和值,并且指派 读卡器对卡中应用程序内的值做出改变。
[0043] 在某些示例性实施方案中,槽的分配由扇区、存取位以及存取密钥的分配确定。例 如,RSLOT可以包括在安全元件名称空间中的出租扇区和存储块,所述出租扇区和存储块连 同用于所述出租扇区和存储块的密钥A验证和相关联存取位一起出租给软件应用程序提 供商。或者,多个软件应用程序提供商可以合伙或可以单独地优选维持对其软件应用程序 和应用数据上的数据和生命周期管理机制的完全控制,其中对生命周期(从下载并安装来 使用和更新开始)的完全控制是使用卡发行商提供的密钥B来进行控制的。在此类场景中 的示例性应用是用于为交通卡增加卡值的不相连充值站;这个过程可能需要密钥B来对非 接触式智能卡的某些扇区中的敏感数据存储块进行存取。为了满足这些软件应用程序提供 商的需求,卡发行商还可以与软件应用程序提供商共享SSLOT存取密钥。
[0044] 在某些示例性实施方案中,名称空间的SSLOT(出售槽)部分可以完全交予第二 方,其中所述SSLOT部分包括用于安全元件名称空间中的选择扇区的密钥B。此外,用于整 个安全元件名称空间的SSLOT可以通过针对非接触式智能卡中的所有扇区提供相同存取 密钥来提供给软件应用程序提供商。在对SSLOT形成控制时,卡发行商允许服务提供商存 取用于SLOT的密钥B和密钥A。作为SSLOT合同的一部分,第二方在位于安全元件内的控 制软件应用程序(或基于JavaCard的控制小程序)没有明确同意的情况下可能无法旋转 密钥B。控制软件应用程序由卡发行商拥有并部署在安全元件中。这种布置的目的在于允 许控制小程序按照软件应用程序提供商的要求来将SSLOT动态地换入和换出扇区。此外, 当最终用户在并入有非接触式智能卡的非接触式智能卡设备中安装多个软件应用程序时, 将向最终用户提供激活某些软件应用程序以用于事务处理目的的选项,甚至是在安全元件 名称空间拥塞时也是如此。在一个示例性实施方案中,外部安全存储器可以用作暂时存储 器,以供加载不活动的软件应用程序。外部安全存储器还可以并入在外部读卡器设备不能 存取的带有不同目录结构的现有安全元件内。
[0045] 在某些示例性实施方案中,卡发行商与可以作为卡发行商的第二方合作伙伴的软 件应用程序提供商之间的合同是基于卡发行商与软件应用程序提供商之间的服务级别协 议(SLA)和业务规则的合同。SLA限定由共享存取密钥以自动地或手动地启用SLOT传送而 产生的限制、事务以及过程。块中的密钥B的外部旋转(换句话说,非接触式交互)可以取 决于SLA中的规定。任何SLA违反将意味着缺乏收回名称空间的出售部分的技术手段。这 种功能使得SSLOT与RSLOT有所区别。由于SSLOT将关键控制交予第二方合作伙伴,因此 可以经由SLA向评价高且可信的合作伙伴强制执行共享。
[0046] 为了充分利用有限的安全元件名称空间,卡发行商可以尽可能少地"出售"槽,同 时针对RSLOT尽可能多地保留名称空间。为了最佳利用所保留的RSL0T,在某些示例性实施 方案中,卡发行商使用允许RSLOT动态映射(代替静态划分)的系统。卡发行商意图使得 RSLOT名称空间能够直接由非接触式智能卡设备上的钱包软件应用程序或用户接口软件应 用程序管理,所述应用程序与并入在所述设备中的非接触式智能卡的安全元件中的控制软 件应用程序交互。举例来说,在具非接触式NFC功能的移动电话上,最终用户使用钱包软件 应用程序来与智能卡内的控制小程序交互,进而使所述最终用户能够控制拥塞的安全元件 名称空间中的多应用环境的某些方面。
[0047] 在管理名称空间时,控制小程序保存能够对所述名称空间进行存取的整组A密钥 和B密钥的复本。对于所有扇区拥有A密钥和B密钥使得卡发行商能够灵活地对名称空间 进行动态管理。动态管理可以经由驻存在远程计算机上的远程软件应用程序(如在远程服 务器中的可信服务管理器(TSM)、由卡发行商拥有或控制的TSM)来应用。钱包软件应用程 序还可以用于基于各种参数(如用户动作和/或位置)使用控制小程序所提供的存取密钥 来动态地将软件应用程序和应用数据换入和换出名称空间区域。例如,在交通系统中,如果 非接触式智能卡设备最终用户从一个位置行进到另一位置,那么适用于第一位置交通系统 的智能卡凭据被换为第二位置交通凭据,并且所述卡可供用于第二位置。
[0048] 在一个示例性实施方案中,为了利用应用目录(AD),卡发行商使用占据卡块特定 部分的修改版本的应用目录,并且使用安全元件中的由卡发行商定义的名称空间。此外,卡 发行商应用目录实施方式可以支持从钱包软件应用程序(用户接口软件应用程序)直接配 备的能力,从而在没有额外外部准许的情况下,以动态方式交换安全元件名称空间的内容。
[0049] 在某些示例性实施方案中,钱包软件应用程序可以由卡发行商或所提供的软件应 用程序进行部署,其中安全元件内的软件应用程序和控制小程序可以彼此配合或交互,以 便在不使用用于外部验证的中间可信安全管理器(TSM)的情况下对名称空间进行存取。为 了以安全方式支持敏感数据配备,控制小程序支持不对称的公共/私有密钥加密。控制小 程序将两个密钥包括在安全元件内或外的安全存储器中,并且将使公共密钥仅在所述安全 元件外可用。
[0050] 控制小程序充当安全元件上的钱包软件应用程序的扩展,并且支持安全元件中的 如EMVCo顺应性等特征。控制小程序可以直接接受来自钱包软件应用程序的命令,从而实 现以下操作:支持两种类型的存储(SSL0T和RSL0T);管理用于RSLOT和SSLOT的存取密钥; 向第二方合作伙伴或软件应用程序提供商导出/旋转用于SSLOT的存取密钥;支持公共/ 私有密钥对,以使得可以从第二方设备接收加密指令;将数据配备到槽上,其中这种配备是 在没有TSM或可信服务代理(TSA)软件的情况下来配备应用数据、软件应用程序或安全元 件的存取密钥;动态地交换用于SSLOT和RSLOT两者的存取密钥和数据以便支持名称空间 的超额订制;以及实施将根AD块置于卡发行商指定位置中的专有版本AD。在某些示例性 实施方案中,这可以被定义为位于紧接在智能卡的第一千字节存储器(扇区16)之后的位 置处。
[0051] 名称空间中的卡发行商应用目录可以完全由所述卡发行商管理。控制软件应用程 序还可以初始化用于块的密钥,同时始终保留用于名称空间中的所有槽(或扇区)的A密 钥和B密钥的复本。在SSLOT的情况下,与以技术方式强制执行相反,拥有有效B密钥能够 以合同方式强制执行。在一个实例中,可以实施来自非TSM服务器或代理的经由SLA和业务 政策的自动实施方式。钱包软件应用程序启动对非接触式智能卡设备的所有仪器的配备, 这是"拉送配备"的一个实例。此外,钱包软件应用程序启动所有非接触式事务并且可以允 许用于已经配备的软件应用程序的推送通知,在此情况下,所述钱包软件应用程序可以随 后启动所请求的事务。
[0052] 在将控制软件应用程序安装在安全元件上后,所述控制软件应用程序可以典型地 将一组导出密钥旋转到块中并且保存所述密钥,从而定义安全元件名称空间内的安全存储 器。存取密钥可以使用各自由卡发行商或制造商提供的主控密钥、唯一标识符(UID)以及 安全元件CPLC(卡生产生命周期数据)的组合来导出。随后,根据指派给每个扇区的存取 密钥和存取位的设置来对扇区进行划分。所述块的第一1千字节可以被保留用于交通,并 且这些扇区可以作为SSLOT分发或作为RSLOT出租。无论如何,块的保留部分将被保留用 于交通。4KB卡上的块的接下来3千字节可以被保留用于卡发行商应用目录表。AD根块将 驻存在块的被保留用于应用目录的第一扇区中。
[0053] 在某些示例性实施方案中,密钥旋转可以由控制软件应用程序来实施。在并入非 接触式智能卡设备内之前,控制软件应用程序最初可以经由TSM或在卡发行商的制造设施 处安装在安全元件中。然而,在第一次使用设备时,密钥旋转可以在控制软件应用程序的实 例化时间处发生。存取密钥旋转可以作为在非接触式智能卡设备接通时触发的控制软件小 程序的实例化代码的一部分来启动。在一些示例性实施方案中,控制小程序可以经由卡制 造商的生产过程进行预先安装,借此当半导体裸片离开制造商的晶片处理(在测试之后) 时,所述控制小程序被安装在ROM或EEPROM存储区段中。作为这个过程的一部分,此后将 不执行用于控制小程序的实例化代码。出于这个原因,一旦已经选择控制小程序来实例化, 就可以包括针对"尚未旋转"的检查,以便确保控制小程序在存取密钥并未旋转的情况下无 法被使用(或选择)。需要停用的特殊命令是不需要的,因为在任何时间进行检查将只执行 一次存取密钥旋转。在此情况下,控制小程序需要确保其对存取密钥旋转的可能中止进行 保护,以便确保所有密钥在针对设备停用存取密钥旋转特征之前已经被旋转至少一次。
[0054] 在某些示例性实施方案中,存取密钥旋转可以在早至非接触式卡的生产过程时并 且晚至用于每个部件的各种驱动软件的并入和启动时执行,所述每个部件包括非接触式智 能卡设备(例如,移动手机)中的非接触式智能卡。并入和启动智能卡将确保此后不需要 保护(或停用)嵌入式安全元件(eSE)的过程。此外,对于检验包含NFC控制器、PN544以 及JCOP的NFC模块是否在正确工作,在原始设备制造商(OEM)处在卡生产或测试时执行密 钥旋转的过程非常有用。这个过程确保任何焊接和模压工作未使得芯片断裂或损毁。OEM 可以将这个检查过程作为半导体裸片的功能测试来执行。因此,OEM可以在交付之前实施 质量检查来改进设备质量,并且卡发行商将具有以下优势:密钥旋转在实施卡发行商的嵌 入式软件之前完成。
[0055] 控制软件应用程序或控制小程序以及钱包软件应用程序(用户接口软件应用程 序)执行安全元件名称空间的服务和配备,并且提供方便的接口来确保软件应用程序提供 商或卡发行商使用正确的应用ID(AID)来配备存储器。这个动作确保新的软件应用程序不 会盖写安全元件名称空间中的其它软件应用程序的应用软件或应用数据。为了使软件应用 程序提供商与控制软件应用程序进行交互,卡发行商发布一项协议,所述协议可以采用消 息格式并且采用相关联的事务模型。用户可以从钱包软件应用程序驱动配备启动。一旦已 经针对合作伙伴(多个软件应用程序提供商之一)配备了凭据,解决方案就提供回叫标识 符,软件应用程序提供商可以使用所述回叫标识符来将推送通知递送至设备。
[0056] 在某些示例性实施方案中,所有控制小程序事务可以由钱包软件应用程序来启 动,即使事务因推送的事件通知而发生。钱包软件应用程序可以是事务的启动者。在此方 法中,控制软件应用程序解决方案可以与传统EMVCo配备不同,不同之处在于,在控制软件 应用程序中,钱包软件应用程序是主导,而软件应用程序是事务的从属。相反,对于EMVCo 配备,软件应用程序提供商(例如,金融机构或交通系统)是事务的主导,而钱包软件应用 程序是从属,甚至不知道软件应用程序提供商正在经由TSM对其执行什么动作。由于控制 小程序与钱包软件应用程序相结合,这种设计可以减轻TSM的必要性,并且不对称密钥对 密码算法充当中立且安全的可信软件应用程序提供商。控制软件应用程序可以额外地定义 将在安全信道上驱动(由至少一个安全套接层或SSL强制执行)的所有交互。
[0057] 在某些示例性实施方案中,TSM软件应用程序(或JavaCardVM环境中的TSM小 程序)可以独立地或作为控制软件应用程序的一部分来经由公共-私有密钥不对称密码算 法来在安全元件中提供TSM实施方式,这允许非TSM计算机提供公共密钥加密的软件应用 程序和应用数据,并且提供对安全元件中的TSM软件应用程序的生命周期控制。TSM软件 应用程序向控制软件应用程序或已安装的软件应用程序提供所需权限来执行某些软件应 用程序生命周期功能,包括安装、实例化、开始、停止、销毁、更新、激活、解除激活、交换扇区 和存储块、改变存取密钥以及针对存取条件改变存取位,每个功能通过来自外部TSM计算 机设备的干预来执行。多个非TSM计算机(包括软件应用程序或应用数据)中的每一个经 由TSM软件应用程序或控制软件应用程序向卡发行商注册,其中注册过程向非TSM计算机 提供公共密钥以用于将应用数据提供给非接触式智能卡的安全元件。此外,TSM软件应用 程序随后可以使用作为注册过程的一部分授予TSM软件应用程序的权限来控制安全元件 内的应用数据的生命周期。
[0058] 在某些示例性实施方案中,控制软件应用程序实施是经由代表性状态转换 (RESTful)接口通过使用采用所定义的JavaScript对象通知或JSON格式的消息来执行的, 所述接口是无状态客户端-服务器体系结构。控制软件应用程序涉及事件序列方面的事 务,所述事件序列以钱包软件应用程序将开始配备消息发送到合作伙伴设备开始,其中所 述合作伙伴设备可以是作为用于多个软件应用程序的远程服务器主机运行的非TSM计算 机或TSM计算机。开始消息包括非TSM计算机对安全地返回到钱包软件应用程序的"管理 事务"响应进行编码所必需的信息。合作伙伴使用开始事务消息中的信息来对响应消息中 的数据进行编码。例如,开始消息可以包括用于控制小程序的公共密钥,以便匹配存储在非 接触式智能卡设备中的私有密钥。
[0059] 在某些示例性实施方案中,非TSM计算机又使用公共密钥来对非TSM计算机想要 配备到名称空间中的应用数据或软件应用程序进行编码。合作伙伴设备还可以是包括来自 多个软件应用程序提供商的软件应用程序的常见非TSM计算机。尽管控制小程序事务的概 念可能较窄并且由开始配备消息的设计来控制,但其也可以是钱包软件应用程序与安全元 件中的其它软件应用程序之间的许多潜在共享API之一。在一个示例性实施方案中,交通 系统软件应用程序的指定余额检查接口和其它功能可以被包括作为软件应用程序功能的 一部分。控制软件应用程序的消息事务可以是软件应用程序提供商可以将数据从非TSM计 算机提交给安全元件所用的一种机制。来自非TSM服务器的软件应用程序或应用数据可以 存储在被指派用来暂时存储的安全元件的一部分中,或存储在与安全元件中的控制软件应 用程序进行安全信道通信的外部安全存储区域中。
[0060] 在某些示例性实施方案中,能够对非接触式智能卡设备内的SSLOT进行存取的外 部读卡器设备可以配备成充当在适当位置处具有公共-私有密钥对加密的TSM计算机或非 TSM计算机。TSM或非TSM类型读卡器可以控制所驻存的软件应用程序,所述软件应用程序 被识别为在读卡器的控制内或由控制读卡器和安全元件内的某些软件应用程序两者的软 件应用程序提供商所发布。当软件应用程序提供商想要经由读卡器设备启动软件应用程序 相关事务时,相关非TSM计算机可以将推送通知发送给钱包软件应用程序。随之,钱包软 件应用程序使用安全通信信道来启动控制软件应用程序事务,以便检验请求是否被视为有 效。
[0061] 在某些示例性实施方案中,钱包软件应用程序可能并不提供关于在任何特定时间 帧内对通知进行接收或响应的强力保证。在控制小程序(或TSM小程序)与合作伙伴设备 之间的开始配备消息结构可以包括用于加密目的的TSM软件应用程序或控制软件应用程 序公共密钥、用于安全元件的唯一ID、协议版本号、事务标识符以及用以启用合作伙伴读取 器对AD进行存取的ADA密钥、在合作伙伴经由推送通知来请求事务的情况下所述合作伙 伴可以参照的事件通知以及钱包软件应用程序回叫标识符,以使得合作伙伴可以在未来日 期将通知推送到钱包。配备响应消息可以包括:响应状态(换句话说,成功、错误、重试等 等);响应细节(换句话说,如果响应状态是重试,那么细节字符串可以陈述服务器停机,稍 后再试);RSLOT/SSLOT布尔量,其中如果这是RSLOT,那么需要AID,并且AID必须是指派给 软件应用程序服务提供商的卡发行商应用目录ID。
[0062] 此外,在某些示例性实施方案中,当响应于开始配备消息而指派给软件应用程序 的SLOT是SSLOT时,ADID是指派给合作伙伴软件应用程序的有效SSLOT应用ID。经由读 卡器或TSM计算机来自软件应用程序提供商的响应可以进一步包括A密钥,所述A密钥应 当用于保护对所选SLOT的应用数据或指派给软件应用程序的生命周期功能的存取,其中 每一个是使用控制小程序公共密钥进行加密的。如果正确密钥已经适当置于TSM计算机、 TSM软件应用程序或将要从中配备数据的读卡器设备上,那么用于公共密钥的响应区域可 以空白。类似地,如果事务是密钥旋转类型事务并且现有数据有效,那么用于旋转代码的响 应区域可以空白;随后,在SLOT是SSLOT时,在响应中使用B密钥。使用控制小程序公共密 钥对SSLOT进行加密以用于旋转密钥,而RSLOT合作伙伴无法旋转B密钥。在与读卡器或 TSM计算机的事务完成之后,合作伙伴想要与用户共享的事务消息被施加到非接触式智能 卡,并且在用户接口软件应用程序(钱包软件应用程序)上显示,用以指示(例如)事务是 否是礼品卡充值,其中消息可以是:"感谢您充值礼品卡!"
[0063] 在某些示例性实施方案中,在软件应用程序提供商和卡发行商达成确保保护B密 钥的合同并且同意用户接口软件应用程序经由钱包软件应用程序来实施以与控制软件应 用程序交互时,SSLOT的配备启动,从而控制来自软件应用程序提供商的软件应用程序的 某些方面。当所有协议就位时,控制软件应用程序(与TSM软件应用程序组合)被安装在 非接触式智能卡设备的安全元件内。SSLOT的配备通过以下操作来进行:保护用户交互或 推送通知以触发控制小程序事务;钱包软件应用程序形成通往软件应用程序合作伙伴(软 件应用程序非TSM或TSM计算机)的安全连接信道;将被编码为JSON的开始配备请求经 由REST发送到合作伙伴;合作伙伴使用所述请求中的数据来潜在地对响应中的数据和A+B 密钥进行编码;钱包软件应用程序针对正确性和合法性来检查响应消息的有效性(例如, "StoreA"不能盖写"StoreB"应用程序);在响应是合法并且正确的时,钱包软件应用程序 将应用数据有效负载打包成控制小程序命令;所述命令随后经由局部安全信道(使用会话 ID、SSL以及二进制应用签名+卡OS安全性来确保安全)发送到控制小程序;控制小程序 使用私有密钥来对输入的控制小程序命令中的数据有效负载和密钥进行解码;控制小程序 执行密钥管理,从而在必要时变化并保存A+B密钥;并且控制小程序将数据有效负载写入 到由SSLOT应用ID(AID)指定的正确位置中。
[0064] RSLOT的配备以与上述SSLOT配备相同的方式进行,其中存在以下不同之处: RSLOT合作伙伴可以只指定A密钥进行变化,并且RSLOT合作伙伴必须使用RSLOT或用于 其应用程序的卡发行商目录应用ID。由于控制小程序始终知道用于名称空间的所有密钥, 因此其能够超额订制对块的存取。例如,控制小程序可以允许使用整个IKB的SSLOT空间 的两个交通机构共存在块中。通过将用于第一城市交通卡和第二城市交通卡的用户配备区 域用到其钱包中来实施这个动作。控制小程序在用户请求时或基于托管非接触式卡的设备 的GPS定位来动态地将不同的小程序复制到和复制出安全元件。当用于一个交通局的数据 被旋转出块时,控制小程序将"备用"数据存储在安全元件中。在必须重新启用备用卡时, 控制小程序将备用数据交换到活动块中并且存储所替换的数据。这个过程也可以应用于 RSLOTSo
[0065] 在某些示例性实施方案中,本地可信服务管理器(TSM)可以使用不对称密码方法 来实施,其中TSM小程序存在于智能卡的安全元件内,并且TSM小程序存储私有密钥以对来 自非TSM服务器的公共密钥加密的应用数据集进行解密。对应公共密钥由具有相同签名证 书的卡发行商或软件应用程序提供商进行签名和授权。这个过程允许非接触式智能卡与外 部读卡器设备交互,并且允许所述非接触式智能卡在没有TSM或TSA要求的情况下保护用 于软件应用程序和应用数据的脚本。举例来说,实施方式使用钱包软件应用程序,其中所述 钱包软件应用程序将证书发送给应用数据的所有者(软件应用程序提供商)。钱包软件应 用程序和应用数据可以包括寻求在安全元件中配备账户信息的银行、寻求配备或改变余额 信息的交通局,或者希望配备或改变礼品卡、积分卡、优惠券或其它信息的商家。应用数据 发行商检查证书,验证来自钱包软件应用程序的签名,并且通过专用于最终用户的请求应 用数据的非接触式智能卡设备的公共密钥来对应用数据进行加密。应用数据提供商(软件 应用程序提供商)随后将加密数据发送到本地TSM小程序(或在组合时,发送到控制小程 序),所述本地TSM小程序在最终用户的并入有非接触式智能卡的非接触式智能卡设备的 安全元件内。
[0066] 在某些示例性实施方案中,用于包括应用数据的这条加密消息的数据路径可以使 用安全通信信道穿过钱包软件应用程序(类似于控制小程序)或直接到达控制小程序。本 地TSM小程序接收所请求的数据,检验格式,检验权限,并且执行任何其它检查来验证应用 数据。此后,本地TSM小程序对应用数据进行解密并且将其安装到安全元件上。在控制小 程序实施本地TSM的情况下,对所接收的数据进行解密、检验并且使用非接触式卡的API直 接安装。在某些示例性实施方案中,本地TSM小程序创建安全脚本,其使用非接触式智能卡 设备的存取密钥来安装应用数据。采用加密格式的所下载的应用数据可以被存储在安全元 件中或安全元件外的暂时存储器中,所述暂时存储器与安全元件具有安全信道连接。此外, 安全脚本通过在主机操作系统中运行的本机软件应用程序来从安全元件中导出并且在非 接触式智能卡设备内执行。在某些示例性实施方案中,来自软件应用程序提供商的应用数 据从不被暴露在TSM软件应用程序和非接触式智能卡设备外,并且与TSM计算机类似,所述 应用数据在不与外部TSM计算机交互的情况下是安全的。
[0067] 本地TSM小程序和使用控制小程序的RSLOT实施方式的组合允许非接触式智能卡 设备安全地接收并安装来自非TSM计算机的卡信息。这个过程可以防止软件应用程序提供 商主动管理这个数据的生命周期。数据可以通过使用安全信道在非接触式智能卡的安全元 件内进行交换、启用和显示,并且来自钱包软件应用程序的用户偏好可以通过来自TSM小 程序的权限进行部署而不用接触外部TSM计算机。
[0068] 图1示出根据某些示例性实施方案的用于对非接触式智能卡设备中的安全元件 的名称空间进行划分并且用于使用来自所述安全元件外的软件应用程序的请求将应用数 据写入到所述安全元件中的计算机实施的系统100和设备144。非接触式智能卡设备144 包括安全元件156,其中所述安全元件是非接触式智能卡的一部分,作为内部部件或外部部 件,其与所述非接触式智能卡的其它部件中的每一个形成安全信道连接。非接触式智能卡 的其它部件包括NFC控制器176和天线180。安全元件156可以是SM卡、HCC卡、CDMA 非接触式支付设备的集成电路芯片或SD卡的一部分。外部安全元件和安全存储器184被 示出来提供连接到所述安全元件的暂时但安全的存储器的一个实例,以供在安装之前或在 解除激活期间暂时放置软件应用程序以便释放安全元件扇区中的空间。
[0069] 安全元件156包括控制软件应用程序160、安全元件名称空间164,出于事务处理 目的,所述安全元件名称空间保持应用数据和软件应用程序。暂时存储器168可以并入到 安全元件名称空间的现有扇区的区段中或并入到安全元件名称空间的不同分区中。暂时存 储器168还可以用于替代外部安全元件184。下载的应用数据或软件应用程序172以及解 除激活的软件应用程序可以驻存在暂时存储器168内。经由在控制软件应用程序处或在安 全元件名称空间的扇区内做出的改变来触发NFC控制器176。或者,如果非接触式智能卡设 备被设置为针对读取器终端188被动地发射无线电信号,那么在关闭电话以启用非接触式 智能卡设备144的这种被动应用时,NFC控制器可以保持活动。
[0070] 在某些示例性实施方案中,用户接口软件应用程序152是钱包软件应用程序,所 述钱包软件应用程序在非接触式智能卡设备144的操作系统或虚拟机环境148内执行。 用户接口软件应用程序152将信息提供给最终用户并且经由小键盘、语音或触摸敏感方 法接受来自最终用户的信息。非接触式智能卡部件中的每一个可以与安全元件或外部安 全存储器通信。非接触式智能卡设备144使用无线无线电通信方法140或无线互联网络 (Wi-Fi) 196之一来与卡发行商104和软件应用程序提供商112通信。在某些示例性实施方 案中,卡发行商104可以是无线服务提供商136。图1所示的两个部件104和136随后可以 组合来托管可信服务管理器108,所述可信服务管理器被示出为驻存在卡发行商104侧上。 软件应用程序提供商112可以包括信用卡公司116、票务公司(交通系统)120、优惠券公司 124、认证公司(积分、会员关系以及安全性验证)128以及保护信息提供商121 (如银行、商 家或其它金融服务提供商),所述保护信息提供商用于提供保密信息或以其它方式保护的 信息(例如,账户信息),这些信息可以用于实例化特定卡。每个部件116至128可以包括 独立的安全计算机,所述计算机托管应用数据和软件应用程序,所述应用数据和软件应用 程序可以直接使用连接196或间接通过136和140提供给非接触式智能卡设备144。
[0071] 在某些示例性实施方案中,出于事务处理目的,软件应用程序提供商112将软件 应用程序提供给卡发行商104,以便托管在TSM计算机108中。软件应用程序可以经由安全 Wi-Fi连接196提供安全下载能力,但是为了利用无线移动通信的安全性特征,TSM108用 于部署软件应用程序。在某些安全元件应用中,应用数据或软件应用程序安装过程使用从 TSM108追踪到安全元件156的签名证书;因此,安装到安全元件可能并不适用于Wi-Fi信 道196,并且在此类情形中,可能优选使用GSM/CDMA无线信道140。
[0072] 图2示出根据某些示例性实施方案的用于对非接触式智能卡设备中的安全元件 的名称空间进行划分并且用于使用来自所述安全元件外的软件应用程序的请求将应用数 据写入到所述安全元件中的计算机实施的系统200和设备244。非接触式智能卡设备244 包括安全元件256,其中所述安全元件是非接触式智能卡的一部分,作为内部部件或外部部 件,其与所述非接触式智能卡的其它部件中的每一个形成安全信道连接。非接触式智能卡 的其它部件包括NFC控制器276和天线280。安全元件256可以是SM卡、HCC卡、CDMA 非接触式支付设备的集成电路芯片或SD卡的一部分。外部安全元件和安全存储器284被 示出来提供连接到所述安全元件的暂时但安全的存储器的一个实例,以供在安装之前或在 解除激活期间暂时放置软件应用程序以便释放安全元件扇区中的空间。
[0073] 安全元件256包括控制软件应用程序或TSM软件应用程序260以及安全元件名称 空间264,出于事务处理目的,所述安全元件名称空间保持应用数据和软件应用程序。暂时 存储器268可以并入到安全元件名称空间的现有扇区的区段中或并入到安全元件名称空 间的不同分区中。暂时存储器268还可以用于替代外部安全元件284。下载的应用数据或 软件应用程序272以及解除激活的软件应用程序可以驻存在暂时存储器268内。经由在控 制软件应用程序处或在安全元件名称空间的扇区内做出的改变来触发NFC控制器276。或 者,如果非接触式智能卡设备被设置为针对读取器终端292被动地发射无线电信号,那么 在关闭电话以启用非接触式智能卡设备244的这种被动应用时,NFC控制器可以保持活动。
[0074] 在某些示例性实施方案中,用户接口软件应用程序252是钱包软件应用程序,所 述钱包软件应用程序在非接触式智能卡设备244的操作系统或虚拟机环境248内执行。 用户接口软件应用程序252将信息提供给最终用户并且经由小键盘、语音或触摸敏感方 法接受来自最终用户的信息。非接触式智能卡部件中的每一个可以与安全元件或外部安 全存储器通信。非接触式智能卡设备244使用无线无线电通信方法240或无线互联网络 (Wi-Fi) 296之一来与卡发行商204和软件应用程序提供商212通信。在某些示例性实施方 案中,卡发行商204可以是无线服务提供商236。图2所示的两个部件204和236随后可 以组合来托管能够经由公共密钥部署软件应用程序的计算机,其中所述计算机是非TSM计 算机208,所述非TSM计算机被示出为驻存在卡发行商204侧上。软件应用程序提供商212 可以包括信用卡公司216、票务公司(交通系统)220、优惠券公司224、认证公司(积分、成 员关系以及安全性验证)228以及保护信息提供商221 (如银行、商家或其它金融服务提供 商),所述保护信息提供商用于提供保密信息或以其它方式保护的信息(例如,账户信息), 这些信息可以用于实例化特定卡。每个部件216至228可以包括独立的安全计算机,所述计 算机托管应用数据和软件应用程序,所述应用数据和软件应用程序可以直接使用连接296 或间接通过236和240提供给非接触式智能卡设备244。
[0075] 在某些示例性实施方案中,控制软件应用程序或TSM软件应用程序对存储在暂时 存储器268中的私有密钥进行存取。在一个示例性实施方案中,私有密钥由卡发行商使用 不对称密码算法生成。私有密钥可以进行改变并且以预定时间间隔从卡发行商204推送到 安全元件256,以使私有密钥保持旋转并且是安全的。此外,TSM软件应用程序可以集成到 控制软件应用程序中,进而使两个软件应用程序能够控制来自软件应用程序提供商的事务 软件应用程序。由密码算法生成的公共密钥随后分发给各个合法软件应用程序提供商,包 括提供商216至228和由非TSM计算机208托管的软件应用程序。使用不对称密码算法对 系统200来说是有益的,其中软件应用程序的最低权限(包括软件应用程序的实例化、停 止、启动和销毁)无需使用远程TSM。
[0076] 权限可以经由TSM软件应用程序260来授予,所述TSM软件应用程序包括私有密 钥以对来自非TSM计算机208和216至228的软件应用程序进行解密和验证。此外,TSM软 件应用程序可以验证针对将对安全元件内所安装的软件应用程序执行的改变的请求,进而 就生命周期功能来说,消除调用API以寻求软件应用程序权限的安全元件运行时环境。
[0077] 图3示出根据某些示例性实施方案的用于非接触式智能卡设备中的安全元件304 的名称空间的数据结构300A以及与控制安全元件名称空间中的划分和应用数据存储的控 制软件应用程序300相关联的应用数据300B。安全元件名称空间在图3中被示出为表,所述 表包括每存储块16个字节316和每扇区3084个块312。每个存储块包括存取存储块328A 至328Z和数据存储块332。每个存取存储块328A至328Z进一步包括存取密钥320和324, 其中A密钥320A至320Z和B密钥324A至324Z中的每一个向整个块提供一个存取类型或 两个或更多个存取类型的组合。存取存储块328包括存取位,所述存取位描述指派给扇区 中的块的存取类型。制造商的块336包括版本信息和唯一标识符信息,用以导出默认存取 密钥A和B。用于扇区0的数据存储块还包括扇区0的块1和块2中的应用目录。应用目 录332A是带有AID信息和指向包括在所述AID下的软件应用程序或应用数据的扇区的指 针的表。
[0078] 出于说明目的,控制软件应用程序340被示出为包括应用数据,但在某些示例性 实施方案中,应用数据被存储在同一安全元件名称空间304的数据存储块中,或被存储在 安全元件304外的物理上或虚拟上不同的安全元件中。控制软件应用程序340存储所有存 取密钥344,包括用于针对安全元件名称空间304中的每个扇区改变B密钥和存取位348的 存取密钥。扇区类型352是根据存储在控制软件应用程序中的存取位进行定义的,其中所 述扇区类型允许单个软件应用程序在扇区内执行某些功能,例如写入、读取、递增、递减以 及目录扇区类型。此外,扇区类型与卡发行商经由控制软件应用程序进行的槽选择和分发 相关联。读取/写入块可以被指派SSLOT扇区,而扇区15中的初始值只有在事务类型软件 应用程序对扇区进行控制时才能被写入,并且因此是SSLOT所有者。当软件应用程序被存 储在多个扇区上时,每个扇区的AID被存储356在控制软件应用程序中,以便遵循非接触式 智能卡中的软件应用程序的结构。改变日志记录以下内容:最终用户请求、由外部TSM计算 机做出的改变,以及在安全元件中的软件应用程序的生命周期期间由外部读卡器做出的针 对存取密钥的请求。
[0079] 图4示出根据某些示例性实施方案的用于通过在安全元件内的控制软件应用程 序将安全元件的名称空间划分成至少两个存储类型的计算机实施的方法400。在方框405 中,卡发行商或非接触式智能卡设备最终用户针对安全元件名称空间内的多个存储块定义 存取类型,例如,第一存取类型、第二存取类型、第一存取密钥以及第二存取密钥。第一存取 密钥和第二存取密钥中的每一个针对安全元件名称空间内的多个存储块提供以下之一:第 一存取类型、第二存取类型,或第一存取类型与第二存取类型的组合。控制软件应用程序可 以用来定义存取类型和存取密钥,其中在一个替代实施方案中,所述定义可以在生产之后 在上述存取密钥旋转期间执行。存取密钥包括A密钥和B密钥,并且存取类型包括写入、读 取、递增、递减以及恢复或缺省。
[0080] 方框410执行选择过程,所述选择过程使用控制软件应用程序来从安全元件名称 空间内的存储块至少选择第一存储块组、第二存储块组以及用于所选存储块组中的每一个 的存取类型。每个所选存储块组中的至少一个存储块是存取存储块,其用于将所选存储块 组的数据存储块内的软件应用程序或应用数据的所选存取类型提供给外部数据请求设备。
[0081] 方框415执行传输功能,以从控制软件应用程序传输第一存取密钥、第二存取密 钥以及用于每个相应所选存储块组的所选存取类型,以用于存储在所选存储块组中的每一 个的存取存储块中,进而将安全元件的名称空间划分成至少两个存储类型。
[0082] 图5示出根据某些示例性实施方案的用于使用来自驻存在安全元件外的用户接 口软件应用程序的请求将应用数据写入到安全元件名称空间中的计算机实施的方法500。 方框505执行初始传输功能,将针对应用数据和用于写入存取类型的至少一个存取密钥的 请求从用户接口软件应用程序或钱包软件应用程序传输到远程可信服务管理器(TSM)计 算机。经由方框505请求的应用数据将被写入到安全元件名称空间。
[0083] 方框510执行接收步骤,在安全元件的暂时存储器处从远程TSM计算机接收所请 求的应用数据和所请求的存取密钥。如上所述,对于出于事务处理目的而用来存储应用数 据和软件应用程序的安全元件来说,暂时存储器可以是物理上或虚拟上不同的。例如,暂时 存储器可以是外部安全存储器184、284或暂时存储器168、268。方框515使用安全元件中 的控制软件应用程序来将所请求的应用数据从安全元件的暂时存储器写入到安全元件名 称空间的数据存储块。数据存储块是由控制软件应用程序预定或指派的。此外,安全元件 名称空间的数据存储块由控制软件应用程序使用所请求的存取密钥进行存取,所述所请求 的存取密钥是从TSM计算机接收的。
[0084] 图6示出根据某些示例性实施方案的用于在非接触式智能卡设备的安全元件内 本地实施可信服务管理器(TSM)的计算机实施的方法600。TSM软件应用程序通过方框605 安装在非接触式智能卡设备的安全元件中。方框605可以表示刚好在制造非接触式智能卡 时旋转密钥之后或在非接触式智能卡设备中部署非接触式智能卡之前的步骤。TSM软件应 用程序可以并入在安全元件的控制软件应用程序内,或可以独立地执行。TSM软件应用程序 包括计算机代码,所述计算机代码用于执行传输功能来请求应用数据并且执行解密功能来 对加密形式的所接收的应用数据进行解密,其中所接收的应用数据响应于来自传输功能的 请求而在非接触式智能卡设备处进行接收。
[0085] 方框610将私有密钥存储在安全元件中,其中所述私有密钥被指派给TSM软件应 用程序,其中所述私有密钥与公共密钥一起使用(例如)不对称密码算法来生成。
[0086] 传输步骤经由方框615来进行,用于通过TSM软件应用程序将针对应用数据的请 求传输到多个所注册的远程非TSM计算机之一。这些非TSM计算机包括图2的设备208和 216至228。远程非TSM计算机被配置来对公共密钥进行存取,用于对响应于请求的应用数 据进行加密。TSM软件应用程序还可以将针对应用数据的请求传输到TSM计算机,所述TSM 计算机可以使用公共密钥来将数据返回至设备244。
[0087] 方框620在非接触式智能卡设备中执行接收功能,其中接收并且存储加密的应用 数据。加密的应用数据可以存储在为此指派的安全元件扇区的暂时存储器内,或可以经由 属于非接触式智能卡设备的外部安全存储器来存储,其中外部安全存储器经由安全通信信 道连接到安全元件。应用数据提供商可以使用公共密钥对所请求的应用数据进行加密,并 且随后将加密数据传递给设备244,以便在方框620中进行接收。
[0088] 方框625使用指派给TSM软件应用程序的私有密钥来对加密的应用数据进行解 密。解密的应用数据准备好用于安装在安全元件的预定数据存储块内,其中所述数据存储 块分派由控制软件应用程序基于存储块的当前状态、指派给存储块的存取位以及扇区的状 态(SSLOT或RSLOT)来决定。
[0089] 在一个示例性实施方案中,安全元件256可以具有指派给所述安全元件的唯一私 有密钥和对应公共密钥。在第一次安装TSM软件应用程序时,所述TSM软件应用程序可以生 成两个公共/私有密钥对并且将这些密钥对保存在内部。一个密钥对用来接收加密通信, 如参照图6所述,并且另一密钥对用来允许TSM软件应用程序对消息进行签名。
[0090] 可信实体(如远程可信服务管理器)可以接触TSM软件应用程序来获得公共密钥 并且创建证书,所述证书允许第三方检验这些公共密钥确实与实际安全元件中的TSM软件 应用程序相关联。这些第三方(例如,图2的设备208和216至228)随后可以使用用于加 密的公共密钥来对消息进行加密,将加密消息发送到安全元件256,并且检验所述第三方接 收的消息源自安全元件256。
[0091] 通过使用用于解密的私有密钥,TSM软件应用程序的解密功能的启用只能由安装 在安全元件256内的其它应用程序调用。可以基于公共/私有密钥对来创建证书,以便证 明公共密钥的安全性。
[0092] 图7示出根据某些示例性实施方案的出于划分和配备目的而控制对安全元件名 称空间的存取的计算机实施的方法700、存取条件704、存取类型708至712以及可以指派 给非接触式智能卡的各种扇区内的存储块的存取密钥(例如,720和724)。对于列716中 所列举的扇区或存储块,可以经由控制软件应用程序实施的改变的类型由存取条件704定 义。控制软件应用程序将存取条件信息与图3所示的表300B-起存储。第一行中的读取 存取类型被设置为密钥A1,这意味着相关扇区728可以由能够向非接触式智能卡显示同一 密钥4的外部读卡器设备读取。类似地,密钥A1或B1可以用来将写入能力存取到由728 中的存取条件定义的扇区。举例来说,在使用交通系统时,对于具有存取位的扇区来说,在 用于允许输入退出和进入数据的存取存储块中,外部读卡器向智能卡提供针对特定扇区的 B密钥来用于写入退出站和进入站。初始值改变可以使用密钥B2在扇区740处进行,所述 密钥B2可以不同于密钥Bi。检票闸门处的读卡器可以不对这个扇区进行存取,并且交通办 公处的特殊读取器可以对这个扇区进行存取来用于向非接触式智能卡添加值。
[0093] 存取密钥本身可以在某些情形中进行改变,但在本文所述的实施方案中,控制软 件应用程序基于卡发行商与软件应用程序提供商之间的合同义务来记录并准许对B密钥 进行改变。因此,如图7所示,可以通过使用同一密钥A2或高权限密钥(密钥B2)首先存取 和改变扇区的存取存储块中的存取密钥来改变密钥A2 752。密钥氏始终是安全性较高的密 钥,并且可以用于对所选扇区的密钥A2和密钥B2执行存取密钥改变,如经由744至764所 示。B密钥可以不随A密钥一起改变,尽管可以针对所选扇区进行相反情况。最终,可以改变 776存取存储块中的存取位,从而出于RSLOT和SSLOT目的,向存储块指派不同权限。此外, 在改变存取密钥或存取位之前,可以读出存储块中的软件应用程序并且将其存储在不同存 储块中。在已经改变存取密钥和存取位之后,随后可以将应用数据或软件应用程序写回到 新的或原始的存储块。举例来说,对于RSL0T,存储扇区728和740可能需要是SSL0T,以便 允许交通管理局向这些槽内的数据增加值。然而,存取存储块中的存取位可以不是SSL0T, 并且可以改为是RSL0T,从而允许交通管理局将存取条件从递增改变为递减,而不改变块中 的密钥。
[0094] 本公开的一个或多个方面可以包括一种体现本文描述并且示出的功能的计算机 程序,其中所述计算机程序在计算机系统中实施,所述计算机系统包括存储在机器可读介 质中的指令以及执行所述指令的处理器。然而,应清楚,可以存在许多不同方式来在计算机 编程中实施本公开,并且本公开不应被理解为限于任何一个计算机程序指令集。此外,熟练 的编程人员将能够基于所附流程图和申请文本中的相关描述来编写此类计算机程序以实 施本公开的实施方案。因此,不认为特定程序代码指令集的公开内容对于充分理解如何制 作和使用本公开是必须的。本公开的发明功能性将在结合示出程序流程的附图进行阅读的 对示例性实施方案的所附描述中更详细地解释。
[0095] 之前提出的实施方案中所述的示例性方法和行为是说明性的,并且在替代实施方 案中,某些行为可以按照不同次序、彼此并行、完全省略和/或在不同示例性实施方案之间 进行组合来执行,且/或可以在不背离本公开的范围和精神的情况下执行某些额外行为。 因此,此类替代实施方案均包括在本文所述的公开内容中。
[0096] 示例性实施方案可以与执行上述方法和处理功能的计算机硬件和软件一起使用。 如本领域技术人员将了解,本文所述的系统、方法和程序可以体现在可编程计算机、计算机 可执行软件或数字电路中。软件可以存储在计算可读介质上。例如,计算机可读介质可以 包括软盘、RAM、ROM、硬盘、可装卸介质、闪存、存储棒、光学介质、磁光介质、CD-ROM等等。数 字电路可以包括集成电路、门阵列、构建块逻辑、现场可编程门阵列("FPGA")等等。
[0097] 尽管上文已经详细描述了特定实施方案,但所述描述仅仅出于说明目的。因此,应 了解,上述许多方面并不意图作为所需或必需元素,除非另外明确指出。在不背离所附权利 要求中所定义的本公开的精神和范围的情况下,除了上述那些内容之外,受益于本公开的 本领域技术人员能够对示例性实施方案的所公开方面做出各种修改和对应等效行为,本公 开的范围应被赋予最广泛的解释,以便涵盖此类修改和等效结构。
【权利要求】
1. 一种用于在非接触式智能卡支付设备的安全元件内本地实施可信服务管理器 (TSM)的计算机实施的方法,所述方法包括: 在所述非接触式智能卡支付设备的所述安全元件中安装TSM软件应用程序,其中所述 TSM软件应用程序包括用于执行传输功能以请求应用数据、执行解密功能以对加密形式的 所接收的应用数据进行解密的计算机代码,所接收的应用数据是响应于所述传输功能作出 的请求而在所述非接触式智能卡设备处接收的; 在所述安全元件中存储指派给所述TSM软件应用程序的私有加密密钥和对应公共加 密密钥; 通过所述TSM软件应用程序的所述传输功能将针对应用数据的请求传输到所注册的 远程非TSM计算机,所述远程非TSM计算机被配置来存取所述公共密钥; 在所述非接触式智能卡支付设备中从所述远程非TSM计算机接收所请求的应用数据 用于安装在所述非接触式智能卡支付设备的所述安全元件中,所请求的应用数据包括以下 至少一个:除了所述TSM应用程序之外的可在所述安全元件中执行的软件应用程序或用以 支持所述安全元件中的除了所述TSM应用程序之外的现有软件应用程序的数据,所接收的 所请求的应用数据已经由所述远程非TSM计算机使用所述公共加密密钥进行加密;以及 通过所述TSM软件应用程序的所述解密功能使用所述私有密钥对所加密的所接收的 应用数据进行解密。
2. 根据权利要求1所述的方法,进一步包括: 将所解密的应用数据写入到所述安全元件中的至少一个存储块。
3. 根据权利要求1所述的方法,进一步包括: 由在所述非接触式智能卡设备上并且驻存在所述安全元件外的用户接口软件应用程 序管理所述安全元件中的所述TSM软件应用程序,进而执行所述用户接口软件应用程序处 的输入以用于将针对应用数据的请求传输到所述远程计算机,接收所加密的应用数据,并 且解密所述加密形式的所述所接收的应用数据。
4. 根据权利要求3所述的方法,其中所述用户接口软件应用程序经由安全通信信道将 来自所述非接触式智能卡设备的显示器或小键盘的用户输入传输到所述安全元件中的所 述TSM软件应用程序。
5. 根据权利要求1所述的方法,其中所加密的应用数据被接收在所述安全元件中或所 述非接触式智能卡设备的在所述安全元件外的安全存储器中,所述安全存储器经由安全通 信信道连接到所述安全元件。
6. 根据权利要求1所述的方法,其中所述远程非TSM计算机被注册用于只在所述远程 计算机拥有所述公共密钥时将应用数据部署到所述非接触式智能卡设备。
7. 根据权利要求1所述的方法,其中所述TSM软件应用程序进一步包括用于提供对被 接收在所述非接触式智能卡设备中的所加密的应用数据执行各种生命周期功能的权限的 计算机代码,所述生命周期功能包括以下至少一个:初始化功能、安装功能、开始功能、停止 功能以及销毁功能。
8. -种用于在非接触式智能卡支付设备的安全元件内本地实施可信服务管理器 (TSM)的计算机实施的系统,所述系统包括: 非接触式智能卡支付设备; 安全元件,其驻存在所述设备上并且存储指派给所述安全元件的私有加密密钥和对应 公共加密密钥; TSM软件应用程序,其驻存在所述安全元件中,所述TSM软件应用程序包括用于执行传 输功能以请求应用数据、执行解密功能以对加密形式的所接收的应用数据进行解密的计算 机代码,所接收的应用数据是响应于所述传输功能作出的请求而在所述非接触式智能卡设 备处接收的,所述应用数据包括以下至少一个:除了所述TSM应用程序之外的可在所述安 全元件中执行的软件应用程序或用以支持所述安全元件中的除了所述应用程序之外的现 有软件应用程序的数据, 其中所述TSM软件应用程序的所述传输功能将针对应用数据的请求传输到远程非TSM 计算机,所述远程非TSM计算机被配置来存取所述公共密钥, 其中所述设备响应于所传输的在所述设备的所述安全元件中安装的请求而从所述远 程非TSM计算机接收所请求的应用数据,所接收的应用数据已经由所述远程非TSM计算机 使用所述公共加密密钥进行加密,以及 其中所述TSM软件应用程序的所述解密功能使用所述私有密钥对所加密的所接收的 应用数据进行解密。
9. 根据权利要求8所述的系统,其中所述安全元件进一步包括控制软件应用程序,所 述控制软件应用程序将所解密的应用数据写入到所述安全元件中的至少一个存储块。
10. 根据权利要求9所述的系统,进一步包括: 用户接口软件应用程序,其驻存在所述设备上并且在所述安全元件外,所述用户接口 软件应用程序管理所述安全元件中的所述TSM软件应用程序,进而执行所述用户接口软件 应用程序处的输入以将针对应用数据的请求传输到所述远程计算机,接收所加密的应用数 据,并且解密所述加密形式的所接收的应用数据。
11. 根据权利要求10所述的系统,其中所述用户接口软件应用程序经由安全通信信道 将来自所述非接触式智能卡设备的显示器或小键盘的用户输入传输到所述安全元件中的 所述TSM软件应用程序。
12. 根据权利要求9所述的系统,其中所加密的应用数据被接收在所述安全元件中或 所述非接触式智能卡设备的在所述安全元件外的安全存储器中,所述安全存储器经由安全 通信信道连接到所述安全元件。
13. 根据权利要求9所述的系统,其中所述远程非TSM计算机被注册用于将应用数据部 署到所述非接触式智能卡设备从而获得对所述公共密钥的存取。
14. 根据权利要求9所述的系统,其中所述TSM软件应用程序进一步包括用于提供对被 接收在所述非接触式智能卡设备中的所加密的应用数据执行各种生命周期功能的权限的 计算机代码,所述生命周期功能包括以下至少一个:初始化功能、安装功能、开始功能、停止 功能以及销毁功能。
【文档编号】G06Q20/32GK104504806SQ201410768420
【公开日】2015年4月8日 申请日期:2011年12月16日 优先权日:2010年12月17日
【发明者】罗伯·冯贝伦, 乔纳森·沃尔, 伊斯梅勒·杰姆·帕亚 申请人:谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1