具有pki签名的视觉输出的强认证令牌的制作方法

xiaoxiao2020-9-10  6

具有pki签名的视觉输出的强认证令牌的制作方法
【专利摘要】包括数据处理器和显示器的手持认证设备适于:生成输入值;将输入值提交给非对称密码学运算;获得所述非对称密码学运算的结果;生成基本上包括非对称密码学运算的结果的认证消息;将认证消息编码到一个或更多个图像中;以及将这些图像显示在显示器上。用于保护用户远程访问基于计算机的应用的安全的方法包括:捕捉显示在用户的认证设备的显示器上的图像,其中,这些图像已被编码有由认证设备生成的认证消息,并且其中,认证消息包括对输入值的非对称密码学运算的结果;对图像进行解码以检索认证消息;从认证消息中检索非对称密码学运算的结果;验证认证消息。
【专利说明】具有PKI签名的视觉输出的强认证令牌
[0001] 对相关申请的交叉引用
[0002] 本申请要求于2011年12月30日提交的名称为A STRONG AUTHENTICATION TOKEN WITH VISUAL OUTPUT OF PKI SIGNATURES序列号为61/581,897的美国临时申请的优先权, 其全部内容通过引用合并于本文中。

【技术领域】
[0003] 本发明涉及用于保护通过计算机网络远程访问计算机和应用以及远程事务处理 的安全的强认证令牌。更具体地,本发明涉及视觉地显示已使用非对称密码学生成的签名 的强认证令牌。

【背景技术】
[0004] 随着远程访问计算机系统和应用的普及,通过公共网络如因特网远程地访问的事 务处理的数量和种类显著增加。该普及突出了对于安全性的需求;特别是:如何确保远程 地访问应用的人就是该远程地访问应用的人所声称的人;如何确保远程地进行的事务处理 由合法的个体发起;以及如何确保在应用服务器处接收事务处理数据前,该事务处理数据 未被更改。
[0005] 过去,应用提供者依赖静态口令来提供远程应用的安全性。近年来,越加明显的 是,静态口令还不够并且需要更高级的安全技术。
[0006] 解决与通过公共网络远程访问计算机系统和应用相关联的安全问题的一种方式 包括:将提供安全功能的软件应用添加到通用目的设备如用户的PC或移动设备(例如,移 动电话或个人数字助理(PDA))。与该方式相关联的主要问题在于:通用目的设备具有使其 易于感染各种恶意软件如病毒和木马的固有开放体系结构,各种恶意软件能够将伪造消息 呈现给用户、或者捕捉用户在键盘上的任何输入、或者读取与安全应用相关联的存储器敏 感数据、或者在数据被签名前更改该数据。因此,不能够认为通用目的设备具有可信任的用 户接口,并且通用目的设备不具有用于存储秘密如PIN值和密码学钥的安全装置。此外,用 于移动设备的已知解决方案依赖无线用户网络来接收和/或发送事务处理数据。这种网络 具有固有的安全性和适当的端点加密机构,然而当使用因特网来进行所有发送时不能够假 定存在这种网络。
[0007] "强认证令牌设备"提供了解决基于通用目的设备的解决方案的安全性问题的可 替代的解决方案。强认证令牌的通常示例是由Vasco数据安全公司商业化的DIGIPASS注 册商标系列的产品(参见网站http://www.vasco.com)。硬件强认证令牌是自主电池供 电设备,专用于提供认证和事务处理签名功能,通常为袖珍尺寸,具有其自身的显示器和键 盘。在一些情况下,键盘被减小为单个按钮或者甚至完全省略该键盘;在其他情况下,键盘 可以是全键盘。通常强认证令牌的显示器和键盘是非可移除的且不便于用户使用、完全受 令牌的控制并且不受主机计算机上恶意软件的干扰。因此,与例如个人计算机(PC)相比, 强认证令牌被认为具有可信任的用户接口,在个人计算机(PC)中总是可能存在恶意软件 如病毒或木马,该恶意软件将伪造消息呈现给用户、或者捕捉用户在键盘上的任何输入、或 者读取与安全应用相关联的存储器敏感数据、或者在数据被签名前更改该数据。强认证令 牌的主要目的是生成通常被称为"一次性口令"(〇TP)或动态口令的动态安全值。通常通过 使用对称密码学算法将在令牌和验证服务器之间共享的对称秘密与动态输入值如时间值、 计数器值或提供给令牌的服务器挑战或其组合相组合来生成这些ΟΤΡ。一些强认证令牌还 可以使用作为动态输入值提供给令牌的数据(如事务处理数据)或者与上述动态输入值中 的任何动态输入值相组合来生成安全值。在这些情况下,所得到的安全值意在指示用户批 准的数据,并且该安全值通常被称作为电子签名或消息认证码(MAC)。强认证令牌通常使 用对称密码学算法将动态值与对称秘密相组合来生成密码。为了能够生成安全值如OTP或 MAC,强认证令牌能够基于利用秘密值或钥参数化了的对称密码学算法进行密码学计算。这 种利用秘密值或钥参数化了的对称密码学算法的通常示例是对称加密/解密算法(如3DES 或AES)和/或键入单向散列函数(如OATH兼容性令牌中的MD5或SHA-1)。强认证令牌 利用假定对于每个个体令牌而言均不同的一个或更多个对称秘密钥进行个性化。为了生成 一次性口令或签名,令牌通常执行以下步骤。令牌采用一个或更多个动态输入值(这些动 态输入值可以包括由服务器生成和用户在键盘上输入的挑战、和/或令牌的内部实时时钟 的值、和/或由令牌管理的内部计数器的值、和/或用户在令牌的键盘上输入的事务处理数 据)。在一些情况下,动态输入值可以包括作为计算先前安全值如先前计算的安全值自身 或者计算从其得出先前安全值的中间值如先前计算的密码的一部分而生成的令牌的值。可 以将这种情况称作为基于事件的令牌,并且这种情况基本上等同于基于计数器的令牌。令 牌将一个或更多个动态输入值置于指定的格式。然后,令牌使用对称密码学算法将一个或 更多个输入值与安全地存储在令牌中的个性化的对称秘密钥在密码学上相组合。在通常的 强认证令牌中,令牌将一个或更多个输入值提交给由安全地存储在令牌中的个性化的对称 秘密钥参数化了的对称加密/解密算法和/或键入单向散列函数。结果是对称密码或散列 值。令牌将作为该加密/解密或者单向散列的结果的对称密码或散列值变换为实际的0TP 或MAC,即密码或散列的一些位被选择(例如,通过截断密码或散列),并且被选择的位被变 换为人类可读格式(例如,通过十进制化)。有时,令牌将额外信息如与所使用的时间值或 计数器值有关的同步信息添加到0TP或MAC。最后,生成的0TP或MAC被呈现给用户。用户 可以将该值提交给应用服务器。
[0008] 在服务器端,用于验证所提交的0ΤΡ或签名的服务器(假定服务器具有令牌的秘 密钥的拷贝或者服务器能够重新生成令牌的秘密钥的值)基本上执行与令牌相同的操作, 获得0ΤΡ或签名的参考值或期望值。服务器将所提交的值与参考值相比较。如果在所提交 的值与参考值之间存在匹配,则认为验证成功。
[0009] -些强认证令牌包括能够与插入的智能卡通信、具有显示器和键盘的设备,其中, 智能卡的生成部分地由设备自身进行、部分地由插入的智能卡进行。
[0010] 将输入数据如事务处理数据或挑战提供给强认证令牌的通常方式是让用户在令 牌的键盘上手动输入数据。当必须以该方式输入的数据的量超过几十个字符时,用户通 常会感觉该过程太麻烦。为了方便用户,设计出了以下解决方案,其中输入数据不需要用 户在令牌的键盘上手动输入所述数据。一个示例包括下述令牌,该令牌使得能够借助于 简单且节约成本的光学接口(通常包括少量便宜的光敏部件如光敏二极管)以较低的数 据率来进行数据输入,其中用户保持令牌靠近计算机屏,该计算机屏显示具有有限数量的 变化区域(通常光学图案仅有2个变化区域至5个变化区域)的变化光学图案。这种光 学令牌的示例是由Vasco数据安全公司提供的Digipass 700和Digipass 300以及在EP 121184105/06/2002、EP 178850923/05/2007、US 513664404/08/1992 中描述的令牌。由于 计算机屏的刷新率相当低并且变化光学图案中区域的数量相当少,因此数据率相当低并且 与手动输入数据相当。
[0011] 通常,所生成的安全值作为数字串或字母数字字符串显示在令牌的显示器上。一 些强认证令牌还具有用于生成合成语音并且能够借助于包括语音化的数字串或语音化的 字母数字字符串的合成语音将所生成的安全值呈现给用户的装置。
[0012] 在令牌将0ΤΡ或签名呈现给用户后,用户通常通过输入将该0ΤΡ或签名手动地传 递给应用服务器。由于用户依赖于手动传递所生成的0ΤΡ或签名,为了方便起见,该0ΤΡ或 签名不可以太长。在大多数情况下,0ΤΡ或签名的长度限于如8个数值数位。这解释了为何 不将所生成的密码的所有位包含在0ΤΡ或签名中,这是因为将密码的所有位选择到0ΤΡ中, 0ΤΡ会变得太长以致于用户不能够方便地进行拷贝。
[0013] 虽然强认证令牌被证明是非常实用且安全的解决方案,但是强认证令牌也存在缺 点。最明显地,由于强认证令牌基于对称密码学算法,因此想要验证由特定强认证令牌生成 的0ΤΡ或签名的任何服务器必须获得该令牌的秘密钥。这使令牌的可用性限于获得该令牌 的秘密钥的应用。由于令牌的安全完全取决于该令牌的秘密钥的保密性,因此不会选择与 任何应用服务器共享令牌的秘密钥。因此,通常,特定令牌实际上仅可以用于有限的一组应 用(通常,一个单个应用提供者的应用)。
[0014] 此外,使用这种令牌会假定利用与认证服务器共享的秘密钥个性化的多个令牌设 备必须在多个用户中进行分配,并且假定必须跟踪哪个用户具有哪个令牌设备。这是代表 一定负荷的逻辑处理。
[0015] 解决与通过公共网络远程访问计算机系统和应用相关联的安全问题的不同方式 由基于非对称密码学的公钥基础设施(PKI)提供。使用公钥基础设施,用户将公-私钥对 与每个用户相关联。公钥和私钥的钥对在数学上相关。可以借助于非对称密码学使用该 公-私钥对来对用户进行认证、对事物处理进行签名以及设立经加密的通信。私钥被用于 使用非对称密码学算法来生成签名。严格保持该私钥对任何其他一方的保密性并且从不与 任何验证服务器共享该私钥。为了验证利用特定私钥生成的签名,用户必须使用数学上与 私钥相关联的对应的公钥对签名执行逆操作。为了使得能够对签名进行验证,使想要对利 用私钥生成的签名进行验证的任何实体可获得与该私钥相关联的公钥。由于不能够使用公 钥来生成签名(仅用于验证签名),因此不需要保持公钥的保密性。在公钥基础设施中,钥 对与将公-私钥对绑定到特定用户的证书(由可信赖的认证机构颁发)相关联。证书本身 是将用户的身份绑定到用户的公钥的声明并且证书由认证机构签名并且可以利用认证机 构的公钥进行验证。该认证机构的公钥被广泛地分发。信任该认证机构及其公钥的任何实 体现在可以对其公-私钥对已经经认证机构证实的用户生成的签名进行验证。任何应用不 需要访问用户的任何秘密信息就能够对该用户进行认证或者对该用户的签名进行验证。
[0016] 为了保证足够的安全级别,强制每个用户的私钥仍旧保密,并且仅可以访问每个 用户的私钥,来生成签名或者由与该钥相关联的合法用户对消息进行解密。通常依赖智能 卡或专用通用串行总线(USB)设备(有时被称为USB钥或USB令牌)来存储公-私钥对和 证书,并且进行涉及私钥的密码学计算。
[0017] 存在一些与PKI和智能卡或者携带PKI钥和证书的USB令牌相关联的缺点。
[0018] 1.由于PKI基于非对称算法并且由于用于生成签名的私钥不为任何验证服务器 所知,因此验证PKI签名的服务器不可以仅执行与客户端相同的步骤来获得能够与所提交 的签名相比较的参考签名。作为替代,验证服务器使用公钥与所接收的签名来反向客户端 的计算。然而,这假定服务器已获得客户端利用私钥计算出的全部的非对称密码(即,非截 断版本)。这意味着基于签名的PKI包括全部的非对称密码。非对称密码相当长(通常比 通过对称算法生成的密码更长)。这与PKI签名必须包括全部非对称密码的事实相组合意 味着将PKI签名(例如,为长字母数字字符串的形式、十进制数字的形式或十六进制数字的 形式)呈现给用户并且期望用户将PKI签名手动传递给验证服务器是不可行的。因此,PKI 固有地限于在客户端与服务器之间存在数字连接的环境和应用。换言之,PKI不适用于不 能够在一方面的PKI证书和私钥的容器与另一方面的应用服务器之间提供数字连接的传 送通道。
[0019] 2. PKI智能卡和USB令牌不具有内置电源或用户接口。因此,PKI智能卡和USB令 牌依赖存在为卡提供电力、能够与卡数字地交换数据并且能够与用户进行交互(例如,捕 捉卡的PIN并且呈现应当签名的数据)的接口系统。通常,USB令牌被插入到PC的内置USB 端口中,其中USB端口为USB令牌供应电力,并且连接到PC的人类接口设备提供用户交互 能力(连接USB令牌模型)。通常,借助于配备有简单智能卡读取器的PC操作PKI智能卡, 其中读取器仅为智能卡供应电力并且使得在PC上的应用与插入的智能卡之间能够通信, 并且其中连接到PC的人类接口设备提供用户交互能力。其自身具有不可信的用户接口的 这种读取器通常被称为透明卡读取器。这些通常的使用模型减少了用户的移动性,因为大 多数PC没有预配备有智能卡读取器,并且为USB令牌的读取器自组织安装驱动器通常被证 明太麻烦。还存在安全问题:所有的用户交互(如,批准签名或捕捉卡的PIN)在固有地不 安全的PC上进行。


【发明内容】

[0020] 为了提供对本文中描述的一些方面的基本理解,以下内容呈现了本发明的简化概 要。该概要不是所要求保护的主题的详尽概述。该概要不意在标识所要求保护的主题的关 键元素或主要元素,也不意在描绘本发明的范围。该概要的目的仅在于以简化的形式呈现 所要求保护的主题的一些构思以作为稍后呈现的更详细的描述的前序。
[0021] 所需的是将强认证令牌的安全性与应用提供者在不依赖于当前PKI解决方案的 USB连接的情况下对PKI的独立性相组合的解决方案。
[0022] 本发明的一方面基于发明人的下述观点:借助于强认证令牌来保护其安全的许多 应用的用户借助于访问设备如PC(个人计算机)或类似的计算设备(如智能电话、笔记本 或平板PC)来访问该应用,其中大多数访问设备具有相机并且具有捕捉二维图像的能力。 通常,用户的访问设备还具有足够的处理能力来处理其捕捉的图片。
[0023] 本发明的一方面还基于发明人的下述观点:即使单个中等像素图片也能够传达相 当大的信息量。例如,16*80像素的单个黑白图像可以传达1280位。可容易地获得便宜的 16*80像素的图形液晶显示器(IXD)。
[0024] 根据本发明的一方面提供了包括至少一个数据处理部件和显示器的便携式手持 认证设备,该认证设备适于:生成输入值;将输入值提交给非对称密码学运算,其中,非对 称密码学运算基于由公-私钥对中的第一私钥参数化了的非对称密码学算法来生成结果; 获得所述非对称密码学运算的结果;生成基本上包括非对称密码学运算的结果的认证消 息;将认证消息编码到一个或更多个图像中;以及将一个或更多个图像显示在显示器上。
[0025] 在一些实施方式中,认证设备还包括用于与单独的安全设备通信的通信接口,其 中:单独的安全设备存储所述公-私钥对中的第一私钥;单独的安全设备适于执行非对称 密码学运算;认证设备通过执行以下操作来获得所述非对称密码学运算的所述结果:请求 单独的安全设备通过使用存储述单独的安全设备上的第一私钥对输入值执行非对称密码 学运算来生成非对称密码学运算的结果,并且(此后)从单独的安全设备接收由单独的安 全设备生成的非对称密码学运算的结果。在一些实施方式中,单独的安全设备包括可移除 的智能卡。
[0026] 在一些实施方式中,认证设备还包括适于接收在认证设备外部的至少一个可变数 据元素的数据输入接口,并且其中,输入值是使用所述至少一个外部可变数据元素来生成 的。
[0027] 在一些实施方式中,数据输入接口包括键盘。在一些实施方式中,数据输入接口包 括光学数据输入接口。在一些实施方式中,数据输入接口包括声学数据输入接口。
[0028] 在一些实施方式中,至少一个外部可变数据元素包括挑战。在一些实施方式中,至 少一个外部可变数据元素包括事务处理数据。
[0029] 在一些实施方式中,认证设备还适于使用在认证设备内部的至少一个可变数据元 素来生成输入值。在一些实施方式中,认证设备包括实时时钟,并且至少一个内部可变数据 元素包括由所述实时时钟提供的时间值。在一些实施方式中认证设备还包括计数器,并且 至少一个内部可变数据元素包括由所述计数器提供的计数器值。
[0030] 在一些实施方式中,认证设备还适于将与输入值相关的数据包含在认证消息中。 在一些实施方式中,与输入值相关的数据包括输入值。
[0031] 在一些实施方式中,认证设备还包括第一安全数据存储部件,其中第一安全数据 存储部件存储所述第一私钥,并且其中,认证设备还适于通过使用存储在所述第一安全数 据存储部件中的所述第一私钥对输入值执行非对称密码学运算来执行非对称密码学运算 并且生成非对称密码学运算的结果。
[0032] 在一些实施方式中,认证设备还包括第二安全数据存储部件,其中所述第二安全 数据存储部件存储秘密数据元素。
[0033] 在一些实施方式中,认证设备还适于通过将与输入值相关的数据与第一密码学钥 在密码学上相组合来生成与输入值在密码学上相关的数据、并且将所生成的与输入值在密 码学上相关的数据包含在认证消息中,其中,所述第一密码学钥包含在秘密数据元素中或 者是从秘密数据元素得出的。
[0034] 在一些实施方式中,所述第一密码学钥包括与验证实体共享的对称密码学钥,并 且在密码学上相组合是使用对称密码学算法来进行的。在一些实施方式中,所述第一密码 学钥包括非对称密码学钥,并且在密码学上相组合是使用非对称密码学算法来进行的。在 一些实施方式中,第一密码学钥包括加密钥,并且在密码学上相组合包括使用加密算法来 加密与输入值相关的数据。
[0035] 在一些实施方式中,认证设备还适于通过将第二密码学钥与非对称密码学运算的 结果的至少一部分在密码学上相组合来生成与非对称密码学运算的结果在密码学上相关 的数据、并且将所生成的与非对称密码学运算的结果在密码学上相关的数据包含在认证消 息中,并且所述第二密码学钥包含在秘密数据元素中或者是从秘密数据元素得出的。
[0036] 在一些实施方式中,所述第二密码学钥包括与验证实体共享的对称密码学钥,并 且在密码学上相组合是使用对称密码学算法来进行的。在一些实施方式中,所述第二密码 学钥包括非对称密码学钥,并且在密码学上相组合是使用非对称密码学算法来进行的。在 一些实施方式中,所述第二密码学钥包括加密钥,并且在密码学上相组合包括使用加密算 法来加密非对称密码学运算的结果的至少一部分。
[0037] 在一些实施方式中,认证设备还适于将对与所述第一私钥对应的公钥的参考包含 在认证消息中。在一些实施方式中,认证设备还适于将用于标识认证设备的数据元素包含 在认证消息中。在一些实施方式中,认证设备还适于将用于标识用户的数据元素包含在认 证消息中。在一些实施方式中,认证设备还适于将用于标识所述单独的安全设备的数据元 素包含在认证消息中。
[0038] 根据本发明的另一方面提供了用于保护至少一个用户远程访问基于计算机的应 用的安全的方法,该方法包括以下步骤:捕捉显示在至少一个用户的认证设备的显示器上 的一个或更多个图像,其中,一个或更多个图像已被编码有由认证设备生成的认证消息,并 且其中,认证消息包括基于由公-私钥对中的第一私钥参数化了的非对称密码学算法对输 入值的非对称密码学运算的结果;对一个或更多个图像进行解码以检索认证消息;从认证 消息中检索非对称密码学运算的结果;验证认证消息;其中,验证所述认证消息包括使用 利用与所述第一私钥对应的公钥参数化了的非对称密码学算法来验证所检索到的非对称 密码学运算的结果。
[0039] 在一些实施方式中,非对称密码学运算的结果包括利用基于非对称密码学并且利 用所述第一私钥参数化了的数字签名生成算法来生成的对输入值的数字签名,并且验证所 检索到的非对称密码学运算的结果包括使用基于非对称密码学并且利用公钥参数化了的 数字签名验证算法来验证数字签名。
[0040] 在一些实施方式中,方法还包括通过使用包含在认证消息中的数据来获得公钥的 值。
[0041] 在一些实施方式中,认证消息还包括标识至少一个用户的数据元素,并且用户标 识数据元素被用来获得公钥的值。
[0042] 在一些实施方式中,认证消息还包括标识执行了非对称密码学运算的设备(例 如,认证设备自身或单独的安全设备)的数据元素,并且设备标识数据元素被用来获得公 钥的值。
[0043] 在一些实施方式中,认证消息还包括与输入值相关的数据,并且验证认证消息还 包括验证与输入值相关的数据。
[0044] 在一些实施方式中,认证消息还包括与输入值在密码学上相关的数据元素,并且 验证认证消息包括在密码学上验证与输入值在密码学上相关的数据元素。
[0045] 在一些实施方式中,认证消息还包括标识认证设备的数据元素;方法还包括使用 认证设备标识数据元素来获得第一密码学钥的值的步骤;并且在密码学上验证与输入值在 密码学上相关的数据元素包括使用利用所述第一密码学钥参数化了的密码学算法。
[0046] 在一些实施方式中,认证消息还包括与非对称密码学运算的结果在密码学上相关 的数据元素,并且验证认证消息包括在密码学上验证与非对称密码学运算的结果在密码学 上相关的数据元素。
[0047] 在一些实施方式中,认证消息还包括标识认证设备的数据元素;方法还包括使用 认证设备标识数据元素来获得第二密码学钥的值的步骤;并且在密码学上验证与非对称密 码学运算的结果在密码学上相关的数据元素包括使用利用所述第二密码学钥参数化了的 密码学算法。
[0048] 在一些实施方式中,包含在认证消息中的非对称密码学运算的结果包括至少一个 经加密的部分(即,非对称密码学运算的结果的至少一部分已被加密),并且从认证消息中 检索非对称密码学运算的结果包括对至少一个经加密的部分进行解密。
[0049] 在一些实施方式中,认证消息还包括标识认证设备的数据元素;方法还包括使用 认证设备标识数据元素来获得第三密码学钥的值的步骤;并且对至少一个经加密的部分进 行解密包括使用利用所述第三密码学钥参数化了的解密算法。
[0050] 根据本发明的一方面的实施方式包括认证设备,该认证设备适于获得非对称密码 学运算的结果(例如,通过其自身执行非对称密码学运算,或者通过请求单独的安全设备 执行非对称密码学运算并随后从单独的安全设备接收由单独的安全设备执行的非对称密 码学运算的结果)、并且生成对非对称密码学运算的结果的表示的(基本上)所有的位进行 编码的一个或更多个图像,并且将这些图像显示在认证设备的显示器上。
[0051] 本发明的一种实施方式包括认证设备,该认证设备适于生成非对称签名(即,基 于非对称密码学的数字签名),并且该认证设备适于生成对所生成的签名的(基本上)所有 的位进行编码的一个或更多个图像,并且将这些图像显示在认证设备的显示器上。
[0052] 在一些实施方式中,认证设备包括数据处理部件,该数据处理部件适于生成非对 称密码学运算的结果的数字表示。在一些实施方式中,数据处理部件适于将非对称密码学 运算的结果的数字表示编码到一个或更多个图像中,该数字表示不是字母数字字符。在一 些实施方式中,这些图像可以包括位图。在一些实施方式中,这些图像的像素可以仅采用两 个值(例如,黑或白)之一。一般而言,非对称密码学运算的结果在一个或更多个图像中的 表示不为人类可解释的形式。
[0053] 在一些实施方式中,认证设备包括适于执行非对称密码学运算的数据处理部件。 在一些实施方式中,数据处理部件适于根据非对称密码学算法并且使用公-私钥对中的用 于对非对称密码学算法进行参数化的私钥来执行对输入值的加密。在一些实施方式中,非 对称密码学算法可以例如包括RSA(里维斯特-沙米尔-阿德尔曼)算法或者可以基于椭 圆曲线密码学(ECC)。
[0054] 在一些实施方式中,认证设备包括存储器部件,该存储器部件用于存储秘密数据 如PIN值的和/或一个或更多个密码学钥如公-私钥对中的私钥或对称密码学钥,和/或 可以与另一实体例如认证服务器共享并且可以从其得出例如密码学钥的秘密数据元素。在 一些实施方式中,认证设备还适于存储与由认证设备存储或使用的一个或更多个私钥相关 的一个或更多个证书或证书链。
[0055] 在一些实施方式中,认证设备包括用于与第二设备例如单独的安全设备通信的数 字通信接口。在一些实施方式中,该第二设备适于执行非对称密码学运算。在一些实施方式 中,第二设备适于存储公-私钥对中的至少一个私钥。在一些实施方式中,第二设备还适于 存储与由第二设备存储和/或使用的一个或更多个私钥相关的一个或更多个证书或证书 链。在一些实施方式中,第二设备还适于存储标识第二设备的数据(例如,序列号)。在一 些实施方式中,第二设备还适于存储标识用户的数据(例如,用户名或用户的社会保险号, 或者用户的国家id号)。在一些实施方式中,第二设备可以包括智能卡。在一些实施方式 中,智能卡可以支持IS0/EIC7816-4可兼容通信协议。在一些实施方式中,认证设备可以包 括用于与智能卡通信的智能卡接口。在一些实施方式中,认证设备可以使用IS0/EIC7816-4 可兼容通信协议与智能卡交换智能卡命令。在一些实施方式中,第二设备可以包括所谓的 USB钥或USB令牌。
[0056] 在一些实施方式中,认证设备可以包括显示器,用于显示对所生成的签名的表示 或者非对称密码学运算的结果进行编码而生成的图像。在一些实施方式中,显示器包括 LCD (液晶显示器)。在一些实施方式中,使用其他的显示技术。在一些实施方式中,显示器 包括图形显示器。在一些实施方式中,显示器具有至少1000像素的分辨率。在一些实施方 式中,显示器具有至少80列的列像素。在一些实施方式中,显示器具有至少16行的行像素。 在一些实施方式中,显不器具有16*80像素的分辨率。在一些实施方式中,显不器可以包括 触摸屏。
[0057] 在一些实施方式中,认证设备包括用于使用户将数据提供给认证设备的输入接 口。在一些实施方式中,输入接口适于使得用户能够输入挑战值。在一些实施方式中,输入 接口适于使得用户能够输入事务处理数据值。在一些实施方式中,输入接口适于使得用户 能够输入PIN值。在一些实施方式中,输入接口包括用于例如通过扫描用户的访问设备的 显示器上的光学图案或者通过捕捉图像并对图像进行解码来读入数据的光学接口。在一些 实施方式中,输入接口包括用于通过捕捉由用户的访问设备发出的声音并对该声音进行解 码来读入数据的声学接口。在一些实施方式中,输入接口包括用户输入接口,该用户输入接 口适于使得用户能够将信息手动地输入到认证设备中。在一些实施方式中,用户输入接口 包括一个或更多个按钮。在一些实施方式中,用户输入接口包括键盘。在一些实施方式中, 用户输入接口包括一个或更多个拇指滚轮。在一些实施方式中,用户输入接口可以包括触 摸屏。
[0058] 在一些实施方式中,认证设备可以包括安全存储部件,该安全存储部件适于存储 可以包括密码学钥的秘密。在一些实施方式中,认证设备会适于执行密码学算法,该密码学 算法可以包括散列算法、和/或对称加密/解密算法或非对称加密/解密算法、和/或对称 电子签名算法或非对称电子签名算法。
[0059] 根据本发明的一方面的另一实施方式包括用于保护用户远程访问基于计算机的 应用的安全的方法。方法包括以下步骤。以上文所述的方式向多个用户提供认证设备。用 户使用配备有相机的访问设备(或者用于电子地捕捉图像的等同光学设备)远程地访问应 用。
[0060] 可以要求用户提供安全值例如用于对用户进行认证的安全值或者用于对事务处 理进行签名的安全值。该安全值可以包括认证消息,该认证消息可以由根据本发明的认证 设备生成并且被传送给如下文更详细地描述的根据本发明的验证实体。
[0061] 验证实体(验证实体可以例如包括应用服务器和/或认证服务器)验证认证消 息,并且验证实体可以使用验证的结果来确定进一步的动作特别是确定是否接受用户和/ 或用户交互例如将事务处理提交给用户。例如,如果验证认证消息成功,则应用可以接受用 户的登录。
[0062] 给认证设备提供外部数据。
[0063] 可以给用户挑战值。该挑战可以例如包括由应用服务器或认证服务器生成的随机 值。该挑战还可以从例如对事务处理数据进行散列得出。可以请求用户将挑战提供给用户 的认证设备。用户可以将该挑战提供给认证设备。还可以请求用户将某些事务处理相关数 据提供给认证设备。用户可以将这些事务处理相关数据提供给认证设备。用户可以将数据 如挑战或事务处理数据提供给用户的认证设备,例如通过将这些数据呈现给认证设备的输 入接口,例如通过在认证设备的键盘上输入数据。可以将这些数据提供给用户,例如通过将 这些数据以人类可解释的形式(例如,字符串)显示在用户的访问设备的显示器上。
[0064] 生成输入值。
[0065] 认证设备构造输入值。构造输入值可以包括从由用户提供的数据元素如挑战值或 事务处理相关数据得出值。构造输入值还可以(附加地或可替代地)包括从由认证设备存 储、管理或生成的一个或更多个内部数据元素得出值。在一些实施方式中,一个或更多个内 部数据元素可以包括从实时时钟的值得出的数据元素。在一些实施方式中,一个或更多个 内部数据元素可以包括从一个或更多个计数器的值得出的数据元素。在一些实施方式中, 这些一个或更多个计数器由认证设备存储。在一些实施方式中,这些一个或更多个计数器 通过认证设备自动递增。
[0066] 在一些实施方式中,可以由第二设备(例如,单独的安全设备)提供内部数据元素 中的一些内部数据元素。在一些实施方式中,构造输入值可以全部地或部分地由第二设备 (例如,单独的安全设备)进行。例如,在一些实施方式中,输入值可以包括或者基于包含 在单独的安全设备中的计数器的值或实时时钟的值。在一些实施方式中,输入值可以由单 独的安全设备使用完全由单独的安全设备自身提供的数据元素构造。例如,在一些实施方 式中,输入值可以由单独的安全设备根据包含在单独的安全设备中的计数器和/或实时时 钟的一个或更多个值构造。在一些实施方式中,输入值可以由单独的安全设备通过将在单 独的安全设备外部的数据元素和单独的安全设备从认证设备获得的数据元素(例如,挑战 值、事务处理相关数据和/或认证设备中的实时时钟的值)与在单独的安全设备内部的数 据元素(例如,包含在单独的安全设备中的计数器和/或实时时钟的一个或更多个值)相 组合来构造。在一些实施方式中,可以由单独的安全设备通过使用单独的安全设备从认证 设备获得的和由认证设备生成的先导值(例如,使用数据元素例如挑战值、事务处理相关 数据和/或认证设备中的实时时钟的值)来构造输入值。在一些实施方式中,单独的安全 设备通过将先导值与在单独的安全设备内部的数据元素(例如,包含在单独的安全设备中 的计数器和/或实时时钟的一个或多个值)相组合来生成输入值。在一些实施方式中,单 独的安全设备通过使用数学函数例如散列函数如SHA-1对先导值进行变换来生成输入值。 [0067] 在一些实施方式中,构造输入值可以包括认证设备将数据与秘密数据元素如秘密 密码学钥在密码学上相组合。例如,在一些实施方式中,认证设备可以对上述数据元素中的 一个或更多个数据元素与秘密数据元素的组合(例如连接)在密码学上进行散列(例如, 利用SHA-1散列算法),并且认证设备可以从所得到的散列得出输入值。在一些实施方式 中,认证设备可以对上述数据元素中的一个或更多个数据元素的组合(例如,连接)电子地 进行签名,并且从电子签名得出输入值。在一些实施方式中,认证设备可以使用利用秘密密 码学钥参数化了的加密算法对上述数据元素中的一个或更多个数据元素的组合(例如,连 接)进行加密,并且认证设备可以从所得到的经加密的数据得出输入值。在一些实施方式 中,加密算法可以包括对称加密算法例如DES (数据加密标准)算法或AES (高级加密标准) 算法。在一些实施方式中,加密算法可以包括非对称加密算法例如RSA算法,并且密码学钥 可以包括公-私钥对中的私钥。在一些实施方式中,认证设备可以对上述数据元素中的一 个或更多个数据元素的组合(例如,连接)计算密码MAC(消息认证码)并且从MAC得出输 入值(例如,通过将MAC包含在输入值中)。在一些实施方式中,可以通过对上述数据元素 中的一个或更多个数据元素的组合施加 CBC(密码块链接)模式中的对称块密码并且保留 最后块的密码(的一部分)来计算MAC。
[0068] 在一些实施方式中,认证设备适于存储秘密数据元素。例如,认证设备可以包括用 于存储秘密数据元素的安全存储器部件。在一些实施方式中,每个单独的认证设备可以具 有其自身的用于秘密数据元素的单独值。在其他实施方式中,秘密数据元素的值由多个认 证设备共享。在一些实施方式中(特别在认证设备将秘密数据元素与对称密码学算法一起 使用的实施方式中),与例如认证服务器或应用服务器共享的秘密数据元素的值可以例如 与相关联的认证设备的秘密数据元素的值以及标识数据存储在数据库中。在一些实施方式 中,认证设备可以适于重构与特定认证设备相关联的秘密数据元素的值,例如通过从特定 认证设备的主钥和标识数据得出秘密数据元素的值。
[0069] 认证设备将所生成的输入值提交给非对称密码学运算。
[0070] 认证设备将输入值提交给根据非对称密码学算法的非对称密码学运算。可以由 公-私钥对中的私钥对非对称密码学算法参数化了。在一些实施方式中,非对称密码学运 算包括使用公-私钥对中的私钥和由该私钥参数化了的非对称密码学算法来加密输入值。 在一些实施方式中,非对称密码学运算包括使用公-私钥对中的私钥和由该私钥参数化了 的非对称密码学算法对从输入值(例如,使用数字摘要算法例如散列算法如SHA-1生成的 数字摘要)得出的值进行加密。在一些实施方式中,非对称密码学算法可以例如包括RSA 算法或者基于椭圆曲线密码学的算法。在一些实施方式中,非对称密码学算法可以包括基 于非对称密码学的电子签名算法。
[0071] 在一些实施方式中,可以由单独的安全设备执行非对称密码学运算。在一些实施 方式中,单独的安全设备可以是可移除的安全设备,并且认证设备可以包括用于与单独的 安全设备通信的通信接口。在一些实施方式中,单独的安全设备可以包括例如PKI智能卡。
[0072] 在一些实施方式中,生成(例如,通过例如使用密码散列算法如SHA-1对输入值进 行散列)输入值的摘要并且将输入值的摘要提交给非对称密码学运算。在一些实施方式 中,认证设备生成输入值的摘要。在一些实施方式中,输入值的摘要由单独的安全设备生 成。
[0073] 认证设备获得非对称密码学运算的结果。
[0074] 认证设备获得非对称密码学运算的结果。在一些实施方式中,该结果包括非对称 密码。在一些实施方式中,该结果包括使用基于非对称密码学的数字签名算法或电子签名 算法生成的数字签名或电子签名。在一些实施方式中,认证设备借助于认证设备从单独的 安全设备接收的对认证设备发送给单独的安全设备的命令的一个或更多个响应获得非对 称密码学运算的结果。在一些实施方式中,认证设备获得非对称密码学运算的为下述硬件 或软件部件的输出的形式的结果,该硬件或软件部件嵌入在认证设备中并且输入值被提交 给该硬件或软件部件以执行非对称密码学运算。
[0075] 认证设备生成认证消息。
[0076] 认证设备生成包括非对称密码学运算的结果的认证消息。认证消息可以基本上包 括非对称密码学运算的全部结果。在一些实施方式中,认证设备包括非对称密码学运算的 全部结果(例如,全部的非对称密码或全部的数字签名)。在一些实施方式中,认证设备可 以包括非对称密码学运算的除了少数位以外的全部结果。这可以是例如为了使非对称密码 学运算的结果适合可以被编码到认证设备可以显示的单个图像中的认证消息的最大容量 的情况。验证认证消息的实体还可以在不管缺失位的情况下通过试错法来验证非对称密码 学运算的结果,其中对用于缺失位的所有可能的值进行尝试直到找到成功生效的非对称密 码学运算的结果的任一值,或者直到已对用于缺失位的所有可能的值进行尝试而没有得出 成功验证非对称密码学运算的结果的值。可以被包含在认证消息中的非对称密码学运算的 结果忽略的位的数量可以确定或者选择作为在忽略该非对称密码学运算的结果的位的缺 点(例如,对于验证而言更低的安全性和/或更高的计算工作量)与优点(更短的认证消 息)之间权衡的函数。在一种实施方式中,非对称密码的不多于8个位被认证消息忽略。 如果与非对称密码学运算的结果的密码验证相关的非对称密码学运算的全部结果中的至 少95的位被表示在认证消息中,则可以说认证消息基本上包括非对称密码学运算的全部 结果。
[0077] 认证设备将非对称密码学运算的结果与秘密数据元素在密码学上相组合。
[0078] 在一些实施方式中,生成认证消息包括认证设备将非对称密码学运算的结果与秘 密数据元素相组合,该秘密数据元素可以存储在认证设备中或者该秘密数据元素可以从存 储在认证设备中的另一(秘密)数据元素得出。在一些实施方式中,秘密数据元素或者从 其得出秘密数据元素的数据元素可以与另一实体例如认证服务器共享。在一些实施方式 中,该组合可以包括向非对称密码学运算的结果施加利用秘密数据元素参数化了的密码学 算法。例如,在一些实施方式中,认证设备使用秘密数据元素作为电子签名钥对包括非对称 密码学运算的结果的至少一部分的数据生成电子签名。在一些实施方式中,电子签名算法 可以基于对称密码学。在一些实施方式中,电子签名算法可以基于非对称密码学。在一些 实施方式中,认证消息还包括该电子签名。在一些实施方式中,认证设备使用秘密数据元素 作为加钥对非对称密码学运算的结果进行加密。在一些实施方式中,认证设备对非对称密 码学运算的全部结果进行加密。在其他实施方式中,认证设备仅对非对称密码学运算的结 果的一部分进行加密。在一些实施方式中,认证设备应用对称加密算法进行该加密。在一 些实施方式中,认证设备应用非对称加密算法进行该加密。在一些实施方式中,认证消息包 括非对称密码学运算的经(全部地或部分地)加密的结果的至少一部分。在一些实施方式 中,认证设备使用由秘密数据元素参数化了的密码学算法(例如,CBC模式中的对称加密算 法)对包括非对称密码学运算的结果的至少一部分的数据计算MAC(消息认证码)。在一 些实施方式中,认证消息包括该MAC。在一些实施方式中,认证设备可以将非对称密码学运 算的结果的一部分或从该结果得出的数据(例如散列)与一个或更多个动态变量的值(例 如,实时时钟的时间值、和/或计数器值、和/或挑战值)以及秘密数据元素在密码学上相 组合。在一些实施方式中,认证设备可以与验证实体例如认证服务器共享将该秘密数据元 素。
[0079] 在生成输入值或在根据非对称密码生成认证消息的过程中如此涉及秘密数据元 素(例如,通过将秘密数据元素与非对称密码学运算的结果或与输入值相关的数据在密码 学上相组合)的一个优点在于:这可以用于证明在计算输入值和/或认证消息的过程中认 证设备参与其中。这在其中非对称密码学运算不是由实际的认证设备执行而是由适于执行 非对称密码的单独的安全设备(例如PKI智能卡)(可以是可移除的)执行的实施方式中 会特别有用。以该方式可以阻止某些类型的攻击,其中攻击者访问单独的安全设备(例如, 如果安全设备是PKI智能卡并且用户将智能卡插入到连接到感染有受攻击者控制的恶意 软件的PC的智能卡读取器中)并且尝试仿效认证设备来获得有效的认证消息。如果认证 设备在生成输入值和/或认证消息的过程中涉及安全地存储在认证设备中并且可以假定 不为攻击者所知的秘密数据元素,则这种攻击会更加困难。在该情况下,攻击者不太可能能 够生成用于输入值和/或认证消息的正确值。通过(在密码学上)验证输入值和/或认证 消息的正确性,生效实体(例如,认证服务器)可以检测到攻击者试图仿效认证设备的这种 攻击。
[0080] 认证设备将额外数据包含在认证消息中。
[0081] 在一些实施方式中,认证消息还可以包括额外信息(即,除非对称密码学运算的 结果以外的其他数据)。
[0082] 在一些实施方式中,该额外信息可以例如包括与认证设备相关的标识符(例如, 序列号)。在一些实施方式中,可以例如由验证实体如认证服务器使用设备标识符来检索或 获得认证设备可以使用(例如,如在上文段落中的一些段落中所说明的那样)的秘密数据 元素的值。在一些实施方式中,可以使用设备标识符来查找数据库中的密码学钥。该密码 学钥可以包括与认证设备共享的对称秘密密码学钥。该密码学钥还可以包括与存储在认证 设备中和/或由认证设备使用的私钥对应的公钥。
[0083] 在一些实施方式中,该额外信息可以例如包括用户的标识符(例如,从执行非对 称密码学运算的智能卡读取的用户名)。在一些实施方式中,包含在认证消息中的这种用户 标识符可以例如由应用使用,以确定例如在试图登录期间的用户id。这可以增加用户便利 性,因为在这种情况下当用户想要访问应用时不要用户提供登录ID或者用户ID。
[0084] 在一些实施方式中,该额外信息可以例如包括执行非对称密码学运算的单独的安 全设备的标识符,例如PKI智能卡的序列号。
[0085] 在一些实施方式中,该额外信息可以例如包括下述数据元素,该数据元素可以使 得应用服务器或验证服务器能够标识、获得或检索对应于用于执行非对称密码学运算的私 钥的公钥。例如,额外信息可以包括公钥自身;或者额外信息可以包括含有公钥或包含公 钥的参考的证书;或者额外信息可以包括这种证书的可以用于获得实际的证书的序列号; 或者额外信息可以包括使得能够检索公钥和/或证书的URL (统一资源定位符)。在一些 实施方式中,可以使用用户的标识符来获得公钥和/或证书,例如通过将用户标识符使用 作为包括公钥和/或证书的数据库中的搜索关键字。在一些实施方式中,可以以类似的方 式使用设备标识符来检索公钥和/或证书。设备标识符可以包括用于标识下述设备的数 据元素,该设备执行非对称密码学运算和/或存储用于生成非对称密码学运算的结果的私 钥,例如在一些实施方式中该设备为认证设备自身或在其他实施方式中该设备为单独的安 全设备。
[0086] 在一些实施方式中,该额外信息可以包括输入值或与输入值相关的数据,例如与 计数器值或时间值相关的数据,该输入值或与输入值相关的数据可以由认证设备或单独的 安全设备生成并且可以用于生成输入值。在一些实施方式中,可以由认证设备从输入值或 者从认证设备使用其来获得输入值的值的数据在密码学上得出与输入值相关的这些数据。 例如,输入值可以包括一组事务处理数据,并且与包含在认证消息中的输入值相关的数据 可以包括由认证设备使用存储在认证设备中的秘钥对这些事务处理数据计算出的MAC。例 如,在一些实施方式中,认证设备可以使用一个或更多个动态变量的一个或多个值(例如, 实时时钟的时间值、和/或计数器值、和/或挑战、和/或事务处理数据)来生成输入值,并 且认证设备可以将这些值中的一个或更多个值包含在认证消息中。特别地,如果使用一个 或更多个内部动态变量(如实时时钟和/或计数器)来生成输入值,则认证设备可以将指 示这些内部动态变量的值的数据包含在认证消息中。在一些实施方式中,认证设备可以将 认证设备通过将秘密数据元素(该秘密数据元素可以与例如验证实体如应用服务器或认 证服务器共享)与认证设备使用其来生成输入值的一个或更多个动态变量(如实时时钟、 和/或计数器、和/或挑战、和/或事物处理数据)的一个或更多个值在密码学上相组合生 成的一次性口令包含在认证消息中。在一些实施方式中,输入值也可以包括该一次性口令。 在一些实施方式中,输入值自身被包含在认证消息中。在一些实施方式中,认证设备利用秘 密数据元素对输入值进行加密,并且将经加密的输入值包含在认证消息中。在一些实施方 式中,认证设备对指示认证设备使用其来生成输入值的数据元素的值的数据进行加密,并 且认证设备将这些经加密的数据元素包含在认证消息中。
[0087] 在一些实施方式中,可以以特定格式对认证消息进行编码。在一些实施方式中,以 使得能够确定组成认证消息的各种数据元素的存在、位置和/或长度的格式对认证消息进 行编码。在一些实施方式中,可使用TLV(标记-长度-值)结构将组成认证消息的各种数 据元素组合在认证消息中。
[0088] 认证设备将认证消息编码到一个或更多个图像中。
[0089] 认证设备生成对认证消息进行编码的一个或更多个图像。一般而言,这些图像不 以人类可解释的形式来表示认证消息。在一些实施方式中,以人类可解释的形式表示的数 据与图像一起呈现。一般而言,以人类可解释的形式表示的数据不包括非对称密码学运算 的结果。在特定的实施方式中,为人类可解释形式的数据可以包括例如一次性口令(例如, 被表示作为字符串),该一次性口令可以由认证设备(例如,通过将一个或更多个动态变量 的一个或更多个值如实时时钟值、计数器值、挑战值或事务处理数据值与在认证设备与验 证实体如应用服务器或认证服务器之间共享的秘密数据元素在密码学上相组合)生成。在 一些实施方式中,图像中的一些图像包括位图。在一些实施方式中,认证设备使用二维条形 码格式或矩阵条形码格式对图像中的一些图像进行编码。在一些实施方式中,认证设备使 用QR码(快速响应)格式对图像中的一些图像进行编码。在一些实施方式中,一些图像被 以黑白的方式编码。在一些实施方式中,可以使用多个灰度级水平对一些图像进行编码。在 一些实施方式中,可以使用彩色编码方案对一些图像进行编码。在一些实施方式中,可以使 用下述编码方案对一些图像进行编码,该编码方案包括可以提供错误检测和/或错误校正 功能的数据冗机制的。在一些实施方式中,数据冗余率可以是可变的。在一些实施方式中, 可以使用下述编码方案,其中图像包括对已使用的冗余率的指示。在一些实施方式中,可以 以固定的分辨率来使用编码方案。在一些实施方式中,可以以可变的分辨率来使用编码方 案。在一些实施方式中,可以使用下述编码方案,其中图像包括对分辨率的指示。在一些实 施方式中,可以使用下述编码方案,其中图像包括使得能够对图像进行解码以检测图像的 取向、放缩和/或可能的形变的某些元素。在一些实施方式中,可以将认证消息编码在多于 一个图像上,并且认证设备可以添加序列信息以使得捕捉图像并对图像进行解码的实体能 够正确地组装多个图像的内容,以获得完整的认证消息。
[0090] 认证设备显示一个或更多个图像
[0091] 认证设备将一个或更多个图像显示在其显示器上。在一些实施方式中,认证设备 显示多于一个图像,并且以在特定量的时间内显示多个图像中的每个图像的方式循环通过 这些图像。这具有以下优点:对于给定的显示分辨率可以比单个图像传递更多的数据(这 在还需要传递证书的情况下会特别有利)或者对于给定的数据大小,具有更低的分辨率的 更便宜的显示器可以用于认证设备。
[0092] 访问设备捕捉一个或更多个图像。
[0093] 用户保持认证设备处在访问设备的相机的前方。在一些实施方式中,一个或更多 个图像仅包括单个图像。这具有用户必须保持认证设备处在照相器的前面的时间更短的有 点。
[0094] 访问设备获取认证设备的一个或更多个图片或影像,该一个或更多个图片或影像 显示对所获得的非对称密码学运算的结果的数字表示进行编码的一个或更多个图像。
[0095] 在一些实施方式中,访问设备可以对如何保持认证设备处在访问设备的前方提供 指导,和/或可以针对成功地捕捉到由认证设备显示的图像向用户提供反馈。例如,在一些 实施方式中,访问设备可以显示其捕捉的图像,以使得用户可以查看访问设备如何观察认 证设备及其显示的图像。在一些实施方式中,在访问设备在捕捉由认证设备显示的图像时 遇到问题的情况下,例如,在用户相对于理想位置以太倾斜、或太近、或太远、或太偏离的方 式保持认证设备处在访问设备的相机的前方的情况下,访问设备可以尝试诊断捕捉问题的 原因,并且访问设备可以提示用户如何解决该问题。例如,访问设备可能检测到由于用户以 不足以平行于相机的图像平面的方式来保持认证设备导致图像严重失真,从而访问设备可 以提示用户倾斜认证设备以使其更加平行于相机的图像平面;或者访问设备可能检测到用 户保持认证设备太远离于相机,从而可以提示用户保持认证设备更靠近相机;或者访问设 备可能检测到由认证设备显示的图像的一部分在访问设备的相机的视场之外,从而可以提 示用户移动认证设备使其更朝向相机的视角的中心。在一些实施方式中,访问设备可以通 知用户:已成功地捕捉到由认证设备显示的一个或更多个图像并且成功地对其进行解码, 以使得用户知道何时不必保持认证设备处在相机的前方。
[0096] 测试模式
[0097] 在一些实施方式中,认证设备能够生成一个或更多个图像,该一个或更多个图像 可以为特定格式,并且可以例如在测试模式中使用该一个或更多个图像,以例如帮助访问 设备或应用诊断在捕捉由认证设备显示的图像的过程中的问题。
[0098] 检索认证消息。
[0099] 根据所捕捉的图片或影像,重构对认证消息进行编码的一个或更多个图像。对所 重构的图像进行解码,以检索认证消息。
[0100] 验证认证消息。
[0101] 然后,可以验证所检索到的认证消息。验证所检索到的认证消息包括若干步骤:验 证包含在所检索到的认证消息中的数据元素的数量,并且对这些数据元素进行验证。包含 在所检索到的认证消息中的待被检索和验证的数据元素包括非对称密码学运算的结果,并 且还可以包括与输入值相关的数据和/或与非对称密码学运算的结果在密码学上相关的 数据元素。
[0102] 检索和验证非对称密码学运算的结果。
[0103] 验证认证消息包括从所获得的认证消息中检索非对称密码学运算的结果,并且对 该非对称密码学运算的结果进行验证。
[0104] 检索非对称密码学运算的结果。
[0105] 在一些实施方式中,非对称密码学运算的包含在认证消息中的结果被部分地或全 部地加密。从认证消息中检索非对称密码学运算的结果可以包括对非对称密码学运算的结 果的在认证消息中被加密的部分进行解密。在一些实施方式中,这些经加密的部分中的一 些经加密的部分可能已由认证设备使用对称加密算法(例如,AES)进行加密,因此对这些 经加密的部分进行解密可能涉及使用对应的对称解密算法。在一些实施方式中,认证设备 使用其来对非对称密码学运算的结果的一部分进行加密的加密钥可以包括或来自于可以 存储在认证设备中并且与另一实体例如认证服务器进行共享的秘密数据元素。在一些实施 方式中,这些经加密的部分中的一些经加密的部分可能已由认证设备使用利用私钥参数化 了的非对称加密算法进行加密,并且对这些经加密的部分进行解密可能涉及使用利用与该 私钥对应的公钥参数化了的对应的非对称解密算法。在一些实施方式中,可以使用包含在 认证消息中的数据元素来检索该公钥。
[0106] 验证非对称密码学运算的结果
[0107] 在一些实施方式中,使用用于验证非对称密码学运算的结果的标准方法来执行对 非对称密码学运算的结果的验证。在一些实施方式中,结果包括使用私钥和非对称密码学 算法生成的电子签名或数字签名,并且验证该结果可以包括使用非对称密码学算法和与用 于生成签名的私钥对应的公钥来验证签名。在一些实施方式中,验证包括使用与假定使用 其来生成非对称密码的私钥相关联的公钥。在一些实施方式中,验证包括使用非对称密码 学算法和与假定使用其来生成非对称密码的私钥相关联的公钥对非对称密码进行解密。在 一些实施方式中,验证非对称密码学运算的结果可以包括验证与假定使用其来生成非对称 密码的私钥相关联的公钥相关的证书或证书链。可以使用现在技术中已知的证书验证方法 来进行对证书或证书链的该验证。
[0108] 获得公钥。
[0109] 在一些实施方式中,使用从认证消息中检索到的数据元素来确定公钥和/或与公 钥对应的证书。例如,在一些实施方式中,公钥和/或证书可以包含在认证消息中,并且可 以从认证消息中检索该公钥和/或证书。在其他实施方式中,数据元素可以包括涉及公钥 或证书的参考值。例如,参考值可以包括使得能够从服务器检索公钥和/或证书的URL,或 者参考值可以包括可以用于从数据库检索公钥和/或证书的索引。参考值可以例如包括证 书序列号或执行非对称密码学运算的单独的安全设备或认证设备的序列号。在一些实施方 式中,认证消息可以包括与用户相关的数据元素(例如,用户名或用户的国家id号),并且 可以使用该用户相关数据元素来例如从数据库中检索公钥和/或证书。
[0110] 处理非对称密码学运算的结果的缺失位。
[0111] 在一些实施方式中,认证消息可以基本上包括非对称密码学运算的全部结果。在 一些实施方式中,非对称密码学运算的结果的每个位被包含在认证消息中。在一些实施方 式中,非对称密码学运算的结果的少数位(例如,4位)不包含在认证消息中。在一些实施 方式中,认证消息包括非对称密码的除该非对称密码的少数位之外的所有位。在不管缺失 位的情况下验证非对称密码学运算的结果可以包括将所有可能的值逐个分配给缺失位,并 且逐个验证非对称密码学运算的结果的包含在认证消息中的部分与这些可能的值中的每 个的组合直到组合中的一个组合成功生效(非对称密码学运算的结果的有效可以认为成 功)或者直到已尝试了所有的组合而没有成功。
[0112] 重构输入值。
[0113] 在一些实施方式中,确定由认证设备提交给非对称密码学运算的输入值的参考 值,并且将该参考值用于验证非对称密码学运算的结果。在一些实施方式中,输入值被包含 在认证消息中,并且参考值被设定成包含在认证消息中的该输入值。在一些实施方式中,输 入值被包含在认证消息中,并且可以对该经加密的输入值进行解密以获得用于输入值的参 考值的参考值。在一些实施方式中,以与认证设备得出输入值相类似的方式从一个或更多 个数据元素得出参考值,并且确定参考值可以包括确定认证设备使用其来生成输入值的一 个或更多个数据元素的一个或更多个值。在一些实施方式中,可以通过从认证消息中检索 指示这些数据元素中的一些数据元素的一个或更多个值的数据元素来确定这些值。在一些 实施方式中,指示认证设备使用其来生成输入值的数据元素的值的这些数据元素可能已由 认证设备进行加密,并且经加密的值可能已包含在认证消息中。然后,确定输入值的参考值 可以包括从认证消息中检索这些经加密的值,并且在使用这些加密的值来生成参考值前对 这些加密的值进行解密。
[0114] 在验证非对称密码学运算的过程中使用输入值的参考值。
[0115] 在一些实施方式中,可以将参考值用于验证非对称密码学运算的包含在认证消息 中的结果。例如,在一些实施方式中,验证实体可以使用与认证设备的私钥(即,认证设备 使用其来生成非对称密码学运算的结果的私钥)相关联的公钥对非对称密码学运算的包 含在认证消息中的结果执行非对称密码学算法。然后,可以将所得到的值与输入值的参考 值相比较。例如,在一些实施方式中,可以通过认证设备利用私钥和非对称密码学算法对输 入值进行加密获得非对称密码学运算的包含在认证消息中的结果,并且认证实体可以通过 利用与认证设备的私钥对应的公钥对该结果进行解密并且将解密值与输入值的参考值相 比较来验证非对称密码学运算的结果。在一些实施方式中,可以通过认证设备首先使用输 入值来生成摘要信息(这可以例如包括使用散列算法如SHA-1对输入值进行散列),接着利 用私钥和非对称密码学算法对摘要值进行加密来获得非对称密码学运算的包含在认证消 息中的结果,并且验证实体可以通过利用与认证设备的私钥对应的公钥对该结果进行解密 并且将解密值与输入值的参考值相比较或者将解密值与从参考值例如使用输入值的参考 值生成的参考散列值或参考摘要值得到的值相比较来验证非对称密码学运算的结果。
[0116] 验证与输入值相关的数据。
[0117] 在一些实施方式中,认证消息还可以包括与被提交给非对称密码学运算以生成非 对称密码学运算的结果的输入值相关的数据,并且验证认证消息还可以包括对与输入值相 关的这些数据进行验证。在一些实施方式中,验证与输入值相关的这些数据包括验证这些 数据元素中的一个或更多个数据元素是否具有可接受的值。例如,在一些实施方式中,认证 设备可以使用实时时钟的值和/或计数器的值构造输入值,并且可以将与这些值相关的数 据包含在认证消息中,并且验证这些数据可以包括验证这些数据是否落入期望值的可接受 的范围内。
[0118] 在一个示例中,认证设备可以使用其实时时钟的值来确定输入值,并且可以将给 出该值的指示的数据元素(例如,在一种实施方式中为确定输入值的时间的年、月、日、小 时、分钟、秒,或者在另一实施方式中仅为确定输入值的时间的小时、分钟和秒)包含在认 证消息中。验证实体可以验证呈现在认证消息中的数据元素是否指向下述时间值,该时间 值与认证实体所知的期望生成认证消息时的实际实时时间偏离不超过例如一分钟。
[0119] 在另一示例中,认证设备可以使用其值在每次使用后单调增加(相应地减小)的 计数器的值来确定输入值,并且可以将给出该计数器值的指示的数据元素(例如,在一种 实施方式中为计数器的全部值,或者在另一实施方式中仅为该计数器的某一数量的最低有 效位或数字例如最低有效4位或者列出有效的2个数位)包含在认证消息中。验证实体可 以参照确实比最后知道的计数器的值更大(相对更小)的计数器值来验证认证消息中是否 存在该数据元素。
[0120] 在一些实施方式中,认证设备可以例如使用利用认证设备中的秘密数据元素和可 以包括或者可以得自于例如挑战值、和/或时间值、和/或计数器值、和/或事务处理数据 的动态变量生成一次性口令的已知的算法(例如可以由已知的强认证令牌使用)来生成一 次性口令,并且输入值可以包括该一次性口令。在该实施方式中,验证输入值可以包括使用 例如用于验证一次性口令的已知的验证方法对该一次性口令进行验证。在一些实施方式 中,这可以向验证实体证明:有效的认证设备被用来生成输入值。在一些实施方式中,这可 以向验证实体证明:特定认证设备被用来生成输入值。
[0121] 验证与输入值在密码学上相关的数据元素。
[0122] 在一些实施方式中,认证消息还可以包括与输入值在密码学上相关的数据(即, 认证设备通过将与输入值相关的数据与秘密数据元素在密码学上相组合而生成的数据), 并且验证认证消息还可以包括对这些数据元素进行验证。例如,在一些实施方式中,认证消 息可以包括对与输入值相关的数据的电子签名,并且验证实体可以验证该电子签名。在一 些实施方式中,认证消息可以包括认证设备使用利用对称秘密钥参数化了的对称密码学算 法对与输入值相关的数据生成的MAC,并且验证实体可以例如通过使用其自身对认证设备 的秘密钥的拷贝对与输入值相关的数据的参考值生成参考MAC,并且将该参考MAC与包含 在认证消息中的MAC相比较来验证该MAC。在一些实施方式中,可以间接地验证与输入值在 密码学上相关的数据元素。例如,在一些实施方式中,认证消息可以包括与已由认证设备加 密的输入值相关的数据元素,并且验证实体可以对包含在认证消息中的这些经加密的数据 元素进行解密并且可以在随后验证认证消息的步骤中间接地进行对这些数据元素的验证, 其中可以使用这些解密的数据元素。例如,在一些实施方式中,认证消息可以包括经加密的 输入值或用于生成输入值的经加密的数据元素(例如,认证设备的实时时钟的时间值或者 认证设备的计数器值),并且验证实体可以对这些数据元素进行解密并且利用解密的数据 元素获得输入值的参考值,然后使用该输入值的参考值对非对称密码学运算的包含在认证 消息中的结果进行验证。
[0123] 在一些实施方式中,验证与输入值在密码学上相关的数据元素可以向验证实体证 明:有效的认证设备被用来生成输入值。在一些实施方式中,验证与输入值在密码学上相关 的数据元素可以向验证实体证明:特定的认证设备被用来生成输入值。在一些实施方式中, 接受认证消息的必要条件可以是:利用有效的认证设备生成该认证消息。在一些实施方式 中,接受用于特定用户的认证消息的必要条件可以是:利用分配给特定用户的特定认证设 备生成该认证消息。
[0124] 验证与非对称密码学运算的结果在密码学上相关的数据元素。
[0125] 在一些实施方式中,认证消息还包括与非对称密码学运算的结果在密码学上相关 的数据元素(即,由认证设备通过将非对称密码学运算的结果的一部分与秘密数据元素在 密码学上相组合而生成的数据元素),并且验证认证消息还可以包括对这些数据元素进行 验证。
[0126] 在一些实施方式中,认证设备使用利用可以存储在认证设备中的秘密钥参数化了 的密码学算法对非对称密码学运算的结果(至少一部分)生成电子签名,并且认证设备可 以将该电子签名包含在认证消息中,并且验证实体可以验证该电子签名。
[0127] 在一些实施方式中,秘密数据元素可以例如是在认证设备与验证实体(例如,验 证服务器)之间共享的秘密(如对称密码学钥),并且验证这些数据元素包括验证实体使 用与用于生成这些数据元素的密码学算法在数学上相关的密码验证算法和其对秘密数据 元素的拷贝。例如,在一些实施方式中,可以由认证设备使用利用秘密数据元素参数化了的 对称密码学算法来生成这些数据元素,并且验证这些数据元素可以包括:验证实体使用相 同的对称密码学算法和秘密数据元素的拷贝来生成这些数据元素的参考值,并且将与非对 称密码学运算的结果在密码学上相关的并且包含在认证消息中的数据元素与该参考值相 比较。例如,在一些实施方式中,认证消息还可以包括认证设备可以使用秘密数据元素对非 对称密码学运算的结果(一部分)生成的MAC(例如,通过使用基于由秘密数据元素参数化 了的对称密码学算法的MAC算法),并且验证该MAC可以包括:验证实体使用相同的MAC算 法并且使用其自身对秘密数据元素的拷贝对非对称密码学运算的包含在认证消息中的结 果(相同的部分)生成参考MAC,并且认证实体将该参考值与包含在认证消息中的MAC相比 较。
[0128] 在一些实施方式中,与非对称密码学运算的结果在密码学上相关的这些数据元素 可能通过认证设备对非对称密码学运算的结果的一部分进行加密生成,从而验证这些数据 元素可以包括:验证实体对这些数据元素进行解密并且将解密的部分与非对称密码学运算 的包含在认证消息中的结果的相应部分相比较。
[0129] 在一些实施方式中,与非对称密码学运算的结果在密码学上相关的这些数据元素 可以包括非对称密码学运算的结果中已由认证设备加密的一部分或全部,并且可以通过验 证实体对这些部分进行解密以获得非对称密码学运算的结果,并且随后以上文所述的方式 对解密的非对称密码学运算的结果进行验证来间接地进行对这些数据元素的验证。
[0130] 在一些实施方式中,验证与非对称密码学运算的结果在密码学上相关的数据元素 可以向验证实体证明:有效的认证设备被用来生成输入值。在一些实施方式中,验证与非对 称密码学运算的结果在密码学上相关的数据元素可以向验证实体证明:特定的认证设备被 用来生成非对称密码学运算的结果。
[0131] 在一些实施方式中,可以由用户使用其来访问应用的访问设备来执行用于从所捕 捉的图片或影像中检索认证消息的步骤和用于验证所检索到的验证消息的步骤中的一些 步骤或所有步骤。在一些实施方式中,可以由托管用户所访问的应用的计算设备来执行这 些步骤中的一些步骤或所有步骤。这例如可以包括由用户的访问设备通过计算机网络访问 的远程应用服务器。在一些实施方式中,可以由可以与用户的访问设备和/或与托管应用 的计算设备通信(例如,通过计算机网络)的单独的安全设备来执行这些步骤中的一些步 骤或所有步骤。
[0132] 在一些实施方式中,可以使用验证认证消息的结果,来例如对用户进行认证、或者 来确定用户是否批准某一事务处理数据。这又可以用来确定是否授权用户进行访问或者是 否接受特定事务处理。
[0133] 有益效果
[0134] 本发明的重要优点在于其使得能够使用基于非对称密码学的安全机制来保护用 户访问电子应用的安全。更特别地,本发明使得即使在用户借助于不适于或不适用于与包 含用户的私钥的用户的单独的安全设备通信的访问设备来访问应用的情况下也能够使用 非对称密码学来保护应用的安全。例如,如果用户具有PKI智能卡但是利用不包含智能卡 读取器和/或不包含用于连接智能卡的通信接口的计算机或智能手机来访问应用,和/或 如果不方便将软件(例如,驱动器)安装到访问设备以与智能卡读取器和用户的PKI智能 卡通信。本发明在用户通过不具有与用户的PKI智能卡通信的智能卡读取器但是具有相机 的智能手机访问应用时,使得例如远程应用可以获得由PKI智能卡(例如,电子国家ID卡, 其中可以合法地绑定数字签名)生成的对事物处理数据的数字签名。在一些情况下,例如, 如果假定用户已经具有能够执行非对称密码学运算的安全设备(例如PKI智能卡),则本发 明使得能够保护用户访问应用的安全而不需要分配额外的个性化安全设备例如通常的强 认证令牌并且不要求用户的访问设备配备有下述硬件和软件(例如,连接到或嵌入在访问 设备中的智能卡读取器和智能卡驱动器以及安装在访问设备上的密码库软件),通常这些 访问设备需要该硬件和软件来与用户的安全设备进行接口。
[0135] 本发明的一些实施方式的另一显著优点在于其可以使得应用能够验证非对称密 码学运算的结果(例如数字签名)是不是使用与用户行交互的安全设备在执行非对称密码 学运算的上下文中生成。
[0136] 本发明的更多的优点对本领域的计算人员而言是明显的。

【专利附图】

【附图说明】
[0137] 如附图所示,根据以下对本发明的几个实施方式的更具体的描述,本发明的前述 和其他的特征和优点将会明显。
[0138] 以下描述和附图详细阐明了所要求保护的主题的某些说明性方面。然而,这些方 面仅指示了可采用本发明的原理的各种方式中的几种,而所要求保护的主题意在包括所有 这些方面及其等价方面。当结合附图考虑以下本发明的详细描述时,所要求保护的主题的 其他优点和新颖性特征将变得明显。
[0139] 下面结合附图所阐述的详细说明意在作为本发明的一些实施方式的说明而非意 在表示可以构造和/或利用本发明的唯一形式。本说明书结合所示出的实施方式阐明了用 于构造和操作本发明的功能和步骤顺序。然而,应当理解的是,相同或等同的功能和顺序可 以通过意在被包括在本发明的范围内的不同的实施方式进行。
[0140] 参照附图来描述所要求保护的主题,其中相同的附图标记自始至终用来指代相同 的元件。在以下描述中,出于解释的目的,阐述了许多特定的细节以便提供对本发明的透彻 理解。可以明显的是可以在没有这些特定细节的情况下实施所要求保护的主题。在其他实 例中,以框图的形式示出了公知的结构和装置,以便利于描述本发明。
[0141] 图1示意性地示出了根据本发明的一方面的设备。
[0142] 图2示意性地示出了根据本发明的一方面的另一设备。
[0143] 图3示意性地示出了根据本发明的一方面的用于保护用户与应用之间的事务处 理的安全的系统。
[0144] 图4示意性地示出了根据本发明的一方面的用于保护用户与应用之间的事务处 理的安全的方法。
[0145] 图5a和图5b示意性地示出了根据本发明的一方面的用于通过包含认证设备的装 置获得非对称密码学运算的结果和通过该装置生成包含如此获得的非对称密码学运算的 结果的认证消息的方法。
[0146] 图6示意性地示出了根据本发明的一方面的用于验证从一个或更多个图像检索 到的并且包含非对称密码学运算的结果的认证消息的方法。

【具体实施方式】
[0147] 下面论述本发明的一些实现。虽然论述了特定实现,但是应当理解这仅是出于说 明的目的。相关领域的技术人员将认识到在不脱离本发明的精神和范围的情况下可以使用 其他的部件和配置。
[0148] 图1示出了根据本发明的一方面的认证设备(100)。设备包括一个或更多个数 据处理部件(150)、一个或更多个存储器部件(160)以及显示器(130)。可选地,设备可以 包括实时时钟(170)、声学输入接口(110)、手动用户输入接口(120)和/或光学输入接口 (140)。设备(100)适于基于非对称密码学来生成安全值,并将这些安全值编码在一个或更 多个图像(135)中并且将这些图像显示在显示器(130)上。
[0149] 一个或更多个数据处理部件(150)可以包括微控制器和/或微处理器和/或密码 协处理器。一个或更多个数据处理部件(150)可以包括一个或更多个处理部件。这些处理 部件可以包括微芯片、集成电路、微控制器、微处理器、FPGA(现场可编程门阵列)、ASIC(专 用集成电路)等。一个或更多个数据处理部件(150)可以包括适于构造输入值的部件。输 入值可以从由实时时钟(170)提供的时间值、保存在存储器(150)中的计数器值、挑战和/ 或通过声学输入接口(110)、手动用户输入接口(120)和/或光学输入接口(140)获得的某 些事务处理数据值中的一个或更多个得出。一个或更多个数据处理部件(150)可以包括适 于根据非对称密码学算法对输入值执行非对称密码学运算并且使用公-私钥对中的私钥 对该非对称密码学算法进行参数化的部件。一个或更多个数据处理部件(150)可以包括下 述部件,该部件适于生成该非对称密码学运算的结果的数字表示,将该表示编码到一个或 更多个数字图像(135)中并且将该一个或更多个图像(135)显示在其显示器(130)上。
[0150] 显不器(130)可以包括图形显不器。显不器(130)可以包括IXD。在一些实施方 式中,显示器(130)可以包括触摸屏。在一些实施方式中,显示器可以具有最低限度为1000 像素的分辨率。在一些实施方式中,显示器可以具有最低限度为2000像素的分辨率。在一 些实施方式中,显示器可以是黑白显示器。在一些实施方式中,显示器能够显示灰度等级。 在一些实施方式中,显示器可以是彩色显示器。
[0151] 存储器部件(160)可以包括非易失性存储器。存储器部件(160)可以包括一个或 更多个存储器部件,包括RAM(可以备有电池)、ROM、EEPR0M、闪存或其他类型的存储器部 件。存储器部件(160)可以包括安全防篡改存储器。存储器部件(160)可以适于存储秘密 数据如PIN或密码学钥。存储器部件(160)可以适于存储公-私钥对中的一个或更多个私 钥。存储器部件(160)可以适于存储与所存储的私钥相关联的一个或更多个证书或证书 链。存储器部件(160)可以适于存储一个或更多个对称密码学钥。存储器部件(160)可以 适于存储一个或更多个秘密数据元素。可以与另一实体例如认证服务器共享存储在存储器 部件(160)中的秘密数据元素中的一个或更多个。
[0152] 手动用户输入接口(120)可以适于使得用户能够输入信息。由用户输入的信息可 以包括PIN值、挑战值和/或某些事物处理数据的值。
[0153] 图2示出了根据本发明的一方面的认证设备(101)。装置包括一个或更多个数据 处理部件(151)、一个或更多个存储器部件(161)以及显示器(131)。设备(101)包括与第 二设备(102)例如单独的安全装置通信的数字接口(182)。可选地,装置可以包括实时时 钟(171)、声学输入接口(111)、手动用户输入接口(121)和/或光学输入接口(141)。设 备(101)适于基于非对称密码学来生成安全值,并将这些安全值编码在一个或更多个图像 (135)中并且将这些图像显示在显示器(131)上。
[0154] 一个或更多个数据处理部件(151)可以包括微控制器和/或微处理器和/或密码 协处理器。一个或更多个数据处理部件(151)可以包括一个或更多个处理部件。这些处理 部件可以包括微芯片、集成电路、微控制器、微处理器、FPGA(现场可编程门阵列)、ASIC(专 用集成电路)等。
[0155] 一个或更多个数据处理部件(151)可以包括适于构造输入值的部件。输入值可以 从由实时时钟(171)提供的时间值、保存在存储器(151)中的计数器值、挑战和/或通过声 学输入接口(111)、手动用户输入接口(121)和/或光学输入接口(141)获得的某些事务处 理数据值中的一个或更多个得出。一个或更多个数据处理部件(151)可以包括适于将输入 值通过接口(182)提交给第二设备例如单独的安全设备、适于根据非对称密码学算法对输 入值执行非对称密码学运算并且使用公-私钥对的私钥对该非对称密码学算法进行参数 化从而获得该非对称密码学运算的结果的部件。一个或更多个数据处理部件(151)可以包 括下述部件,该部件适于生成该结果的数字表示,将该表示编码到一个或更多个数字图像 (135)中并且将该一个或更多个图像(135)显示在其显示器(131)上。
[0156] 在一些实施方式中,可以使用由第二设备提供的数据元素来构造输入值。例如,在 一些实施方式中,可以使用第二设备中的计数器的值或实时时钟的值来构造输入值。在一 些实施方式中,可以全部地或部分地由第二设备构造输入值。在一些实施方式中,可以由第 二设备使用第二设备通过接口(182)获得的数据元素例如挑战(可以已由用户提供)或事 务处理数据(可以已由用户提供)来构造输入值。在一些实施方式中,可以由第二设备仅 使用在第二设备内部的数据元素例如包含在第二设备中的计数器的值和/或实时时钟的 值来构造输入值。在一些实施方式中,第二设备使用第二设备从认证装置(101)获得的数 据元素与第二设备内部的数据元素的组合来构造输入值。
[0157] 显不器(131)可以包括图形显不器。显不器(131)可以包括IXD。在一些实施方 式中,显示器(131)可以包括触摸屏。在一些实施方式中,显示器可以具有最低限度为1000 像素的分辨率。在一些实施方式中,显示器可以具有最低限度为2000像素的分辨率。在一 些实施方式中,显示器可以是黑白显示器。在一些实施方式中,显示器能够显示灰度等级。 在一些实施方式中,显示器可以是彩色显示器。
[0158] 数字接口(182)可以包括智能卡接口。
[0159] 第二设备(102)可以包括单独的安全装置如智能卡或USB钥。单独的安全设备可 以是PKI智能卡,或者单独的安全设备可以是包含智能卡芯片的USB钥。在一些实施方式 中,单独的安全装置可以存储公-私钥对中的私钥。在一些实施方式中,单独的安全装置可 以存储证书和/或公-私钥对中的公钥。在一些实施方式中,单独的安全装置可以适于利 用存储在单独的安全装置上的私钥来执行非对称密码学运算。在一些实施方式中,这些非 对称密码学运算可以包括利用私钥来生成数字签名和/或利用私钥来对数据进行加密或 解密。在一些实施方式中,单独的安全装置可以包括小尺寸的智能卡(例如,如由IS0/IEC 7810限定的SM(用户身份模块)卡的尺寸或ID-100卡的尺寸),并且设备(101)可以包 括与移动电话的用于接纳SIM卡的内部槽类似的用于接纳安全装置的内部槽。在一些实施 方式中,单独的安全装置可以包括信用卡尺寸的智能卡(例如,如由IS0/IEC 7810限定的 ID-1尺寸的智能卡)。在一些实施方式中,设备(101)可以包括外部可访问的槽,以使得能 够方便地接纳或移除单独的安全装置。例如,设备(101)可以包括与通常P0S(销售点)支 付终端的槽类似的开放智能卡槽,用户可以容易地将标准信用卡尺寸的智能卡插入在该开 放智能卡槽中,并且用户可以容易地从该开放智能卡槽中抽出标准信用卡尺寸的智能卡。
[0160] 数字接口(182)可以包括用于与第二设备(102)通信的硬件和软件。例如,数字 接口(182)可以包括用于与第二设备(102)交换命令的驱动器。例如,数字接口(182)可 以包括用于与智能卡或与包括智能卡芯片的USB钥交换智能卡APDU (应用协议数据单元) 的驱动器。在一些实施方式中,数字接口(182)可以适于支持在IS0/IEC 7816的规范中描 述的协议和/或命令。在一些实施方式中,这些命令可以包括用于选择安全设备上的应用 的命令、或者用于从安全设备中检索数据的命令、或者用于通过安全设备提交用于验证的 PIN的命令、或者用于选择安全环境的命令、或者用于指示安全设备执行密码学运算如非对 称密码学运算的命令、或者用于生成数字签名或电子签名的命令。
[0161] 存储器部件(161)可以包括非易失性存储器。存储器部件(161)可以包括一个或 更多个存储器部件,包括RAM(可以备有电池)、ROM、EEPROM、闪存或其他类型的存储器部 件。存储器部件(161)可以包括安全防篡改存储器。存储器部件(161)可以适于存储安全 数据如PIN或密码学钥。存储器部件(161)可以适于存储公-私钥对中的一个或更多个私 钥。存储器部件(161)可以适于存储与所存储的私钥相关联的一个或更多个证书或证书 链。存储器部件(161)可以适于存储一个或更多个对称密码学钥。存储器部件(161)可以 适于存储一个或更多个秘密数据元素。可以与另一实体例如认证服务器共享存储在存储器 部件(161)中的秘密数据元素中的一个或更多个。
[0162] 手动用户输入接口(121)可以适于使得用户能够输入信息。由用户输入的信息可 以包括PIN值、挑战值和/或某些事物处理数据的值。
[0163] 在一些实施方式中,认证设备(100或101)如上文结合图1或图2描述的设备是 专用硬件设备。在一些实施方式中,认证设备可以在方法中专用于保护用户访问应用的安 全或保护用户与这种应用进行交互的安全。在一些实施方式中,认证设备的主要目的是在 方法中被使用以保护用户访问应用的安全或保护用户与这种应用进行交互的安全。在一些 实施方式中,为了保证认证设备专用于其作为安全设备的用途,认证装置可以适于使得可 以更改其固件。为了保证认证设备专用于其作为安全设备的用途,对认证设备的固件的任 何改变或更改仅可以通过安全固件更新协议进行,该安全固件更新协议被设计成确保仅授 权控制的可信方能够更新或改变认证设备的固件。这使得控制可信方能够确保没有下述固 件更新发生,该固件更新会取消认证设备专用于其在方法中用于保护用户访问应用的安全 或保护用户与这种应用进行交互的安全的用途。具有智能卡读取能力但是其在例如用户可 以在不具有控制可信方的授权的情况下更新软件的意义上是开放的通用目的设备不能够 当作专用设备。用户可以将未经控制可信方授权的额外软件安装到其中的设备不能够当作 专用设备。其主要目的是提供电信设施的设备不能够当作在方法中专用于保护用户访问应 用的安全或保护用户与该应用进行交互的安全的设备。通用目的PC、膝上型计算机、平板计 算机及智能电话不能够当作专用设备。
[0164] 在一些实施方式中,认证设备(100或101)如上文结合图1或图2描述的设备是安 全硬件设备。在一些实施方式中,安全硬件设备适于确保检测和/或防止试图篡改安全硬 件设备。在一些实施方式中,安全硬件设备的壳体适于防止打开壳体和/或增加用户注意 到试图通过使壳体形变(篡改证据)打开壳体的概率。在一些实施方式中,可以将共同组 成壳体的部分焊接在一起或粘在一起,以使得拆卸这些部分通常会导致壳体的明显形变。 在一些实施方式中,安全硬件设备包括检测打开壳体的开关。在一些实施方式中,安全硬件 设备适于在检测到试图篡改时采取适当的动作。在一些实施方式中,安全硬件设备可以在 检测到试图篡改该安全硬件设备时擦除某些敏感数据如密码学钥,或者安全硬件设备可以 (可能不可逆地)进入错误模式或者停止起作用。
[0165] 安全硬件设备可以具有安全用户输出接口(例如,安全显示器)和安全输入接口 (例如,安全键盘)。在一些实施方式中,安全硬件设备具有安全的输出接口,是因为该输出 接口完全由安全硬件设备控制并且安全硬件设备外部的处理不可以使用该输出接口将数 据或信息呈现给用户,除非该处理由安全硬件设备授权和控制。在一些实施方式中,安全硬 件设备具有安全的输入接口,是因为该输入接口完全由安全硬件设备控制并且安全硬件设 备外部的处理不可以使用该输入接口从用户获得数据或信息,除非该处理由安全硬件设备 授权和控制。在一些实施方式中,安全用户输入接口和安全硬件输出接口的安全性通过不 允许对其固件进行任何改变的安全硬件装置维持,或者通过提供仅允许通过安全协议对安 全硬件设备的固件进行改变的安全固件更新机制维持,该全协议使得安全硬件设备仅接受 来自可信源的授权的固件更新。
[0166] 在一些实施方式中,认证设备(100或101)可以包括用于与计算设备例如用户的 访问装置通信的额外数字通信接口。该额外通信接口可以例如包括USB接口和/或无线数 字通信接口和/或红外接口。在这些实施方式中的一些实施方式中,可以对认证设备进行 配置使其还能够用作为连接的智能卡读取器(在一些实施方式中作为安全连接的智能卡 读取器)。在这些实施方式中的一些实施方式中,认证设备可以包括防火墙,以筛选通过额 外数字通信接口进入的命令并且根据某些安全相关标准来阻挡如此进入的命令或让如此 进入的命令通过。
[0167] 在一些实施方式中,为了确保安全,认证装置(100或101)不具有这种额外数字通 信接口。在一些实施方式中,为了确保安全,使得能够将用户数据输入到认证装置中的输入 接口仅为手动用户输入接口。
[0168] 在一些实施方式中,读取器具有重量和空间度量,以使得可以将认证设备当作便 携式手持设备。在一些实施方式中,读取器具有重量和空间度量,以使得可以以适当的成本 通过邮寄将认证装置发送给用户。例如,在一些实施方式中,认证装置可以具有小于2cm的 厚度、小于l〇cm的宽度、小于15cm的长度以及小于200克的重量。在其他实施方式中,认 证装置可以具有小于1. 5cm的厚度、小于7cm的宽度、小于13cm的长度以及小于110克的 重量。在一些实施方式中,认证装置的长度和宽度可以分别超出标准全尺寸信用卡的长度 和宽度不多于百分之10。在一些实施方式中,认证装置可以具有标准全尺寸信用卡的长度 和宽度。在一些实施方式中,认证装置可以具有标准全尺寸信用卡的在适用于标准全尺寸 信用卡的公差内的长度、宽度以及厚度(例如,具有由IS0/IEC 7810规定的ID-1尺寸的智 能卡的尺寸)。
[0169] 在一些实施方式中,认证装置包括自主电源。在一些实施方式中,电源可以包括电 池。在一些实施方式中,电池是可更换的。
[0170] 在一些实施方式中,认证装置可以支持EMV (欧洲支付卡-万事达卡-维萨信用 卡)智能卡,并且认证装置可以支持CAP(芯片认证协议)规范或者与CAP规范兼容。
[0171] 根据本
【发明内容】
的方面,提供了包括认证设备和单独的安全设备例如结合图2描 述的认证设备和单独的安全设备的装置。
[0172] 图3示出了根据本发明的一方面的用于保护用户(360)与应用之间的事物处理的 安全的系统。系统包括认证设备(320)和访问设备(330)。系统还可以包括应用主机(340)。 系统还可以包括认证服务器(350)。系统还可以包括单独的安全设备(310)。
[0173] 认证装置(320)可以包括结合图1和图2描述的认证装置(100、101)之一。认证 装置(320)具有用于显示图像的显示器。认证装置(320)具有用于与用户进行交互的用户 接口。认证装置(320)可以具有用于与例如单独的安全装置(310)通信的通信接口。认证 装置(320)适于使用根据本发明的一方面的方法来生成认证消息。该方法可以例如包括结 合图5描述的方法。认证装置(320)适于显示对认证消息进行编码的一个或更多个图像。
[0174] 访问设备(330)可以例如包括用户(360)可以使用其来访问应用的计算设备,例 如膝上型计算机或智能电话或平板计算机。访问设备(330)可以包括用于与用户(360)进 行交互的用户接口。访问设备(330)可以例如包括触摸屏或者显示器和键盘和/或鼠标。 访问设备(330)包括用于捕捉图像或影像的光学输入设备(331),如(数字)相机或CCD (电 荷耦合设备)。在一些实施方式中,访问设备可以包括用于将访问设备连接到计算机网络 (370)如互联网的通信接口。在一些实施方式中,访问设备通过计算机网络(370)连接到其 他计算设备例如应用主机计算机(340)和/或认证服务器(350)。
[0175] 应用主机计算机(340)包括计算设备,该计算设备托管用户(360)正在访问的应 用中的至少一部分应用。应用主机计算机(340)可以包括通过计算机网络(370)如互联网 连接到访问设备的远程应用服务器。在一些实施方式中,应用主机计算机还可以连接到认 证服务器(350)。在一些实施方式中,应用主机计算机(340)可以适于执行根据本发明的一 方面的方法的一个或更多个步骤,以保护用户访问应用的安全。在一些实施方式中,该方法 可以包括结合图4和/或图6描述的方法。在一些实施方式中,应用可以是基于web的应 用,并且应用主机计算机可以包括web服务器。
[0176] 在一些实施方式中,用户访问的应用可以包括远程金融应用例如互联网银行应 用。在一些实施方式中,应用可以是电子政务应用例如使得用户能够通过互联网提交纳税 申报的应用。
[0177] 图4示出了用于保护用户与应用之间的事务处理的安全的方法。方法包括以下 步骤:通过包括认证设备(例如,上述认证设备之一)的装置获得(410)非对称密码学运 算的结果;通过装置生成(420)包括如此获得的非对称密码学运算的结果的认证消息;通 过装置将认证消息编码(430)到一个或更多个图像中;通过装置将一个或更多个图像显示 (440)在认证设备的显示器上;通过访问设备捕捉(450)显示在认证设备的显示器上的一 个或更多个图像;从所捕捉到的一个或更多个图像中检索(460)经编码的认证消息;以及 验证(470)所检索到的认证消息。
[0178] 可以在公开本发明的先前的段落中找到关于在图4中示出的方法的步骤的更多 细节。
[0179] 图5a和图5b示出了通过包括认证设备(例如,上述认证设备之一)的装置获得 非对称密码学运算的结果的方法,以及通过装置生成包括所获得的非对称密码学运算的结 果的认证消息的方法。方法可以包括以下步骤:生成(510)输入值;将所生成的输入值提交 给(520)使用非对称密码学算法和公-私钥对中的私钥的非对称密码学运算;获得(530) 非对称密码学运算的结果;(可选地)将非对称密码学运算的结果与秘密数据元素在密码 学上相组合(540),以获得与非对称密码学运算的结果在密码学上相关的数据元素;(可选 地)将与输入值相关的数据与秘密数据元素在密码学上相组合(550),以获得与输入值在 密码学上相关的数据元素;生成(560)认证消息;以及将认证消息编码(570)在一个或更 多个图像中。
[0180] 生成(510)输入值的步骤可以包括以下子步骤:(可选地)捕捉(511) -个或更 多个外部数据元素例如挑战或事务处理数据;(可选地)确定(512) -个或更多个内部数 据元素例如实时时钟的时间值或计数器值;从这些外部数据元素和/或内部数据元素得出 (513)输入值;以及(可选地)将这些外部数据元素和/或内部数据元素中的一些数据元 素与秘密数据元素在密码学上相组合(514)。
[0181] 将所生成的输入值提交给(520)非对称密码学运算的步骤可以包括将输入值(或 输入值的先导(precursor)值)提交(521)给单独的安全设备的(可选的)子步骤。
[0182] 获得(530)非对称密码学运算的结果的步骤可以包括以下子步骤:通过执行非对 称密码学运算(通过认证设备自身或通过单独的安全设备)来生成(531)非对称密码学运 算的结果和(可选地)从单独的安全设备中检索(532)非对称密码学运算的结果。
[0183] 生成(560)认证消息的步骤可以包括以下子步骤:将非对称密码学运算的结果包 含(561)在认证消息中;(可选地)将输入值包含(562)在认证消息中;(可选地)将与非对 称密码学运算的结果在密码学上相关的数据元素包含(563)在认证消息中;(可选地)将 与输入值在密码学上相关的数据元素包含(564)在认证消息中;(可选地)将指示用户身 份的数据元素包含(565)在认证消息中;(可选地)将标识认证设备的数据元素包含(566) 在认证消息中;(可选地)将标识单独的安全设备的数据元素包含(567)在认证消息中;以 及(可选地)将公钥参考数据包含(568)在认证消息中,该公钥参考数据可以用于标识或 检索与用于生成非对称密码学运算的结果的私钥对应的公钥和/或该公钥参考数据可以 用于标识或检索与公钥相关联的证书或证书链。
[0184] 将认证消息编码(570)在一个或更多个图像中的步骤可以包括以下子步骤:(可 选地)添加(571)数据冗余以及(可选地)添加(572)序列信息。
[0185] 可以在公开本发明的先前的段落中找到关于在图5中示出的方法的步骤和子步 骤的更多细节。
[0186] 图6示出了用于对从由认证设备显示的一个或更多个图像中检索到的并且包括 非对称密码学运算的结果的认证消息进行验证的方法。方法可以包括以下步骤:使用非对 称密码学算法利用与用于生成非对称密码学运算的结果的私钥对应的公钥来验证(610) 非对称密码学运算的结果;(可选地)验证(620)与输入值相关的数据;(可选地)使用 (630)认证消息中的与认证设备的身份相关的数据元素来确定密码学钥的值;(可选地)对 与输入值在密码学上相关的数据元素进行验证¢40),其中在一些实施方式中使用在步骤 630中确定的密码学钥来进行验证;(可选地)对与非对称密码学运算的结果在密码学上相 关的数据元素进行验证¢50),其中在一些实施方式中使用在步骤630中确定的密码学钥 来进行验证。
[0187] 验证(610)非对称密码学运算的结果的步骤可以包括以下子步骤:从认证消息中 检索¢11)非对称密码学运算的结果,这又可以(可选地)包括对认证消息中的非对称密 码学运算的结果的经加密的部分进行解密(612);(可选地)处理(613)非对称密码学运算 的检索结果中的缺失位;获得(614)与用于生成非对称密码学运算的结果的私钥对应的公 钥;(可选地)对与公钥相关联的证书或证书链进行验证(615);将公钥和非对称密码学运 算的结果与非对称密码学算法一起使用¢16);(可选地)获得¢17)用于被用来生成非对 称密码学运算的结果的输入值的参考值;(可选地)使用(618)参考值,例如通过将参考值 与通过使用公钥和非对称密码学运算的结果以及非对称密码学算法获得的值相比较。
[0188] 可以在公开本发明的先前的段落中找到关于在图6中示出的方法的步骤和子步 骤的更多细节。
[0189] 方法的步骤的顺序
[0190] 在一种实施方式中,上述方法的一些步骤按以下顺序发生:首先生成(510)输入 值;然后将输入值提交给(520)非对称密码学运算;然后获得(410、530)非对称密码学运 算的结果;然后生成(420、560)认证消息;然后将认证消息编码(430、570)到一个或更多 个图像中;然后将一个或更多个图像显示(440)在认证设备的显示器上。在一些实施方式 中,在生成(510)输入值后和生成(420、560)认证消息前,认证设备可以(可选地)生成其 他数据元素如(540)与非对称密码学运算的结果在密码学上相关的数据元素和(550)与输 入值在密码学上相关的数据元素。
[0191] 在另一实施方式中,上述方法的一些步骤按以下顺序发生:首先认证设备显示对 以上述方式生成的认证消息进行编码的一个或更多个图像;然后通过访问设备的光学图像 捕捉设备(例如,相机)来捕捉一个或更多个图像;然后对一个或更多个图像进行解码以获 得认证消息;然后从认证消息中检索非对称密码学运算的结果;然后检索非对称密码学运 算的结果。在一些实施方式中,在认证设备生成认证消息和显示被编码到一个或更多个图 像中的认证消息前,生成挑战并且将挑战提供给用户。
[0192] 在一种实施方式中,按如下方式来使用本发明的各个方面,以保护例如互联网银 行应用的安全。
[0193] 用户使用用户的访问设备(例如,用户的PC或智能电话)上的web浏览器通过互 联网来访问远程应用如互联网银行网站。
[0194] 用户按如下方式获得访问。用户取得认证设备并且将他的或她的个人PKI智能卡 (个人PKI智能卡可以是由银行发行的电子国家ID卡或卡)插入到认证设备中。认证设备 生成输入值。在一些情况下,应用生成挑战并且提示用户将挑战输入到认证设备中。在一些 情况下,认证设备确定从其实时时钟得出的时间值。认证设备使用该挑战和/或时间值来 确定输入值。认证设备请求用户输入智能卡的PIN并且将PIN提交给智能卡进行验证。当 PIN验证成功时,认证设备将输入值发送给插入的PKI智能卡,并且指示智能卡生成对输入 值的数字签名。智能卡使用用于生成数字签名的标准PKI机制与安全地存储在智能卡中的 与用户相关联的私钥在输入值上生成数字签名。认证设备从智能卡接收数字签名。认证设 备还从智能卡接收用户的用于用户的私钥的证书,并且从证书中提取证书的序列号。认证 设备使用基于利用安全地存储在认证设备中的唯一对称秘密加密钥参数化了的对称加密 算法的0ΤΡ生成算法来生成一次性口令。认证设备将挑战和/或时间值以及从智能卡中获 得的数字签名的一部分用作为OPT算法的输入。认证设备将以下数据组装在认证消息中: 由智能卡生成的数字签名、所生成的0ΤΡ、(如果可用)时间值、证书的序列号以及认证设备 的序列号。认证设备将认证消息编码到单个图像中,在一些情况下该图像可以为黑白位图 的形式。认证设备将图像显示在其显示器上。用户保持认证设备的显示器位于访问设备的 相机的前方直到应用指示成功地捕捉到图像为止。
[0195] 应用捕捉显示在认证设备的显示器上的图像,并且应用对捕捉到的图像进行解码 以获得认证消息。应用提取组成认证消息的各种数据元素。应用服务器使用证书序列号在 包含用户的证书和公钥的中心数据库中检索证书和公钥。应用从证书数据中提取用户的身 份,并且确定用户的用户ID。在一些情况下,应用使用认证设备的序列号来验证该特定认证 设备是否已被分配给该特定用户。在一些情况下,应用验证该特定认证设备是否被列入黑 名单(例如,由于已知或怀疑该特定认证设备受损)。应用将以下数据元素转发给认证服 务器:从认证消息中检索到的0ΤΡ、从认证消息中检索到的认证设备的序列号、(如果可用) 应用提供给用户的挑战、(如果可用)从认证消息中从认证消息中检索到的时间值、从认证 消息中检索到的数字签名的用于生成OTP的可用位。认证服务器从主钥和认证设备的序列 号得出认证设备的唯一对称秘密加密钥的拷贝,并且认证服务器使用所得出的加密钥的拷 贝值和从应用服务器获得的数据来验证OTP值,并且将验证结果返回给应用服务器。应用 服务器验证(如果可用)时间值是否在当前时间的预定的公差范围内。应用服务器使用挑 战和/或时间值来确定输入值的参考值。应用服务器使用输入值的参考值和所检索到的公 钥来验证从认证消息中检索到的数字签名。如果所有的验证都是成功的,则应用服务器授 权用户访问。
[0196] 现在,用户将事务处理提交给应用服务器。例如,用户指示应用执行将一定量的钱 从用户的账户转移到另一账户。按如下的方式来保护该事务处理的安全。应用提示用户使 用认证设备的键盘将钱的数量和目标账户号提供给认证设备。在一些情况下,为了防止重 放攻击,还向用户呈现挑战以提供给认证设备。附加地或可替代地,认证设备确定其实时时 钟的时间值。现在,认证设备以与登录基本上相同的方式来生成认证消息,除了认证设备现 在使用由用户提供的事务处理数据和(如果可用)挑战的组合而不是仅挑战来生成输入 值、0ΤΡ以及数字签名之外。认证设备将认证消息编码到显示在认证设备的显示器上的图像 中,该认证消息包括由智能卡生成的数字签名、所生成的0ΤΡ、(如果可用)时间值、证书的 序列号以及认证设备的序列号。用户保持认证设备的显示器位于访问设备的相机的前方直 到应用指示已成功地捕捉到图像为止。从认证消息中检索通过应用捕捉并编码的图像和组 成认证消息的各种数据元素。应用服务器以与登录认证消息基本上相同的方式来验证认证 消息,除了现在应用服务器和认证服务器现在使用事务处理数据和(如果可用)挑战的组 合而不是仅挑战来验证0ΤΡ和数字签名之外。也就是说,应用服务器将以下数据元素转发 给认证服务器:从认证消息中检索到的0ΤΡ、从认证消息中检索到的认证设备的序列号、事 物处理数据、(如果可用)应用服务器提供给用户的挑战、(如果可用)从认证消息中检索 到的时间值、从认证消息中检索到的数字签名的可用位(即,用于生成0ΤΡ的位),其中,在 认证服务器验证0ΤΡ值。应用服务器还使用事务处理数据、挑战和/或时间值来确定输入 值的参考值。应用服务器使用输入值的参考值和所检索到的公钥来验证从认证消息中检索 到的数字签名。验证0ΤΡ成功指示通过认证消息中的设备标识符标识的认证设备被用来生 成0ΤΡ和非对称密码学运算的结果。验证数字签名成功指示用户的确批准事物处理数据。 如果所有的验证都是成功的,则应用服务器执行所请求的事物处理。
[0197] 已描述了多个实施方式。然而,应理解,可以进行各种修改。例如,可以对一个或 更多个实施方式的元件进行组合、删除、修改或补充,以形成其他的实施方式。作为又一示 例,在图中描绘的逻辑流程不要求以所示出的特定顺序或连续顺序来实现希望的结果。另 夕卜,可以提供其他步骤、或可以从所描述的流程中去除步骤,以及可以将其他部件添加到所 描述的系统中、或从所描述的系统中移除部件。例如,在上述实施方式中,模块或部件不需 要执行属入该模块的功能中的所有功能或任何功能,并且属于一个模块或部件的所有功能 或一部分功能可以由另一模块或部件执行,或者完全不执行。因此,其他实施方式在所附权 利要求的范围内。
[0198] 此外,虽然,可能仅针对本发明的几个实施方式中的一个公开了本发明的特定特 征,但是当任何给定应用或特定应用需要或对其有利时,这样的特征可与其它实施方式中 的一个或更多个其他特征相组合。此外,就术语"包括"、"含有"、"具有"、"包含"及其变型 以及其他类似的词语在详细描述或权利要求书中的使用而言,这些术语旨在以类似于术语 "包括"作为开放性过渡词的方式被解释而不排除任何附加元件或其他元件。
[0199] 虽然上面描述了本发明的各种实施方式,但是应该理解,这些实施方式仅作为示 例呈现,而不是限制。特别地,当然,出于描述所要求保护的主题的目的而要描述部件或方 法的每一种可构想到的组合是不可能的,但是本领域普通技术人员会认识到,许多其他组 合和置换是可能的。由此,本发明的广度和范围不应该被以上所描述的示例性实施方式中 的任何示例性实施方式所限制,而是应该仅根据所附权利要求及其等价物来限定。
【权利要求】
1. 一种包括至少一个数据处理部件和显示器的便携式手持认证设备,所述认证设备适 于: 生成输入值; 将所述输入值提交给非对称密码学运算,所述非对称密码学运算基于由公-私钥对中 的第一私钥参数化了的非对称密码学算法来生成结果; 获得所述非对称密码学运算的结果; 生成基本上包括所述非对称密码学运算的所述结果的认证消息; 将所述认证消息编码到一个或更多个图像中;以及 将所述一个或更多个图像显示在所述显示器上。
2. 根据权利要求1所述的认证设备,还包括用于与单独的安全设备通信的通信接口, 其中: 所述单独的安全设备存储所述公-私钥对中的所述第一私钥; 所述单独的安全设备适于执行所述非对称密码学运算; 所述认证设备通过执行以下操作来获得所述非对称密码学运算的所述结果:请求所述 单独的安全设备通过使用存储在所述单独的安全设备上的所述第一私钥对所述输入值执 行所述非对称密码学运算来生成所述非对称密码学运算的所述结果,并且从所述单独的安 全设备接收由所述单独的安全设备生成的所述非对称密码学运算的所述结果。
3. 根据权利要求2所述的认证设备,其中,所述单独的安全设备包括可移除的智能卡。
4. 根据权利要求2所述的认证设备,还包括适于接收在所述认证设备外部的至少一个 可变数据元素的数据输入接口,并且其中,所述输入值是使用所述至少一个外部可变数据 元素来生成的。
5. 根据权利要求4所述的认证设备,其中,所述数据输入接口包括键盘。
6. 根据权利要求4所述的认证设备,其中,所述数据输入接口包括光学数据输入接口。
7. 根据权利要求4所述的认证设备,其中,所述数据输入接口包括声学数据输入接口。
8. 根据权利要求4所述的认证设备,其中,所述至少一个外部可变数据元素包括挑战。
9. 根据权利要求4所述的认证设备,其中,所述至少一个外部可变数据元素包括事务 处理数据。
10. 根据权利要求1或2所述的认证设备,还适于使用在所述认证设备内部的至少一个 可变数据元素来生成所述输入值。
11. 根据权利要求10所述的认证设备,还包括实时时钟,并且其中,所述至少一个内部 可变数据元素包括由所述实时时钟提供的时间值。
12. 根据权利要求11所述的认证设备,还包括计数器,并且其中,所述至少一个内部可 变数据元素包括由所述计数器提供的计数器值。
13. 根据权利要求2所述的认证设备,还适于将与所述输入值相关的数据包含在所述 认证消息中。
14. 根据权利要求13所述的认证设备,其中,所述与所述输入值相关的数据包括所述 输入值。
15. 根据权利要求1所述的认证设备,还包括第一安全数据存储部件,其中,所述第一 安全数据存储部件存储所述第一私钥,并且其中,所述认证设备还适于通过使用存储在所 述第一安全数据存储部件中的所述第一私钥对所述输入值执行所述非对称密码学运算来 执行所述非对称密码学运算并且生成所述非对称密码学运算的所述结果。
16. 根据权利要求2所述的认证设备,还包括第二安全数据存储部件,其中,所述第二 安全数据存储部件存储秘密数据元素。
17. 根据权利要求16所述的认证设备,还适于通过将与所述输入值相关的数据与第一 密码学钥在密码学上相组合来生成与所述输入值在密码学上相关的数据、并且将所生成的 所述与所述输入值在密码学上相关的数据包含在所述认证消息中,其中,所述第一密码学 钥包含在所述秘密数据元素中或者是从所述秘密数据元素得出的。
18. 根据权利要求17所述的认证设备,其中,所述第一密码学钥包括与验证实体共享 的对称密码学钥,并且其中,所述在密码学上相组合是使用对称密码学算法来进行的。
19. 根据权利要求17所述的认证设备,其中,所述第一密码学钥包括非对称密码学钥, 并且其中,所述在密码学上相组合是使用非对称密码学算法来进行的。
20. 根据权利要求17所述的认证设备,其中,所述第一密码学钥包括加密钥,并且其 中,所述在密码学上相组合包括使用加密算法来加密所述与所述输入值相关的数据。
21. 根据权利要求16所述的认证设备,还适于通过将第二密码学钥与所述非对称密码 学运算的所述结果的至少一部分在密码学上相组合来生成与所述非对称密码学运算的所 述结果在密码学上相关的数据、并且将所生成的所述与所述非对称密码学运算的所述结果 在密码学上相关的数据包含在所述认证消息中,并且其中,所述第二密码学钥包含在所述 秘密数据元素中或者是从所述秘密数据元素得出的。
22. 根据权利要求21所述的认证设备,其中,所述第二密码学钥包括与验证实体共享 的对称密码学钥,并且其中,所述在密码学上相组合是使用对称密码学算法来进行的。
23. 根据权利要求21所述的认证设备,其中,所述第二密码学钥包括非对称密码学钥, 并且其中,所述在密码学上相组合是使用非对称密码学算法来进行的。
24. 根据权利要求21所述的认证设备,其中,所述第二密码学钥包括加密钥,并且其 中,所述在密码学上相组合包括使用加密算法来加密所述非对称密码学运算的所述结果的 至少一部分。
25. 根据权利要求2所述的认证设备,还适于将对与所述第一私钥对应的公钥的参考 包含在所述认证消息中。
26. 根据权利要求1或2所述的认证设备,还适于将用于标识所述认证设备的数据元素 包含在所述认证消息中。
27. 根据权利要求2所述的认证设备,还适于将用于标识用户的数据元素包含在所述 认证消息中。
28. 根据权利要求2所述的认证设备,还适于将用于标识所述单独的安全设备的数据 元素包含在所述认证消息中。
29. -种用于保护至少一个用户远程访问基于计算机的应用的安全的方法,所述方法 包括以下步骤: 捕捉显示在所述至少一个用户的认证设备的显示器上的一个或更多个图像,其中,所 述一个或更多个图像已被编码有由所述认证设备生成的认证消息,并且其中,所述认证消 息包括基于由公-私钥对中的第一私钥参数化了的非对称密码学算法对输入值的非对称 密码学运算的结果; 对所述一个或更多个图像进行解码以检索所述认证消息; 从所述认证消息中检索所述非对称密码学运算的所述结果; 验证所述认证消息; 其中,验证所述认证消息包括使用利用与所述第一私钥对应的公钥参数化了的非对称 密码学算法来验证所检索到的所述非对称密码学运算的所述结果。
30. 根据权利要求29所述的方法,其中,所述非对称密码学运算的所述结果包括利用 基于非对称密码学并且利用所述第一私钥参数化了的数字签名生成算法来生成的对所述 输入值的数字签名,并且其中,验证所检索到的所述非对称密码学运算的所述结果包括使 用基于非对称密码学并且利用所述公钥参数化了的数字签名验证算法来验证所述数字签 名。
31. 根据权利要求29所述的方法,还包括通过使用包含在所述认证消息中的数据来获 得所述公钥的值。
32. 根据权利要求31所述的方法,其中,所述认证消息还包括标识所述至少一个用户 的数据元素,并且其中,所述用户标识数据元素被用来获得所述公钥的值。
33. 根据权利要求31所述的方法,其中,所述认证消息还包括标识执行了所述非对称 密码学运算的设备的数据元素,并且其中,所述设备标识数据元素被用来获得所述公钥的 值。
34. 根据权利要求29所述的方法,其中,所述认证消息还包括与所述输入值相关的数 据,并且其中,验证所述认证消息还包括验证所述与所述输入值相关的数据。
35. 根据权利要求29所述的方法,其中,所述认证消息还包括与所述输入值在密码学 上相关的数据元素,并且其中,验证所述认证消息包括在密码学上验证与所述输入值在密 码学上相关的所述数据元素。
36. 根据权利要求35所述的方法,其中,所述认证消息还包括标识所述认证设备的数 据元素;其中,所述方法还包括使用所述认证设备标识数据元素来获得第一密码学钥的值 的步骤;并且其中,在密码学上验证与所述输入值在密码学上相关的所述数据元素包括使 用利用所述第一密码学钥参数化了的密码学算法。
37. 根据权利要求29所述的方法,其中,所述认证消息还包括与所述非对称密码学运 算的所述结果在密码学上相关的数据元素,并且其中,验证所述认证消息包括在密码学上 验证与所述非对称密码学运算的所述结果在密码学上相关的所述数据元素。
38. 根据权利要求37所述的方法,其中,所述认证消息还包括标识所述认证设备的数 据元素;其中,所述方法还包括使用所述认证设备标识数据元素来获得第二密码学钥的值 的步骤;并且其中,在密码学上验证与所述非对称密码学运算的所述结果在密码学上相关 的所述数据元素包括使用利用所述第二密码学钥参数化了的密码学算法。
39. 根据权利要求29所述的方法,其中,包含在所述认证消息中的所述非对称密码学 运算的所述结果包括至少一个经加密的部分,并且其中,从所述认证消息中检索所述非对 称密码学运算的所述结果包括对所述至少一个经加密的部分进行解密。
40. 根据权利要求39所述的方法,其中,所述认证消息还包括标识所述认证设备的数 据元素;其中,所述方法还包括使用所述认证设备标识数据元素来获得第三密码学钥的值 的步骤;并且其中,所述对所述至少一个经加密的部分进行解密包括使用利用所述第三密 码学钥参数化了的解密算法。
【文档编号】H04L29/06GK104126292SQ201280070386
【公开日】2014年10月29日 申请日期:2012年12月28日 优先权日:2011年12月30日
【发明者】迪尔克·马里恩 申请人:威斯科数据安全国际有限公司

最新回复(0)