会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 电脑安全 / 密码学 / 具有安全记录特征的智能卡读取器

具有安全记录特征的智能卡读取器

阅读:277发布:2021-02-25

IPRDB可以提供具有安全记录特征的智能卡读取器专利检索,专利查询,专利分析的服务。并且本发明提供了一种安全智能卡读取器,其能够在表示可以是安全相关的事件和动作的数据上作出读取器签名,该数据可以包括表示读取器从主机或远程应用接收到的读取器命令、读取器与所插入的智能卡交换的智能卡命令、读取器呈现给用户以供批准的数据、和/或读取器在处理任何前述项时应用的配置参数的数据。智能卡读取器还可以适于保持可以包括与主机或远程应用交换读取器命令、与所插入的智能卡交换智能卡命令和/或与用户的交互的特定事件和动作的日志。日志可以包括表示读取器从主机或远程应用接收到的读取器命令、读取器与所插入的智能卡交换的智能卡命令、读取器呈现给用户以供批准的数据、和/或读取器在处理任何前述项时应用的配置参数的数据。该安全智能卡读取器可以适于生成对这些日志中的一个或更多个日志的读取器签名。,下面是具有安全记录特征的智能卡读取器专利的具体信息内容。

1.一种用于结合所插入的智能卡生成电子签名的智能卡读取器,包括:通信接口,用于与主计算机通信;

智能卡连接器,用于与所述智能卡通信;

第一存储器部件,用于安全地存储一个或更多个密码学钥;

第二存储器部件,用于存储日志;

用户接口,包括用于向用户呈现信息的用户输出接口以及用于接收用户指示的用户输入接口;

数据处理部件,用于与所述主计算机通信、与所述智能卡通信以及驱动所述用户接口,所述智能卡读取器适于使用所述智能卡连接器与智能卡交换智能卡命令;

所述智能卡读取器还适于工作在安全记录模式下,在所述安全记录模式下,所述智能卡读取器在所述日志中记录关于所述读取器或所述读取器的使用的安全相关事件;并且所述智能卡读取器还适于使用存储在所述第一存储器中的所述一个或更多个密码学钥中的至少一个密码学钥来生成所述日志上的读取器签名。

2.根据权利要求1所述的智能卡读取器,还适于执行从所述主计算机接收到的读取器命令并且在所述日志中记录所接收到的读取器命令中的至少一些读取器命令。

3.根据权利要求2所述的智能卡读取器,还适于支持用于指示所述读取器执行以下操作的一个或更多个读取器命令:向用户呈现数据以供用户审查和批准;使用所述输出接口向用户呈现所述供审查和批准的数据;使用所述输入接口捕捉用户对所述供审查和批准的数据的批准或拒绝;以及在所述日志中记录所述供审查和批准的数据。

4.根据权利要求3所述的智能卡读取器,还适于在所述日志中记录在所述主机与所述智能卡之间交换的至少一些透明智能卡命令。

5.根据权利要求4所述的智能卡读取器,其中,所述读取器记录的透明智能卡命令包括用于向所插入的所述智能卡提交要由所述智能卡签名的数据的透明智能卡命令。

6.根据权利要求4所述的智能卡读取器,其中,所述读取器记录的透明智能卡命令包括用于从所插入的所述智能卡获得所生成的对所提交的数据的电子卡签名的透明智能卡命令。

7.根据权利要求4所述的智能卡读取器,其中,所述读取器适于在从第一时间点至第二时间点的时段内记录所有透明智能卡命令。

8.根据权利要求7所述的智能卡读取器,其中,其中所述读取器记录所有透明智能卡命令的时段包括:其中将要被签名的数据提交至所插入的所述智能卡的时段;或者其中从所插入的所述智能卡获得所生成的对所提交的数据的电子卡签名的时段。

9.根据权利要求1所述的智能卡读取器,其中,所述读取器存储至少部分地确定所述读取器记录哪些事件的一组配置数据。

10.根据权利要求9所述的智能卡读取器,其中,所述读取器适于记录当前组配置数据。

11.根据权利要求10所述的智能卡读取器,其中,所述读取器支持用于改变所述组配置数据的一个或更多个读取器命令。

12.根据权利要求1所述的智能卡读取器,还包括时钟并且适于向所述日志添加一个或更多个时间戳。

13.根据权利要求12所述的智能卡读取器,其中,所述读取器适于向所记录的事件中的至少一些事件添加时间戳。

14.根据权利要求1所述的智能卡读取器,还适于通过读取器命令接收挑战并且记录所接收到的挑战。

15.根据权利要求1所述的智能卡读取器,还包括计数器并且还适于记录与所述计数器相关的值。

16.根据权利要求15所述的智能卡读取器,其中,所述读取器还适于当进入所述安全记录模式时或者当生成所述日志上的所述读取器签名时自动递增计数器值。

17.根据权利要求1所述的智能卡读取器,其中,所述日志包括多个日志文件,并且其中,所述日志上的所述读取器签名包括对所述多个日志文件的多个签名。

18.根据权利要求1所述的智能卡读取器,还适于支持用于验证用户身份的读取器命令。

19.根据权利要求18所述的智能卡读取器,还适于记录验证所述用户身份的结果。

20.根据权利要求18所述的智能卡读取器,还适于请求用户在所述用户输出接口上输入PIN值、在所述用户输入接口上捕捉用户输入的PIN值、并且将所捕捉到的PIN值提交至所插入的所述智能卡以供验证。

21.一种用于生成对要被签名的数据的电子签名的方法,包括以下步骤:将智能卡读取器连接至主计算机;

将智能卡插入所述读取器中;

所述读取器进入安全记录模式;

向所述读取器提交供用户审查和批准的数据;

由所述读取器使用所述读取器上的用户输出接口来向用户呈现所述供用户审查和批准的数据;

由所述读取器使用所述读取器上的用户输入接口来捕捉用户对所呈现的数据的批准;

由所述读取器在所述读取器上的日志中记录所述供审查和批准的数据;

向所插入的所述智能卡提交要被签名的数据,然后由所插入的所述智能卡生成对所提交的要被签名的数据的电子卡签名,然后从所插入的所述智能卡获得所生成的对所提交的数据的电子卡签名;以及由所述读取器使用利用存储在所述读取器中的密码学钥而被参数化的密码学数据签名算法来生成对所述读取器上的日志的电子读取器签名,然后获得由所述读取器生成的对所述日志的电子读取器签名。

22.根据权利要求21所述的方法,还包括如下步骤:由所述读取器在所述读取器上的日志中记录被提交至所述卡的要被签名的数据或者由所插入的所述智能卡生成的电子卡签名。

23.根据权利要求22所述的方法,其中,向所插入的所述智能卡提交要被签名的数据并且从所插入的所述智能卡获得所生成的对所提交的数据的电子卡签名包括:所述主计算机使用所述智能卡读取器来与所插入的所述智能卡交换透明智能卡命令;并且其中,由所述读取器在所述读取器上的日志中记录被提交至所述卡的要被签名的数据或者由所插入的所述智能卡生成的电子卡签名包括:由所述读取器在所述读取器上的日志中记录所交换的透明智能卡命令中的至少一些透明智能卡命令。

24.根据权利要求23所述的方法,其中,所述主计算机使用所述智能卡读取器与所插入的所述智能卡交换的透明智能卡命令至少包括:用于向所插入的所述智能卡提交要被签名的数据的透明智能卡命令;并且其中,所述读取器在所述读取器上的日志中记录的所交换的透明智能卡命令中的至少一些透明智能卡命令至少包括:用于向所插入的所述智能卡提交要被签名的数据的透明智能卡命令;或者用于从所插入的所述智能卡获得所生成的对所提交的数据的电子卡签名的透明智能卡命令。

25.根据权利要求23所述的方法,其中,所述读取器在所述读取器上的日志中记录的所交换的透明智能卡命令中的至少一些透明智能卡命令包括在特定时段期间交换的所有透明智能卡命令。

26.根据权利要求25所述的方法,其中,其中所述读取器记录所有所交换的透明智能卡命令的时段包括:其中将要被签名的数据提交至所插入的所述智能卡的时段;或者其中从所插入的所述智能卡获得所生成的对所提交的数据的电子卡签名的时段。

27.根据权利要求21所述的方法,还包括在所述读取器上配置至少部分地确定所述读取器在所述读取器上的日志中记录哪些事件的一组配置数据。

28.根据权利要求27所述的方法,还包括如下步骤:由所述读取器在所述读取器上的日志中记录当前组配置数据。

29.根据权利要求28所述的方法,还包括配置所述组配置数据使得所述读取器在所述读取器上的日志中记录所述供审查和批准的数据。

30.根据权利要求28所述的方法,还包括配置所述组配置数据使得所述读取器在所述读取器上的日志中记录被提交至所述卡的要被签名的数据或者由所插入的所述智能卡生成的电子卡签名。

31.根据权利要求27所述的方法,还包括配置所述组配置数据使得所述读取器在所述读取器上的日志中记录用于向用户呈现数据供审查和批准的读取器命令。

32.根据权利要求27所述的方法,还包括配置所述组配置数据使得所述读取器在所述读取器上的日志中记录一组透明智能卡命令。

33.根据权利要求32所述的方法,还包括配置所述组配置数据使得所述读取器在所述读取器上的日志中记录包括用于向所插入的所述智能卡提交要被签名的数据或者用于从所插入的所述智能卡获得被提交至所述智能卡的数据上的所生成的电子签名的智能卡命令的一组透明智能卡命令。

34.一种用于保护用户访问应用的方法,包括以下步骤:

向用户提供用于对数据进行签名的智能卡;

向用户提供根据权利要求1所述的智能卡读取器;

提供与来自与所述读取器连接的主计算机的应用的用户交互;

汇集交易数据;

汇集与所汇集的交易数据相关的要被审查和批准的数据;

汇集与所汇集的交易数据相关的要被签名的数据;

确保所述智能卡被插入所述智能卡读取器中;

确保所述读取器进入安全记录模式;

向所述读取器提交供用户审查和批准的数据;

由所述读取器使用所述读取器上的用户输出接口来向用户呈现所述供用户审查和批准的数据;

由所述读取器使用所述读取器上的用户输入接口来捕捉用户对所呈现的数据的批准;

由所述读取器在所述读取器上的日志中记录所述供审查和批准的数据;

向所插入的所述智能卡提交要被签名的数据,然后由所插入的所述智能卡生成对所提交的要被签名的数据的电子卡签名,然后从所插入的所述智能卡获得所生成的对所提交的数据的电子卡签名;

由所述读取器在所述读取器上的日志中记录被提交至所述卡的要被签名的数据或者由所插入的所述智能卡生成的电子卡签名;

由所述读取器使用利用存储在所述读取器中的密码学钥而被参数化的密码学数据签名算法来生成对所述读取器上的日志的电子读取器签名,然后获得由所述读取器生成的对所述日志的电子读取器签名;

验证所获得的电子卡签名;

验证所获得的由所述读取器生成的对所述日志的电子读取器签名;

验证由所述读取器签名的所述日志与所汇集的交易数据之间的一致性。

35.根据权利要求34所述的方法,其中,向所插入的所述智能卡提交要被签名的数据包括:在所述主计算机与所插入的所述智能卡之间交换用于向所述智能卡提交要被签名的数据的透明智能卡命令;并且其中,由所述读取器在所述读取器上的日志中记录被提交至所述卡的要被签名的数据或者由所插入的所述智能卡生成的电子卡签名包括:记录在所述主计算机与所插入的所述智能卡之间交换的、用于向所述智能卡提交要被签名的数据或者用于检索被提交至所述卡以供签名的数据上的由所插入的所述智能卡生成的电子卡签名的透明智能卡命令。

说明书全文

具有安全记录特征的智能卡读取器

[0001] 对相关申请的交叉引用
[0002] 本申请涉及并且要求于2011年11月14日提交的美国临时申请序列号61/559,503的权益,其全部内容通过引用合并到本申请中。

技术领域

[0003] 本发明涉及用户与服务经由电子媒介、通过电子签名的使用进行的安全远程交互。更具体地,本发明涉及用于保护用户利用智能卡进行的电子数据的签名的安全智能卡读取器。

背景技术

[0004] 用户通过电子媒介对所有种类的服务的远程访问以及与所有种类的服务的交互的越来越重要的作用已引发用户能够作出电子签名的需求。为了安全的原因,这样的电子签名优选地由于将利用与用户相关联的密码学钥而被参数化的密码学算法应用于一些电子数据而产生。在一些情况下,密码学算法可以包括带钥哈希函数,由此,密钥和要被签名的数据的组合被提交至单向密码学哈希函数或摘要函数(如来自MD5、SHA-1、SHA-2或SHA-256哈希函数族的密码学哈希函数)并且所得到的哈希或摘要构成电子签名。在其他情况下,密码学算法可以包括对称加密(或解密)块密码如可以在CBC(密码块链)模式中使用以生成可以构成电子签名的MAC(消息认证码)的(三重)DES(数据加密标准)或AES(高级加密标准)。在另一些情况下,例如在PKI(公钥基础设施)的上下文中,可以使用基于非对称密码学的电子签名方案来生成电子签名。在这些情况下,通常对要被签名的数据进行哈希操作或将要被签名的数据提交至摘要函数,然后利用非对称加密算法、使用用户的私钥对所得到的哈希或摘要进行加密。用于生成电子签名的非对称密码学算法的示例包括RSA(通用关键子密码方法)和DSA(数字签名算法)。为了增强移动性和安全性,通常把密钥或私钥存储在通常也能够执行涉及该钥的密码学操作的单独的安全容器中。生成电子签名的一种普遍的解决方案包括:智能卡,智能卡包括用于安全地存储一个或更多个密钥或私钥以及其他安全相关信息如PIN(个人识别码)、安全配置文件、PIN尝试计数器、…的安全存储器;以及密码学引擎,其用于使用这些密钥或私钥通过一些对称或非对称密码学算法来生成从主机接收到的数据的密码。大部分智能卡遵循至少部分ISO/IEC7816标准组。在许多情况下通过要求用户输入有效的PIN来保护智能卡的密码学功能。
[0005] 在典型的使用案例中,用户使用主机计算设备例如PC(个人计算机)来与一些远程服务例如网上银行网站交互。用户具有被插入又与主机计算设备通信(即,能够从主机计算设备接收指令并且向主机计算设备返回响应)的智能卡读取器的智能卡(如上所述)。在典型的案例中,智能卡读取器是通过USB(通用串行总线)连接附接至主机计算设备的相当紧凑的设备。远程用户在主机计算设备上审查要被签名的文件或数据。当用户认可要被签名的文件或数据时,可以通过应用(其可以是专用应用或网页浏览器)将文件或数据提交至密码学库以便被签名文件。通常用于应用和这样的密码学库之间的接口的API(应用编程接口)的示例包括MS-CAPI(微软密码学API)和由RSA实验室公布的PKCS#11(公钥密码学标准#11)指定并且通过引用合并到本申请中的API。密码学库(通常称为中间件)可以将应用对于签名的请求转换为通过智能卡读取器与智能卡交换的一系列智能卡命令响应指令。通常用于个人计算机上的这样的智能卡读取器驱动的API(应用编程接口)是PC/SC(个人计算机/智能卡)。在由智能卡的实际签名之前,通常要求用户在主机计算设备上输入然后被提交至智能卡用于认证的PIN。在大多数情况下,智能卡读取器是所谓的透明型,意思是其不执行任何安全功能并且其本质上仅仅是将来自主机计算设备(在下文中也称为主计算机或主机)的命令传送至智能卡,并且将来自智能卡的响应传送至主计算机的传输媒介。

发明内容

[0006] 技术问题
[0007] 尽管密码学智能卡通常配备有各种复杂的技术来阻止各类攻击,然而在上述场景中还是存在通过对智能卡采取措施不能解决的基本安全问题。一个基本问题是事实上在上文描绘的场景中(其对于智能卡用于生成电子签名的方式是典型的)所有用户交互,包括非常敏感的操作如PIN输入发生在主计算机上。但是在大多数情况下不认为主计算机是值得信赖的安全平台。实际上大部分主计算机设备是PC或类似的设备,由于其本质是公开通用计算机平台,所以通常很容易受到各种病毒和恶意软件的攻击。这使上述场景的设置非常容易受到攻击,其中用户主计算机上的恶意软件干预主计算机的用户接口例如以获得用户输入的PIN(例如通过按键记录器的用户),或者甚至通过在将数据发送至智能卡用于签名之前,使用欺骗性数据代替要被签名的用户已审查并且批准的数据。
[0008] 一种解决方案是提供配备有安全键盘(或用于接受来自用户的数据的一些其他安全用户数据接口)的智能卡读取器,智能卡读取器使得用户能够在读取器而不是在不安全的主机上输入卡的PIN,然后读取器然后可以将所输入的PIN在不通过主机的情况下直接提交至卡。然而,该解决方案不能防御干预要被签名的数据的攻击,由此实际上提交至智能卡用于签名的数据与用户在主机上已经审阅并且批准的数据不同。
[0009] 为了解决该问题,可以为智能卡读取器配备安全显示器(或向用户呈现信息的一些其他安全用户输出接口)用于在将数据提交至卡之前将要被签名的数据呈现给用户用于批准。然而,如此可以比较容易地规避该解决方案。实际上,这足以使主计算机上的恶意软件邀请用户批准主计算机上的数据并且输入卡的PIN,然后恶意软件可以使用欺骗性数据代替已批准的数据并且在不使用读取器的安全数据批准特征的情况下直接将欺骗性数据提交至卡(通过把读取器用作透明读取器)。可以通过某种社会工程来说服用户接收这个,例如通过恶意软件宣称读取器存在一些技术故障阻碍读取器的安全显示器上的数据审查。
[0010] 为了防止该最后一种攻击,读取器可以提供某种防火墙,即,读取器可以扫描每个传入的智能卡命令并且检查其是否对应于签名命令。在所接收到的命令是签名卡命令的情况下,读取器然后可以采取适当的措施来确保主机不能向包括没有在读取器安全显示器上呈现给用户并且由用户批准的数据的卡发送签名命令。例如,读取器可以自动组织命令(例如当读取器支持安全签名读取器命令时,其中主机向读取器提交要被签名的数据,随之读取器会在其安全显示器上将数据呈现给用户并且在用户批准后构建包括已批准的数据的签名命令并且将其发送给用户)。可替选地,读取器可以从所接收到的命令中提取要被签名的数据,将该数据呈现给用户,并且仅在用户批准后使得能够将签名命令传送至卡。
[0011] 这样的安全智能卡读取器支持在读取器键盘上的安全PIN输入、在读取器显示器上的签名数据的安全审查和批准、以及防火墙,竭尽全力阻止攻击。然而,仍然存在一些问题。具体地,仍然存在以下两个问题。
[0012] 首先,读取器防火墙适合由具体的智能卡支持的签名命令。在实际应用中,用于对数据进行签名的智能卡的命令集不是标准的。因此,同一读取器可以很好地保护第一类型的智能卡,但是不能保护第二类型的智能卡(支持不能由读取器防火墙识别的签名命令)。如果用户改变签名智能卡的类型或希望使用不同类型的智能卡,则这可能会带来安全问题。可以通过使防火墙可重构来解决这个问题,然而为了不引入安全漏洞,防火墙的重构必须根据安全程序来发生,安全程序非常可能对读取器造成沉重负担和/或降低读取器的使用便利性。
[0013] 另一问题是该解决方案不阻止攻击者说服用户在不安全的或已篡改的智能卡读取器上使用他们的签名智能卡。
[0014] 因此,需要能够以安全方式支持多种不同类型的智能卡并且另外还提供阻止攻击者说服用户通过不安全的读取器来使用他或她的智能卡的攻击的方法。
[0015] 技术解决方案
[0016] 下文给出本发明的简化的概要,以便提供本文中描述的一些方面的基本理解。此概述不是所要求保护的主题的详尽概述。它既不旨在标识所要求保护的主题的关键或重要元素,也不旨在描述本发明的范围。其唯一的目的是以简化形式给出所要求保护的主题的一些概念,作为稍后给出的更详细的描述的序言。
[0017] 本发明基于发明人的见解:尽管保证攻击者不能说服用户使用不安全的卡读取器而不使用安全的卡读取器是非常困难的或者甚至是不可能的,然而检测使用了不安全的卡读取器足以阻止这样的攻击。
[0018] 在根据本发明的一种实施方式中,检测使用了不安全卡读取器的方法包括:使用户使用提供其被使用过的证明的安全卡读取器,而在不存在这样的证明的情况下假定(或断定)替代地使用了不安全的卡读取器。
[0019] 根据本发明的另一实施方式包括一种智能卡读取器,该智能卡读取器适于证明:其已用于通过自己生成表示安全相关事件和动作的数据上的读取器签名来将要被签名的数据安全呈现给用户,从用户获得该签名操作的批准并且从卡得到已批准的数据上的签名。在一种实施方式中,读取器适于提供其呈现给用户以供批准并且提交至卡供签名的数据的表示上的电子签名。在一些实施方式中,读取器可以向应用返回由读取器生成的读取器签名连同要被签名的数据上的所请求的卡签名。
[0020] 本发明还基于发明人的见解:如果主计算机能够将该信息传递给读取器,并且如果读取器能够提供发生在安全读取器上的动作(例如,将哪些数据呈现给用户以供批准)以及与卡交换了哪些命令(例如,使用了哪些签名命令以及通过哪个有效荷载)的证明,则读取器可能不需要具有敏感智能卡命令的精确知识。这可以使得能够检测实际发生了什么与假设已经发生了什么之间的任何差异。这又表示对于防火墙的需求可能较小,或者可以对防火墙进行较少的限制,使得读取器相对于正在使用的卡的类型和这些卡的使用模式方面可以更灵活。
[0021] 在根据本发明的一些实施方式中,安全智能卡读取器适于提供其呈现给用户以供批准并且提交至卡以供签名的数据的表示与表示如何使用了安全读取器——例如从主计算机接收了哪些命令和/或已经发生哪些用户交互和/或者当执行在从主机接收到的命令中所请求的操作时读取器应用了哪些设置或配置参数和/或发生的用户交互和/或读取器与智能卡交换了哪些命令——的数据的表示的组合上的电子签名。
[0022] 在一些实施方式中,安全智能卡读取器适于保持用于记录表示读取器与主机交换的命令和/或与用户的交互和/或与智能卡交换的命令的数据的一个或更多个日志。在一些实施方式中,读取器可以适于作出包括这些日志中的一个或更多个的内容的表示的数据上的读取器签名。在一些实施方式中,例如,当与用户交互或者当与智能卡交换命令时,已经应用的配置参数或设置也可以包括在读取器签名的数据中。
[0023] 在一些实施方式中,当进入具体的安全模式时,读取器可以开始记录。在一些实施方式中,响应于读取器从主机接收到的特定读取器命令,读取器可以进入这样的具体的安全模式。在一些实施方式中,响应于与卡相关的事件如卡插入,读取器可以进入这样的具体的安全模式。在一些实施方式中,当进入其支持的一个或更多个安全模式时,读取器可以重置其自动保持的一个或更多个日志。在一些实施方式中,响应于对与卡相关的事件如卡插入或卡移除,读取器可以重置其自动保持的一个或更多个日志。在一些实施方式中,读取器可以记录当在安全模式下时其与智能卡交换的任意智能卡命令。在一些实施方式中,读取器可以记录当在安全模式下时读取器与主机交换的任意读取器命令。在一些实施方式中,读取器可以记录其呈现给用户以供批准的数据。在一些实施方式中,读取器可以记录是否通过读取器将用户已批准的数据呈现给用户。在一些实施方式中,读取器可以记录安全PIN输入功能是否用于输入并且验证用户的智能卡的PIN。
[0024] 在一些实施方式中,安全智能卡读取器可以保持添加至一个或更多个日志的数据的备份,并且当将数据添加至日志时读取器可以将新数据与已经记录的数据联系起来。在一些实施方式中,安全智能卡读取器可以将关于添加至这些日志的数据的一个或更多个哈希值与一个或更多个日志相关联,并且当将数据添加至这样的日志时,读取器可以更新与正在添加的数据相关联的哈希值。
[0025] 在一些实施方式中,安全智能卡读取器支持将一个日志的内容添加至另一日志的内容的可能性。在一些实施方式中,安全智能卡读取器适于将日志的内容作为智能卡命令发送至卡。在一些实施方式中,安全智能卡读取器适于将日志的内容作为智能卡命令的一部分发送至卡。在一些实施方式中,安全智能卡读取器适于生成对一个或更多个日志的内容或部分内容的读取器签名。
[0026] 在一些实施方式中,安全智能卡读取器包括用于存储与密码学算法一起使用以生成读取器签名的一个或更多个秘密或私有读取器钥的安全存储器。在一些实施方式中,安全智能卡使用其来生成读取器签名的密码学算法包括对称加密或解密算法如DES或AES、密码学带钥哈希算法(例如基于SHA-1或SHA-256)以及密码学摘要函数(例如基于SHA-1或SHA-256)中的至少一个或基于非对称密码学的数字签名算法(例如基于RSA算法或DSA算法或椭圆曲线)中的至少一个。
[0027] 本发明的一个方面提供了用于生成与所插入的智能卡相关联的电子签名的智能卡读取器,包括:用于与主计算机通信的通信接口;用于与智能卡通信的智能卡连接器;用于安全地存储一个或更多个密码学钥的第一存储器部件;用于存储日志的第二存储器部件;用户接口,包括向用户呈现信息的用户数据接口以及用于接收用户指示的用户输入接口;用于与主计算机通信,与智能卡通信以及驱动用户接口的数据处理部件;智能卡读取器适于使用智能卡连接器与智能卡交换智能卡命令;智能卡读取器还适于工作在安全记录模式下,在安全记录模式下,智能卡读取器在日志中记录关于读取器或读取器的使用的日志安全相关事件;并且智能卡读取器还适于使用存储在第一存储器中的一个或更多个密码学钥中的至少一个密码学钥来生成所述日志上的读取器签名。
[0028] 在一组实施方式中,智能卡读取器还适于执行从主计算机接收到的读取器命令并且在日志中记录所接收到的读取器命令中的至少一些读取器命令。在一些实施方式中,智能卡读取器还适于支持用于指示读取器执行以下操作的一个或更多个读取器命令:向用户呈现数据以供用户审查和批准;使用输出接口向用户呈现供审查和批准的数据;使用输入接口捕捉用户对供审查和批准的数据的批准或拒绝;以及在日志中记录供审核和批准的数据。
[0029] 在另一组实施方式中,智能卡读取器还适于在所述日志中记录一些在主机与智能卡之间交换的至少一些透明智能卡命令。在一些实施方式中,读取器记录的透明智能卡命令包括用于向所插入的智能卡提交要由智能卡签名的数据的透明智能卡命令。在其他实施方式中,读取器记录的透明智能卡命令包括用于从所插入的智能卡获得所生成的对所提交的数据的电子卡签名的透明智能卡命令。在又一实施方式中,读取器适于在从第一时间点至第二时间点的时段内记录所有透明智能卡命令。在这些实施方式中的一些实施方式中,其中读取器记录所有透明智能卡命令的时段包括:其中将要被签名的数据提交至所插入的智能卡的时段;或者其中从所插入的智能卡获得所生成的对所提交的数据的电子卡签名的时段。
[0030] 在又一组实施方式中,智能卡读取器存储至少部分地确定读取器存储哪些日志的一组配置数据。在一些实施方式中,智能卡读取器适于记录当前组配置数据。在这些实施方式中的一些实施方式中,读取器支持用于改变该组配置数据的一个或更多个读取器命令。
[0031] 在再一组实施方式中,智能卡读取器还包括时钟并且适于向日志添加一个或更多个时间戳。在一些实施方式中,智能卡读取器适于向所记录的事件中的至少一些事件添加时间戳。
[0032] 在另一组实施方式中,智能卡读取器还适于通过读取器命令接收挑战并且记录所接收到的挑战。
[0033] 在另一组实施方式中,智能卡读取器还包括计数器并且还适于记录与所述计数器相关的值。在这些实施方式中的一些实施方式中,智能卡读取器还适于当进入安全记录模式时或者当生成日志上的读取器签名时自动递增计数器值。
[0034] 在另一组实施方式中,日志包括多个日志文件,以及日志上的读取器签名包括对多个日志文件的多个签名。
[0035] 在另一组实施方式中,智能卡读取器还适于支持用于验证用户身份的读取器命令。在这些实施方式中的一些实施方式中,智能卡读取器还适于记录验证用户身份的结果。在这些实施方式中的一些其他实施方式中,智能卡读取器还适于请求用户在用户输入接口上输入PIN值、在用户输入接口上捕捉用户输入的PIN值、并且将所捕捉到的PIN值提交至所插入的智能卡以供验证。
[0036] 本发明的另一方面提供了一种用于生成对要被签名的数据的电子签名的方法,包括以下步骤:将智能卡读取器连接至主计算机;将智能卡插入读取器中;读取器进入安全记录模式;向读取器提交供用户审查和批准的数据;由读取器使用读取器上的用户输出接口来向用户呈现供用户审查和批准的数据;由读取器使用读取器上的用户输入接口来捕捉用户对所呈现的数据的批准;由读取器在读取器上的日志中记录供审查和批准的数据;向所插入的智能卡提交要被签名的数据,然后由所插入的智能卡生成对所提交的要被签名的数据的电子卡签名,然后从所插入的智能卡获得所生成的对所提交的数据的电子卡签名;由读取器使用利用存储在读取器中的密码学钥而被参数化的密码学数据签名算法来生成对读取器上的日志的电子读取器签名,以及然后获得由读取器生成的对日志的电子读取器签名。在一些实施方式中,方法还包括以下步骤:由读取器将已提交至卡的要被签名的数据或者由所插入的智能卡生成的电子卡签名记录在读取器上的日志中。
[0037] 在一组实施方式中,方法还包括:向所插入的智能卡提交要被签名的数据,并且从所插入的智能卡获得所生成的对所提交的数据的电子卡签名包括主计算机使用智能卡读取器与所插入的智能卡交换透明智能卡命令;以及由读取器在读取器上的日志中记录被提交至卡的要被签名的数据或者由所插入的智能卡生成的电子卡签名包括:由读取器在读取器上的日志中记录所交换的透明智能卡命令中的至少一些透明智能卡命令。在这些实施方式中的一些实施方式中,主计算机使用智能卡读取器与所插入的智能卡交换的透明智能卡命令至少包括:用于向所插入的智能卡提交要被签名的数据的透明智能卡命令;以及读取器在读取器上的日志中记录的所交换的透明智能卡命令中的至少一些透明智能卡命令至少包括:用于向所插入的智能卡提交要被签名的数据的透明智能卡命令;或者用于从所插入的智能卡获得所生成的对所提交的数据的电子卡签名的透明智能卡命令。在这些实施方式中的一些实施方式中,读取器在读取器上的日志中记录的所交换的透明智能卡命令中的至少一些透明智能卡命令包括在特定时段期间所交换的所有透明智能卡命令。在这些其他实施方式中的一些实施方式中,其中读取器记录全部所交换的透明智能卡命令的时段包括:其中将要被签名的数据提交至所插入的智能卡的时段;或者其中从所插入的智能卡获得所生成的对所提交的数据的电子卡签名的时段。
[0038] 在另一组实施方式中,方法还包括在读取器上配置至少部分地确定读取器在读取器上的日志中记录哪些事件的一组配置数据。这些实施方式中的一些实施方式还包括以下步骤:由读取器在读取器上的日志中记录当前组配置数据。这些实施方式中的一些实施方式还包括配置该组配置数据使得读取器在读取器上的日志中记录供审查和批准的数据。这些实施方式中的一些其他实施方式还包括配置该组配置数据使得读取器在读取器上的日志中记录被提交至卡的要被签名的数据或者由所插入的智能卡生成的电子卡签名。其他实施方式还包括配置该组配置数据使得读取器在读取器上的日志中记录用于向用户呈现数据供审查和批准的读取器命令。其他实施方式还包括配置该组配置数据使得读取器在读取器上的日志中记录一组透明智能卡命令。这些实施方式中的一些实施方式还包括配置该组配置数据使得读取器在读取器上的日志中记录包括用于向所插入的智能卡提交要被签名的数据或者用于从所插入的智能卡获得被提交至智能卡的数据上的所生成的电子签名的智能卡命令的一组透明智能卡命令。
[0039] 本发明的再一方面提供了用于保护用户访问应用的方法,包括以下步骤:向用户提供用于对数据进行签名的智能卡;向用户提供根据上述实施方式中的任意一种实施方式的智能卡读取器;向用户提供与来自读取器所连接的主计算机的应用的交互;汇集交易数据;汇集与所汇集的交易数据相关的要被审查和批准的数据;汇集与所汇集的交易数据相关的要被签名的数据;确保智能卡被插入智能卡读取器中;确保读取器进入安全记录模式;向读取器提交用于由用户审查和批准的数据;由读取器使用读取器上的用户输出接口来向用户呈现供用户审查和批准的数据;由读取器使用读取器上的用户输入接口来捕捉用户对所呈现的数据的批准;由读取器在读取器上的日志中记录供审查和批准的数据;向所插入的智能卡提交要被签名的数据,然后由所插入的智能卡生成对所提交的要被签名的数据的电子卡签名,以及然后从所插入的智能卡获得所生成的对所提交的数据的电子卡签名;由读取器在读取器上的日志中记录被提交至卡的要被签名的数据或者由所插入的智能卡生成的电子卡签名;由读取器使用利用存储在读取器中的密码学钥而被参数化的密码学数据签名算法来生成对读取器上的日志的电子读取器签名,以及然后获得由读取器生成的对日志的电子读取器签名;验证所获得的电子卡签名;验证所获得的由读取器生成的对日志的电子读取器签名;验证由读取器签名的日志和所汇集的交易数据之间的一致性。
[0040] 在本方法的一些实施方式中,向所插入的智能卡提交要被签名的数据包括:在主计算机与所插入的智能卡之间交换用于向智能卡提交要被签名的数据的透明智能卡命令;并且其中,由读取器在读取器上的日志中记录提交至卡的要被签名的数据或者由所插入的智能卡生成的电子卡签名包括:记录在主计算机与所插入的智能卡之间交换的、用于向智能卡提交要被签名的数据,或者用于检索被提交至卡以供签名的数据上的由所插入的智能卡生成的电子卡签名的透明智能卡命令。
[0041] 有益效果
[0042] 本发明的重要优点在于:其使得能够检测其中攻击者说服用户使用不安全读取器来使用他或她的签名卡的攻击。本发明的另一优点在于:其使得能够检测在读取器上和/或使用卡应该发生的事件与实际发生的事件之间的不一致性,使得由读取器应用的防火墙能够放宽,其中又表示可以与更大范围的卡一起使用读取器或在更大范围的用例中使用读取器。
[0043] 本发明的更多优点对本领域的技术人员来说是明显的。

附图说明

[0044] 如附图所示,根据下面的本发明的若干实施方式的更具体的描述,本发明的前述以及其他特征和优点将变得明显。
[0045] 下面的描述和附图详细阐述了所要求保护的主题的特定说明性方面。然而,这些方面仅表示了可以利用本发明的原理的各种方式中的几种方式,并且所要求保护的主题意在包括所有这样的方面及其等同。当结合附图考虑时,根据下面的本发明的方面的详细描述,所要求保护的主题的其他优点和新颖特征会变得明显。
[0046] 下文结合附图阐述的详细描述旨在作为本发明的一些实施方式的描述,而并不旨在仅表示可以构造和/或利用本发明的形式。该描述结合所示出的实施方式阐述了用于构造本发明的功能和操作本发明的步骤顺序。然而,应当理解的是,可以通过也意在包括在本发明的范围内的不同的实施方式来实现相同或等同的功能与顺序。
[0047] 参照附图描述了所要求保护的主题,其中贯穿附图同样的附图标记用于指代同样的元件。在下面的描述中,为了说明的目的,阐述了大量具体细节以提供对本发明的透彻理解。然而,明显的是,在没有这些具体细节的情况下也可以实践所要求保护的主题。在其他情况下,以框图形式示出公知的结构和设备以便于对本发明进行描述。
[0048] 图1示出了根据本发明的一种实施方式的安全智能卡读取器;
[0049] 图2示出了根据本发明的一个方面的用于进行安全交易的系统;以及[0050] 图3a和图3b示出了根据本发明的一个方面的用于保护远程交易安全的方法。
[0051] 用于执行本发明的模式
[0052] 图1示出了根据本发明的一个方面的安全智能卡读取器(100),包括:用于与主计算机(99)通信的通信接口(110);用于接受智能卡(98)的智能卡读取器插槽(120);用于与智能卡(98)通信的智能卡连接器(130);用于安全地存储一个或更多个密码学钥和/或一个或更多个日志文件的至少一个存储器部件(140);用户接口,包括用于向用户呈现信息的用户输出接口(151)和用于接收用户指示的用户输入接口(152);用于与主计算机(99)通信,与智能卡(98)通信以及驱动用户接口(151/152)的一个或更多个处理部件(160)。智能卡读取器100还适于工作在安全记录模式下,在安全记录模式下,智能卡读取器(100)保持日志,日志的内容与安全相关,并且可以表示涉及读取器和/或读取器的使用,当读取器处于安全记录模式下时发生的并且可能对安全等级有影响的至少一些安全相关事件。读取器可以适于以该方式在日志文件中记录的事件包括:读取器从应用(例如,主机上的本地应用或与主计算机连接的服务器上的远程应用)接收到的读取器命令例如向用户呈现数据供审查和批准的读取器命令或用于设置或改变特定配置数据的读取器命令;读取器与所插入的智能卡交换的(和读取器可能已从应用接收到的)智能卡命令例如使卡签名数据的智能卡命令;用户交互如用户批准或拒绝读取器呈现给用户的数据;与安全相关的其他事件如表示意图篡改读取器的情况的检测。智能卡读取器(100)还适于使用由至少一个存储器部件(140)存储的一个或更多个密码学钥中的至少一个密码学钥生成所述日志上的读取器签名。为了生成读取器签名,读取器可以包括处理部件(162),处理部件(162)包括能够使用由至少一个存储器部件(140)存储的一个或更多个密码学钥中的至少一个密码学钥来进行密码学计算的密码学引擎。在一些实施方式中,处理装置(160)可以包括处理部件(162)。在一些实施方式中,上述部件可以包括在壳体(170)中。在一些实施方式中,读取器可以适于通过在利用存储在读取器的至少一个存储器部件(140)中的公-私钥对中的私钥而被参数化的日志文件的内容(或其表示,如摘要或密码学哈希)上应用非对称密码学算法来生成对所述日志文件的读取器签名。
[0053] 在一些实施方式中,用于与主计算机(99)通信的通信接口(110)可以包括USB接口,USB接口可以包括可以用于将具有USB线缆(97)的读取器(100)连接至主计算机(99)的USB端口的USB连接器。在一些实施方式中,用于与主计算机(99)通信的处理装置(160)可以适于支持与主计算机(99)通信的USB协议。在一些实施方式中,USB线缆(97)可以固定至读取器(100)。在其他实施方式中,USB线缆(97)可以是从读取器(100)可拆卸的。
[0054] 在一些实施方式中,智能卡(98)符合智能卡的ISO/IEC7816规范的至少一部分或与智能卡的ISO/IEC7816规范的至少一部分兼容,以及用于接受智能卡(98)的智能卡读取器插槽(120)、用于与智能卡(98)通信的智能卡连接器(130)和用于与智能卡(98)通信的处理装置(160)适于处理符合智能卡的ISO/IEC7816规范的至少一部分或与智能卡的ISO/IEC7816规范的至少一部分兼容的智能卡,并且适于根据ISO/IEC7816规范的至少一部分处理协议。
[0055] 在一些实施方式中,智能卡(98)可以支持密码学功能以对数据进行签名。在一些实施方式中,智能卡可以支持基于对称密码学的数据签名功能。在一些实施方式中,智能卡可以支持基于非对称密码学的数据签名功能。在一些实施方式中,智能卡包括安全地存储一个或更多个对称或非对称密码学钥的安全存储器。在一些实施方式中,智能卡包括执行密码学操作如对称或非对称加密或解密以及基于对称或非对称密码学的数据签名操作的安全密码学代理。在一些实施方式中,智能卡的安全密码学代理可以适于使用存储在智能卡的安全存储器中的一个或更多个密码学钥。在一些实施方式中,由智能卡支持的操作或功能中的一些操作或功能可以通过PIN值的正确输入来保护,或者可以以PIN值的正确输入为条件。
[0056] 在一些实施方式中,智能卡读取器(100)可以包括提供时间值的时钟(180)。在一些实施方式中,该时钟(180)可以包括实时时钟。在一些实施方式中,智能卡读取器可以使用由时钟(180)提供的时间值来对特定数据、动作或事件加时间戳。在一些实施方式中,时间值可以表示绝对实时时间,即,读取器的时间值与真实通用时间有直接关系。在其他实施方式中,时间值可以是相对于某个读取器具体事件如生产读取器的时刻的值。在一些实施方式中,读取器的时间值可以是例如Unix时间(在一些实施方式中,在某个精度范围内)、GMT(格林威治标准时间)或UMT(通用度量时间)时间。在一些实施方式中,实时时钟可以表示某个精度范围内的当前时间。在一些实施方式中,时钟(180)表示与服务器的时钟的值同步(在某个精度范围内)的时间值。
[0057] 篡改证据、篡改检测和防篡改
[0058] 在一些实施方式中,安全智能卡读取器(100)适于确保检测和/或抵御篡改读取器的意图。在一些实施方式中,智能卡读取器(100)的壳体(170)适于抵御壳体的打开和/或增加用户可以通过壳体(170)的变形(篡改证据)注意到打开壳体(170)的意图的可能性。在一些实施方式中,可以将共同组成壳体(170)的部分焊接或胶合在一起使得卸下这些部分的意图通常会导致壳体(170)的明显变形。在一些实施方式中,读取器(100)包括检测壳体(170)的打开的开关。在一些实施方式中,读取器(100)适于在检测到篡改的意图时采取适当的动作。在一些实施方式中,在检测到篡改读取器(100)的意图时,读取器(100)可以擦除特定敏感数据如密码学钥,或者读取器(100)可以(可能不可逆地)进入错误模式,或者停止工作。在一些实施方式中,读取器(100)可以设置以及存储与篡改意图的检测有关的信息(如篡改意图的日期、时间和/或类型),并且将该信息包括在随后的读取器签名计算中。
[0059] 在一些实施方式中,读取器(100)可以包括例如即使在没有连接至主计算机(99)的情况下仍然变得或保持主动的自主电源,例如以确保主动篡改检测,以使得时钟(180)能够保持实时,或给易失存储器(140)供电。在一些实施方式中,电源可以包括电池。在一些实施方式中,电池可以是可替换的。
[0060] 读取器(100)可以具有安全用户输出接口(例如,安全显示器)和安全输入接口(例如,安全键盘)。在一些实施方式中,读取器具有输出接口,由于输出接口完全由读取器来控制,并且由于其不能用于通过读取器外部的进程来向用户呈现数据或信息,除非该进程是由读取器授权并且控制的,所以输出接口是安全的。在一些实施方式中,读取器具有输入接口,由于输入接口完全由读取器来控制,并且由于其不能用于通过读取器外部的进程来从用户获得数据或信息,除非该进程是由读取器授权并且控制的,所以输入接口是安全的。在一些实施方式中,通过不允许对其固件进行任何更改或提供仅允许通过确保读取器仅接受来自可信来源的授权的固件更新的安全协议来对读取器固件进行更改的安全固件更新机制来保持用户输入接口和用户输出接口的安全。
[0061] 读取器(100)可以适于确保固件安全和/或支持安全固件更新。
[0062] 处理部件(160)可以包括一个或更多个处理部件。这些处理部件可以包括微芯片、集成电路、微控制器、微处理器、FPGA(现场可编程门阵列)、ASIC(专用集成电路)等。
[0063] 存储器(140)可以用于安全地存储密码学钥。存储器(140)可以包括一个或多个存储器部件,包括RAM(可能是电池支持的)、ROM、EEPROM、闪存或其他类型的存储器部件。在一些实施方式中,存储器(140)可以包括一个或更多个SAM(安全存取模块)模块。在一些实施方式中,存储器(140)可以包括一个或更多个SIM(用户身份模块)卡。在一些实施方式中,存储器(140)可以包括一个或更多个内部智能卡或智能卡芯片。读取器(100)可以适于保护敏感存储数据——例如可以包括密码学钥的秘密数据——的机密性。这些秘密密码学钥可以包括要与对称密码学算法一起使用的对称密码学钥和/或要与非对称密码学算法一起使用的非对称密码学钥如公/私钥对中的私钥。读取器(100)可以适于在检测到篡改读取器的意图时擦除一些存储器区域。可以对存储器(140)的特定内容进行加密。
[0064] 读取器(100)还可以用于存储公钥和/或与存储在存储器(140)中的私钥相关联的证书。
[0065] 读取器(100)可以适于支持密码学能力比如支持用于非对称密码学算法和/或对称密码学算法和/或哈希函数的计算。读取器可以适于在表示安全相关事件和动作的数据上生成读取器签名,该数据可以包括表示读取器从主机(99)接收到的读取器命令、读取器与所插入的智能卡(98)交换的智能卡命令、读取器呈现给用户以供批准(例如,借助于用户输出接口(151))的数据、或者读取器在处理任何前述项时应用的配置参数的数据。智能卡读取器(100)还可以适于保持可以包括与主机交换读取器命令、与所插入的智能卡交换智能卡命令和/或与用户的交互的特定安全相关事件和动作的日志。安全智能卡读取器(100)可以适于生成对这些日志中的一个或更多个的读取器签名。
[0066] 读取器(100)可以通过对要被签名的数据应用利用存储在存储器(140)中的密码学钥而被参数化的密码学算法来生成读取器签名。密码学算法可以包括带钥哈希函数,由此将密钥和要被签名的数据的组合提交至单向密码学哈希函数或摘要函数(如来自MD5、SHA-1、SHA-2或SHA-256哈希函数族的密码学哈希函数),并且所得到的哈希或摘要构成电子签名。密码学算法可以包括对称加密(解密)块密码如可以(例如,在CBC(密码块链)模式或一些其他块链模式中)使用以生成可以构成电子签名的MAC(消息认证码)的(三重)DES(数据加密标准)或AES(高级加密标准)。读取器可以使用基于非对称密码学的电子签名方案来生成读取器签名。在这些情况下,可以对要被签名的数据进行哈希操作或将要被签名的数据提交至摘要函数,然后利用非对称加密算法、使用用户的私钥对所得到的哈希或摘要进行加密。用于生成电子签名的非对称密码学算法的示例包括RSA(Rivest Shamir Adleman)和DSA(数字签名算法)。
[0067] 在一些实施方式中,安全智能卡读取器适于在生产期间或在生产然后使用一个或更多个秘密或私有读取器钥来被初始化和/或个人化。在一些实施方式中,安全智能卡读取器支持安全数据交换协议以更新敏感读取器数据如安全配置参数和/或密码学钥。在一些实施方式中,安全智能卡读取器包括能够生成密码学钥的安全部件。在一些实施方式中,安全智能卡读取器可以包括能够生成公-私钥对的安全部件。在一些实施方式中,安全智能卡读取器可以包括生成随机数的安全部件。
[0068] 防火墙
[0069] 读取器可以支持检查由主机发送并且用于智能卡的智能卡命令的防火墙,由此读取器可以根据特定标准来阻止命令。在一些实施方式中,读取器可以根据卡的类型来配置防火墙。在一些实施方式中,读取器借助于一个或更多个选择应用(SELECT APPLICATION)智能卡命令来确定卡的类型。在一些实施方式中,防火墙保持必须被阻止的智能卡命令(和可以允许通过的其他智能卡命令)的列表。在一些实施方式中,防火墙保持允许通过的智能卡命令(和可以被阻止的所有其他智能卡命令)的列表。在一些实施方式中,防火墙基于命令头中的特定字节(如CLA、INS、P1和/或P2字节)的值来识别智能卡命令。在一些实施方式中,读取器可以具有可以调查和/或改变一些智能卡命令的内容的防火墙。读取器从主机接收到的智能卡命令、主机旨在由读取器转发至卡的智能卡命令以及在不阻止智能卡命令或更改其内容的情况下读取器转发至卡的智能卡命令可以被称为透明智能卡命令。如果读取器工作在不通过防火墙来阻止或更改智能卡命令的模式下,则可以称为读取器工作在透明模式下。
[0070] 读取器命令
[0071] 读取器可以适于从主计算机(即,从例如主计算机上的本地应用或连接至主计算机的应用服务器上的远程应用)接收并且执行读取器命令。这样的读取器命令可以包括:改变读取器的配置数据的命令、使读取器进入安全记录模式的命令、使用户进行安全用户身份认证(如输入安全PIN)的命令、使读取器向用户呈现特定数据的命令,以及使用户审查并且批准或者拒绝所呈现的数据的命令。
[0072] 安全用户认证
[0073] 在一些实施方式中,读取器可以支持能够用于指示读取器安全地认证用户的读取器命令。
[0074] 例如,在一些实施方式中,读取器可以支持能够用于指示读取器提示用户输入PIN(或口令)、捕捉由用户输入的PIN(或口令)并且将所捕捉到的PIN(或口令)提交至智能卡以由智能卡来验证的读取器命令。在一些实施方式中,这样的安全PIN输入读取器命令可以包括向读取器指示如何构造PIN验证智能卡命令的参数。在一些实施方式中,读取器适于在将PIN或口令值提交至智能卡用于验证然后从存储器擦除PIN或口令值的所有副本。
[0075] 在一些实施方式中,读取器可以包括某种类型的生物特征捕捉设备例如指纹,并且读取器可以支持能够用于指示读取器(可选地)提示用户将他或她的生物特征提交至读取器,捕捉生物特征并且验证所捕捉到的生物特征(例如,以便认证用户)的读取器命令。在一些实施方式中,可以通过由读取器将所捕捉到的生物特征提交至智能卡并且智能卡验证所捕捉到的生物特征来验证生物特征。在一些实施方式中,可以通过读取器从智能卡获得生物特征参考数据并且将所捕捉到的用户生物特征数据与从智能卡获得的生物特征参考数据相比较来验证生物特征。在一些实施方式中,读取器适于在已经将生物特征数据提交至智能卡用于验证然后或在他们已经由读取器用于用户认证目的然后从存储器擦除生物特征数据的所有副本。
[0076] 安全签名
[0077] 读取器可以适于提供安全签名模式,在安全签名模式下与读取器交互的主机或应用将数据提交至读取器以要由卡来签名。在这样的安全签名模式下,读取器向用户呈现要被签名的数据并且请求用户批准数据。在用户批准数据然后,读取器向卡发送包括要被签名的数据(或其表示如要被签名的数据的哈希)的签名命令。读取器从卡接收签名并且将其返回至主机。在一些实施方式中,读取器可以支持使得与读取器交互的应用能够向读取器发送要由卡来签名的数据的读取器命令,由此应用能够在由卡来对数据进行签名之前向读取器指示必须由用户来审查和批准这些数据中的哪些数据以及用户不必审查和批准这些数据中的那些数据。
[0078] 数据审查和批准
[0079] 在一些实施方式中,读取器可以支持使得应用能够将数据提交至读取器以由用户来审查和批准的读取器命令。在一些实施方式中,这样的读取器命令可以包括发起如上所述的安全签名操作的读取器命令。在一些实施方式中,这样的读取器命令可以包括不指示读取器使卡自动签名已审查并且已批准的数据的读取器命令。例如,在一些实施方式中,读取器可以支持使得应用能够将数据提交至读取器以由用户来审查和批准的读取器命令,由此读取器在用户批准数据然后将已批准的数据(或表示已批准的数据的数据如包括这些数据或这些数据的哈希的读取器命令)添加至日志文件。然后,应用可以例如通过向卡发送透明智能卡命令来将同样的数据提交至卡用于签名。读取器还可以将其添加至日志文件。然后,读取器可以签名日志文件。日志文件上的读取器签名由此证明已经由卡签名的数据也由用户已经在安全读取器上审查和批准。
[0080] 在一些实施方式中,由读取器在例如读取器的(安全)显示器上将要由用户审查和批准的数据可视化。在一些实施方式中,可以通过读取器例如通过人工语音生成来将要由用户审查和批准的数据呈现给用户。在一些实施方式中,用户可以例如通过按压读取器键盘上的OK按钮来批准数据。在一些实施方式中,用户可以通过例如按压读取器(安全)键盘上的取消按钮来拒绝数据。
[0081] 在一些实施方式中,如果要被审查的数据不适合于读取器的显示器,读取器可以显示一部分数据并且向用户提供滚屏遍及其余数据的可能性,或者读取器可以将数据分为一系列的数据块,每个数据块都适合于显示器并且向用户提供浏览遍及这些数据库的可能性。在一些实施方式中,在滚屏遍及所有数据然后或在浏览遍及所有数据块然后用户仅能够表示批准。
[0082] 安全记录模式
[0083] 读取器可以适于提供安全记录模式,在安全记录模式下保持一个或更多个日志。读取器可以提供打开这样的安全记录模式的读取器命令。读取器在进入安全记录模式时可以重置一个或更多个日志的内容。在一些实施方式中,读取器可以支持使得主机能够重置日志的读取器命令。读取器可以将表示其在该模式下接收到的读取器命令中的至少一些的数据添加至日志中的一个日志。读取器可以支持使得主机能够将数据添加至日志中的至少一个日志的读取器命令。读取器可以支持使得主机能够指示读取器使用日志的内容构造智能卡命令并且将该智能卡命令发送至智能卡的读取器命令。读取器可以支持使得主机能够指示读取器在读取器的用户输出接口上向用户呈现特定数据用于用户批准的读取器命令。
读取器可以支持使得主机能够指示读取器向用户呈现日志的内容用于批准的读取器命令。
当用户批准数据时,读取器可以将已批准的数据自动添加至日志中的至少一个日志。在一些实施方式中,读取器可以支持使得主机能够指示读取器将一个日志的内容添加至另一日志的内容的读取器命令。读取器可以适于当处于安全记录模式时将表示从主机接收到的读取器命令的数据自动添加至日志中的至少一个日志。读取器可以适于当处于安全记录模式时将表示在读取器和智能卡之间交换的智能卡命令和响应的数据自动添加至日志中的至少一个日志。在一些实施方式中,读取器可以适于当处于安全记录模式时将表示在读取器和智能卡之间交换的透明智能卡命令和相应的响应中的至少一些或所有在读取器和智能卡之间交换的透明智能卡命令和相应的响应的数据自动添加至日志中的一个日志。当处于安全记录模式时,读取器可以激活防火墙。该防火墙可以阻止主机要求读取器与智能卡交换的特定或所有智能卡命令。
[0084] 当将数据添加至日志文件时读取器使用的机制。
[0085] 在一些实施方式中,当读取器记录新数据时,其可以通过将正在被记录的新数据附加至之前已添加至日志文件的数据来将该新数据添加至日志文件。在一些实施方式中,读取器可以通过更新与日志文件相关联的摘要或哈希值来将新数据添加至日志文件。在一些实施方式中,当将新数据添加至日志文件时,读取器可以既将新数据附加至之前已记录的数据,又更新与日志文件相关联的摘要或哈希值。
[0086] 在一些实施方式中,读取器可以将其添加至日志文件的数据格式化,并且如上所述将已格式化的数据添加至日志文件。例如,读取器可以添加分隔符以区分被添加至日志文件的连续数据项。在一些实施方式中,读取器可以将开始定界符和结束定界符添加至被添加至日志文件的数据项。在一些实施方式中,在添加至日志文件之前,将被添加至日志文件的数据项可以被加标签。在一些实施方式中,在将被添加至日志文件的数据项添加至日志文件之前可以将它们嵌入TLV(标签-长度-内容)结构。在一些实施方式中,标签可以用于表示被添加至日志文件的各种数据项的性质。例如,不同的标签可以用于表示特定数据代表的是卡命令或响应、或是读取器命令或响应、或是读取器配置数据、或是代表涉及用户交互的数据(例如,表示特定数据是否由读取器呈现来供审查,以及用户是否批准了被呈现来供审查的数据),或是表示特定事件的数据(例如可能企图篡改设备的什么的检测),或者数据是否表示时间戳。在一些实施方式中,在将数据项添加至日志文件之前可以给数据项加时间戳。在一些实施方式中,时间戳可以是应用于被添加至日志文件的数据的格式化结构的一部分。
[0087] 在一些实施方式中,读取器可以在文件系统的一个或更多个文件中存储日志文件的内容。在其他实施方式中,读取器可以将日志文件的内容存储在其保持在一些存储器部件中的另一类型的数据结构中。
[0088] 读取器可以适于支持使得主机能够指示读取器生成对包括在一个或更多个日志中的数据的读取器签名的读取器命令。读取器还可以适于在特定事件的情况下自动生成对日志中的一个的读取器签名。例如,当读取器与智能卡交换包括由用户批准的数据的智能卡命令时,其可以自动生成读取器签名。或者,当读取器与智能卡交换其根据日志的内容构建的智能卡命令时,其可以自动生成读取器签名。或者,当退出安全记录模式时,其可以自动生成对日志中的一个的读取器签名。
[0089] 在一些实施方式中,读取器支持用于检索日志文件的内容的读取器命令。在一些实施方式中,读取器可以使得能够检索一些日志文件而不是其他日志文件的内容。在一些实施方式中,仅当读取器生成了对其内容的签名时,才能够检索一些日志文件的内容。在一些实施方式中,不能从读取器检索日志文件的内容。在一些实施方式中,一些日志文件的内容可以连同对这些内容的读取器签名来检索。
[0090] 安全记录模式可配置性
[0091] 在一些实施方式中,当读取器处于安全记录模式下时,读取器工作的方式的特定方面可以是可配置的。例如,读取器应当记录哪些数据或事件,以及读取器应当将它们记录在哪个日志文件中可以是可配置的。在哪些条件下读取器应当生成签名以及读取器应当关于哪些数据或日志文件生成签名也可以是可配置的。在一些实施方式中,一些安全记录模式配置参数可以被硬编码在读取器中并且不能被更改。在一些实施方式中,硬编码配置参数可以是隐式的,因为其被硬编码入读取器的固件逻辑。在其他实施方式中,可以以硬编码参数值的形式对一些配置参数进行显式硬编码。在一些实施方式中,可以将一些安全记录模式配置参数存储在读取器的非易失性存储器中。在一些实施方式中,存储在读取器的非易失性存储器中的一些安全记录模式配置参数可以是例如使用安全参数更新读取器命令可更新的。在一些实施方式中,可以将一些安全记录模式配置参数作为读取器命令的一部分提供给读取器。在一些实施方式中,作为读取器命令的一部分被提供给读取器的一些安全记录模式配置参数可以至少暂时地覆盖存储在非易失性存储器中的或硬编码的安全记录模式配置参数。在一些实施方式中,可以使用存储在读取器的非易失性存储器并且使用例如安全读取器参数更新命令以安全方式可更新的安全记录模式配置参数来覆盖至少一些硬编码的安全记录模式配置参数。在一些实施方式中,可以将一些安全记录模式配置参数作为读取器命令的一部分提供给读取器以进入安全记录模式。在一些实施方式中,如果通过读取器命令来提供一些安全记录模式配置参数,则表示该命令的数据可以被自动添加至日志文件。在一些实施方式中,当读取器命令指示读取器进入安全记录模式时,该命令可以包括安全记录模式配置参数组,并且可以自动记录表示可用于该安全记录模式的至少一些安全记录模式配置参数的数据。
[0092] 加时间戳
[0093] 在一些实施方式中,读取器(100)可以适于给特定数据加时间戳。读取器(100)可以使用由时钟(180)提供的时间来给数据加时间戳。读取器可以加时间戳的数据可以包括被添加至日志中的一个日志的数据、由卡(98)签名的数据、由读取器(100)签名的数据、由卡生成的签名或由读取器生成的签名。在一些实施方式中,自动对添加至日志文件的数据的每个项目加时间戳。在一些实施方式中,仅对添加至日志文件的数据的具体项目加时间戳。在一些实施方式中,读取器对具体事件——如读取器进入或退出安全记录模式的时刻,或者从卡请求或获得签名的时刻,或者特定用户交互的时刻如向用户呈现数据用于批准或从用户获得对于数据的批准——提供时间戳。在一些实施方式中,读取器支持使得能够指示读取器给日志文件添加时间戳的读取器命令。在一些实施方式中,例如,作为对于具体读取器命令的响应或作为对具体事件的响应,读取器可以适于将表示当前读取器时间的数据元素添加至日志文件。
[0094] 防止重放措施
[0095] 在一些实施方式中,读取器(100)可以适于支持阻止特定类型的重放攻击的特定措施。例如,在一些实施方式中,读取器可以将时间戳应用于读取器签名,或者向日志文件或被添加至日志文件的数据添加时间戳。在一些实施方式中,读取器可以适于生成随机数并且可以将随机数添加至由读取器签名的数据,或者可以将随机数添加至日志文件。在一些实施方式中,读取器可以保持每次读取器使用其值时单调递增(或递减)的计数器或其等同物,如单调变化值,即每次由当前值的函数例如当前值的哈希函数使用时被替换的值。在一些实施方式中,读取器可以将这样的计数器或单调变化值添加至日志文件或添加至其签名的数据。在一些实施方式中,读取器可以适于通过读取器命令从外部应用接收服务器挑战如不可预知数(其可以包括随机数或伪随机数)或时间值或服务器计数器值,或者读取器可以将该服务器挑战添加至读取器签名的数据或添加至读取器添加至日志文件的数据。在一些实施方式中,这样的服务器挑战可以是指示读取器进入安全记录模式的读取器命令中的一部分数据。在一些实施方式中,这样的服务器挑战可以是应用发送至读取器以要由卡来签名的一部分数据。在一些实施方式中,这样的服务器挑战可以是应用发送至读取器以要由用户来审查和批准的一部分数据。
[0096] 与智能卡的安全通信
[0097] 在一些实施方式中,读取器(100)适于保护其与智能卡(98)的通信。例如,在一些实施方式中,读取器可以适于例如通过验证智能卡的证书或者通过验证由智能卡生成的消息认证码来认证智能卡。在一些实施方式中,读取器能够例如通过生成能够由卡来验证的消息认证码来将其自身认证到智能卡。在一些实施方式中,读取器可以适于生成其与所插入的智能卡共享的对称会话钥。在一些实施方式中,读取器适于对其与智能卡交换的命令和/或响应进行加密和/或解密。例如,读取器可以适于对智能卡命令进行加密,读取器以智能卡命令向卡提交敏感数据如生物特征数据或PIN或口令值。在一些实施方式中,读取器可以适于对来自智能卡的加密数据例如生物参考数据进行解密。
[0098] 与应用的安全通信
[0099] 在一些实施方式中,读取器(100)适于保护其与外部应用的通信,外部应用通过读取器命令与读取器通信。外部应用可以(全部或部分地)在读取器所连接的主计算机上运行。外部应用还可以(全部或部分地)在经由计算机网络连接至读取器所连接的主计算机的远程应用服务器上运行。在一些实施方式中,读取器可以与外部应用共享可以用于保护读取器和应用之间的通信的密钥。在一些实施方式中,读取器可以适于与应用建立共享的秘密会话钥。在一些实施方式中,读取器可以存储公-私钥对中的私钥,并且读取器可以适于接收由应用使用该公-私钥对中的公钥加密的种子,对加密种子进行解密并且使用解密种子来建立与应用共享的秘密会话钥。在一些实施方式中,读取器可以适于对来自应用(或声称来自应用)的命令或数据进行解密或认证。在一些实施方式中,读取器可以适于验证关于声称来自应用的命令或数据的签名或消息认证码。在一些实施方式中,读取器可以适于对其返回给应用的响应或数据进行加密。在一些实施方式中,读取器可以适于使用具有其与应用共享的密钥的对称密码学来对读取器与应用交换的消息和/或数据进行解密、加密和/或认证。在一些实施方式中,读取器可以适于使用具有其存储的并且与应用提供商或与受信任的证书颁发机构相关联的公钥的非对称密码学来对声称来自应用的消息、命令或数据进行认证(例如,通过验证来自应用的关于这样的消息、命令或数据的签名)。在一些实施方式中,读取器可以适于使用具有其存储的私钥的非对称密码学来对其返回或发送至应用的消息或数据进行认证(例如,通过签名)。
[0100] 在一些实施方式中,读取器(100)可以适于以这种方式来对在安全固件更新协议的上下文中交换的应用消息或数据进行解密或认证(即,验证来源)。在一些实施方式中,读取器可以适于以这种方式来对在安全参数更新协议的上下文中交换的应用消息或数据进行解密或认证。在一些实施方式中,读取器可以适于以这种方式来对意在由用户来审查和批准和/或由卡来签名的数据(或包括这样的数据的应用命令)进行解密或认证。
[0101] 识别读取器
[0102] 在一些实施方式中,读取器可以适于使得能够对单个读取器进行识别。例如,读取器可以存储识别数据元素(如序列码),并且可以适于使得应用能够获得该识别数据元素的值(例如,通过一些读取器命令)。在一些实施方式中,读取器的身份可以表示在存储在读取器中并且可以通过应用来检索的公钥证书中。在一些实施方式中,读取器可以存储识别存储在读取器中并且可以通过应用来检索的一个或更多个公钥的一个或更多个识别数据元素。在一些实施方式中,读取器可以支持使得应用能够检索读取器的识别数据的一个或更多个读取器命令。在一些实施方式中,读取器将读取器的识别数据包括在响应于其他命令返回的数据中。例如,在一些实施方式中,读取器可以将读取器的识别数据包括在读取器对应用请求检索对日志文件的读取器签名的响应中。
[0103] 读取器命令的交换和格式化
[0104] 在一些实施方式中,读取器支持形式上具有与真正智能卡APDUS(如由ISO/IEC7816定义的应用协议数据单元)相同的格式或结构的读取器命令,或者具有与真正智能卡APDUS至少足够相似的格式和结构使得能够以与真正智能卡命令相同的方式并且使用读取器的主计算机上的与真正智能卡命令相同的软件和驱动栈来与读取器进行交换的读取器命令。在一些实施方式中,读取器可以基于上下文或基于所接收到的命令的参数值来区分读取器命令与实际智能卡命令。例如,在一些实施方式中,读取器可以基于APDU中的CLA和/或INS字节的特定具体值来识别读取器命令。在一些实施方式中,读取器可以支持向读取器表示后续命令应当被解释为智能卡命令还是被解释为读取器命令的一个或更多个命令。
[0105] 在一些实施方式中,可以使用其他机制来交换读取器命令,例如通过专有USB命令。
[0106] 未连接模式
[0107] 在一些实施方式中,读取器(100)可以适于使得其在不连接至主计算机(99)时也能够工作。在这样的未连接模式下,其可以从其自己的自主电源获得电力。在未连接模式下,读取器能够例如工作为强认证令牌并且生成一次性口令、对挑战的响应和/或交易数据签名。可以通过读取器应用基于使用也对验证服务器已知的对称密钥的对称密码学的算法来生成读取器在未连接模式下从而生成的一次性口令、对挑战的响应和/或交易数据签名。在一些实施方式中,读取器在一次性口令、对挑战的响应和/或交易数据签名的生成中可以使用所插入的智能卡(98)。在一些实施方式中,在一次性口令、对挑战的响应和/或交易数据签名的生成中可以使用智能卡来进行至少一部分密码学计算。在一些实施方式中,读取器可以使用智能卡来获得一个值,读取器可以使用该值得到对称密钥,然后读取器在一次性口令、对挑战的响应和/或交易数据签名的生成中使用该对称密钥。在一些实施方式中,读取器可以在一次性口令、对挑战的响应和/或交易数据签名的生成中使用由时钟(180)提供的时间值。在一些实施方式中,读取器可以在对挑战的响应和/或交易数据签名的生成中使用用户经由输入接口(152)提供给读取器的数据。在一些实施方式中,输入接口(152)包括键盘,并且用户可以键入数据。在一些实施方式中,读取器可以通过输出接口(151)向用户输出所生成的一次性口令、对挑战的响应和/或交易数据签名。在一些实施方式中,输出接口(151)可以包括显示器,并且可以将所生成的一次性口令、对挑战的响应和/或交易数据签名显示为字符串例如十进制字符串、十六进制字符串或字母数字式字符串。
[0108] 在一些实施方式中,读取器(100)可以适于与EMV-CAP(泛欧卡-万事达卡-VISA-芯片认证计划)可兼容或符合EMV-CAP。
[0109] 便携式和手持式
[0110] 在一些实施方式中,读取器具有重量和空间度量使得读取器能够被认为是便携式手持设备。在一些实施方式中,读取器具有重量和空间度量使得能够以适度成本通过邮件将读取器发送至用户。例如,在一些实施方式中,读取器可以具有小于2cm的厚度、小于10cm的宽度、小于15cm的长度以及小于200克的重量。在其他实施方式中,读取器可以具有小于1.5cm的厚度、小于7cm的宽度、小于13cm的长度以及小于110克的重量。
[0111] 专用硬件设备
[0112] 在一些实施方式中,读取器是专用硬件设备。在一些实施方式中,读取器可以专用于在保护用户访问应用或保护用户与这样的应用交互的方法中使用。在一些实施方式中,读取器的主要目的是在保护用户访问应用或保护用户与这样的应用交互的方法中使用。在一些实施方式中,为了保证读取器专用于其作为安全设备的用途,读取器可以适于使不可能更改其固件。在一些实施方式中,为了保证读取器专用于其作为安全设备的用途,仅可以通过被设计成确保仅授权的控制可信方能够更新或改变读取器的固件的安全固件更新协议来对其固件作出任何改变或更新。这使得受控可信方能够确保不发生会影响读取器专用于其在保护用户访问应用或保护用户与这样的应用交互的方法中使用的固件更新。具有智能卡读取功能但是在例如用户能够在没有控制可信方的授权的情况下能够更新软件的意义上是开放的通用设备不能被认为是专用设备。
[0113] 安全读取器
[0114] 在一些实施方式中,智能卡读取器是安全读取器。这表示读取器的用户输入接口是安全用户输入接口,并且读取器的用户输出接口是安全用户输出接口。这还表示:读取器的安全敏感固件和数据(其可以包括使特定安全功能参数化的密码学钥和/或配置数据)不能被改变或被更新,或仅能够借助于仅使得可信方能够进行改变或更新的安全更新协议来被改变或被更新。
[0115] 图2示出了根据本发明的一个方面的用于进行安全交易的系统。系统包括:安全智能卡读取器(100)如结合图1讨论的读取器;主计算机(99),智能卡读取器(100)可以连接至主计算机;一个或更多个远程应用服务器(200);以及计算机网络(210),计算机网络(210)可以连接主计算机(99)和一个或更多个远程应用服务器(200)。系统还包括智能卡(98),智能卡(98)与用户相关联,并且可以被插入智能卡读取器中(100)。
[0116] 主计算机(99)可以包括用户接口如显示器和键盘和鼠标以与用户交互。主计算机(99)可以包括网络接口以将主计算机(99)连接至计算机网络(210)。主计算机(99)可以包括数据处理装置如微处理器。主计算机(99)可以包括存储器。主计算机(99)可以包括软件如操作系统和应用软件。在典型的实施方式中,主计算机(99)可以包括PC(个人计算机)或笔记本电脑。主计算机(99)可以包括与外围硬件例如智能卡读取器(100)交换数据和/或命令和/或响应的接口。该接口可以包括例如USB接口。
[0117] 远程应用服务器(200)可以包括网络服务器。远程应用服务器可以包括在多个硬件部件上运行的多个软件部件。远程应用服务器可以与主计算机上的软件交互。主计算机上的远程应用服务器和/或软件可以是整体应用的部件。在一些实施方式中,这样的整体应用的一些部件可以由不同的参与者来操作或者代表不同的参与者。例如,在一些实施方式中,整体应用可以包括由用户或客户操作或者代表用户或客户的部件、由零售商操作或者代表零售商的其他部件、和/或由金融机构操作或者代表金融机构的另一些部件。一个或更多个远程应用服务器可以包括多于一个远程应用服务器,由此不同的服务器可以承担不同的功能。例如在一些实施方式中,用户可以与一个服务器交互以向应用提交交易数据,而另一服务器可以负责验证卡和/或对例如交易数据的读取器签名。
[0118] 计算机网络(210)可以包括例如互联网。
[0119] 在一些实施方式中,智能卡(98)可以例如包括能够使用具有公-私钥对中的私钥的非对称密码学来生成签名的PKI智能卡。智能卡(98)可以安全地存储并且使用公-私钥对中的私钥。智能卡(98)还可以存储公-私钥对中的公钥和/或与公-私钥对中的公钥相关联的证书。可以通过PIN来保护使用存储在智能卡(98)中的公-私钥对中的私钥的操作。
[0120] 在一些实施方式中,智能卡(98)可以包括例如能够使用具有密钥的对称密码学来生成密码的智能卡。智能卡(98)可以安全地存储并且使用密钥。可以通过PIN来保护使用存储在智能卡(98)中的密钥的操作。在一些实施方式中,智能卡(98)可以是EMV可兼容的,或符合EMV,或者可以包括EMV可兼容或符合EMV的智能卡应用。
[0121] 在一些实施方式中,由用户通过主计算机访问的并且与智能卡读取器(100)交互以保护该用户访问应用的应用可以由远程应用服务器(200)来运行或以其为主机。在一些实施方式中,这个应用的部分可以由远程应用服务器(200)来运行或以其为主机,以及应用的部分可以由主计算机(99)来运行或以其为主机。在一些实施方式中,应用可以由主计算机(99)和远程应用服务器(200)来运行或以其为主机,在这种情况下,计算机网络(210)可以是可选的或不存在。在一些实施方式中,应用的一些部件可以由不同的参与者来操作或者代表不同的参与者。例如,在一些实施方式中应用可包括由用户或客户操作或者代表用户或客户的部件、由零售商操作或者代表零售商的其他部件、和/或由金融机构操作或者代表金融机构的另一些部件。
[0122] 在一些实施方式中,应用可以包括网络银行或互联网银行应用,远程应用服务器(200)可以包括可以是后端银行服务器的网络前端的网络服务器,并且主计算机(99)可以通过互联网(210)连接至网络服务器并且可以包括用户能够使用以通过互联网(210)访问网络银行应用的网络浏览器。
[0123] 图3a和图3b示出了根据本发明的一个方面的保护远程交易的方法。
[0124] 向用户提供读取器
[0125] 在步骤(302)中,可以向用户提供安全智能卡读取器(100)如结合图1描述的读取器。在一些实施方式中,应用所有者向一个或更多个应用用户提供合适的读取器。在一些实施方式中,应用鼓励应用用户获得合适的读取器。在一些实施方式中,应用向应用用户提供如何获得合适的读取器的信息。
[0126] 将读取器连接至用户的主计算机
[0127] 在步骤(304)中,将已经提供给用户的安全智能卡读取器(100)连接至可以由用户使用的主计算机(99)。
[0128] 用户访问应用
[0129] 在步骤(306)中,用户使用主计算机(99)来访问应用,安全智能卡读取器(100)可以连接至主计算机(99)。在一些实施方式中,应用可以包括例如由远程应用服务器(200)运行的应用。在其他实施方式中,应用可以包括由主计算机执行的软件应用。在又一些实施方式中,应用可以包括客户端-服务器应用,其包括在主计算机上运行的客户端软件模块和在一个或更多个远程服务器(200)上运行的一个或更多个服务器软件模块。在一种实施方式中,应用可以包括文本编辑器。在另一实施方式中,应用可以包括电子邮件程序。在又一实施方式中,应用可以包括财务应用如互联网银行应用。在一种实施方式中,用户可以使用在他或她的主计算机上运行的网络浏览器来访问基于远程网络的应用。
[0130] 用户发起交易
[0131] 在步骤(308)中,例如,用户可以与例如在主计算机上或在远程服务器上的应用交互以发起交易。在用户与应用交互的过程中,用户可以将交易提交至应用。例如,用户可以向互联网银行网站提供用户希望执行的货币转移的细节,或者用户可以表示他们希望在商业网站上购买特定物品,或者用户可以批准合同或可以书写要被签名的电子邮件或信件。
[0132] 要被签名的数据的汇集。
[0133] 在步骤(310)中,例如在主计算机上或在远程服务器上的应用汇集要由用户数字地签名的数据组例如表示由用户发起的交易的数据。该数据组可以包括例如要被签名的文件或电子邮件,或者可以包括例如表示用户希望执行的金融交易的数据或与用户希望执行的金融交易相关的数据。要被签名的数据可以包括例如与用户想要进行的货币转移相关的数据,例如要被转移的货币的量、流通量指示器、货币应当被转移至的目的地的表示(例如,目的账户号码)、和/或要被转移的货币应当从其获得的源的表示(例如,源账户号码)。在另一情况下,要被签名的数据可以例如与股票交易订单——例如一些股票的出售或收购——相关。数据可以例如包括要交易的股票的类型的指示符、要交易的股票的数量的指示符、交易的类型(出售、购买、…)、价格、有效性、期限、…。
[0134] 智能卡插入
[0135] 在某个点(312)处,要求用户将用户的智能卡插入读取器中,并且用户将智能卡插入读取器中。从这个时刻开始,应用和读取器开始与所插入的智能卡交换智能卡命令。在一些实施方式中,插入智能卡表示将智能卡物理地插入读取器的智能卡插槽中。在其他实施方式中(例如,在其中读取器使用非接触智能卡通信协议与非接触智能卡交互的实施方式中),插入智能卡表示相对于读取器对智能卡进行定位使得智能卡与智能卡读取器之间可以通信。例如,在一些实施方式中,不需要物理地将智能卡插入读取器中,但是为了可以进行通信,必须将智能卡移动至某个距离范围(例如,小于10cm)内。
[0136] 识别读取器
[0137] 在步骤(314)中,例如在主计算机上或在远程服务器上的应用识别读取器。在一些实施方式中,应用仅确立读取器的类型。在其他实施方式中,应用获得读取器固件的版本。在又一些实施方式中,应用获得特定读取器的身份的表示(例如,读取器的序列号或对与在读取器中存储的私钥对应的公钥的参考)。在一些实施方式中,应用可以使用标准USB智能卡读取器机制来检索读取器的类型。在其他实施方式中,应用可使用一个或更多个读取器命令来检索读取器的识别数据。在一些实施方式中,应用可以检索读取器的识别数据作为还可以包括其他读取器相关数据如读取器状态、读取器的一组配置数据、读取器的固件版本等的读取器数据组的一部分。
[0138] 读取器进入安全记录模式
[0139] 在步骤(320)中,使安全智能卡读取器进入安全记录模式。在一些实施方式中,读取器可以响应于指示读取器进入安全记录模式的具体读取器命令来进入安全记录模式。在一些实施方式中,作为指示读取器作出一些动作的读取器命令——如以安全方式(例如通过输入安全PIN)对用户进行认证的命令,或将特定数据呈现给用户用于批准和审查的命令,或进行安全签名会话的命令——的自动副效应,读取器可以进入安全记录模式。在一些实施方式中,响应于特定事件如读取器开启事件、或智能卡插入事件、或智能卡开启或重置事件,读取器可以自动进入安全记录模式。在一些实施方式中,读取器可以默认处于安全记录模式。在一些实施方式中,读取器始终处于安全记录模式。在一些实施方式中,读取器可以将一个或更多个认证文件初始化成某个具体的状态。例如,可以将它们重置为空或使用例如包括配置数据(例如,影响安全记录模式的配置数据)和/或表示读取器状态和/或固件版本的数据等的数据组来将它们初始化。在一些实施方式中,初始化在使读取器进入安全记录模式之前发生。在一些实施方式中,该初始化可以在读取器进入安全记录模式时发生。在一些实施方式中,初始化可以在读取器进入安全记录模式然后的某个时间点发生。
[0140] 读取器记录数据
[0141] 一旦处于安全记录模式,智能卡读取器可以自动开始将数据添加至一个或更多个记录文件(步骤321)。在一些实施方式中,被添加至记录文件的数据包括表示以下事件的数据:安全敏感事件、状态和动作如读取器命令和/或响应、用户与读取器的交互(例如,数据对用户的呈现和用户输入)、智能卡命令和/或响应、固件版本和/或固件变化事件、配置数据和/或配置数据变化事件、其他事件(例如,可以表示篡改意图或可能危害读取器安全的完整性的事件——如特定机械或电子操作如试图打开壳体或功率尖峰或失去电力…——的检测。)
[0142] 读取器记录智能卡命令
[0143] 在一些实施方式中,读取器以这种方式记录与其与卡交换的智能卡命令例如读取器从应用接收以与插入读取器中的智能卡交换的透明智能卡命令有关的数据(步骤322)。在一些实施方式中,读取器可以系统地记录所有所交换的智能卡命令。在一些实施方式中,读取器可以仅记录一些所交换的智能卡命令。在一些实施方式中,读取器可以记录满足特定标准的那些智能卡命令。例如,读取器可以记录特定类型的智能卡命令。在一些实施方式中,读取器用来决定要记录哪些命令的标准可以由配置参数来参数化。这些配置参数可以包括例如要被记录的命令列表或不应当被记录的命令列表。在一些实施方式中,读取器基于智能卡命令报头的特定字节——例如CLA、INS、P1和/或P2字节——的值来识别智能卡命令类型。在一些实施方式中,通过应用例如借助于一些读取器命令例如指示读取器进入安全记录模式的读取器命令来将确定可以记录哪些智能卡命令(和/或相应的卡响应)以及在适用的情况下在那个日志文件中记录的配置参数传送至读取器。
[0144] 读取器记录读取器命令
[0145] 在一些实施方式中,读取器记录与其接收到的读取器命令相关的数据(步骤S323)。在一些实施方式中,读取器可以系统地记录所有所交换的读取器命令。在一些实施方式中,读取器可以仅记录一些所交换的读取器命令。
[0146] 设置安全记录配置参数
[0147] 在一些实施方式中,应用借助于读取器命令指示读取器进入安全记录模式,并且借助于同一读取器命令或一个或更多个另外的读取器命令向读取器传递(步骤316)可以确定读取器在安全记录模式下应当记录哪些数据——例如记录哪些智能卡命令、记录哪些读取器命令、记录哪些用户交互(例如,哪些用户消息和/或读取器呈现给用户的数据,以及读取器从用户接收到的哪些用户响应)、记录那些其他事件(例如,错误事件)——的安全记录模式配置参数组。在一些实施方式中,读取器自动记录相关的配置参数和/或对这些配置参数作出的任何改变。在一些实施方式中,应用可以借助于一个或更多个读取器命令将安全记录模式配置参数传递给读取器。在一些实施方式中,读取器可以借助于同样的读取器命令将安全记录模式配置参数传递给读取器以指示读取器进入安全记录模式。在一些实施方式中,应用使用一个或更多个其他读取器命令来将安全记录模式配置参数传递给读取器。在一些实施方式中,读取器可以在读取器进入安全记录模式之前将安全记录模式配置参数传递给读取器。在一些实施方式中,读取器可以在读取器进入安全记录模式然后将安全记录模式配置参数传递给读取器。
[0148] 日志交易数据的审查和批准
[0149] 在一些实施方式中,当读取器处于安全记录模式时,使读取器至少记录(步骤324)读取器呈现给用户并且用户审查和批准(或不批准)的数据(或这样的数据的表示如这样的数据的摘要或哈希)。在一些实施方式中,读取器记录其呈现供审查和批准的数据,并且记录用户的决定(批准或拒绝)。在一些实施方式中,读取器仅记录已经呈现给用户并且用户已经审查并批准的数据(以及读取器不记录用户已经拒绝的数据)。在一些实施方式中,读取器记录应用使用其向读取器传送要被审查和批准的数据的读取器命令(或这样的命令的表示如读取器命令的哈希或读取器命令的部分),并且记录读取器对应用的响应以表示用户的批准或拒绝。
[0150] 在一些实施方式中,当读取器处于安全记录模式下时,使读取器至少记录(步骤336)应用提交至卡用于获得签名的数据(或这样的数据的表示如摘要或哈希,或甚至对这些数据的卡签名)。在一些实施方式中,这可以通过读取器记录用于将要被签名的数据传递至卡的智能卡命令的内容来完成。在一些实施方式中,这通过记录卡的响应包括对要被签名的数据的卡签名来完成。在一些实施方式中,使读取器记录能够由应用使用以使卡签名数据的所有智能卡命令。在一些实施方式中,读取器记录当读取器处于安全记录模式下时应用通过读取器发送至卡的所有透明智能卡命令。在一些实施方式中,读取器记录当读取器处于安全记录模式下时应用通过读取器发送至卡并且满足一些标准的所有透明智能卡命令。在一些实施方式中,这些标准是用于安全记录模式的读取器的配置数据的一部分。
在一些实施方式中,可以设置这些标准使得确保记录了表示或确定卡已经签名或将要被签名哪些数据的那些智能卡命令。在一些实施方式中,读取器记录关于要被签名的数据的智能卡签名以及要被签名的数据本身,或者记录对要被签名的数据的智能卡签名而不记录要被签名的数据本身。
[0151] 在一些实施方式中,当读取器处于安全记录模式下时,使读取器至少记录读取器呈现给用户并且用户审查并批准的数据(或这样的数据的表示)(如上所述),以及应用提交至卡用于获得签名的数据(如上所述)。
[0152] 根据标准记录数据
[0153] 在一些实施方式中,读取器用于记录满足特定标准的任何事件、透明智能卡命令、读取器命令、用户动作或其他事件。在一些实施方式中,这些标准可以是读取器的配置数据的一部分。在一些实施方式中,应用可以在步骤(316)中设置或改变读取器的配置数据中的至少一些。例如在一些实施方式中,应用可以指示读取器进入安全记录模式并且应用可以包括读取器可以使用以决定其要记录哪些事件、智能卡命令、读取器动作或用户动作的标准中的一些标准的特定配置数据。
[0154] 记录配置数据
[0155] 在一些实施方式中,读取器自动记录(步骤318)其应用以决定记录什么的所有配置数据或一部分配置数据。在一些实施方式中,读取器自动记录其从应用接收并且其应用以决定要记录什么的配置数据。
[0156] 交换透明智能卡命令
[0157] 在步骤(328)中,应用将一系列一个或更多个智能卡命令发送至安全智能卡读取器用于读取器与智能卡读取器中所插入的智能卡交换并且向应用返回对这些智能卡命令的卡响应。在一些实施方式中,应用通过读取器的主计算机上的标准软件栈与读取器交换这些命令以与智能卡读取器中所插入的智能卡交换智能卡命令。在一些实施方式中,该软件栈可以包括CCID(集成电路卡接口设备)USB驱动器和/或PC/SC(个人计算机/智能卡)部件。如上所述,在一些实施方式中,当读取器处于安全记录模式下时,读取器可以将与一些或所有这些智能卡命令相关的数据和/或相应的智能卡响应添加至一个或更多个读取器的日志文件。在一些实施方式中,读取器可以支持接触接口并且可以通过电流接触与智能卡交换命令。在一些实施方式中,读取器可以支持非接触智能卡接口并且可以使用非接触通信协议例如ISO/IEC14443协议来与智能卡交换命令。在一些实施方式中,智能卡读取器包括用于插入智能卡的智能卡插槽。
[0158] 对智能卡命令应用防火墙
[0159] 在一些实施方式中,在与智能卡交换这些智能卡命令之前,读取器可以对这些智能卡命令应用防火墙(步骤326)。在一些实施方式中,读取器可以基于特定标准来阻止一些智能卡命令。
[0160] 在一些实施方式中,应用可以例如与智能卡交换透明智能卡命令以在卡上选择用于生成签名的函数以及/或者以在卡上选择安全预置文件或环境以及/或者以从卡读取数据例如与用户相关的数据和/或与用户相关联的公钥(例如证书)。
[0161] 验证用户身份
[0162] 在步骤(330)中,读取器可以验证用户身份。例如,读取器可以进行安全PIN输入。读取器可以提示用户输入PIN,捕捉用户输入的PIN并且将PIN提交至智能卡用于由智能卡来验证。在一些实施方式中,应用借助于一个或更多个安全PIN输入读取器命令来指示读取器进行安全PIN输入。在其他实施方式中,读取器借助于可以例如基于指纹的生物特征用户认证法来验证用户的身份。在一些实施方式中,读取器可以记录用户的身份验证。例如,读取器可以记录用户身份验证是否发生和/或用户身份验证的结果是什么。
[0163] 交易数据的批准
[0164] 在步骤(331)处,应用将数据(例如,交易数据)提交至读取器以将数据呈现给用户用于由用户来审查和批准。在一些实施方式中,应用使用具体读取器命令来将这些数据提交至读取器。读取器可以将这些数据呈现给用户(例如通过在读取器的显示器上呈现数据),并且提示用户审查数据并且表示批准或拒绝。读取器可以捕捉(322)用户的批准或拒绝(用户可以例如通过按压OK或取消按钮来表示)。读取器可以将用户批准或拒绝的决定返回至应用。在一些实施方式中,如果用户不批准数据,则应用可以退出交易。
[0165] 在典型的实施方式中,读取器记录(333)呈现给用户和/或由用户批准的数据(或这些数据的表示例如摘要或哈希)。在一些实施方式中,读取器仅在用户批准数据的情况下记录这些数据。在一些实施方式中,读取器记录数据而不管用户是批准了这些数据还是拒绝了这些数据,并且还记录用户的决定(即,用户是批准了数据还是拒绝了数据)。在一些实施方式中,读取器记录数据和表示用户的结果的数据元素。在一些实施方式中,在用户批准了数据的情况下,读取器仅记录已经被审查的数据使得用户记录这些数据的事实在日志文件中表示用户审查了并且批准了这些数据。在一些实施方式中,读取器记录包括要由用户来审查和批准的数据的读取器命令,并且还记录包括用户的决定的表示的相应的响应。
[0166] 通过卡的交易数据的签名
[0167] 在步骤(334)中,如果用户批准了数据,使智能卡对一组数据进行签名。在典型的实施方式中,应用可以生成关于要被签名的数据的摘要(例如,通过对数据应用密码学哈希函数),并且可以将摘要或哈希提交至智能卡,随后智能卡签名所提交的摘要或哈希。在一些实施方式中,应用可将要被签名的数据直接提交至智能卡。在一些实施方式中,智能卡可以关于其从应用接收到的要被签名的数据来生成摘要或哈希并且签名该摘要或哈希。在一些实施方式中,要被签名的数据和要由用户来审查和批准的数据是相同的。在一些实施方式中,要被签名的数据包括要被审查和批准的数据,但还可以包括其他数据(例如对于用户无意义的随机挑战,并且因此不需要被审查和批准,但是它们可以用于防止特定类型的重放攻击)。在一些实施方式中,要被审查和批准的数据包括要被签名的数据,但是还可以包括没有提交至卡用于签名的另外的信息。在典型的实施方式中,在一方面要被审查和批准的数据与另一方面要被签名的数据之间存在至少部分的重叠。然而,在一些实施方式中,在一方面要被审查和批准的数据与另一方面要被签名的数据之间不存在直接的字面上的重叠,但是存在关系,即关于这些数据的含义。例如,要被签名的数据可以包括全部合约,而要被审查和批准的数据可以包括合约的简短概要。
[0168] 在典型的实施方式中,应用借助于其与智能卡交换的透明智能卡命令来提交要被签名的数据。在这样的实施方式中,读取器可以不具有或不需要关于可以用于使卡签名要被签名的数据的该组命令的知识。例如,在一些实施方式中,应用可以向智能卡发送透明智能卡命令以选择合适的安全环境(其可以例如选择卡可以随后使用的私钥)。应用可以向智能卡发送一个或更多个透明智能卡命令以向智能卡提交要被签名的数据的摘要或哈希,或者应用可以向智能卡发送一个或更多个智能卡命令以向智能卡提交要被签名的数据本身,并且智能卡可以计算摘要或哈希(例如,自动或在从应用接收到这样做的明确命令时)。然后智能卡可以签名所接收到的或所生成的摘要或哈希。在一些实施方式中,同时使用相同的智能卡命令以向智能卡提交要被签名的数据或者关于要被签名的数据的摘要或哈希并且指示智能卡生成实际签名。在其他实施方式中,可以使用不同的智能卡命令一方面向智能卡提交要被签名的数据或者关于要被签名的数据的摘要或哈希,而另一方面指示智能卡生成实际签名。在一些实施方式中,与生成对数据的签名有关的一些或所有智能卡命令可以被称为PSO(执行安全操作)命令。
[0169] 在其他实施方式中,应用使用指示读取器向用户呈现特定数据来供审查和批准并且(在用户批准数据的情况下)将已批准的数据(或与已批准的数据相关的数据组)提交至智能卡用于签名的安全签名读取器命令。在这样的实施方式中,读取器可以已经内置或配置关于可以用于使卡签名要被签名的数据的该组命令的知识使得其能够构造正确的命令。在一些实施方式中,应用可以传递关于如何构造签名命令的读取器信息。
[0170] 记录由卡签名的数据
[0171] 在典型的实施方式中,读取器在步骤(336)中记录已经由卡签名的数据(或表示这些数据的数据如摘要或哈希)。在一些实施方式中,读取器记录所有透明智能卡命令(至少对于特定时刻)使得也自动记录由应用使用来向卡提交数据用于签名的任何透明智能卡命令。在一些实施方式中,读取器被配置成自动记录满足特定标准的所有透明智能卡命令,并且这些标准被配置使得也自动记录由应用使用来向卡提交数据用于签名的任何透明智能卡命令。在典型的实施方式中,读取器不具有关于如何识别被用于向卡提交要被签名的数据的智能卡命令的知识。在一些实施方式中,读取器还记录与所记录的智能卡命令对应的卡响应。在一些实施方式中,可以在不记录相应的卡响应的情况下记录一些智能卡命令。在一些实施方式中,可以在不记录相应的智能卡命令的情况下记录一些卡响应。在一些实施方式中,读取器仅记录要被签名的数据(或其表示如哈希)。在一些实施方式中,读取器仅记录卡签名(其可以被认为是要被签名的数据的表示)。在一些实施方式中,读取器记录要被签名的数据(或其表示如哈希)和相应的卡签名二者。
[0172] 检索卡签名
[0173] 在步骤(338)中,应用例如通过接收卡对于签名智能卡命令的响应来检索卡对要被签名的数据所生成的卡签名。
[0174] 生成对日志文件的读取器签名
[0175] 在步骤(340)中,读取器生成对所记录的数据的读取器签名。在一些实施方式中,读取器使用基于非对称密码学的签名算法并且使用公-私钥对中的读取器私钥来生成日志签名,由此该私钥被安全地存储在读取器中。在一些实施方式中,读取器使用基于对称密码学的算法并且使用安全地存储在读取器中的秘密读取器钥来生成日志签名,并且由此可以与一些验证服务器共享该秘密读取器钥。在典型的实施方式中,所有所记录的数据被记录在单个日志文件中,并且读取器生成对该单个日志文件的单个日志签名。在一些实施方式中,读取器可以使用多个日志文件来记录数据并且可以分别签名一些日志文件使得日志签名包括对分别签名的日志文件的多个签名。例如在一些实施方式中,读取器可以在一个日志文件中记录读取器命令或供审查和批准的数据,并且可以在另一日志文件中记录透明智能卡命令,并且生成对每个这些日志文件的签名,使得读取器的日志签名包括对具有所记录的读取器命令或供审查和批准的数据的日志文件的读取器签名以及对具有透明智能卡命令的日志文件的读取器签名。
[0176] 检索所生成的读取器签名
[0177] 在步骤(342)中,应用检索读取器对该一个或更多个日志所生成的读取器签名。在一些实施方式中,应用还可以检索所签名的日志本身的内容。在一些实施方式中,应用还可以从读取器检索与由读取器使用来生成日志上的读取器签名的一个或更多个钥(其可以包括公-私钥对中的私钥)有关的一个或更多个证书。在一些实施方式中,应用还可以从读取器检索与由读取器使用来生成对日志的读取器签名的公-私钥对中的私钥对应的一个或更多个公钥。在一些实施方式中,应用还可以从读取器检索可以由应用使用以获得(例如,通过查询数据库)与由读取器使用来生成对日志的读取器签名的钥相关的一个或更多个公钥和/或证书的读取器识别数据。
[0178] 验证用户确实已经批准了交易。
[0179] 在已经将交易数据提交至应用,并且用户已经审查要被审查和批准的数据,并且卡已经签名要被签名的数据然后,应用可以验证是否每件事都根据应用的适用安全策略发生。例如,为了排除或最小化中间人攻击的风险,其中攻击者通过使用欺诈数据替换用户意在提交至应用的交易数据来干预交易(例如,攻击者可以在货币转移交易中改变了目标账号),应用可以验证由用户提交至应用的交易数据是否有效地与用户在安全读取器上审查和批准并且通过卡签名的数据相符。为了进行该验证,应用可以验证日志文件上的读取器签名和卡签名,并且验证已签名的日志文件与根据应用的预期和安全策略应当发生的事件是否相符。在典型的实施方式中,应用的安全策略要求由用户在安全读取器上审查和批准交易数据的表示并且由卡来签名同一交易数据的表示。在一些实施方式中,应用还可以要求用户的审查和批准以及卡的签名在同一会话中发生。在一些实施方式中,应用还可以要求在该会话中没有其他数据被呈现给用户来供审查和批准并且/或者没有其他数据被卡签名。在典型的实施方式中,读取器被配置成记录由用户在读取器上执行的数据的所有数据审查和批准,并且记录由卡签名的所有数据(例如,通过记录可以包括所有智能卡命令的一组透明智能卡命令)。在一些实施方式中,应用要求所提交的交易数据和由用户在读取器上审查和批准的数据和由卡签名的数据是相同的。在一些实施方式中,应用不要求这些数据相同但是要求在它们之间存在一些预定义的关系。例如,在一些实施方式中,由用户审查的数据可以包括所提交的数据或者由卡签名的数据的子集或概要。例如,除了由用户审查的数据之外,由卡签名的数据可以包括对用户没有意义的并且因此不被呈现给用户以供审查的一些数据元素(如交易序列号)。例如,所提交的交易数据可以包括可变交易数据连同标准条款和条件的庞大列表,并且仅可变交易数据被有效地呈现给用户用于在安全读取器上审查。
[0180] 在下面的示例性步骤中,应用验证是否已经由用户审查和批准了正确的数据以及是否已经由卡签名了正确的数据。
[0181] 验证卡签名
[0182] 在步骤(344)中,应用验证卡的签名是否与应用意在要由卡来签名的数据相符。这可以借助于验证数据签名的传统技术来完成。例如在典型的实施方式中,通过对要被签名的数据进行哈希操作以及卡利用其私钥对所得到的哈希进行加密来获得签名。在这样的情况下,可以通过使用与卡的私钥对应的公钥对签名进行解密并且将解密结果与假定已经由卡签名的数据的哈希相比较来验证签名。
[0183] 日志文件的应用副本的验证或汇集
[0184] 在步骤(346)中应用验证或汇集读取器已签名的日志的内容。
[0185] 在一些实施方式中,应用已经从读取器检索到已签名的日志的内容并且验证这些内容是否与应用假设已经发生的事件和动作一致。例如,应用可以验证日志是否表示是否已经将数据呈现给用户以供审查和批准,已经将哪些数据呈现给用户以及用户是已经批准还是已经拒绝这些数据。应用还可以例如验证在与其中由用户批准数据的会话相同的安全记录会话的过程中是否已经生成从卡获得的卡签名。应用可以例如验证是否在与由用户批准的数据相同的日志文件中已经记录了卡签名。应用可以例如验证日志文件中的特定时间戳是否在应用的容受极限范围内。
[0186] 在其他实施方式中,应用通过其自己记录读取器应当记录的所有动作和事件并且应用假设读取器应用的同样的记录机制和规则来汇集读取器所汇集的日志文件的假设副本。例如在典型的实施方式中,读取器可以在安全记录模式下记录其与应用交换的所有读取器命令和透明智能卡命令(以及他们相应的响应),并且应用可以以完全相同的方式记录其假设与读取器交换的所有读取器命令和透明智能卡命令。该组所交换的读取器命令和透明智能卡命令包括向用户呈现数据以供审查和批准的任意读取器命令和使卡生成签名的任意透明智能卡命令。
[0187] 关于日志文件的读取器签名的验证
[0188] 在步骤(348)中,应用验证读取器签名是否与其已经检索到的或所汇集的日志文件的内容匹配。这可以借助于验证数据签名的传统技术来完成。例如在典型的实施方式中,通过对要被签名的数据进行哈希操作以及读取器使用其私钥对所得到的哈希进行加密来获得签名。在这样的情况下,可以通过使用与读取器的私钥对应的公钥对签名进行解密以及将解密结果与假定已经由读取器签名的数据(即,日志文件的内容)的哈希相比较来验证签名。
[0189] 验证正确的数据是否已由用户批准
[0190] 在步骤(350)中,应用验证由用户批准的数据是否与由卡签名的数据匹配以及/或者由用户批准的数据是否与所提交的交易数据匹配。在一些实施方式中(例如在应用自己汇集日志文件的应用副本的实施方式中),这可以是隐式的。在其他实施方式中,该步骤可以是显式的(例如,在应用检索日志文件的内容的实施方式中,应用可以验证在日志文件中记录的已经由用户批准的数据是否与应用意在由用户审查和批准的数据相符)。
[0191] 已签名的日志文件内容是否与交易数据一致的验证
[0192] 应用可以验证所提交的交易数据是否与根据日志文件已经由用户审查和批准的数据一致以及/或者所提交的交易数据和/或这些已审查和已批准的数据是否与由卡签名的数据一致。
[0193] 在一些实施方式中,应用可以验证日志文件中的特定时间戳是否与特定交易事件的时间一致。
[0194] 生成用户批准确认信号
[0195] 在步骤(352)中,当成功地完成上述验证时,应用可以生成确认用户批准了交易的信号;否则应用可以生成表示验证失败的信号。
[0196] 执行交易
[0197] 在步骤(354)中,应用可以通过执行交易来按照该确认信号行动。
[0198] 在一些实施方式中,如果上述验证中的任何验证失败,则应用会中止或取消交易。
[0199] 方法步骤的顺序
[0200] 虽然在上文已经以在典型实施方式中可以执行这些步骤的顺序描述了本方法的步骤,但在其他实施方式中,可以以另一种顺序来执行一些步骤,可以省略一些步骤,可以添加额外的步骤,可以将一些步骤与其他步骤合并,以及一些步骤可以包括可以与其他步骤的子步骤交织的子步骤。
[0201] 例如在很多实施方式中,应用可以在各种时刻交换透明智能卡命令:在读取器进入安全记录模式之前或然后,在使读取器向用户呈现数据以供审查和批准之前或然后,在使卡对数据进行签名之间或然后,…。例如,应用可以在进入安全记录模式之前与智能卡交换一系列智能卡命令来确定卡的类型并且读取卡的公钥证书(例如,确定用户身份),并且基于从而获得的信息来设置读取器的记录配置参数(例如,以表示应当记录哪些透明智能卡命令,透明智能卡命令可以是智能卡类型的函数)。
[0202] 虽然在典型的实施方式中,读取器向用户呈现数据以供审查和批准的步骤在卡对数据进行签名的步骤之前发生,在一些实施方式中,在要求用户批准数据之前数据可以已经被提交至卡用于签名。
[0203] 在一些实施方式中,使读取器进入安全记录模式的步骤可以与将要由用户来审查和批准的数据提交至读取器的步骤同时发生。例如,在一些实施方式中,当读取器接收用于呈现要由用户审查和批准的数据的读取器命令时,读取器自动进入安全记录模式。
[0204] 本发明的优点
[0205] 在典型的实施方式中,读取器和应用被布置使得确保读取器可以记录由用户批准的数据和由卡签名的数据二者。在典型的实施方式中,读取器和应用还可以被布置使得确保读取器可以记录应用在安全记录会话过程中提交至读取器要由用户来审查和批准的任何数据,并且可以记录在安全记录会话过程中提交至卡用于签名的任何数据。
[0206] 例如,在一些实施方式中,读取器可以记录能够用于指示读取器向用户呈现数据的所有读取器命令,并且读取器还可以记录宽的一组透明智能卡命令(例如所有透明智能卡命令)使得确保当读取器处于安全记录模式下时读取器可以记录提交至读取器用于呈现给用户的任何数据和提交至卡用于签名的任何数据。在一些实施方式中,应用可以配置读取器的记录规则并且读取器也可以始终记录记录规则,并且应用配置记录规则使得读取器可以记录能够用于指示读取器向用户呈现数据的任何读取器命令和能够用于向卡提交数据用于签名的透明智能卡命令。
[0207] 在这样的典型实施方式中,应用能够获得使由用户在安全读取器上批准的数据和由卡签名的数据相关联的密码学证据。更具体地,通过验证卡签名,应用能够验证由卡有效地签名了那些数据;通过验证对日志的读取器签名,应用此外能够验证由用户实际审查和批准了哪些数据(以及应用当然还能够验证数据被有效地审查和批准的事实);以及通过验证日志的内容和对日志的读取器签名,应用能够验证数据批准和数据签名使用同一读取器发生在同一安全记录会话中,以及在该同一会话中没有批准和/或签名其他数据;以及通过将根据日志由用户批准的数据和根据日志由卡签名的数据相比较,应用能够验证由用户批准的数据与已签名的数据相匹配。
[0208] 以这种方式,本发明解决了其中不能够排除对应于卡签名的数据与由用户例如在不安全PC的显示器上已经批准的数据不相符的现有技术的安全问题。另外,能够通过根据本发明的不要求具有关于任何具体智能卡的该组智能卡命令的任何知识的读取器来实现该解决方案,使得读取器的固件不需要能够了解、解析或构造特定用于对数据进行签名的特定智能卡命令。这具有以下优点:一方面读取器能够与多种卡(具有非常不同的命令组)一起使用并且在要使用新类型的卡的情况下不需要任何固件更新,同时相对于智能卡命令的处理,读取器的固件能够保持相对简单。
[0209] 通常,除非另有说明,或除非根据上下文明确,可以将上述段落中的术语“命令”(如在“卡命令”或“读取器命令”中)理解为或者在严格的意义上仅包括命令本身或者包括命令本身和相应的响应二者。
[0210] 通常,除非另有说明,或除非根据上下文明确,可以将上述段落中的术语“将数据添加至日志”理解为将数据完全照原样添加至日志文件或将表示这些数据的数据(如包括这些数据的数据或这些数据的哈希)添加至日志文件二者。
[0211] 具体地,除非另有说明,或除非根据上下文明确,当使用术语“记录卡命令”或“记录读取器命令”时,则其可以理解为包括记录命令-响应对或表示命令-响应对的有效荷载的数据,即实际命令和对应于该命令的响应或表示他们各自的有效荷载的数据。例如,在一些实施方式中,当记录命令-响应对时,可以省略命令的一些部分或响应的一些部分如对于响应状态码的命令报头的特定字节的平凡值。此外,在一些实施方式中,对于特定命令-响应对仅记录实际命令有效荷载或仅记录响应有效荷载。
[0212] 已经关于若干部件之间的交互作用描述了上述系统和设备。应当理解,根据上述系统和设备的各种置换和组合,这样的系统和部件可以包括这些部件或指定的子部件、指定部件或子部件中的特定部件或子部件、和/或另外的部件。子部件还可以实现为通信上耦接至其他部件的部件,而非包括在父部件内(分级结构)。此外,应当注意,可以将一个或更多个部件合并成提供综合功能的单个部件或者分成若干分离的子部件,并且,可以设置任意一个或更多个中间层(如管理层),使其通信上耦接至这样的子部件,以提供综合功能。本文中描述的任意部件还可以与本文中没有具体描述但是本领域技术人员通常了解的一个或更多个其他部件交互。
[0213] 已经描述了多个实现,然而,需要理解的是可以作出各种修改。例如,可以组合、删除、修改或补充一个或更多个实现的元素以形成另外的实现。作为又一示例,在附图中描绘的逻辑流程不要求示出的具体顺序或串行顺序以实现期望的结果。另外,可以向所描述的流程提供其他步骤或可以从所描述的流程中去除步骤,或者可以将其他部件添加至所描述的系统或从所描述的系统中去除其他部件。例如,模块或部件不需要执行归属于上述实现中的模块的所有功能或功能中的任意功能,并且可以通过另一模块或部件、另一另外的模块或部件来执行或并不执行归属于上一个模块或部件的所有功能或功能中的任意功能。因此,其它实现在所附权利要求的范围之内。
[0214] 此外,虽然可能仅关于若干实现中的一个实现公开了本发明的具体特征,然而,如果对于任意给定或特定应用是期望的且有利的,则这样的特征可以与其他实现的一个或更多个其他特征合并。此外,就详细描述或权利要求中所使用的术语“包括”、“具有”、“包含”及其变型以及其他相似的词语而言,这些用语意在与作为开放式过渡词的术语“包括”相类似的方式是包括性的,而不排除任意另外的或其他的元素。
[0215] 虽然在上文已经描述了本发明的各种实施方式,但是应当理解的是它们仅以示例而不是限制的方式被呈现。具体地,当然,为了描述所要求保护的主题的目的,不能描述部件或方法的每个能够想到的组合,但是本领域的技术人员可以承认本发明的许多另外的组合和排列都是可能的。因此,本发明的广度和范围不应受到任何上述示例性实施方式的限制,而是应当仅根据所附权利要求及其等同来限定。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用