基于身份的票务方法和系统的制作方法

文档序号:6484788阅读:196来源:国知局
基于身份的票务方法和系统的制作方法
【专利摘要】一种方法、装置、系统和计算机程序,其中装置存储用户特定凭证,经由通信接口从证书机构接收证书,并在存储器中存储证书。所述装置还包括在存储器中存储私有密钥和公共密钥,以及通过发送一个或多个消息,尝试将装置向票据阅读器进行认证以访问服务,其中该消息包含认证符,其具有以下中的至少一个:证书或其加密派生物;由证书或其加密派生物所包含的一个或多个数据项。准备该消息,使得所述公共密钥不可超出所述认证符而恢复。
【专利说明】基于身份的票务方法和系统
【技术领域】
[0001]本申请通常涉及基于身份的票务。
【背景技术】
[0002]使用基于近场通信(NFC)的由乘客所使用的芯片卡和安装在入口和/或出口处的 阅读器设备,可以控制进入某些交通系统。某些地铁系统具有自动门,当芯片卡通过验证 时,自动门打开。在基于身份的系统中,用户身份被存储并与各自的用户账户和电子票据相 关联。当在门口处观测到使用电子票据时,从各自的用户账户对公共交通的使用进行计费。
[0003]在基于身份的系统中,用户身份例如不被用作票据,从而降低被可能电子窃听阅 读器和电子票据之间的通信的某人盗用身份的风险。相反,电子票据以用户身份不能从电 子票据中获取的方式制作。
[0004]存在各种认证电子票据的技术。最简单地,芯片卡将票据发送到阅读器,阅读器将 该票据传送到认证服务器。认证服务器检查到该票据是有效的,则向阅读器通知该票据的 有效性,并改变记录从而使得上述票据不再有效。在某些更复杂系统中,有一个在先的步 骤,即阅读器向芯片卡认证自身从而避免中间人攻击,在中间人攻击中,某些其它设备例如 当邻近于NFC芯片卡时,模仿阅读器并盗取票据。尽管这种盗取将会需要接近于NFC芯片 卡,但是地铁系统中的高峰时间提供了大量的机会,以近距离接触其它人的NFC芯片卡。
[0005]在某些NFC芯片卡的基于身份的票务系统中,芯片卡使用标准加密技术(诸如公 共密钥基础设施(PKI))、挑战、应答、公共时间参考以及单向哈希,通过在NFC接口上的通 信向阅读器认证自身。

【发明内容】

[0006]在权利要求中阐述了本发明的示例的各个方面。
[0007]根据本发明的第一示例方面,提供了一种在权利要求1中所限定的装置。
[0008]根据本发明的第二示例方面,提供了一种在权利要求20中所限定的装置。
[0009]根据本发明的第三示例方面,提供了一种在权利要求25中所限定的装置。
[0010]根据本发明的第四示例方面,提供了一种在权利要求27中所限定的方法。
[0011]根据本发明的第五示例方面,提供了一种在权利要求28中所限定的装置。
[0012]根据本发明的第六示例方面,提供了一种在权利要求29中所限定的装置。
[0013]根据本发明的第七示例方面,提供了一种在权利要求30中所限定的计算机程序。
[0014]根据本发明的第七示例方面,提供了一种在权利要求31中所限定的计算机程序。
[0015]根据本发明的第八示例方面,提供了一种系统,其包括第一示例方面、第二示例方 面、第三示例方面中的至少一个装置和/或本发明第七示例方面和第八示例方面的计算机 程序。
【专利附图】

【附图说明】[0016]为了更全面地理解本发明的示例性实施例,现参考以下结合附图的描述,其中:
[0017]图1示出本发明示例性实施例的系统的体系结构概图;
[0018]图2示出根据某些实施例的适合作为不同实体操作的装置的框图;
[0019]图3说明根据一个示例性实施例(例如,与第一主要示例相关)的某些操作;
[0020]图4说明根据另一个示例性实施例(例如,与第二主要示例相关)的某些操作;以 及
[0021]图5说明根据又一个示例性实施例(例如,与第三主要示例相关)的某些操作。 【具体实施方式】
[0022]通过参考附图中的图1至图5,可以理解本发明的示例性实施例及其潜在优点。
[0023]图1示出适合于执行某些示例性实施例的系统100的体系结构概图。系统100包 括诸如智能手机的用户设备(被称为D) 110和阅读器(被称为S) 120。DllO至少间歇性地 访问认证服务器(被称为C) 130,诸如服务器集群或云。S120至少间歇性地访问后端系统 (被称为T) 140。
[0024]用户设备或DllO例如是便携式设备,诸如移动电话、便携式游戏设备、芯片卡票 据、导航器、个人数字助理、平板电脑或便携式web浏览器。D通常具有处理信息(以执行加 密操作)的能力,并且当利用其它实体或利用其它相关通信单元进行非接触式或接触式访 问时,具有至少间歇性地与其它实体(与C130和与S120)进行通信的能力。
[0025]DllO具有:加密处理电路(诸如单独的可信执行环境(TEE)Ill以用于加密操作)、 诸如近场通信(NFC)的通信接口 112、近场通信(NFC)接口驱动器113、逻辑链路控制协议 (LLCP)栈114、证书管理器CM115 (其是一个接口,操作系统和/或应用通过该接口能够与 运行在TEE内部的逻辑进行交互)、以及公共交通应用116。在某些实施例中,将TEElll隔 离作为使用通用硬件电路的逻辑分离功能体。在其它实施例中,TEE的部分或所有逻辑单 元用专用硬件单元来实现。
[0026]在某些实施例中,DllO还包括:用户接口、移动通信电路、使用户能够安装应用的 应用平台、和/或用于为装置提供电力的电池。在某些实施例中,例如当与电磁感应或电偶 接触一起使用时,从外部为DllO提供电力。
[0027]S120包括:诸如近场通信接口 122的通信接口、逻辑链路控制协议(LLCP)栈124、 引擎126 (其是一个用于控制各种认证操作的处理电路)、以及存储器128 (其包含S120操 作所需的各种数据,包括例如C130的公共认证密钥PKC1284和用户设备黑名单1282,其 中该用户设备拥有由C130授权的证书,该证书还没有过期但不应当再被票据阅读器(即被 S120)用于授权访问服务)。
[0028]在某些实施例中,S120是在公共交通系统的门口处固定安装的设备。在某些其它 实施例中,S被安装到便携式设备中,例如以供票据检查人员使用。
[0029]在某些实施例中,交通后端系统T140是服务器,其由服务提供者操作并且具有与 C130和与S120交换信息的通信能力。图1的T140还包括计费引擎142,其被配置为为使 用服务提供者的服务确定计费费率。
[0030]在一个示例性实施例中,近场通信接口 112由当前可利用的硬件为其提供接 口,并且对各种消息的大小进行了优化。使用NFC点对点通信模式的逻辑链路控制协议(LLCP),执行DllO和S120之间(例如,在交通站的门口处)的数据事务。这个实施例使得 能够使用链路层传输服务类,诸如无连接数据传输和面向连接数据传输,而不限于现有NFC 卡模拟模式及其预定义的数据和消息结构。
[0031]图2示出根据某些实施例的适合作为不同实体操作的装置200的框图。装置200 包括:通信接口模块250、可选的TEElll (如果该装置是作为DllO来操作的)、耦合到通信 接口模块250的处理器210、以及耦合到处理器210的存储器220。该装置还包括软件230, 其存储在存储器220中并可操作地被加载到处理器210中并在处理器210中执行。在一个 示例性实施例中,软件230包括一个或多个软件模块。软件230可以是以计算机程序产品 的形式,该计算机程序产品是存储在(非临时性)计算机可读存储介质中的软件。
[0032]通信接口模块250被配置为通过一个或多个本地链路和/或通过一个或多个其它 数据链路(诸如电信网链路或数据网链路)交换信息。在某些示例性实施例中,本地链路被 实现为有线和/或无线链路。在一个实施例中,通信接口模块250还实现电信链路,其适合 于建立与其它用户或用于数据传输(例如使用互联网)的链路。这种电信链路例如是使用以 下中的任一种的链路:无线局域网链路、蓝牙、超宽带、蜂窝或卫星通信链路。在一个实施例 中,通信接口模块250被集成在装置200中或集成在诸如适配器、卡之类中(在一个实施例 中,它被插入到装置200的适当槽或端口中)。尽管图2示出一个通信接口模块250,但在一 个实施例中,装置250包括多个通信接口模块250。
[0033]处理器210例如是中央处理器(CPU)、微处理器、数字信号处理器(DSP)、图形处理 单元、专用集成电路(ASIC)、现场可编程门阵列、微装置200或其组合。图2示出一个处理 器210。在某些实施例中,装置200包括多个处理器。
[0034]存储器220例如是易失性或非易失性存储器,诸如只读处理器(ROM)、可编程只读 存储器(PR0M)、可擦除可编程只读存储器(EPR0M)、随机存储器(RAM)、闪存、数据盘、光存 储器、磁性存储器、智能卡,或诸如此类。装置200包含一个或多个存储器。在一个实施例 中,存储器220被构建为装置200的一部分。在另一个实施例中,存储器200被插入到装置 200的槽中,或经由装置200的端口或诸如此类连接。在一个实施例中,存储器220只服务 于存储数据的目的。在替代实施例中,存储器220被构建为装置的一部分,服务于其它目 的,诸如处理数据。
[0035]在一个实施例中,TEEl 11包括如参照图2的附图标记220至240所示的类似组件, 即处理器、不同存储器以及软件。另外,TEE包含内部通信接口,其用于在装置200的其它 部件之间(例如与处理器210以及可选地或可替换地与装置200的存储器220)交换信息。
[0036]下面以高级概念层面来描述图1的系统100的某些预期操作。在本说明书中,假 定C130和T140都能够由独立方来管理,诸如基于身份的票务提供者和服务提供者(例如 交通运营者),其提供由系统100中的用户所消费的实际服务。DllO具有与C130的先验关 系。作为这种关系的一部分,D130能够唯一地认证DllO乃至从TEElll发出的消息或去往 TEElll的消息。用于基于身份的票务,设备的TEElll生成新的Rivest、Shamir和Adleman (RSA)密钥对,密钥对的私有部分从不离开TEE111。公共部分被发送到C130,在那里它被 验证以供票务上下文使用。证书还包含“客户ID”,它由诸如交通管理机构的服务提供者使 用。然后,证书由C130返回到D110。交通运营者的门口安装有连同服务器密钥的公共部分 的必要算法,其是验证上述证书所需要的。现在,当C130在交通运营者入口门处的S120附近被“触碰(tapped)”或被带入到交通运营者入口门处的S120附近时,DllO和S120之间必要的数据事务连同身份证书的传输一起产生。
[0037]在某些实施例中,在接收到必要信息后,S120不仅验证由正确授权方所签名的证书,还针对黑名单验证用户身份。在允许任何进入到入口之前,S120还可根据所使用的协议来验证其它数据。事务证据(即证书)、身份和其它必要信息连同有关交通的其它上下文一起被收集。在某些实施例中,事务还反馈给计费引擎142并最终提供给C130。
[0038]在某些实施例中,身份黑名单被用于阻止使用D110,例如DllO的证书还没有过期,但各自账户或服务使用权限已经用尽。
[0039]记账和证书机构(C)
[0040]C130表示发布身份证书给用户设备(DllO)并维护记费信息的机构。除了这些外,C130还是负责清除事务并维护对于不满足金钱债务的设备或用户的黑名单的实体。在其他方面,为生成设备证书,C130需要具有服务私有密钥(SKC)的签名设备,并且C130必须向其信赖方提供对应的公共密钥(PKC)以进行验证。在某些实施例中,C130是服务器计算机或服务器计算机集群。C130包括通信接口,其被配置为与各种其它实体(诸如D110、S120和/或T140)交换信息。
[0041]用户设备(DllO)
[0042]DllO例如是集成NFC的智能手机,其加密地与C130中的给定账户持有人相关联。DllO包含有安全的、独立的可信执行环境(TEE)以用于处理机密数据。在某些实施例中,在基于身份的票务中,TEElll是植入硬件的功能体,用于利用在同一 TEElll中所生成的密钥产生签名。代表用户的每个DllO将与由C130指派的客户或交通身份(IDD)相关联。IDD的格式是与服务提供者(例如,交通管理机构)达成一致的格式或者由服务提供者所接受的格式。对于基于身份的协议,TEElll还生成并持有唯一一对PKI密钥:设备私有密钥(SKD)和设备公共密钥(PKD)。对于公共密钥,C130定期地向TEElll提供用户身份证书(CertD)。该证书保存诸如PKD、IDD和到期时间(Texp)之类的信息。
[0043]票据阅读器(S)
[0044]S120表示阅读器,其附加到交通站的入口门和出口门。为认证来自DllO的响应,每个票据阅读器120需要访问PKC,PKC是记账机构C130的公共密钥。阅读器S120还包含用于不断地更新他们的黑名单副本的接口,该黑名单是用于验证用户身份的。阅读器S120汇集从DllO和S120之间的每个数据事务会话中所收集的所有信息。在DllO和S120之间的数据事务会话完成后,这些所汇集的信息立刻被发送给交通系统后端服务器T140。以后,这些数据用作由对应用户IDD使用交通服务的证据。用于这种基于身份的票务的一个实施例,阅读器S120不需要向DllO认证,因此S120不需要唯一身份。在某些其它实施例中,每个阅读器拥有一个身份(其例如是唯一的或者共享的(例如全站(station-wide)的身份))。另外,S120的身份与用于认证的适当密钥相关联。
[0045]后端服务器(T)
[0046]T140表示交通机构的后端处理系统。这种系统负责提供交通服务;在票务方案的情境中,其操作阅读器和门以及当用户处于交通系统中时可能的票据验证。T基础设施的一个特定任务是提供:交通计费费率(例如在一天和工作日的不同时间上的计费费率);以及当D110首次出现进入到系统100中时,从C130中查询(授权)D 110。T140还收集从D110接收到的会话信息,并将会话信息呈现给C130作为由对应用户(具有身份IDD)使用交通服务的证据。后端服务器T140和C130之间的数据事务可以与D和S之间的数据事务不同步。然而,在对应的DllO使用服务时(这个例子中是交通工具)之后,T140可以立即要求C130认证DllO的身份IDD。
[0047]在某些示例实施例中,后端服务器T140和C130的所有或部分功能被合并到这两个服务器中的一个或者合并到另一个服务器(未在图1中示出)。C130和T140的操作的分离可以用于提供可由一个或多个不同服务提供者使用的事务票务基础设施,这些服务提供者不希望在他们的计费中进行互操作或者不能互操作(例如为遵守竞争法)。
[0048]在本文的一个示例性方面,提供了一种在DllO和S120之间使用简短认证信令进行基于身份的认证方法。下面,为进一步描述各种实施例,描述了三个主要示例。
[0049]第一主要示例-证书交换优化
[0050]设备证书Cert_D由C130构造如下:
[0051]a) h=hash (ID_D | expiry_time | PK_D),其中字符 “ | ” 表示字符串连接;
[0052]b)连接h、ID_D、expiry_time (过期时间)以及能够适合于PK_S的块大小的PK_D的许多比特,PK_D的这部分被称为parti。PK_D的剩余部分被称为part2,从而PK_D可以表示为 parti |part2 ;
[0053]c)根据具有消息恢复的用于公共密钥签名的消息编码方案的要求,诸如由RSA实验室发布的(例如PKCS# I,V1.5 )公共密钥加密标准(PKCS ),格式化数据串“ h I ID_D|eXpiry_time|partl”。使用私有密钥SK_C,对这个数据串应用RSA私有密钥变换。结果被称为sigl ;
[0054]d)使用被用作加密密钥的h或其派生物,对part2应用由DllO和S120应用的加密方案(例如,反模式的高级加密标准(AES))。加密的结果被称为sig2 ;
[0055]e) Cert_D=siglIsig2。
[0056]DllO还从S120接收挑战并向S120提供带签名的响应。在某些实施例中,带签名的响应是根据先前的挑战来计算的,在这种情况下,S120或T140将验证带签名的响应是根据先前的挑战和DllO的私有密钥合法地生成的。带签名的响应是基于挑战(当前的或在先的)和基于DllO的身份(IDD)。
[0057]在身份验证协议中,省略了 PK_D。S120将通过使用PK_S对sigl应用RSA公共密钥变换以验证证书,从而恢复在上述步骤c)中所使用的数据串。然后,S120使用h以解密sig2。现在,S120能够重建PK_D并从而验证由D发送的签名。
[0058]从记账实体(C130)的角度来回顾这个第一主要示例。C130将管理用户身份。这是通过将DllO的ID绑定到公共密钥加密来实现的。C130为一个ID生成一个证书,该证书将该ID绑定到公共密钥上。公共/私有密钥对是在TEElll内部生成的,并且从概念上讲私有密钥从未离开过那个环境。最初使用的TEE例如是由DllO的应用处理器(诸如可用于具有NFC能力的塞班(Symbian)电话的板载凭证(Onboard Credential)体系结构)提供的ARM TrustZone (信任区)环境。
[0059]为最小化认证流量(认证流量对普遍的NFC实现中所常用的以106kbps速率的协议造成主要的时间影响),由C130所生成的身份证书对大小进行了最小化。在以下的详细说明中,假定对所有操作使用具有1024比特密钥长度的RSA算法,这包括C130的签名密钥。以下数据由服务器包括在证书中:
[0060].6字节id字段。
[0061].4字节证书过期字段,表示为UNIX时间,即自1970.1.1开始所经历的秒数。
[0062]?公共密钥。仅1020比特RSA的模数以原始格式在前面的有效比特和字节中被包括。所有密钥具有公共指数0X10001,这与板载凭证(ObC)以及可信计算组/可信平台模块(TCG/TPM)和可信计算组/移动可信模块(TCG/MTM)技术都兼容。
[0063]通过以上以给定顺序列出的项,DllO的身份证书将包含缩短(例如截短、打孔或压缩)至128比特的安全哈希算法(SHA) 2 (256比特)的哈希值。因此对于138字节的输入,哈希算法生成16字节的输出。这两种字节字符串被合并(例如串联)(哈希值在前)到154字节的字节字符串中。在154字节中,117字节被输入到使用PKCS#11.5的RSA私有密钥求幂。RSA求幂将包含哈希函数的结果。不适合求幂的37字节(公共密钥的)将使用初始化向量(IV)O和作为密钥的哈希结果,用AES-CTR模式来加密。这些加密的37字节被合并(例如,附加)到幂的结果中。因此整个证书长度是128+37=165字节。证书可以由具有访问记账服务器的公共密钥的任何实体来验证和使用。
[0064]如前面所述,第一主要示例例如具有这样的技术效果,使得在身份验证期间由DllO发送的响应是简短的,因为公共密钥PK_D不需要单独传送,从而除了证书以外是不可恢复公共密钥PK_D的。
[0065]图3说明根据利用与第一主要示例所描述有关的某些技术的示例性实施例的某些操作。S120将用其私有密钥加密过的挑战发送给D110。当DllO有空闲处理时间(即在当前启动认证会话后)时,DllO开始生成320新的响应。响应于挑战,DllO向S120发送先前计算的响应330,那个响应用证书上的S120的公共密钥PKS进行加密,还包括根据先前接收的挑战的带签名的响应。S120接收该先前计算的响应330 (或在某些其它实施例中基于当前挑战的响应),并验证340证书。在某些实施例中,S120还针对其黑名单验证350IDD,如果在黑名单上,则拒绝访问。在这个实施例中,S120还验证360被包含在先前计算的响应330中的先前阅读器身份的列表,以查看其自身的身份是否包含在该列表中,如果包含,则允许访问362,否则通过发送新的挑战来请求364新的响应。如果发送新的挑战370,则D根据新的挑战计算并发送回新的响应380。然后,S120验证390新的响应380,如果新的响应通过这个验证,则S120准许访问392,否则,S120拒绝访问394。
[0066]第二主要示例-事务记录
[0067]在这个示例中,Dl 10和S120之间的身份验证省略了向S120发送PK_D和DllO的签名。而是,在特定时间点,签名直接从DllO发送到C130,以供以后由C130进行审计和验证。由于这个签名不需要由S120验证,因此可以通过使用在DllO和C130之间共享的对称密钥将其构建为消息认证码(MAC),从而可以制造的更小。
[0068]在身份验证期间所发送的响应不需要包含DllO的签名和公共密钥。另外,可以使用标准加密协议。另一方面,由S120加密验证的仅有项是Cert_D,从而攻击者能够重放播Cert_D并获准进入系统。使用下面的示例性实施例,可以降低这种风险:
[0069]a)在Cert_D中包含数据,从而限制其适用范围(例如,检查点的身份-在公共交通情况下,为用户通常使用的特定站的身份)。
[0070]b)限制Cert_D的生命周期;[0071]c)在与C130的最后数据交换会话后,限制允许TEElll执行认证的次数。
[0072]下面给出第二主要示例的示例。
[0073]DllO从C130接收作为访问令牌的临时证书。该令牌例如保留至多一天的有效性。从而,DllO被配置为每天联系C130(假定DllO能够连接到C130)。这个访问令牌拥有与长生命周期证书类似的信息。另外,在这个示例性实施例中,该访问令牌拥有这样的信息:诸如访问令牌的生成时间(被称为Tgen)和/或计数器(ctr)。
[0074]S120仅存储证书机构C130的公共密钥PKC以验证访问令牌。同样地,假定在一个交通站(或提供服务的其它站)处的所有阅读器共享站认知的身份IDD。
[0075]当DllO和S120进行认证会话时,以下是消息事务顺序的一个示例:
[0076]1.用户希望进入在站处的门,她将她的DllO放置在(例如,附加到站门的)S120附近。
[0077]2.S120与Dl 10建立近场通信,并通过发送随机挑战(被称为chalIengenew的新挑战)及其身份(IDS)和其它上下文相关数据,发起会话。
[0078]3.这时,DllO应当拥有基于先前挑战(挑战challengeprev)的预先计算的消息认证码(MAC),该先前挑战是从与阅读器设备S120的即时先前认证会话中接收的。如果设备是首次使用,则虚拟初始挑战用于生成消息认证码(MAC)。MAC还包括这样的信息:诸如设备的身份IDD、生成时间Tgen、挑战者的身份IDSprev (在首次使用时为虚拟ID)、和/或计数器ctr。DllO将这个预先计算的MAC连同短生命周期的访问令牌发送给S120。应当注意的是,DllO仅与C130共享这种MAC的密钥,因为不期望S120验证该MAC。
[0079]4.同时,D通过在后台中最近所接收的挑战(challengenew)来计算新MAC。
[0080]5.当接收到访问令牌和MAC时,S120验证访问令牌并针对其黑名单来验证IDD。如果IDD被列入黑名单中,则S120简单地拒绝服务访问并终止会话。在某些其它实施例中,S120记录对使用访问令牌的尝试并/或向本地站或远程站用信号通知这种尝试。
[0081]6.在验证IDD后,S120允许对DllO的访问,收集信息,将该信息与辅助上下文信息相结合以作为计费过程和针对以后时间抵赖而保护的证据。然后,这种信息以在线或离线通信方式传送给后端服务器T140。
[0082]这种协议的变形仅验证短生命周期访问令牌。这里,记账服务器C130负责验证从每个D〈->S会话中收集的MAC。这种协议变形可以快速运行,因为可以处理实时加密操作。另外,可以利用减小访问令牌的生命周期以抑制黑名单的增长,因为访问令牌的到期自然地从黑名单中移除身份。
[0083]图4说明根据另一个示例性实施例(例如与第二主要示例有关)的某些操作。如图3所示,S120发送挑战310。响应于接收到的挑战,DllO向S120发送先前计算的响应。在这个实施例中,这个先前计算的响应包含访问令牌或消息认证符430,它通过用DllO的私有密钥加密:(先前的)挑战、随着(先前的)挑战所接收到的S120的身份、和各种其它数据项(诸如到期时间、(证书的)生成时间以及计数器)来生成。DllO还开始生成440新的响应,以用作下一个认证符。当接收到访问令牌430时,S120针对其黑名单来验证450D110的身份,如果IDD在黑名单上,则S120拒绝460D110访问服务。
[0084]第二王要不例_事务记录和哈希
[0085]这个第三主要示例类似于第二主要示例,因为没有传输DllO的公共密钥或DllO的证书。另外,这里的哈希链被用于减小重用DllO的证书的风险。哈希链长度η由DllO通过选择随机秘密种子c_n和重复应用η次加密哈希函数h ()以产生“最高(top)”值C_0来构建:即
[0086]c_0=h (h…η 次…h (c_n))。
[0087]身份提供:
[0088]D->C:c_0, η (受制于用户认证的特定形式)
[0089]C->D:Cert_D=Sig_C (ID_D|expiry_time|c_0|η)
[0090]身份验证:
[0091]S->D:挑战,ID_S
[0092]D->S:c_i, i, Cert_D
[0093]这里,S120通过对c_i应用指定次数(i次)h O并检查结果是否与包含在Cert_D中的最高值相匹配,来验证DllO的身份。如在第二主要示例中,DllO被配置为在每个事务后,立即或者稍 后时间向C130发送事务记录签名。在某些实施例中,DllO或TEElll被配置为在给定次数事务记录签名仍未发送到C130后,放弃与S120的进一步认证会话。
[0094]有几种能够阻止或减少攻击者重复使用C」的方式。
[0095]a)限制c_i有效性的持续时间;这需要DllO和S120之间宽松的同步时钟。有效性持续时间可以被设成相当短(例如,5分钟)。
[0096]b)S120在每个已接受的身份验证后,向集中的后端报告Cert_D的最新i值。S120在接受给定Cert_D的身份验证前,检查所声明的i值是没有已经使用过的。
[0097]第三主要示例例如具有这样的技术效果:在身份验证期间由DllO发送的响应可以和第二主要示例中的一样短,但是在没有缩短证书的生命周期(即没有增加身份提供事务的频率)的情况下,可以进一步遏制重放攻击的威胁。
[0098]图5说明根据又一个示例性实施例(例如,与第三主要示例有关)的某些操作。如图3和图4,S120首先发送新挑战和其身份IDS。DllO通过用其私有密钥对新挑战、S120的身份、随机秘密种子c_0、哈希链长度clen、生成时间Tgen以及到期时间Texp进行签名,来生成520签名530。DllO立即或者在以后时间向C130发送550该签名。DllO还将签名和第i次哈希的种子数(ci)以及第i次哈希的种子数的哈希链的距离(Cd)发送540给S120。接着,S120验证560证书,通过与S120的黑名单相比较以验证570D110的身份(IDD),如果IDD在黑名单中,则S120拒绝572访问,否则检查哈希链580以验证是否应该授权访问服务。
[0099]在上面,已经参照用于认证希望访问特定服务的用户的不同凭证描述了各种细节。应当了解到是,用户可以拥有一个或多个用户设备(D110),并且在某些实施例中,各种用户凭证尤其是与使用用户设备D的用户相关联。然而,设备间的消息交换例如是使用NFC来执行的,即是DllO发送和接收消息而不是用户自身,但是应当理解,与DllO相关联的任何凭证都可以被理解为与使用DllO的用户相关联,并尽可能地由该用户拥有或控制的许多不同设备共享。
[0100]本文所描述的各种示例性实施例是以说明权利要求保护范围内的各种可能性而描述的,以满足以下目标:
[0101]可核查性和安全性:应当足够安全使得服务运营者(诸如公共交通运营者)和身份提供者能够有效地管理他们的风险。
[0102]速度:通常,交互事件具有严格的时间预算,在时间预算内应当完成典型事务。对于公共交通系统来说,示例性界限是300ms。
[0103]隐私性:不应当允许第三方追踪用户的运动。
[0104]本发明的实施例可以在软件、硬件、应用逻辑或软件、硬件和应用逻辑的组合中实施。在一个示例性实施例中,应用逻辑、软件或指令集存储在各种常规计算机可读介质的任何一种上。在本文的上下文中,“计算机可读介质”可以是任何介质或设备,其可包含、存储、通信、传播或传输指令,以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备连接,例如计算机。计算机可读介质可包含计算机可读存储介质,其可以是任何介质或设备,其可包含或存储指令,以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备连接,例如计算机。
[0105]需要时,本文所述的不同功能可以以不同顺序和/或彼此并发地来执行。另外,需要时,一个或多个上述功能是可以是可选的或可以组合。
[0106]尽管本发明的各个方面在独立权利要求中进行了阐述,但本发明的其它方面包括来自所述实施例和/或具有独立权利要求特征的从属权利要求的其它特征组合,而不仅是在权利要求中明确阐述的组合。
[0107]本文还应当注意的是,尽管上面描述了本发明的示例性实施例,但是这些描述不应当被视为限制的意思。相反,在不脱离由所附权利要求所限定的本发明范围的情况下,可以做出数种变化和修改。
【权利要求】
1.一种装置,包括:通信接口 ;存储器,其被配置为存储用户特定的凭证;以及加密处理电路;其中所述加密处理电路被配置为:通过所述通信接口从证书机构接收证书;使所述证书存储在所述存储器中;使私有密钥和公共密钥存储于所述存储器中;通过传输一个或多个消息,使所述装置尝试向票据阅读器进行认证以访问服务,其中所述消息包含认证符,该认证符包含以下中的至少一个:所述证书或其加密派生物;以及由所述证书或其加密派生物所包含的一个或多个数据项;其中所述加密处理电路还被配置为准备所述消息,使得所述公共密钥不可超出所述认证符而恢复。
2.根据权利要求1所述的装置,还包括通用处理器,其被配置为控制所述装置的基本操作,并且其中所述加密处理电路还被配置为充当与所述通用处理器可操作性的分离的可信执行环境。
3.根据权利要求2所述的装置,其中所述装置还包括用户接口,其由所述通用处理器控制。
4.根据前述权利要求中的任一项所述的装置,其中所述加密处理电路还被配置为从所述票据阅读器接收挑战,以及响应地计算带签名的响应。
5.根据权利要求4所述的装置,其中所述加密处理电路还被配置为使得响应于接收到所述挑战,发送先前对带签名的响应的计算,所述带签名的响应是根据先前接收到的挑战来计算的。
6.根据前述权利要求中的任一项所述的装置,其中所述证书已经在包括从源数据计算加密哈希的进程中生成,所述源数据至少包括:所述用户的所述身份的指示;到期字段;以及所述公共密钥。
7.根据权利要求6所述的装置,所述进程还包括缩短所述加密哈希。
8.根据权利要求6或7所述的装置,所述进程还包括将所述加密哈希与所述源合并,从而得到缩短和合并的哈希结果。
9.根据权利要求6至8中任一项所述的装置,所述进程还包括将所述缩短和合并的哈希分成第一部分和第二部分。
10.根据权利要求6至9中任一项所述的装置,所述进程还包括用所述第一部分执行私有密钥求幂,从而得到加密的第一部分。
11.根据权利要求6至10中任一项所述的装置,所述进程还包括在所述第二部分上执行单独加密,从而生成加密的第二部分。
12.根据权利要求6至11中任一项所述的装置,所述进程还包括将所述加密的第一部分和所述加密的第二部分合并。
13.根据前述权利 要求中的任一项所述的装置,其中:所述加密处理电路还被配置为使用以下几项以生成所述认证符:所述证书机构的所述公共密钥以及所述装置的所述私有密钥。
14.根据权利要求13所述的装置,其中:所述加密处理电路还被配置为使用以下中的至少一个以生成所述认证符:所述装置的身份;所述认证机构已经为所述装置生成所述证书的时间;以及先前已经从票据阅读器接收到的挑战。
15.根据前述权利要求中的任一项所述的装置,其中所述认证符是由所述加密处理电路生成的消息认证码。
16.根据权利要求15所述的装置,其中所述加密处理电路还被配置为根据先前从票据阅读器接收到的挑战生成新的消息认证符,并在所述存储器中保存所述新的消息认证符和所述挑战。
17.根据前述权利要求中的任一项所述的装置,其中所述加密处理电路还被配置为对动态变化认证项进行给定次数的加密哈希,以供由所述阅读器进行随后验证。
18.根据权利要求17所述的装置,其中所述动态变化认证项是已经由所述证书机构加密到所述证书中并传递给所述装置的项。
19.根据权利要求17或18所述的装置,其中对于所述阅读器来说,所哈希的认证项是验证所述装置真实性的唯一源。
20.一种装置,包括:存储器,其被配置为存储证书机构的公共密钥;通信接口,其被配置为与用户设备交换消息;处理器,其被配置为:使与所述用户设备建立认证·会话以认证由所述用户设备对服务的使用;使用所述通信接口从所述用户设备接收一个或多个消息,其中所述消息包含认证符, 该认证符包含以下中的至少一个:所述证书或其加密派生物;以及由所述证书或其加密派生物所包含的一个或多个数据项;其中所述消息未包含可超出所述认证符而恢复的所述用户设备的公共密钥。
21.根据权利要求20所述的装置,其中所述处理器还被配置为:在所述存储器中保存用户身份黑名单;将所述用户身份与所述黑名单进行比较;以及如果所述用户身份属于所述黑名单,则拒绝所述用户设备访问所述服务。
22.根据权利要求21所述的装置,其所述处理器还被配置为:在所述存储器中保存所述证书机构的加密密钥;用所述证书机构的所述加密密钥由从所述用户设备接收到的消息来解密用户身份。
23.根据权利要求21或22所述的装置,其中所述处理器还被配置为检查所述用户设备是否已经发送所述用户设备已经与其建立认证会话的一个或多个装置的列表中的所述装置的身份,如果是,则允许访问所述服务。
24.根据权利要求23所述的装置,其中所述处理器还被配置为如果所述装置的身份不在所述列表中,则向所述用户设备发送新挑战,并验证来自所述用户设备的对所述新挑战的新响应。
25.一种装置,包括:存储器,其被配置为存储证书机构的公共密钥和私有密钥;通信接口,其被配置为与用户设备交换消息;处理器,其被配置为:使得通过所述通信接口从所述用户设备接收公共密钥;将身份与所述用户设备相关联;为所述用户设备生成证书以用于认证所述用户设备使用服务,使得所述证书将适合于票据阅读器的私有密钥;使得在与所述票据阅读器消息传送中,所述用户设备将免除提供其公共密钥,从使得所述公共密钥可超出证书而恢复。
26.根据权利要求25所述的装置,其中所述处理器被配置为,当生成所述证书时,执行一个或多个以下操作:从源数据计算加密哈希,所述源数据至少包含:所述用户设备的身份的指示;到期字段;以及所述公共密钥;缩短所述加密哈希;将所述加密哈希与所述源合并从而得到缩短和合并的哈希结果;将所述缩短和合并的哈希分成第一部分和第二部分;用所述第一部分执行私有密钥求幂,得到加密的第一部分;在所述第二部分上执行单独加密以生成加密的第二部分;以及将所述加密的第一部分和所述加密的第二部分合并。
27.一种装置中的方法,包括:存储用户特定的凭证;以及经由所述通信接口从证书机构接收证书;将所述证书存储在所述存储器中;将私有密钥和公共密钥存储在所述存储器中;通过发送一个或多个消息,尝试将所述装置向票据阅读器进行认证以访问服务,其中所述消息包含以下中的至少一个:所述证书或其加密派生物;以及由所述证书或其加密派生物所包含的一个或多个数据项;所述方法还包括准备所述消息,使得所述公共密钥不可超出所述认证符而恢复。
28.一种装置中的方法,包括:存储证书机构的公共密钥;与用户设备交换消息;执行与所述用户设备的认证会话,以认证由所述用户设备所使用的服务;使用所述通信接口从所述用户设备接收一个或多个消息,其中所述消息包含认证符, 该认证符包含以下中的至少一个:所述证书或其加密派生物;以及由所述证书或其加密派生物所包含的一个或多个数据项;其中所述消息不包含可超出所述认证符而恢复的所述用户设备的公共密钥。
29.一种装置中的方法,包括:存储证书机构的私有密钥和公共密钥;与所述用户设备交换消息;从所述用户设备接收公共密钥;将身份与所述用户设备相关联; 为所述用户设备生成证书以认证所述用户设备使用服务,使得所述证书将适合于票据阅读器的私有密钥;从而使得在与所述票据阅读器消息传送中,所述用户设备将免除提供其公共密钥,使得公共密钥可超出所述证书而恢复。
30.一种计算机程序,包含代码,当所述计算机程序在处理器上运行时,用于执行根据权利要求27至29中任何一项所述的方法。
31.根据权利要求30所述的计算机程序,其中所述计算机程序是计算机程序产品,其包含计算机可读介质,该介质承载包含在其中的计算机计算机程序代码,以供计算机使用。
【文档编号】G06Q20/32GK103597520SQ201180071561
【公开日】2014年2月19日 申请日期:2011年4月13日 优先权日:2011年4月13日
【发明者】S·塔姆拉卡, J-E·埃克贝里, J·维尔塔宁, N·阿索坎 申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1