首页 / 专利库 / 摄影 / 数码相机 / 用于保护移动应用的方法和装置

用于保护移动应用的方法和装置

阅读:1081发布:2020-06-25

专利汇可以提供用于保护移动应用的方法和装置专利检索,专利查询,专利分析的服务。并且公开了使用由 硬件 令牌生成的动态凭证(诸如一次性密码或 电子 签名)来个人化 软件 令牌的方法、装置和系统。,下面是用于保护移动应用的方法和装置专利的具体信息内容。

1.一种软件令牌个性化方法,包括以下步骤:
在认证服务器处,生成第一个性化种子
在所述认证服务器处,生成包括所述第一个性化种子的第一个性发起消息;
在与特定用户相关联的第一认证令牌处,接收所述第一个性化发起消息;
在所述第一认证令牌处,从接收到的第一个性化发起消息中检索所述第一个性化种子;
在所述第一认证令牌处,根据所述检索到的第一个性化种子生成第二个性化种子;
在所述第一认证令牌处生成包括所述生成的第二个性化种子的第二个性化消息;
在不同于所述第一认证令牌的第二软件认证令牌处,接收所述第二个性化消息;
在所述第二软件认证令牌处,从接收到的第二个性化发起消息中检索所述第二发起种子;
在所述第二软件认证令牌处,从检索到的第二个性化种子导出凭证生成令牌的值;
在所述第二软件认证令牌处,利用所述凭证生成令牌的导出值进行参数化的密码算法来生成确认凭证;
在所述认证服务器处,接收所述确认凭证;
在所述认证服务器处,确定所述凭证生成密钥的服务器副本;以及
在所述认证服务器处,利用所述凭证生成密钥的服务器副本来验证接收到的确认凭证。
2.根据权利要求1所述的方法,其中所述第一认证令牌包括与特定用户相关联的私密令牌密钥,并且所述私密令牌密钥用于在所述第一认证令牌处从接收到的第一个性化发起消息中检索所述第一个性化种子的步骤,或者所述私密令牌密钥用于在所述第一认证令牌处从所述检索到的第一个性化种子生成第二个性化种子的步骤。
3.根据权利要求1所述的方法,还包括以下步骤:如果在所述认证服务器处的确认凭证的所述验证成功,则在所述认证服务器处将所确定的凭证生成密钥的服务器副本与所述特定用户进行关联,并且在所述认证服务器处将所确定的与所述特定用户相关联的凭证生成密钥的服务器副本存储在非易失性存储器中。
4.根据权利要求1所述的方法,还包括如下步骤:在所述第二认证令牌处,将凭证生成密钥的导出值或者允许第二认证令牌重建凭证生成密钥的导出值的重建数据存储在非易失性存储器中。
5.根据权利要求1所述的方法,还包括以下步骤:在所述第二软件认证令牌处检索所述凭证生成密钥的导出值;通过组合动态变量与所述凭证生成密钥的检索值,在所述第二软件认证令牌处生成动态凭证;在所述认证服务器处接收所述动态凭证;在所述认证服务器处检索所述凭证生成密钥的服务器副本;使用检索到的凭证生成密钥的服务器副本在所述认证服务器处验证接收到的动态凭证。
6.根据权利要求5所述的方法,还包括如下步骤:在所述第二认证令牌处,将所述凭证生成密钥的导出值存储在非易失性存储器中;并且其中在所述第二软件认证令牌处检索所述凭证生成密钥的导出值包括所述第二认证令牌从非易失性存储器读取所述凭证生成密钥的导出值。
7.根据权利要求5所述的方法,还包括如下步骤:在所述第二认证令牌处,将允许所述第二认证令牌重建所述凭证生成密钥的导出值的重建数据存储在非易失性存储器中;并且其中在所述第二软件认证令牌处检索所述凭证生成密钥的导出值的步骤包括所述第二认证令牌根据从非易失性存储器中读取的重建数据来重建所述凭证生成密钥的导出值。
8.根据权利要求1所述的方法,还包括以下步骤:在所述认证服务器处,通过至少第一初始化种子生成电子签名,并且在所述第一个性化发起消息中包括所述电子签名;在所述第一认证令牌处检索所述电子签名,并且在所述第一认证令牌处验证检索到的电子签名。
9.根据权利要求8所述的方法,还包括如果检索到的电子签名的验证不成功则拒绝所述第一个性化发起消息的步骤。
10.根据权利要求8所述的方法,其中通过使用加密电子签名生成算法来完成生成电子签名,所述加密电子签名生成算法利用在所述认证服务器与所述第一认证令牌之间共享的密码消息认证密钥进行参数化,并且其中验证检索到的电子签名通过使用密码电子签名核实算法来完成,所述密码电子签名核实算法利用所述密码消息认证密钥进行参数化。
11.根据权利要求1所述的方法,还包括以下步骤:在所述认证服务器处,使用与所述认证令牌相关联并且对其唯一的第一加密密钥来加密所述第一个性化种子,并且将加密的第一个性化种子包括在所述第一个性化发起消息中;在所述第一认证令牌处,从所述第一个性化发起消息中检索所述经过加密的第一个性化种子,并且解密所述经过加密的第一个性化种子。
12.根据权利要求11所述的方法,其中所述第一加密密钥在所述认证服务器与所述第一认证令牌之间共享,并且使用所述第一加密密钥来加密所述第一个性化种子包括使用所述第一加密密钥进行参数化的对称加密算法来加密所述第一个性化种子,并且解密检索到的经过加密的第一个性化种子包括使用所述第一加密密钥进行参数化的对称解密算法来解密所述检索到的经过加密的第一个性化种子。
13.根据权利要求11所述的方法,还包括在所述认证服务器处生成初始值;并且其中在所述认证服务器处确定所述凭证生成密钥的服务器副本的步骤包括,在所述认证服务器处,通过使用密钥导出方法,根据所述初始值导出所述凭证生成密钥的服务器副本的值;并且其中在所述第二软件认证令牌处从检索到的第二个性化种子导出所述凭证生成密钥的值的步骤包括,在所述第二软件认证令牌处从检索到的第二个性化种子检索所述初始值,并且在所述第二软件认证令牌处通过使用所述密钥导出方法从所述检索到的初始值导出所述凭证生成密钥。
14.根据权利要求13所述的方法,其中从所述初始值导出所述凭证生成密钥的密钥导出方法包括将所述凭证生成密钥的值设置到所述初始值。
15.根据权利要求13所述的方法,其中:在所述认证服务器生成所述第一个性化种子的步骤包括,使用第二加密密钥在所述认证服务器处加密所述初始值,并且将所述第一个性化种子的值设置到所述经过加密的初始值;并且在所述认证服务器处从检索到的第二个性化种子导出所述屏障生成密钥的值的步骤包括,从所述得让个性化种子中监视所述第一个性化种子,利用与所述第二加密密钥相匹配的第二解密密钥来解密所述检索到的第一个性化种子从而获取所述初始值。
16.根据权利要求15所述的方法,其中所述第二加密密钥在所述认证服务器与所述第二软件认证令牌之间共享,并且使用所述第二加密密钥来加密所述初始值包括,使用所述第二加密密钥进行参数化的对称加密算法来加密所述初始值,并且解密检索到的经过加密的第一个性化种子包括使用所述第二加密密钥进行参数化的对称解密算法来解密检索到的第一个性化种子。
17.根据权利要求13所述的方法,其中在所述认证服务器处生成所述第一个性化种子的步骤包括将所述第一个性化种子设置到所述初始值。
18.根据权利要求13所述的方法,其中在所述第二软件认证令牌处从检索到的第二个性化种子导出所述凭证生成密钥的值的步骤包括,在所述第二软件认证令牌处从检索到的第二个性化种子检索第一个性化种子,并且在所述第二软件认证令牌从检索到的第一个性化种子导出所述凭证生成密钥。
19.根据权利要求18所述的方法,其中在所述第一认证令牌处根据所述检索到的第一个性化种子生成所述第二个性化种子的步骤包括,将所述第二个性化种子的值设置到检索到的第一个性化种子的值;并且其中在所述第二软件认证令牌从检索到的第二个性化种子导出所述凭证生成密钥的值的步骤包括,在所述第二软件认证令牌处通过采用检索到的第二个性化种子的值从检索到的第二个性化种子中检索所述第一个性化种子,并且从检索到的第一个性化种子导出所述凭证生成密钥。
20.根据权利要求19所述的方法,其中在所述第二软件认证令牌处从检索到的第二个性化种子导出所述凭证生成密钥的值的步骤包括将所述凭证生成密钥的值设置到检索到的第二个性化种子的值。
21.根据权利要求18所述的方法,其中在所述第一认证令牌处根据所述检索到的第一个性化种子来生成第二个性化种子的步骤包括,将所述第二个性化种子的值计算为检索到的第一个性化种子的第一可逆变换函数;并且在所述第二软件认证令牌处,从检索到的第二个性化种子中导出所述凭证生成密钥的值的步骤包括:在所述第二软件认证令牌处,通过在所述第二软件认证令牌处应用检索到的第二个性化种子的值的第二变换函数来从检索到的第二个性化种子中检索所述第一个性化种子,其中所述第二变换函数是第一可逆变换函数的逆函数,并且在所述第二软件认证令牌处从检索到的第一个性化种子导出所述凭证生成密钥。
22.根据权利要求21所述的方法,其中所述第一可逆变换函数包括利用第一密码变换密钥进行参数化的密码加密算法,并且所述第二变换函数包括与所述密码加密算法相匹配且利用第二密码变换密钥进行参数化的密码解密算法,所述密码解密算法反过来又与所述第一密码转换密钥相匹配。
23.根据权利要求21所述的方法,其中在所述第二软件认证令牌处从检索到的第一个性化种子中导出所示凭证生成密钥包括在所述第二软件认证令牌处将所述凭证生成密钥的值设置到检索到的第一个性化种子。
24.根据权利要求1所述的方法,其中根据所述检索到的第一个性化种子生成第二个性化种子的步骤包括将所述第二个性化种子的值计算为在所述第一认证令牌处将第一变换函数应用到的所述检索到的第一个性化种子的值的结果。
25.根据权利要求24所述的方法,其中在所述认证服务器处确定所述凭证生成密钥的服务器副本的步骤包括,在所述认证服务器处将第二个性化种子的服务器副本的值计算为在所述认证服务器处应用相同的第一变换函数到第一个性化种子的值的结果,并且根据第二个性化种子的服务器副本的值来确定所述凭证生成密钥的服务器副本。
26.根据权利要求24所述的方法,其中所述第一变换函数使得所述第二个性化种子的值不同于所述第一个性化种子的值。
27.根据权利要求24所述的方法,其中所述第一变换函数包括利用第一私密对称密码变换密钥进行参数化的对称密码函数。
28.根据权利要求27所述的方法,其中所述第一私密对称密码变换密钥在所述认证服务器与所述第一认证令牌之间共享,并且对于给定的第一认证令牌唯一。
29.根据权利要求27所述的方法,其中所述第一私密对称密码变换密钥在所述第一认证令牌与所述第二软件认证令牌之间共享。
30.根据权利要求24所述的方法,其中在所述第二软件认证令牌处从检索到的第二个性化种子导出所述凭证生成密钥的值的步骤包括,将所述凭证生成密钥的值计算为在所述第二软件认证令牌处将所述第二变换函数应用到检索到的第二个性化种子的值的结果。
31.根据权利要求30所述的方法,其中在所述认证服务器处确定所述凭证生成密钥的服务器副本的步骤包括,在所述认证服务器处将所述凭证生成密钥的服务器副本的值计算为在所述认证服务器处将相同的第二变换函数应用到第二个性化种子的服务器副本的值的结果。
32.根据权利要求31所述的方法,其中所述第二变换函数使得所述凭证生成密钥的值不同于所述第二个性化种子的值。
33.根据权利要求31所述的方法,其中所述第二变换函数包括利用第二私密对称密码变换密钥进行参数化的对称密码函数。
34.根据权利要求33所述的方法,其中所述第二私密对称密码变换密钥在所述认证服务器与所述第二软件认证令牌之间共享。
35.根据权利要求33所述的方法,其中所述第二私密对称密码变换密钥在所述第一认证令牌与所述第二软件认证令牌之间共享。
36.一种软件令牌个性化系统,包括:
认证服务器,
与特定用户相关联的第一认证令牌,以及
不同于所述第一认证令牌的第二软件认证令牌;
其中所述认证服务器用于生成第一个性化种子,并且生成包括所述第一个性化种子的第一个性化发起消息;
其中所述第一认证令牌用于接收所述第一个性化种子,从接收到的第一个性化发起消息中检索所述第一个性化种子,根据所述检索到的第一个性化种子生成第二个性化种子,以及生成第二个性化消息,其中包括所述生成的第二个性化种子;
其中所述第二软件认证令牌用于接收所述第二个性化消息,从接收到的第二个性化消息检索所述第二初始化种子,从检索到的第二个性化种子导出凭证生成密钥的值,以及利用确认算法来生成确认凭证,所述确认凭证利用凭证生成密钥的导出值进行参数化;
其中,所述认证服务器还用于接收所述确认凭证,确定凭证生成密钥的服务器副本,并且利用所述凭证生成密钥的服务器副本来验证接收到的确认凭证;并且
其中所述第二软件认证令牌还用于通过密码地组合动态变量与所导出的凭证生成密钥来生成动态凭证。
37.一种电子个性化装置,包括:
包括数码相机的输入接口
包括图像化显示器的输出接口,
存储器,以及
连接到所述输入接口、输出接口以及所述存储器的数据处理器;
其中所述输入接口用于通过所述数码相机捕获第一二维(2D)条形码图像来接收第一个性化发起消息,其中所述第一二维条形码图像利用所述第一个性化发起消息进行编码;
其中所述数据处理器用于解码捕获到的第一二维条形码图像以获取所述第一个性化发起消息,从接收到的第一个性化发起消息中检索第一个性化种子,根据所述检索到的第一个性化种子生成第二个性化种子,生成包括所述所生成的第二个性化种子的第二个性化消息,以及利用所述第二个性化消息编码第二二维条形码图像;
其中所述输出接口用于通过在所述图像化显示器上显示所述第二二维条形码图像来输出所述第二个性化消息;并且
其中所述存储器用于存储与特定用户相关联的私密令牌密钥,该私密令牌密钥由所述数据处理器用于从接收到的第一个性化发起消息检索第一个性化种子,或者用于根据所述检索到的第一个性化种子生成第二个性化种子。
38.一种软件令牌个性化方法,其包括以下步骤:
在第一认证令牌处,通过密码地组合第一动态变量的值与在第一认证令牌和认证服务器之间共享的第一凭证生成密钥来生成第一动态凭证,其中所述第一凭证生成密钥与特定用户相关联;
在不同于所述第一认证令牌的第二软件认证令牌处接收所生成的第一动态凭证;
在所述第二软件认证令牌处从检索到的第一动态凭证导出第二凭证生成密钥的值;
在所述第二软件认证令牌处利用所导出的凭证生成密钥进行参数化的密码算法来生成确认凭证;
在所述认证服务器接收所述确认凭证;
在所述认证服务器确定第二凭证生成密钥的服务器副本;
在所述认证服务器处利用所述凭证生成密钥的服务器副本来验证接收到的确认凭证;
如果所述确认凭证在所述认证服务器处的所述验证成功,则在所述认证服务器处将所确定的第二凭证生成密钥的服务器副本与所述特定用户进行关联,并且在所述认证服务器处将所确定的与所述特定用户相关联的凭证生成密钥的服务器副本存储在非易失性存储器中。
39.根据权利要求38所述的方法,其中在所述认证服务器处使用第二凭证生成密钥的服务器副本来验证接收到的确认凭证的步骤包括将密码验证算法应用于接收到的确认凭证,其中所述密码验证算法通过所述第二个凭证生成密钥的服务器副本进行参数化。
40.根据权利要求38所述的方法,还包括以下步骤:通过将第二动态变量与第二凭证生成密钥的导出值进行组合,在所述第二软件令牌处产生第二动态凭证;在所述认证服务器处接收所述第二动态凭证;在所述认证服务器处检索所存储的第二凭证生成密钥的服务器副本;使用检索到的第二凭证生成密钥的服务器副本在所述认证服务器处验证接收到的第二动态凭证;如果接收到的第二动态凭证的所述核实成功,则在所述认证服务器处生成认证信号
41.根据权利要求38所述的方法,还包括以下步骤:在所述认证服务器处使用接收到的确认凭证来确定第二凭证生成密钥的服务器副本。
42.根据权利要求41所述的方法,还包括以下步骤:在所述认证服务器处确定第一动态变量的可能值集合;在所述认证服务器处,使用所述第一凭证生成密钥,针对第一动态变量的每个所确定的可能值来生成第一动态凭证的参考值;针对所生成的第一动态凭证参考值中的每一个,导出第二凭证生成密钥的候选值;在所述认证服务器处,在所生成的第二凭证生成密码的候选值之中搜索成功地验证接收到的确认凭证的候选值;如果发现能够成功地验证所接收的确认凭证的候选值,则在所述认证服务器处将第二凭证生成密钥的服务器副本确定为成功验证接收到的确认凭证的候选值。
43.根据权利要求42所述的方法,其中由第一认证令牌生成并由第二软件认证令牌接收的第一动态凭证包括同步数据,该同步数据包括由第一动态凭证的第一认证令牌在生成中所使用的第一动态变量的值有关的信息;并且生成确认凭证的步骤包括,在第二软件认证令牌处提取包括在接收到的第一动态凭证中的同步数据,并将提取出的同步数据包括在确认凭证中;并且在所述认证服务器处确定第一动态变量的可能值集合包括,在所述认证服务器处提取接收到的确认凭证中所包括的同步数据,并且使用所提取的同步数据来选择第一动态变量的可能值集合。
44.一种软件令牌个性化系统,包括:
第一认证令牌,
不同于所述第一认证令牌的第二软件认证令牌;以及
认证服务器;
其中所述第一认证令牌用于通过密码地组合第一动态变量与在所述第一认证令牌和所述认证服务器之间共享的第一凭证生成密钥来生成第一动态凭证,其中所述第一凭证生成密钥与特定用户相关联;
其中所述第二软件认证令牌用于接收所述第一动态凭证,使用接收到的第一动态凭证导出第二凭证生成密钥的值,并且使用密码算法来生成确认凭证,所述确认凭证利用所导出的凭证生成密钥进行参数化;
其中所述认证服务器用于接收所述确认凭证,确定所述第二凭证生成密钥的服务器副本,使用所述第二凭证生成密钥的服务器副本来验证接收到的确认凭证,并且如果所述确认凭证的所述核实成功,则将所确定的第二凭证生成密钥的服务器副本与所述特定用户进行关联,并且在非易失性存储器中存储所确定的与所述特定用户相关联的第二凭证生成密钥的服务器副本;并且
其中所述第二软件认证令牌还用于通过密码地组合第二动态变量与所导出的凭证生成密钥来生成动态凭证。

说明书全文

用于保护移动应用的方法和装置

[0001] 相关申请的交叉引用
[0002] 本发明要求2014年12月29日提交的题为“Method and Apparatus for Securing a Mobile Application(用于保护移动应用的方法和装置”)的美国临时申请序列号62/097,376的优先权,其内容通过参考全部并入于此。
发明领域
[0003] 本发明涉及保护到计算机和应用的远程访问计算机网络上的远程交易。更具体地,本发明涉及用于个性化软件令牌的方法和系统。
[0004] 发明背景
[0005] 随着计算机系统和应用的远程访问越来越流行,在诸如互联网的公共网络上远程访问的交易的数量和种类极具增加。这样的流行凸显出安全的需要;尤其是:如何确保远程访问应用的人是他们所声称的人,如何确保远程执行的交易由合法个人来启动,以及如何确保交易数据在应用服务处被接收之前未被改变。
[0006] 保护用户与基于计算机的应用进行交易的方案是使用硬件强认证令牌来生成一次性密码(OTP)和/或电子签名。
[0007] 硬件强认证令牌是仅用于使用以私密密码密钥进行参数化的密码算法来生成OTP和/或电子签名的专用设备。虽然对于大量的令牌而言属于不同用户的令牌的算法通常是相同的,但是为了确保(与不同用户相关联的)不同令牌将会生成不同的OTP和不同的电子签名,与特定用户相关联的特定令牌所使用的私密密码密钥一般不同于与其他用户相关联的其他令牌所使用的私密密码密钥。换言之,即使许多令牌用于使用相同的算法来提供相同的功能性,但是通常利用将生成OTP和/或电子签名的算法进行参数化的至少一个部分的私密密码密钥值对于每个令牌进行个性化,并且因此不同的用户与密码密钥的不同值相关联。
[0008] 用户必须保证当他们想要访问应用时无论他们恰巧在何处他们都持有他们的令牌。在一些情况下,用户可能认证这不方便。专用硬件令牌的一个可能替代是使用软件令牌。软件令牌或“软令牌”是能够模拟硬件强认证令牌的功能性的软件应用(即,OTP和电子签名的生成)。软令牌通常运行在属于用户并且能够运行各种软件应用的个人计算设备上。通常这些计算设备不是专用于单个特定计算任务,而是可以包括通用的计算平台,其用于根据用户的需要在它们的生命循环期间接收额外的软件应用。智能手机是其上能够安装软件令牌并且用户一般倾向于总是带着它们的个人计算设备的示例。平板计算机是其上可以安装软件令牌的个人计算设备的示例。
[0009] 由于软件令牌是允许在通用计算设备上的软件,因此具有挑战的是,将安装在给定用户的个人计算设备上的软件令牌进行个性化,即提供软件令牌一组数据(包括例如软件令牌将要使用用于加密地生成代表用户的凭证的软件令牌),该组数据具有针对单独的软件令牌示例特定并且与软件令牌的期望用户相关联的值。
[0010] 在本说明书中,软件令牌和硬件令牌可以统称为认证令牌。
[0011] 需要的是用于个性化软件令牌的安全且方便的方案。

发明内容

[0012] 本发明基于用户如下的发现:软件令牌的使用并不排除用户仍然持有硬件令牌,由此与同一用户相关联的硬件令牌和软件令牌可以用于互补的任务。例如,软件令牌可以用于确保日常低和中险交易的可移动性,而硬件令牌可以用于需要更高安全级别的较为特殊的任务。
[0013] 本发明还基于发明人的另一发现:用户可以在安全且方便地个性化软件令牌的过程中使用他或她的硬件令牌。
[0014] 在本说明书中,术语“将令牌进行个性化”指的是向特定令牌所使用的一组数据要素提供特定值的过程,由此这些特定的值相对于其他相似的令牌对于该特定令牌是唯一的。例如,在一些实施例中,个性化特定的令牌可以包括向特定令牌用来生成例如OTP和/或电子签名的私密密码密钥提供特定的值,由此该值对于该特定令牌是唯一的。术语“唯一”在该背景中指的是绝对唯一(即,能够保证的是相同的值最多只出现在一个令牌中)或者可以指的是统计或概率上的唯一(即,知道一个特定令牌的值不提供关于任何其他令牌的可能值的任何知识;换言之,原则上不能排除两个令牌以相同的值结束,但是如果发生,那么至少从外方的度来说这是不可预料的并且被认为是巧合的结果)。个性化特定令牌的过程可以包括如下步骤:选择或确定该特定令牌的上述数据要素组的真实特定值和/或向该特定的令牌提供这些特定值和/或将这些特定的值加载到特定令牌中。除非另外指定,在本说明书中,已经针对特定令牌进行个性化的数据要素的值由令牌存储在令牌可访问的非易失性存储器中以供将来使用,例如用于生成动态凭证。在经过个性化之后,个性化的令牌可以使用个性化数据要素不确定数量的次数和不确定的时期。
[0015] 获取软件令牌。
[0016] 在一些实施例中,用户可以通过将软件令牌应用安装在属于用户的个人计算设备(例如,智能手机或平板计算机)上来获取软件凭证。在一些实施例中,软件令牌应用可以像个人计算设备的任何其他应用一样来下载和安装。例如,在一些实施例中,软件令牌可以下载在例如智能手机上,作为可以从通用应用商店下载的额外的令牌应用。
[0017] 软件或硬件令牌的运行。
[0018] 在一些实施例中,令牌(诸如软件令牌和/或硬件)可以通过加密地组合动态变量的值与使用私密密码密钥进行参数化的加密算法的私密密码密钥的值,来生成一次性密码(OPT)或电子签名。在一些实施例中,动态变量可以是时间值的函数(其可以例如由令牌的时钟来提供胡总恶化软件令牌可以在其上运行的个人计算设备)。在一些实施例中,动态变量可以是事件相关变量的值的函数。在本说明书中,术语事件相关的变量可以指的是当发生特定事件时使用更新算法自动更新的变量的值。在一些实施例中,特定事件例如可以包括令牌使用事件相关的变量来生成OTP或电子签名。在一些实施例中,事件相关变量可以包括计时器,并且更新算法可以包括计数器的单调递增(或递减)。在一些实施例中,更新算法可以包括例如单向哈希算法,并且可以利用由于将单向哈希算法应用于事件相关变量的旧值(例如,更新之前的当前值)所获取的新值来更新事件相关的变量。在一些实施例中,事件相关变量可以包括私密密码密钥。例如,在一些实施例中,每次私密密码密钥被用于生成OTP或电子签名,可以利用作为私密密码密钥的先前值的函数的新值来更新私密密码密钥的值。或者私密密码密钥例如可以是动态变量的函数。例如,可以从固定的主密钥和诸如时间或计数值的动态变量导出私密密码密钥。或者,例如每次私密密码密钥被用于生成OTP或电子签名时,私密密码密钥可以例如是状态变量的函数,并且可以利用作为状态变量的先前值的函数的新值来更新状态的值。在一些实施例中,动态变量可以基于例如由服务器生成并且例如提供给令牌的质询(例如,由用户使用软件令牌运行在的计算设备的用户输入接口来输入来质询)。在一些实施例中,动态变量可以基于提供该令牌的交易数据(例如,由用户使用软件令牌运行在的计算设备的用户输入接口来输入该交易数据)。在一些实施例中,可以使用多于一个动态变量。例如,在一些实施例中,诸如时间变量或事件相关的变量的内部动态变量,和诸如质询或交易数据的外部动态变量都可以用在加密组合中。
[0019] 动态变量的值与私密密码密钥的值的加密组合的结果通常可以称为动态凭证。在动态变量是基于交易数据的情况下,动态变量的值与私密密码密钥的值的加密组合的结果可以称为电子签名。在动态变量是基于质询的情况下,动态变量的值与私密密码密钥的值的加密组合的结果可以称为响应。在动态变量是基于时间值或基于事件有关变量的值的情况下,动态变量的值与私密密码密钥的值的加密组合的结果可以称为一次性密码(OTP)。
[0020] 在一些实施例中,用于加密地组合动态变量的值与私密密码密钥的值的加密算法可以包括通过私密密码密钥进行参数化的对称加密算法,并且软件令牌可以与例如认证服务器共享该私密密码密钥。例如在一些实施例中,对称加密算法可以包括诸如AES(高级加密标准)的对称加密或解密算法,其可以对动态变量的值进行操作,并且可以利用私密密码密钥进行参数化。在一些实施例中,对称密码算法可以包括诸如HMAC(基于哈希的消息认证码)的密钥哈希算法,其可以对动态变量的值进行操作并且可以用私密密码密钥进行参数化。在一些实施例中,对称加密算法可以利用私密密码密钥参数化,并且可以对动态变量的值进行操作。在一些实施例中,私密密码密钥可以包括第一动态变量或可以是第一动态变量的函数,并且对称密码算法可以利用私密密码密钥进行参数化,并且可以在第二动态变量和/或固定值上操作。
[0021] 在一些实施例中,通过加密地组合动态变量的值和私密密码密钥的值来生成动态凭证的加密算法从对于动态变量的值是单向函数的意义上来说可能是不可逆的,也就是说,即使已知生成的动态凭证的值,生成算法是已知的,并且已经用于生成动态凭证的所有其他参数和数据要素的值也是已知的,那么仍然是不可能的或者计算上不可行地明确确定在生成动态凭证时有效使用的动态变量的值。例如在一些实施例中,加密地组合动态变量的值和私密密码密钥的值可以包括应用诸如HMAC的密钥哈希算法,其在动态变量的值上进行操作并且利用私密密码密钥进行参数化。或者动态凭证可以通过使用私密密码密钥参数化的对称密码对于动态变量进行加密而产生,由此可能会截断所得密码的大部分。例如在一些实施例中,不超过一半的所得密码可以包括在动态凭证中。
[0022] 验证或核实动态凭证。
[0023] 在一些实施例中,认证令牌生成的动态凭证可以由认证服务器来接收和核实或验证。认证服务器可以检索认证令牌用于生成动态凭证所使用的私密密码密钥的副本,并且使用检索到的私密密码密钥的副本来参数化用于验证或校验接收到的动态凭证的密码核实或验证算法。例如,在一些实施例中,认证服务器可以使用检索到的私密密码密钥的副本来生成用于动态凭证的一个或多个参考值,并将接收到的动态凭证与一个或多个参考值进行比较,其中如果接收到的动态凭证匹配至少一个参考值,则所接收的动态凭证的核实或验证成功。在一些实施例中,认证服务器可以通过以下方式来生成针对动态凭证的参考值:获取针对动态变量的一个或多个可能值,并通过加密地组合动态变量的每个可能值与检索到的私密密码密钥副本,来生成动态变量的每个已获取的可能值的动态凭证参考值。
[0024] 个性化软件令牌的私密密码密钥
[0025] 在一些实施例中,在将软件令牌安装在用户的个人计算设备之后,其可以初始处于非个性化状态,从而私密密码密钥还没有值。为了使软件令牌进入操作状态,其中用户能够使用软件令牌来产生有效的OTP和/或电子签名,软件令牌必须被个性化,从而例如软件令牌的私密密码密钥获取与用户相关联的值。在一些实施例中,个性化软件令牌的过程,更具体地,个性化软件令牌的私密密码密钥的值的过程可以使用与用户相关联的由硬件令牌生成的动态凭证的值。
[0026] 使用硬件动态凭证作为软件令牌的私密密码密钥的个性化种子
[0027] 在一些实施例中,软件令牌可以用于基于个性化数据要素的数量来确定私密密码密钥的值。在一些实施例中,软件令牌用于提供个性化模式,其中软件令牌可以请求用户提供多个这些个性化数据要素的值。在一些实施例中,软件令牌用于从至少一些个性化数据要素导出私密密码密钥的值。在一些实施例中,私密密码密钥的衍生可以包括将加密算法应用于至少一些个性化数据要素。在一些实施例中,私密密码密钥的衍生可以包括将单向散列函数应用于至少一些个性化数据要素。在一些实施例中,私密密码密钥的衍生可以包括加密地组合至少一些个性化数据要素与例如可以在软件令牌的软件代码中硬编码的密码主密钥。如本文所使用的,术语硬编码可以是指直接嵌入应用的源代码或其他可执行对象的输入或配置数据,而不是从外部来源获取该数据。
[0028] 在一些实施例中,这些个性化数据要素可以包括可以由硬件令牌生成的动态凭证,例如通过已经与软件令牌的用户相关联的硬件令牌。在一些实施例中,硬件令牌可以包括例如由在伊利诺伊州芝加哥设有全球总部的瓦斯数据安全国际有限公司(Vasco Data Security International,Inc.)所提供的 线的硬盘令牌。在一些实施例中,硬件令牌可以包括未连接的智能卡读卡器和由所述未连接的智能卡读卡器接收的智能卡,其中未连接的智能卡读卡器和所接收的智能卡可以协作产生动态凭证。在该背景下,术语未连接的智能卡读取器可以是智能卡读卡器,与普通连接的智能卡读卡器不同,智能卡读卡器不连接到任何主机计算设备(例如用户可以用于访问应用的访问设备或运行可能需要个性化的软件令牌的个人主机),用于从主计算设备接收输入数据(例如用于生成动态凭证的质询或交易数据)和/或用于向主机计算设备传送由未连接的智能卡读卡器生成的凭证;相反,未连接的智能卡读卡器可以通过用户使用未连接的智能卡读卡器的用户输入接口(例如键盘)输入数据来接收输入数据,并且由未连接的智能卡读卡器生成的动态凭证可以通过未连接的智能卡读卡器使用用户输出接口(例如显示器)进行传输,从而向用户呈现动态凭证,然后该用户可以将呈现的动态凭证传送到目的地。在一些实施例中,智能卡可以包括用于存储私密硬件令牌密钥的存储器和使用所述私密硬件令牌密钥执行密码计算的数据处理组件,其中的私密硬件令牌密钥用于生成动态凭证。在一些实施例中,未连接的智能卡读卡器在其本身不包含任何个性化数据要素的意义上可以是通用的。在一些实施例中,智能卡可以包含动态凭证的生成(通过未连接的智能卡读取器和插入的智能卡的组合)中所使用的所有个性化数据要素。在一些实施例中,硬件令牌可以包括未连接的智能卡读取器,其用于在插入在未连接的读取器中的智能卡上生成具有EMV-CAP(欧洲支付-万事达卡-维萨(Europay-Mastercard-VISA)芯片认证程序)的智能卡应用。在一些实施例中,未连接的智能卡读卡器可以兼容或符合EMV-CAP规范。
[0029] 将个性化动态凭证从硬件令牌传送到软件令牌。
[0030] 在一些实施例中,由用户的硬件令牌生成的动态凭证可以由用户从硬件令牌手动传送到将要个性化的软件令牌。例如,在一些实施例中,硬件令牌可以生成动态凭证,并且使用硬件令牌的用户输出接口(诸如显示器)向用户呈现生成的硬件令牌。然后,用户可以随后手动地将所呈现的动态凭证提供给软件令牌,例如通过使用软件令牌正在运行的个人计算机设备的用户输入接口(诸如键盘或触摸屏)。例如在一些实施例中,硬件令牌可以用于将动态凭证呈现为硬件令牌的显示器上的(例如,数字的或数字字母的)字符串,用户可以读取该字符串并且可以将该串复制到个人计算设备上运行的软件令牌。
[0031] 在一些实施例中,软件令牌可以用于支持个性化模式,其中软件令牌用于:请求用户向软件令牌提供由用户的硬件令牌生成的动态凭证,从用户接收这样的由用户的硬件令牌生成的动态凭证,并且使用接收到的动态凭证来使自身个性化,例如通过从接收到的动态凭证获取一个或多个个性化数据要素的值(例如,软件令牌随后用于自己生成动态凭证的私密密码密钥)。
[0032] 在一些实施例中,硬件令牌和软件令牌用于将包括个性化数据的数字个性化消息从硬件令牌传送到软件令牌,其中的个性化数据包括硬件令牌生成的动态凭证。硬件令牌可以用于发送该数字个性化消息,并且软件令牌可以用于接收该数字个性化消息,而不需要用户必须手动复制数字个性化消息或数字个性化消息的一部分。例如,在一些实施例中,硬件令牌可以包括(第一)无线数据通信接口,用于使用该无线数据通信接口来输出数字个性化消息。个人计算设备也可以包括(第二)无线通信接口,并且软件令牌可以用于接收硬件令牌发送的数字个性化消息。例如在一些实施例中,硬件令牌可以包括用于显示二维图像的图形显示器,并且硬件令牌用于将数字个性化消息编码在个性化图像中,并且将该个性化图像显示在图形化显示器上。运行软件令牌的个人计算设备可以包括用于捕获图像的数码相机,并且软件令牌可以用于使用该数码相机来捕获硬件令牌所显示的个性化图像,将个性化图像进行去编码从而获取嵌入的个性化消息,并且使用该个性化消息来个性化软件令牌。
[0033] 在一些实施例中,一方面为了认证目的由硬件令牌所生成的动态凭证(例如,用于认证用户到基于远程计算机的应用的OTP或者保护用户提交到基于远程计算机应用的交易的电子签名),与另一方面用于用户在个性化软件令牌中使用的由硬件令牌所生成的动态个性化凭证之间不存在区别。例如在一些实施例中,用户可以使用由硬件令牌生成的普通动态认证凭证,从而使用在个性化软件令牌中。在一些实施例中,硬件令牌可以使用与生成动态认证凭证相同的动态凭证生成机制来生成动态个性化凭证。在一些实施例中,硬件令牌可以使用与生成动态认证凭证相同的密码算法、密钥和算法参数来生成动态个性化凭证。
[0034] 在一些实施例中,动态个性化凭证可以由硬件令牌使用生成动态认证凭证相同的动态凭证生成机制来生成,但是使用不同的外部输入用于动态凭证生成机制。例如在一些实施例中,动态个性化凭证可以由硬件令牌使用相同的动态凭证生成机制来生成,其中的动态凭证生成机制用于生成对于认证目的的外部质询的响应,然而由此,向用于生成动态个性化凭证的硬件令牌发送的质询具有不同于用于生成认证响应的质询值。例如在一些实施例中,用于生成动态个性化凭证所使用的质询可以具有不同的结构或者可以长于用于生成认证响应所使用的质询。例如在一些实施例中,动态个性化凭证可以由硬件令牌使用相同的动态凭证生成机制来生成,其中的动态凭证生成机制用于生成保护交易的交易数据之上的电子签名,然而由此,向用于生成动态个性化凭证的硬件令牌提供的数据具有不同于用于生成电子签名的交易数据值。例如在一些实施例中,硬件令牌签署的交易数字要素中的一个可以包括交易类型,并且存在保留用于生成动态个性化凭证的交易类型数据要素的值。
[0035] 在一些实施例中,硬件令牌可以适用于通过不同方式生成动态个性化凭证和动态认证凭证。在一些实施例中,硬件令牌可以使用不同的密码算法和/或不同的密钥和/或不同的动态变量和/或不同的算法参数用于生成动态个性化凭证和动态认证凭证。动态凭证的生成算法的参数值的选择可以反映潜在的冲突需要之间的某些协调。实施例中这样的参数的值能够针对动态个性化凭证进行不同设置,并且动态认证凭证允许做出动态个性化凭证和动态认证凭证之间的不同(更合适的)协调。例如在动态凭证的情况下,凭证长度的选择一方面可能会影响安全性(即凭证越短安全性越低),同时也影响用户体验(即凭证越长,用户进行复制越不方便)。在一些实施例中,硬件令牌可以用于生成长度不同于由相同硬件令牌生成的任何动态认证凭证的长度的动态个性化凭证。在一些实施例中,硬件令牌可以用于生成长度长于由相同硬件令牌生成的任何动态认证凭证的长度的动态个性化凭证。通过这种方式,与在动态认证凭证的情况相比,在动态个性化凭证的情况下,相对于用户便利方面,安全性方面被给予更多的权重。
[0036] 在一些实施例中,硬件令牌可以具有至少一个认证模式和个性化模式。硬件令牌可以用于在认证模式下生成动态认证凭证,并且在个性化模式中生成动态个性化凭证。在一些实施例中,硬件令牌可以用于支持用户明确地选择硬件令牌是否应该在个性化模式下工作的方式。例如,硬件令牌可以向用户提供菜单选项,以选择硬件令牌应当处于的模式(例如,个性化模式或认证模式)。在一些实施例中,硬件令牌可以用于接收数字消息,并且可以从接收数字消息提取数据要素,该数据要素指示硬件令牌应该处于何种模式以处理数字消息的其他内容。例如在一些实施例中,硬件令牌可以用于接收数字个性化消息,该数字个性化消息可以包括数据要素,其向硬件令牌指示该消息是个性化消息,并且硬件令牌应该使用该个人化消息的内容来生成动态个性化凭证。然后,硬件令牌可以进入其个性化模式,并且使用所接收的个性化消息的内容来生成动态个性化凭证(而不是动态认证凭证)。
[0037] 同步客户端和服务器播种
[0038] 在一些实施例中,软件令牌的私密密码密钥可以在软件令牌和认证服务器之间共享,其中认证服务器可以用于验证由软件令牌生成的动态凭证。在一些实施例中,认证服务器可以用于确定将软件令牌个性化所利用的私密密码密钥的值。在一些实施例中,认证服务器可以在数据库中存储私密密码密钥的确定值或一个或多个数据要素的值,认证服务器从该数据要素确定或重建软件令牌的私密密码密钥的值。在一些实施例中,认证服务器可以在数据库中存储识别用户的数据要素与一个或多个数据要素之间的关联,其中一个或多个数据要素包括用户软件令牌的私密密码密钥的值或者允许进行用户软件令牌的私密密码密钥的值的重建或确定。在一些实施例中,认证服务器可以用于获取软件令牌用于个性化私密密码密钥的值的所有个性化数据要素的值,并且认证服务器可以用于使用这些已获取的个性化数据要素值来确定软件令牌的私密密码密钥的个性化值。在一些实施例中,认证服务器可以使用与软件令牌相同的算法来确定软件令牌的私密密码密钥的个性化值。在一些实施例中,认证服务器和软件令牌可以使用相同的算法来确定软件令牌的私密密码密钥的相同个性化值。在一些实施例中,认证服务器可以用于获取动态凭证的值,其可能已经由用户的硬件令牌生成并且软件令牌可能已经用于个性化软件令牌的私密密码密钥,并且认证服务器可以使用所获取的动态凭证值来确定或导出软件令牌的私密密码密钥的个性化值。在一些实施例中,认证服务器可以用于随后使用由此确定或导出的软件令牌的私密密码密钥的个性化值来校验软件令牌生成的动态凭证。
[0039] 在一些实施例中,由硬件令牌生成的动态凭证的值可以通过用户提供给软件令牌用于个性化软件令牌的私密密码密钥,并且通过用户同时向认证服务器提供该动态凭证的值,认证服务器可以获取该动态凭证的值。在一些实施例中,由硬件令牌生成并且由软件令牌用于个性化软件令牌的私密密码密钥的动态凭证的值可以作为对于质询的响应通过硬件令牌来生成。在一些实施例中,质询已经由服务器生成并且提供该硬件服务器。在一些实施例中,质询可以由硬件令牌和认证服务器之外的另一实体来生成,并且可以提供到硬件令牌和认证服务器两者。例如,在一些实施例中,质询可以由软件令牌来生成。
[0040] 在一些实施例中,认证服务器可以通过自己生成认证服务器假设硬件令牌已经生成的动态凭证的副本,来获取由硬件令牌生成的动态凭证的值。在一些实施例中,硬件令牌可以用于通过使用私密硬件令牌密钥参数化的对称密码算法(诸如,在此针对软件令牌更详细说明的对称密码算法),组合动态变量(诸如,在此针对软件令牌更详细说明的动态变量)与私密硬件令牌密钥,来生成动态凭证,由此硬件令牌可以与认证服务器共享私密硬件令牌。在一些实施例中,认证服务器可以访问硬件令牌的私密硬件令牌密钥的副本,并且可以用于确定由硬件令牌生成动态凭证所使用的动态变量的服务器值,并且认证服务器还用于使用由此确定的动态变量的服务器值和私密硬件令牌密钥的副本,来生成假设由硬件令牌生成的动态凭证的服务器值,并且认证服务器还用于使用该动态凭证的服务器值来确定软件令牌的个性化私密密码密钥。在一些实施例中,认证服务器可以使用与硬件令牌用于生成其动态凭证的值的算法相同的算法,用于组合动态变量的服务器值与生成动态变量的服务器值的私密硬件令牌密钥的副本。
[0041] 确定动态变量的服务器值
[0042] 在一些实施例中,硬件令牌使用的动态变量可以基于质询,并且认证服务器可以通过获取质询的值来确定动态变量的服务器值。在一些实施例中,正是由认证服务器最初生成质询,然后该质询(例如,由用户)提供给硬件令牌,并且认证服务器和硬件令牌都使用质询值来生成相同的动态凭证值。在一些实施例中,一些其他实体(例如,软件令牌)可以生成质询,并且质询可以被(例如,用户)提供给认证服务器和硬件令牌两者用于生成相同的动态凭证值。
[0043] 在一些实施例中,认证服务器确定硬件令牌用于生成动态凭证的动态变量的可能值的集合或者范围。例如在一些实施例中,硬件令牌的动态变量可以基于时间值(例如可以由包括在硬件令牌中的时钟来提供),并且认证服务器用于确定时间窗口,该时间窗口限定硬件令牌所使用的可能的时间值的范围。在一些实施例中,该可能时间值的范围可以包括至少两个不同的可能时间值。例如在一些实施例中,硬件令牌的动态变量可以基于事件相关的变量值(诸如,针对软件令牌更详细说明的事件相关变量,例如,计数器),并且认证服务器可以用于确定事件相关变量的一组允许值,例如从已经确定为硬件令牌使用过的认证服务器的事件相关变量的最后值开始。在一些实施例中,该组被允许的值可以包括至少两个不同的允许值。在一些实施例中,认证服务器可以用于获取同步信息。在一些实施例中,认证服务器用于使用该通信信息从硬件令牌所使用的动态变量的可能值集合或范围中选择一个或多个值,并且认证服务器还用于使用该一个或多个值使用来确定硬件令牌有效生成的动态凭证的值或者软件令牌的个性化私密密码密钥的值。在一些实施例中,认证服务器可以通过确定或获取动态变量的可能值集合或范围中的每个值的候选值来确定软件令牌的个性化私密密码密钥的一组候选值。在一些实施例中,动态变量的可能值集合或范围包括至少两个不同的值。在一些实施例中,认证服务器可以用于使用先前提及的同步信息来在软件令牌的个性化私密密码密钥的候选值中进行选择。
[0044] 在一些实施例中,同步信息可以包括由软件令牌在使用私密密码密钥的值进行个性化之后生成的一个或多个动态凭证。在一些实施例中,认证服务器可以已经确定了用于软件令牌的个性化私密密码密钥的候选值集合,并且可以接收由个性化软件令牌生成的一个或多个动态凭证,并且可以尝试依次使用个性化私密密码密钥的每个候选值,来校验接收到的由个性化软件令牌生成的一个或多个动态凭证。基于使用个性化私密密码的特定候选者对于接收到的动态凭证中的一个或多个动态凭证的验证是否成功,认证服务器可以选择(或提升)或拒绝(或降级)该特定候选值。
[0045] 在一些实施例中,软件令牌可以用于在私密密码密钥已经被个性化之后生成个性化确认消息。在一些实施例中,该个性化确认消息可以被传送到认证服务器(例如由用户)。在一些实施例中,认证服务器可以使用接收到的个性化确认消息来确定个性化私密密码密钥的值中,或者来确定由硬件令牌用于生成动态凭证的所使用的动态变量的值,其中动态凭证的值反过来由软件令牌用于个性化其私密密码密钥。
[0046] 在一些实施例中,个性化确认消息可以包括同步数据。例如在一些实施例中,由硬件令牌生成的动态凭证可以基于时间值或与事件相关的变量,并且由硬件令牌生成的动态凭证可以包括硬件令牌同步数据,其用于给予验证服务器在生成该动态凭证时硬件令牌使用的时间值或事件相关变量的值上的指示。例如,在一些实施例中,动态变量可以是基于时间的,并且动态凭证可以包括时间值的特定数量的最低有效位(诸如最后两位),或者动态变量可以基于计数器,并且动态凭证可以包括计数器值的特定数量的最低有效位(诸如最后四位)。在一些实施例中,硬件令牌可以生成包括这样的硬件令牌同步数据的凭证,并且可以将该凭证提供给软件令牌以进行软件令牌的个性化。软件令牌可以从其已经接收到的凭证中提取硬件令牌同步数据,使用凭证个性化自身,并生成个性化消息,其中软件令牌可以在个性化确认消息中包括所提取的硬件令牌同步数据。认证服务器可以用于接收个性化确认消息,并且从接收到的个性化确认消息中提取这些硬件令牌同步数据,并且使用硬件令牌同步数据来确定由硬件令牌生成动态凭证所使用的动态变量的值,其中动态凭证反过来由软件令牌用于个性化其私密密码密钥。
[0047] 在认证服务器上使能软件令牌
[0048] 在一些实施例中,认证服务器可以使用个性化确认消息作为软件令牌的个性化已经完成的证明或指示,并且可以在接收到和/或成功核实个性化确认消息时启用个性化软件令牌的使用。在一些实施例中,认证服务器可能不验证由尚未启用的软件令牌生成的动态凭证。在一些实施例中,个性化确定消息包括软件令牌使用密码算法生成的确认凭证,其中的密码算法利用个性化私密密码密钥进行参数化。在一些实施例中,确认凭证例如可以包括软件令牌使用其个性化私密密码密钥生成的动态凭证。在一些实施例中,确认凭证例如可以包括软件令牌使用其个性化私密密码密钥生成的第一动态凭证。在一些实施例中,确认凭证例如可以包括软件令牌使用其个性化私密密码密钥生成的MAC(消息认证代码)或电子签名。在一些实施例中,认证服务器可以用于校验个性化确认消息中所包括的确认凭证。在一些实施例中,认证服务器可以用于使用假设已经生成确认凭证的软件令牌的个性化私密密码密钥的服务器值,来校验个性化确认消息中所包括的确认凭证。在一些实施例中,认证服务器可以已经确定了软件令牌的个性化私密密码密钥的候选值集合,并且认证服务器可以接收包括由个性化软件令牌生成的确认凭证的个性化确认消息,并且认证服务器可以尝试验证接收到的由个性化软件令牌生成的确认凭证,由此认证服务器依次使用个性化私密密码密钥的每个候选值。基于使用个性化私密密码的特定候选对于接收到的确认凭证的验证是否成功,认证服务器可以选择(或提升)或拒绝(或降级)该特定候选值。基于使用个性化私密密码的任何候选对于接收到的确认凭证的验证是否成功,认证服务器可以使得用户能够出于认证目的使用个性化软件令牌。在一些实施例中,认证服务器可以使用其他准则(除了确认凭证的成功核实之外)来决定是否启动软件令牌。
[0049] 用于播种私密密码密钥的附加数据
[0050] 在一些实施例中,由硬件令牌生成的单个动态凭证的熵被认为不充分。例如在一些实施例中,硬件令牌生成的动态凭证可以包括8位十进制数字的字符串并且提供不超过27位的熵。在一些实施例中,例如为了提高产生的私密密码密钥的熵,软件令牌可以用于使用硬件动态凭证之外的其他数据要素来确定或导出私密密码密钥的值。例如在一些实施例中,软件令牌可以用于使用由硬件令牌生成的多个动态凭证值,因此潜在地使得从这些多个动态凭证值导出的私密密码密钥的熵加倍。
[0051] 在一些实施例中,硬件令牌的动态凭证可以基于质询,并且软件令牌也可以在获取私密密码密钥时使用该质询。例如在一些实施例中,质询可以由认证服务器(例如以随机生成的值)提供给用户,并且用户可以将该质询值提供给用于生成动态凭证的硬件令牌和用于个性化私密密码密钥的软件令牌(例如,与所生成的动态凭证一起)。在一些实施例中,质询可以由软件令牌生成(例如,作为随机或伪随机值),并且可以由软件令牌提供给用户,从而提供给硬件令牌用于生成动态凭证,并且也可以(例如,通过用户)提供给认证服务器(例如,作为个性化确认信息的一部分),用于认证服务器同时确定由硬件令牌生成的动态凭证的值和通过软件令牌导出的个性化私密密码密钥。
[0052] 在一些实施例中,可以使用其他的附加数据来从中获取私密密码密钥。例如在一些实施例中,可以使用用户和认证服务器都知道的数据,由此这些数据可以由用户提供给软件令牌。这样的数据的示例可以包括例如用户识别数据(诸如用户名称或用户标识符),或者账号,或用户特定的应用数据(例如,属于用户的行账户上的当前余额)。在一些实施例中,这样的用户和认证服务器公知的数据可包括认证服务器与用户之间共享的秘密,诸如密码。在一些实施例中,这样的密码可以包括仅仅使用一次的个性化密码,即用于软件令牌的个性化。在这样的实施例中,个性化密码可以由认证服务器生成并通过被认为足够安全的通信信道(例如由挂号邮件发送的信件)递送给用户。软件令牌可以用于请求用户提供该个人化密码并从用户接收该个性化密码。然后,软件令牌可以使用该个性化密码来个性化自身。例如,软件令牌可以将个性化软件与由硬件令牌生成的动态凭证(例如,通过串接)组合,并且所得到的组合可以通过其他实施例中单独使用动态凭证的相同方式用于个性化软件令牌。
[0053] 在一些实施例中,当用户正在与硬件令牌进行交互以生成将要用于个性化软件令牌的动态凭证时,用户体验可以不同于当用户与硬件令牌进行交互以产生普通动态凭证时的用户体验,其中普通动态凭证例如将要用于将用户认证到基于计算机的应用。例如,在一些实施例中,硬件令牌可以支持单独的模式或用于生成在软件令牌的个性化中使用的动态凭证的单独功能。在一些实施例中,用户能够例如通过选择特定的菜单项或通过按压特定按钮来访问这种单独的模式或分离的功能。在一些实施例中,必须选择特定的个性化交易类型或向令牌提供特定的个性化交易类型以生成能够用于个性化软件令牌的有效动态凭证。在一些实施例中,可以用于个性化软件令牌的动态凭证可以具有与普通应用动态凭证不同的特征。例如,在一些实施例中,可以用于个性化软件令牌的动态凭证可以比用于签署交易或用于认证用户的动态凭证长得多。用户体验和/或动态凭证的特征的这种差异可以降低用户在生成可用于个性化软件令牌的动态凭证并将所生成的动态凭证移交给欺骗方时被社会工程攻击欺骗的风险,其中欺骗方可以使用盗用的动态凭证来非法地个人化软件令牌,然而该软件令牌被用于欺骗性地假冒合法用户到应用。
[0054] 使用硬件令牌向个性化数据提供商或个性化软件令牌进行认证。
[0055] 在一些实施例中,用户可以使用由硬件令牌生成的动态凭证来访问个性化数据的供应商。例如,在一些实施例中,用户可以使用由与用户相关联的硬件令牌生成的动态凭证来向认证服务器进行认证,并且在成功认证用户时,认证服务器可以向用户生成和/或分配个性化代码,并且将个性化代码发送给用户,用户反过来可以将个性化代码提供给软件令牌以个性化该软件令牌。在一些实施例中,当下载软件令牌应用时,可以基于由用户的硬件令牌生成的动态凭证来首先认证用户。在成功认证用户时,下载服务器(其可以例如包括应用商店)可以生成和/或分配软件下载包,该软件下载包不仅可以包括通用软件令牌应用代码,而且已经通过嵌入式的个性化数据进行个性化,使得在安装下载的软件包时,软件令牌被自动个性化。
[0056] 软令牌与硬件令牌和其他软令牌的共存。
[0057] 在一些实施例中,可以完全等价地使用硬件令牌和软件令牌。在一些实施例中,与硬件令牌相比,软件令牌的使用受限。例如在一些实施例中,当呈现由软件令牌生成的(有效)动态凭证时,用户可以被允许访问基于计算机的应用的特定功能性和/或提交特定类型的交易,但是当呈现由硬件令牌生成的(有效)动态凭证时,用户仅访问特定的其他应用功能性和/或可以提交特定的其他类型的交易。例如在一些实施例中,用户可以使用他或她的软件令牌来执行低风险的交易(诸如,向先前使用的账户转账少量货币),但是必须使用他或她的硬件令牌来执行高风险交易(例如,向之前用户尚未转账过货币的新账户转账大量的货币)。
[0058] 在一些实施例中,多于一个不同地个性化的软件令牌可以与相同的用户相关联,并且进行可互换地使用。在一些实施例中,当新的软件令牌示例被个性化并且能够用于特定用户并与其相关联时,先前与该相同用户相关联的任何软件令牌示例可以自动被禁用。
[0059] 本发明的实施例的一些优点
[0060] 使用已经与用户相关联的硬件令牌生成的动态凭证可以提供安全且用户友好的方式用于个性化软件令牌,用户可以将该软件令牌下载并且安装在用户控制之下的通用个人计算设备上。由于硬件令牌已经与用户相关联并且已经在用户手中,所以不再需要向用户发送信件,该信件包含用户必须提供给软件令牌以个性化软件令牌的个性化代码。这避免了通常与向用户发送安全信件相关联的费用和延迟。由于不再存在安全信件在邮寄中被欺骗者拦截和/或复制的风险,这也比发送安全信件更安全。可替换地,硬件令牌生成的动态凭证可以在个性化软件令牌中提高其他个性化方法的安全性,诸如基于向用户发送个性化密码以提供给软件令牌进行个性化的方法。附图说明
[0061] 从下面尤其是如附图中所示的本发明的实施例的描述,本发明的以上以及其他特定和优点将是清楚的。
[0062] 图1示意性示出根据本发明的一方面的示例系统。
[0063] 图2示意性示出根据本发明的一方面的示例方法。
[0064] 图3示意性示出根据本发明的一方面的示例装置。
[0065] 具体说明
[0066] 下面讨论本发明的一些实施方式。虽然讨论具体的实施方式,应当理解的是这只是出于说明的目的。本领域技术人员将认识到在不背离本领域的精神和范围的情况下可以使用的其他组件和配置。
[0067] 图1示意性示出根据本发明的一方面的发明的示例系统(100)。
[0068] 在一些实施例中,系统可以包括一个或多个个人计算设备(110)、一个或多个硬件令牌(120)、以及认证服务器(130)。在一些实施例中,系统还可以包括应用商店服务器(140)。在一些实施例中,系统还可以包括应用服务器(150)。在一些实施例中,系统还可以包括访问设备(160)。在一些实施例中,系统还可以包括计算机网络(170)。
[0069] 在一些实施例中,个人计算设备(110)可以与特定的用户(190)相关联。在一些实施例中,个人计算设备可以包括用于接收来自用户的输入的用户输入接口(诸如键盘或触摸屏幕),以及用于向用户呈现输出的用户输出接口(诸如,显示器)。在一些实施例中,个人计算设备可以包括存储组件,该存储组件可以用于存储数据并且也可以用于存储可执行编程代码。在一些实施例中,个人计算设备可以包括数据处理组件,该数据处理组件可以用于执行例如存储在存储组件中的可执行程序代码。在一些实施例中,个人计算设备可以运行操作系统。在一些实施例中,操作系统可以允许用户在个人计算设备上安装额外的软件应用或应用用于向个人计算设备提供额外的功能性。个人计算设备的示例包括智能手机和平板计算机。
[0070] 在一些实施例中,可以安装在个人计算设备上的额外的软件应用(“应用”)中的一个可以包括软件令牌。软件令牌可以用于如本说明书中其他位置更详细说明的发挥作用。更特定地,软件令牌可以用于通过加密地组合动态变量与私密密码密钥,例如使用私密密码密钥进行参数化的对称密码算法,来生成动态凭证。软件令牌的私密密码密钥可以存储在个人计算设备的存储组件中。在一些实施例中,软件令牌的私密密码密钥可以与认证服务器(130)共享。在一些实施例中,分开的个人计算设备上的软件令牌的每个单独示例可以具有针对私密密码密钥的其自己单独的值,其中单独的值可以与特定的用户相关联,并且可以不同于软件令牌的其他示例的针对私密密码密钥的值。在一些实施例中,软件令牌可以使用个人计算设备的用户输出接口来向用户输出所生成的动态凭证。在一些实施例中,软件令牌可以用于将生成的动态凭证直接发送到服务器(例如认证或应用服务器),用于进一步处理例如验证或验证所生成的动态凭证。例如在一些实施例中,个人计算设备可以包括移动电话,并且软件令牌可以用于通过SMS(短消息服务)消息向服务器发送生成的动态凭证。或者在一些实施例中,个人计算设备可以具有互联网连接,并且可以通过因特网向服务器发送生成的动态凭证。在一些实施例中,软件令牌可以经由用户输入接口从用户接收输入数据(例如质询或交易数据)。在一些实施例中,软件令牌还可以使用另一种输入机制来接收输入数据(例如,使用相机来捕获例如利用输入数据进行编码的2维条形码的图像)。
[0071] 使用硬件令牌来安装和个性化软件令牌
[0072] 在一些实施例中,个人计算设备可以用于例如通过从应用商店服务器(140)下载软件令牌应用软件来获取软件令牌应用软件。在一些实施例中,将软件令牌的私密密码密钥进行个性化(即,确保软件密钥的私密密码密钥获取可能与特定用户相关联的特定值)可以涉及由用户的硬件令牌生成的动态凭证(120)的使用。例如,在一些实施例中,用户可以在呈现由用户的硬件令牌生成的有效动态凭证时下载完全个性化的软件令牌实例,由此下载的软件令牌实例可以不仅包含软件令牌的通用软件代码,还包括个性化数据要素,该个性化数据要素包括软件令牌的私密密码密钥的值。在一些实施例中,软件令牌可以用于在安装之后经过个性化化阶段,在该阶段期间软件令牌可以接收个性化数据要素,软件令牌可以使用该个性化数据要素来导出例如软件的私密密码密钥的个性化值。在一些实施例中,这些个性化数据要素中的一个或多个可以由例如认证服务器(130)来提供。在一些实施例中,这些一个或多个个性化数据要素可以在呈现由用户的硬件令牌生成的有效动态凭证之后由例如认证服务器来提供。在一些实施例中,软件令牌可以用其导出例如软件令牌的私密密码密钥的个性化值的个性化数据要素可以包括由用户的硬件令牌生成的动态凭证,如本说明书其他地方更详细地进行说明。可以在本说明书的其他地方找到关于软件令牌的个性化以及某些实施例中的软件令牌的其他方面的更多细节。
[0073] 在一些实施例中,硬件令牌(120)可以包括专用于动态凭证的生成的硬件设备,其中动态凭证的生成使用利用私密硬件令牌密钥参数化的对称加密算法,通过加密地组合动态变量与私密硬件令牌密钥来进行。私密硬件令牌密钥可以安全地存储在包括在硬件令牌中的存储组件中。私密硬件令牌密钥可以与认证服务器(130)共享,并且可以与用户(190)相关联。硬件令牌还可以包括数据处理组件,其可以用于执行动态变量与私密硬件令牌密钥的加密组合。硬件令牌还可以包括用于从用户接收输入的用户输入接口,例如质询或交易数据或PIN(个人识别号码),以及用于向用户呈现输出的用户输出接口,诸如例如由硬件令牌生成的动态凭证。在一些实施例中,硬件令牌还可以使用另一输入机制来接收输入数据(例如,使用相机来捕获利用诸如二维条形码或QR码的数据进行编码的图像)。在一些实施例中,硬件令牌可以用于生成注定在软件令牌的个性化中使用的特定动态凭证。在一些实施例中,硬件令牌可以包括用于接收智能卡的未连接的智能卡读卡器,并且可以用于通过与插入的智能卡协作的未连接的智能卡阅读器来生成动态凭证。在一些实施例中,未连接的智能卡读卡器和插入的智能卡可以是EMV-CAP兼容和/或符合的。
[0074] 在一些实施例中,硬件令牌是紧凑、便携式、手持的认证设备。在一些实施例中,硬件令牌的尺寸不超过13cm x 7cm x 1cm。在一些实施例中,硬件令牌的重量不超过100gr。
[0075] 在一些实施例中,认证服务器(130)可以用于校验由用户(190)的个人计算设备(110)上运行的软件令牌和/或硬件令牌(120)生成的动态凭证。认证服务器可以用于与这些用户的硬件令牌共享与用户相关联的私密硬件令牌密钥。认证服务器也可以用于与这些用户的个人计算设备上运行的这些用户的软件令牌共享与用户相关联的私密密码密钥。在一些实施例中,认证服务器可以包括用于存储这些共享的私密硬件令牌密钥和/或私密密码密钥的服务器副本的数据库。在一些实施例中,认证服务器可以包括数据处理组件,其用于执行例如密码计算,以及例如用于验证个人计算设备上运行的软件令牌和/或硬件令牌生成的动态凭证的算法。在一些实施例中,认证服务器可以用于通过生成核实参考值并且将所生成的核实参考值与动态凭证进行比较来核实动态凭证的有效性。在一些实施例中,认证服务器可以使用利用私密硬件令牌密钥或密码私密密钥的服务器值参数化的密码算法,通过加密地组合动态变量的服务器值与私密硬件令牌密钥或密码私密密钥的服务器值,来生成核实参考值。在一些实施例中,认证服务器用于生成核实参考值的密码算法可以包括对称密码算法。在一些实施例中,认证服务器用于生成核实参考值的密码算法可以包括利用共享的私密硬件令牌密钥或私密密码密钥的服务器副本进行参数化的对称密码算法。在一些实施例中,认证服务器用于生成核实参考值的密码算法可以包括与已用于生成有效的动态凭证的密码算法相同或至少基本相同的密码算法。关于通过硬件令牌来生成动态凭证的更多细节已经在本说明的其他地方进行描述。
[0076] 在一些实施例中,认证服务器可以用于生成和/或提供个性化数据,其中的个性化数据可以用于用户软件令牌的私密密码密钥的值的个性化中。这样的由认证服务器提供的个性化数据可以包括由服务器生成的质询。在一些实施例中,认证服务器可以在利用与用户相关联的硬件令牌(120)已经生成的动态凭证的成功核实时提供个性化数据。
[0077] 在一些实施例中,认证服务器可以用于确定通过软件令牌已经个性化的用户软件令牌的私密密码密钥的值,由此软件令牌可能已经从(特别是)由用户的硬件令牌生成的动态凭证导出私密密码密钥值。在一些实施例中,认证服务器可以确定由用户的硬件令牌已生成的并且由软件令牌已经用于获取软件令牌的私密密码密钥的个性化值的动态凭证的值。在一些实施例中,认证服务器可以用于使用所确定的动态凭证的值来导出软件令牌的私密密码密钥的个性化值。在一些实施例中,认证服务器可以用于使用个性化确认消息来确定软件令牌的私密密码密钥的个性化值,该个性化确认消息可以在软件令牌个性化时由软件令牌生成。在一些实施例中,认证服务器可以用于使用个性化确认消息来确定由用户的硬件令牌生成并由软件令牌用于获取私密密码密钥的个性化值的动态凭证的值的软件令牌。在一些实施例中,认证服务器可以适于从个性化确认消息中提取同步数据,并且使用这些同步数据来确定由用户的硬件令牌生成并由软件令牌用于推导的动态凭证的值软件令牌的私密密码密钥的个性化价值。
[0078] 在一些实施例中,认证服务器可以用于使能已经利用软件令牌的私密密码密钥的值进行个性化的软件令牌的使用。在一些实施例中,当认证服务器已经确定软件令牌的私密密码密钥的个性化值时,认证服务器可以自动使能软件令牌的使用。在一些实施例中,认证服务器可以在已经核实其已经为软件令牌的私密密码密钥确定的服务器值确实与软件令牌具有的值相同的值之后使能软件令牌的使用。在一些实施例中,认证服务器可以从个性化确认消息中提取确认凭证,并对于提取出的确认凭证进行加密验证,并且使能软件令牌的使用可以取决于提取出的确认凭证的加密验证的结果。在本说明书的其他地方已经描述了一些实施例的认证服务器的功能和/或其他方面的更多细节,特别是关于认证服务器在软件令牌的个性化过程中的作用。
[0079] 在一些实施例中,认证服务器可包括一个或多个服务器计算机。在一些实施例中,包括在认证服务器中的一个或多个服务器计算机可以用于与诸如应用服务器(150)、应用商店服务器(140)、接入设备(160)或个人计算机设备(110)的其他计算设备进行通信。在一些实施例中,该通信可以通过计算机网络(170)发生。
[0080] 在一些实施例中,应用程序存储服务器(140)可以用于提供下载将要下载并安装在个人计算设备(110)上的一组应用程序。在一些实施例中,该组应用可以包括软件令牌。在一些实施例中,该组应用可以包括用于允许用户访问并与可远程访问的应用的服务器部分进行交互的客户端应用。在一些实施例中,可远程访问应用的该服务器部分可以由应用服务器(150)托管。在一些实施例中,软件令牌可以包括在这样的客户端应用中。例如在一些实施例中,可远程访问的应用可以包括因特网或移动银行应用。在一些实施例中,客户端应用可以包括移动银行客户端应用。在一些实施例中,应用商店服务器可以包括一个或多个计算机服务器,该一个或多个计算机服务器可以由例如计算机网络(170)上的个人计算设备访问。
[0081] 在一些实施例中,应用服务器(150)可以用于托管可以由用户访问的基于计算机的应用的服务器部分,例如通过使用访问设备(160)。在一些实施例中,用户与基于计算机的应用的交互可以通过使用与用户相关联的软件令牌或硬件令牌所生成的动态凭证来保护。例如,用户必须呈现有效的OTP来登录或者必须在用户请求应用执行的交易的数据之上呈现有效的电子签名。在一些实施例中,应用服务器可以将动态凭证的核实委托给认证服务器(130)。在一些实施例中,认证服务器可以包括在应用服务器中。在一些实施例中,基于计算机的应用可以是基于网络的,并且应用服务器可以包括网络服务器。
[0082] 在一些实施例中,访问设备(160)可以包括用于与用户交互的用户输入接口(诸如,键盘)和/或用户输出接口(例如,显示器)。在一些实施例中,访问设备可以包括数据处理组件。在一些实施例中,访问设备可以用于运行基于计算机的应用的客户端部分。在一些实施例中,访问设备可以用于允许用户访问基于计算机的应用。在一些实施例中,可以将基于计算机的应用托管在远程计算机上,诸如应用服务器(150),并且访问设备可以用于与远程计算机进行通信,例如通过计算机网络(170)。在一些实施例中,访问设备可以包括例如个人计算机(PC)、或膝上型计算机、或平板计算机、或智能手机。在一些实施例中,访问设备可以与个人计算设备(110)相同。在一些实施例中,基于计算机的应用可以包括基于网络的应用,并且访问设备可以运行网络浏览器,该网络浏览器用于允许用户与该基于网络的应用进行交互。在一些实施例中,访问设备可以包括例如智能手机或平板计算机,并且访问设备可以包括客户端应用,用户可以使用该客户端应用来访问诸如移动银行应用的可远程访问应用。
[0083] 在一些实施例中,计算网络(170)可以用于支持计算设备之间的数据通信,诸如个人计算设备(110)、认证服务器(130)、应用商店服务器(140)、应用服务器(150)和/或访问设备(160)。在一些实施例中,计算机网络(170)可以包括例如互联网和/或无线数据通信网络和/或公共移动电话网络。
[0084] 在一些实施例中,个人计算设备(110)可以包括用于捕获图像的相机,并且安装在个人计算设备上的软件令牌可以用于使用该相机来捕获利用数字消息进行编码的图像,并且解码捕获到的图像并提取数字消息,并且处理数字消息。在一些实施例中,数字消息可以包括个性化数据,该个性化数据用于软件令牌确定或导出软件令牌的私密密码密钥的值。在一些实施例中,数字消息可以包括消息类型的指示符,其可以向软件令牌指示该数字消息包括个性化消息,其中个性化消息包括个性化数据,并且指示令牌应当使用该个性化数据来确定或获取软件令牌的私密密码密钥的值。在解码图像并提取个性化消息时,令牌可以自动进入个性化模式,并使用个性化消息中包含的个性化数据来确定或导出私密密码密钥的值。软件令牌可以例如在个人计算设备的非易失性存储器中,永久地或不定时地存储该确定的或导出的私密密码密钥以供将来用于生成动态凭证。在一些实施例中,个性化数据可以包括由硬件令牌生成的动态凭证。在一些实施例中,个性化消息可以由硬件令牌生成。在一些实施例中,个性化消息可以通过硬件令牌编码成数字个性化图像。在一些实施例中,硬件令牌可以包括图形显示器,并且硬件令牌可以用于显示利用个性化消息编码的数字个性化图像,其中个性化消息包括由硬件令牌生成的动态个性化凭证。在一些实施例中,硬件令牌可以生成个性化消息,并且可以响应于将硬件令牌引入个性化模式的事件,显示编码个性化消息的数字个性化图像。在一些实施例中,该事件可以例如是用户对于特定菜单选项的选择。在一些实施例中,该事件可以是硬件令牌接收个性化发起消息。在一些实施例中,硬件令牌接收到的个性化发起消息可以包括诸如质询的数据要素,当响应于接收个性化发起消息而生成动态个性化凭证时,由硬件令牌使用该数据要素。
[0085] 例如在一些实施例中,个性化软件令牌的过程可以从认证服务器生成个性化发起消息并将个性化发起消息编码到图像中开始。该图像可以例如以打印的信件、电子邮件或访问设备的显示器提供给用户(例如,在用户已经安全地登录到远程应用程序之后,可能在已经使用将用户认证到远程应用的硬件令牌之后)。硬件令牌可以包括用于捕获图像的数码相机,并且用户可以使用硬件令牌来捕获利用个性化发起消息进行编码的图像。在捕获该图像时,硬件令牌可以解码捕获到的图像并提取出个性化发起消息。在对于接收到的消息进行调查时,硬件令牌可以将其标识为个性化发起消息。硬件令牌可能进入个性化模式。硬件令牌可以生成动态个性化凭证。如果存在,硬件令牌可以从接收到的个性化发起消息中提取个性化质询,并且使用所提取的个性化质询作为硬件令牌用于生成动态个性化凭证的算法的输入数据要素。硬件令牌可以生成包括所生成的动态个性化凭证的个性化消息。
硬件令牌可以将生成的个性化消息编码成个性化图像,并在其显示器上显示该个性化图像。显示在硬件令牌的显示器上的该个性化图像然后可以被用户的个人计算设备的相机捕获,并且然后由用户的个人计算设备上的软件令牌用于如本说明书中其他地方所描述对于软件令牌进行个性化。
[0086] 在一些实施例中,个性化发起消息可以提供安全的信道来将个性化数据安全地从认证服务器传送到硬件令牌。例如在一些实施例中,个性化发起信息可以包括保密性受到加密保护的数据。在一些实施例中,个性化发起消息的真实性和完整性是可以通过硬件令牌进行密码地核实。例如在一些实施例中,个人发起消息可以包括通过硬件令牌进行解密的加密部分。在一些实施例中,服务器已经使用对称加密算法(诸如AES)对于该部分进行加密,其中对称加密算法利用在认证服务器和硬件令牌之间共享的加密密钥进行参数化,并且硬件令牌可以用于使用互补对称解密算法来解密该部分,其中互补对称解密算法利用其共享加密密钥的副本进行参数化。在一些实施例中,认证服务器可以用于使用对称密码签名算法在个性化发起消息的部分上生成签名或MAC(消息认证代码),并且将所生成的签名或MAC包括在个性化发起消息中,其中对称密码签名算法利用在认证服务器和硬件令牌之间共享的加密密钥进行参数化,并且硬件令牌可以用于使用互补对称密码来校验该签名或MAC,其中互补对称解密算法利用其共享的认证密钥的副本进行参数化。在一些实施例中,对称密码签名算法可以基于对称加密算法。在一些实施例中,对称密码签名算法可以基于密码哈希函数,诸如SHA-2(安全哈希算法2)或HMAC。
[0087] 在一些实施例中,认证服务器可以用于生成第一个性化种子。在一些实施例中,认证服务器可以将第一个性化种子生成为通过真随机数生成器或伪随机数生成器所生成的随机数。在一些实施例中,认证服务器可以生成初值并且可以根据该初值生成第一个性化种子。在一些实施例中,初值可以通过真随机数生成器或伪随机数生成器来生成。在一些实施例中,初值可以导出于主密钥和密钥多元数据要素,诸如软件令牌的序列号。在一些实施例中,认证服务器可以将第一个性化种子的值设置为初值的值。在一些实施例中,认证服务器可以通过加密该初值并且将第一个性化种子的值设置为经加密的初值来生成第一个性化种子。
[0088] 在一些实施例中,第一个性化种子可以具有至少64、或96或128位的熵。在一些实施例中,第一个性化种子可以具有至少64、或96或128位的大小。
[0089] 认证服务器可以对于第一个性化种子进行加密。服务器可以在第一个性化种子上生成标签或MAC。服务器可以生成包括经加密的第一个性化种子和第一个性化种子上的签名的(第一)个性化发起消息。在一些实施例中,经加密的第一个性化种子可以包括在(第一)个性化发起消息的加密部分中,其还可以包括第一个性化种子以外的其他数据。在一些实施例中,认证服务器可以在(第一)个性化发起消息中包括的数据上生成MAC的签名,该(第一)个性化发起消息包括第一个性化种子,但是也可以包括除了第一个性化种子之外的其他数据。在一些实施例中,签名或MAC可以包括在加密部分中包括的数据中。在其他实施例中,可以通过包括加密部分的数据上生成MAC的签名。
[0090] 在一些实施例中,(第一)个性化发起消息可以从认证服务器传送到硬件令牌并由硬件令牌接收,如本说明书其它部分的更详细说明。(第一)个性化发起消息可以例如被编码在可以由硬件令牌中包含的数码捕获的数字图像(例如二维条形码或QR码)中,因此硬件令牌可以解码捕获到的图像以检索(第一)个性化发起消息。
[0091] 在一些实施例中,硬件令牌可以校验包含第一个性化种子的接收到的(第一)个性化发起消息的一部分的真实性和/或完整性。涉及第一个性化种子的硬件令牌的任何其他动作可以取决于该核实的成功。在一些实施例中,硬件令牌可以解密接收到的包括第一个性化种子的(第一)个性化发起消息的一部分,并且检索第一个性化种子。
[0092] 在一些实施例中,硬件令牌然后可以从第一个性化种子计算第二个性化种子。在一些实施例中,硬件令牌可以通过仅对认证服务器完全确定性的方式,仅使用认证服务器明确已知的数据从第一个性化种子计算第二个性化种子。例如在一些实施例中,第二个性化种子可以与第一个性化种子相同。在一些实施例中,硬件令牌可以通过将变换函数应用于第一个性化种子来根据第一个性化种子计算第二个性化种子。在一些实施例中,变换函数可以包括密码函数,例如密码散列函数。在一些实施例中,密码函数可以利用第一私密转换密钥进行参数化。在一些实施例中,相对于其他硬件令牌的私密转换密钥,第一私密转换密钥对于该硬件令牌可以是唯一的。在一些实施例中,第一私密变换密钥可以与认证服务器共享。在一些实施例中,私密转换密钥可以具有128位的大小。
[0093] 在一些实施例中,第二个性化种子可以具有至少64、或96或128位的熵。在一些实施例中,第一个性化种子可以具有至少64、或96或128位的大小。
[0094] 在一些实施例中,硬件令牌可以生成包括第二个性化种子的第二个性化消息。然后可以将第二个性化消息从硬件令牌传送到软件令牌,从而通过该软件令牌进行个性化和接收,如本说明书其他部分的更多细节所述。硬件令牌可以例如在第二数字图像(例如二维条形码或QR码)中编码第二个性化消息,并且可以在例如硬件令牌中包括的(图形)显示器上显示该第二数字图像。软件令牌可以用于从硬件令牌的显示器(例如使用运行软件令牌的通用计算设备中的数码相机)捕获第二数字图像,由此软件令牌可以对于捕获到的图像进行解密从而检索第二个性化信息。
[0095] 软件令牌可以用于从第二个性化消息中检索第二个性化种子。
[0096] 软件令牌然后可以从检索到的第二个性化种子导出软件令牌私密密码密钥。软件令牌可以用于从检索到的第二个性化种子导出软件令牌私密密码密钥。在一些实施例中,硬件令牌可以仅使用认证服务器明确已知的数据,以仅对认证服务器完全确定性的方式,根据第二个性化种子计算软件令牌私密密码密钥。例如在一些实施例中,软件令牌私密密码密钥可以与第二个性化种子相同。在一些实施例中,硬件令牌可以通过将变换函数应用于第二个性化种子,根据第二个性化种子来计算软件令牌私密密码密钥。在一些实施例中,软件令牌变换函数可以包括密码函数,例如密码散列函数。在一些实施例中,该密码函数可以利用第二私密转换密钥进行参数化。在一些实施例中,对于一组软件令牌第二私密变换密钥可以相同。在一些实施例中,第二私密变换密钥可以与认证服务器共享。在一些实施例中,第二私密转换密钥可以具有128位的大小。在一些实施例中,软件令牌可以从第二个性化种子导出软件令牌私密密码密钥,其中使用的方式与本说明中其他地方更详细说明的软件令牌使用已经由硬件令牌生成并且软件令牌已经从该硬件令牌接收到的动态凭证来个性化其私密密码密钥的方式相同。
[0097] 软件令牌可以将导出的软件令牌私密密码密钥存储在非易失性存储器中以供将来使用,例如在随后生成动态凭证中。
[0098] 软件令牌可以用于使用导出的软件令牌私密密码密钥来生成确认凭证。
[0099] 认证服务器可以用于确定软件令牌私密密码密钥的服务器副本的值。在一些实施例中,认证令牌可以用于确定与硬件令牌相同的第二个性化种子的值。在一些实施例中,认证服务器可以导出与软件令牌相同的私密密码密钥的值。
[0100] 在一些实施例中,认证服务器可以通过与硬件令牌相同的方式根据第一个性化种子计算其第二个性化种子的副本。在一些实施例中,认证服务器可以通过将与硬件令牌相同的变换函数应用于第一个性化种子,根据第一个性化种子来计算第二个性化种子的副本。在一些实施例中,变换函数可以包括利用在硬件令牌和认证服务器之间共享的第一私密变换密钥进行参数化的加密函数,并且认证服务器可以(例如,从数据库)检索硬件令牌的第一私密变换密钥的值,并且在将变换函数应用于第一个性化种子以计算第二个性化种子时,使用该检索到的值来参数化变换函数。
[0101] 在一些实施例中,认证服务器可以通过与软件令牌相同的方式来从第二个性化种子导出软件令牌的私密密码密钥的副本。在一些实施例中,硬件令牌可以通过将变换函数应用于第二个性化种子,根据计算出的第二个性化种子来计算软件令牌的私密密码密钥的副本。在一些实施例中,第二变换函数可以与软件令牌变换函数相同。在一些实施例中,第二变换函数可以包括密码函数,该密码函数利用可以在认证服务器和软件令牌之间共享的第二私密变换密钥进行参数化,并且认证服务器可以检索该软件令牌的第二私密转换密钥的值,并且在将第二变换函数应用于第二个性种子时,使用该该检索到的值来参数化第二变换函数,从而从计算出的第二个性化种子导出其软件令牌的私密密码密钥的副本。
[0102] 在一些实施例中,认证服务器可以用于在该软件令牌进行个性化之后接收由软件令牌生成的确认凭证。在一些实施例中,认证服务器可以通过使用其软件令牌的私密密码密钥的副本来校验接收到的确认凭证。例如在一些实施例中,认证服务器可以使用其软件令牌的私密码密钥的副本来计算确认凭证的一个或多个期望的参考值,并且认证服务器可以比较接收到的确认凭证与一个或多个计算的预期参考值,并且如果接收到的确认凭证与这些计算的参考值中的一个匹配,则认证服务器可以认为接收到的确认凭证的核实是成功的。
[0103] 在一些实施例中,认证服务器可以将其软件令牌的私密密码密钥的副本(或能够重建软件令牌的私密密码密钥的副本的等效数据)存储在非易失性存储器中以供将来使用,例如用于随后校验由软件令牌生成的动态凭据。在一些实施例中,认证服务器可以启用个性化软件令牌的使用。在一些实施例中,将其软件令牌的私密密码密钥的副本存储在非易失性存储器中以供将来使用和/或启用个性化软件令牌可以取决于已经成功完成接收到的确认凭证的核实。
[0104] 图2示意性示出根据本发明的一方面的发明的示例方法(200)。该方法的变型可以与本说明书中其他地方描述的任何系统一同使用。
[0105] 在一些实施例中,方法可以包括例如从应用商店下载(210),和/或在用户的个人计算设备上安装软件令牌。
[0106] 在一些实施例中,方法可以包括通过与用户相关联的硬件令牌生成(220)动态凭证。
[0107] 在一些实施例中,方法可以包括使用由硬件令牌生成的动态凭证来个性化(230)软件令牌的私密密码密钥的值。
[0108] 在一些实施例中,该方法可以包括向认证服务器提交由硬件令牌生成的动态凭证,并且在认证服务器处校验由硬件令牌生成的动态凭证的有效性。
[0109] 在一些实施例中,该方法包括在认证服务器处生成和/或提供一个或多个个性化服务器数据要素。在一些实施例中,一个或多个个性化服务器数据要素可包括服务器质询。
[0110] 在一些实施例中,该方法可以包括通过个人计算设备的软件令牌接收一个或多个外部个性化数据要素。
[0111] 在一些实施例中,该一个或多个外部个性化数据要素可以包括由硬件令牌生成的动态凭证,并且该方法可以包括通过个人计算设备的软件令牌接收(240)所生成的动态凭证的值。
[0112] 在一些实施例中,该一个或多个外部个性化数据要素可以包括一个或多个个性化服务器数据要素,并且该方法可以包括通过个人计算设备的软件令牌接收(240)该一个或多个个性化服务器数据要素。
[0113] 在一些实施例中,该方法可以包括软件令牌确定一个或多个内部个性化数据要素的值。在一些实施例中,内部个性化数据要素可以包括例如时间值,其例如由个人计算设备的时钟来提供。在一些实施例中,内部个性化数据要素可以包括由软件令牌生成的或者软件令牌可以从个人计算设备接收到的随机或伪随机值。例如在一些实施例中,随机值可以由软件令牌根据某些用户动作之间的时间差的测量来生成,诸如输入由用户的硬件令牌生成的动态凭证的连续数字。
[0114] 在一些实施例中,该方法可以包括通过软件令牌获取一个或多个个性化数据要素的值。在一些实施例中,获取的一个或多个个性化数据要素的值可以包括一个或多个外部个性化数据要素的值。在一些实施例中,获取的一个或多个个性化数据要素的值可以包括一个或多个内部个性化数据要素的值。
[0115] 在一些实施例中,该方法包括对于软件令牌进行个性化。在一些实施例中,该方法可以包括对于软件令牌的私密密码密钥的值进行个性化。在一些实施例中,对于软件令牌进行个性化可以包括使用由硬件令牌生成的动态凭证的值。
[0116] 在一些实施例中,该方法可以包括通过软件令牌从一个或多个个性化数据要素导出(250)私密密码密钥。在一些实施例中,从一个或多个个性化数据要素导出私密密码密钥可以包括软件令牌将诸如单向哈希算法的密码算法用于一个或多个个性化数据要素。在一些实施例中,该密码算法可以利用与认证服务器共享的主要密码进行参数化。在一些实施例中,该主要密码可以被多于一个的软件令牌实例中的多个进行共享。
[0117] 在一些实施例中,软件令牌可以用于在软件令牌已经确定或导出该值之后存储私密密码密钥的值,作为用于个性化软件令牌的方法的一部分。例如,软件令牌可以将该值存储在个人计算设备的存储器中。在一些实施例中,软件令牌可以永久地存储私密密码密钥的值。在一些实施例中,软件令牌在被个性化之后,每当需要生成动态凭证时,就从存储器中检索私密在一些实施例中,该方法可以包括先前实施例的任何方法,其中在第二软件认证令牌处从检索到的第二个性化种子导出凭证生成密钥的值的步骤可以包括:将凭证生成密钥的值计算为在第二软件认证令牌处将第一变换函数应用到检索到的第二个性化种子的值。密码密钥的存储值。即,一旦个性化,软件令牌能够在不存在硬件令牌,并且不需要由硬件令牌生成的任何动态个性化凭证的情形下自动地生成动态凭证。
[0118] 在一些实施例中,该方法可以包括软件令牌生成并提供个性化确认消息。在一些实施例中,个性化确认消息可以包括与由硬件令牌用于生成动态凭证的动态变量的值相关的同步数据。在一些实施例中,个性化确认消息可以包括与内部个性化数据要素相关的值。在一些实施例中,该方法可以包括软件令牌加密地生成确认凭证并且将确认凭证包括在个性化确认消息中。在一些实施例中,软件令牌可以通过使用软件令牌的个性化私密密码密钥进行参数化的密码算法来加密地生成确认凭证。在一些实施例中,确认凭证可以包括软件令牌可以通过将动态变量的值与软件令牌的个性化私密密码密钥进行加密组合而生成的动态凭证。
[0119] 在一些实施例中,该方法可以包括将个性化确认消息传送到认证服务器。在一些实施例中,该方法可以包括在认证服务器处接收个性化确认消息。
[0120] 在一些实施例中,该方法可以包括在认证服务器处确定已经在软件令牌处进行个性化的私密密码密钥的值。在确定该值时,认证服务器可以存储该值,例如在链接到用户的标识符的数据库中,使得认证服务器可稍后检索以用于核实由软件生成的动态凭证的有效性。
[0121] 在一些实施例中,在认证服务器处确定已经在软件令牌处被个性化的私密密码密钥的值可以包括,在认证服务器处获取软件令牌用于导出软件令牌的私密密码密钥的个性化值所使用的个性化数据要素的值,以及在认证服务器处根据获取的个性化数据要素的值来导出(270)个性化私密密码密钥的值。
[0122] 在一些实施例中,在认证服务器处获取软件令牌用于导出私密密码密钥的个性化值所使用的个性化数据要素的值可以包括在认证服务器处获取软件令牌所使用的至少一些外部个性化数据要素的值。在一些实施例中,在认证服务器处获取至少一些外部个性化数据要素的值可以包括在认证服务器处确定(260)软件令牌在个性化其私密密码密钥的值中所使用的由硬件令牌生成的至少动态凭证的值。在一些实施例中,在认证服务器处确定动态凭证的值可以包括,从接收到的个性化确认消息中提取同步数据,并使用所提取的同步数据来确定硬件令牌用于生成动态凭证所使用的动态变量的值。
[0123] 在一些实施例中,在认证服务器处获取软件令牌用于导出其私密密码密钥的个性化值所使用的个性化数据要素的值可以包括在认证服务器处获取软件令牌所使用的至少一些部分内部个性化数据要素的值。在一些实施例中,在认证服务器处获取至少一些内部个性化数据要素可以包括,从接收到的个性化确认消息提取与内部个性化数据要素有关的值,并且使用这些提取的值来确定至少一些内部个性化数据要素的值。
[0124] 在一些实施例中,该方法可以包括启用(280)软件令牌的使用。在一些实施例中,通过认证服务器启用软件令牌的使用可以取决于认证服务器成功地验证认证服务器已经确定的私密密码密钥的值与软件令牌已经个性化的私密密码密钥的值对应。在一些实施例中,该核实可以包括,认证服务器从接收到的个性化确认消息提取确认凭证,并且使用利用认证服务器已经确定的私密密码密钥的值进行参数化的密码算法,来验证所提取的确认凭证的有效性。
[0125] 在一些实施例中,已经个性化的第一软件令牌(通过与本说明书中描述的个性化方法相同的个性化方法或其之外的另一个性化方法)可以代替生成动态个性化凭证的硬件令牌,其中动态个性化凭证用于个性化不同于第一软件令牌并且仍然将要个性化的另一第二软件令牌。该第一软件令牌可以用于模拟硬件令牌的作用。这样的第一软件令牌以及运行该第二软件令牌的计算设备可以用于执行任何作用和功能和/或包括本说明书中其他位置描述的任何硬件令牌的任何特征和组件。
[0126] 在本发明的变型中,在第一令牌可以生成由第二软件令牌接收的第二个性化消息之后,第一个性化发起消息可以由服务器生成并且由第一令牌接收,其中的第二软件令牌根据本说明书中其他位置更详细描述的个性化方法进行个性化。
[0127] 在一些实施例中,第一令牌可以是已经个性化并且与用户相关联的令牌。在一些实施例中,第一令牌可以是硬件令牌,而在其他实施例中第一令牌可以包括软件令牌。
[0128] 图3示出根据本发明的一方面的个性化装置(300)。
[0129] 在一些实施例中,个性化装置可以包括:包括数码相机的输入接口(340),包括图形化显示器的输出接口(330),存储器(360)和可以连接到输入接口、输出接口和存储器的数据处理器(350);其中输入接口用于通过利用所述数码相机捕获利用所述第一个性化发起消息进行编码的第一二维条形码图像来接收第一个性化发起消息;其中数据处理器可以用于解码所述获取到的第一二维条形码图像以获取第一个性化发起消息,从接收到的第一个性化发起消息检索第一个性化种子,根据所述检索到的第一个性化种子生成第二个性种子,生成包括所述检索到的第二个性化种子的第二个性化消息,以及利用所述第二个性化消息编码第二二维条形码;其中输出接口用于通过在所述图形化显示器上显示所述第二二维条形码图像来输出所述第二个性化信息;并且其中所述存储器可以用于存储与特定用户相关联的私密令牌密钥,该私密令牌密钥可以由所述数据处理器用于所述从接收到的第一个性化发起消息检索第一个性化种子,或者用于所述根据所述检索到的第一个性化种子生成第二个性种子。
[0130] 在一些实施例中,数据处理器(350)可以包括数字数据处理组件。在一些实施例中,数据处理器可以包括IC(集成电路),诸如微处理器、微控制器、或FPGA(现场可编程阵列)。
[0131] 在一些实施例中,存储器(360)可以包括RAM(随机存取存储器)。在一些实施例中,存储器可以包括诸如ROM(只读存储器)的非易失性存储器。在一些实施例中,存储器可以可读非易失性存储器,诸如EEPROM(电可擦除可编程只读存储器)或闪速存储器或硬盘。
[0132] 在一些实施例中,个性化设备还可以包括人工输入接口(320),其用于获取来自该装置的用户的输入。人工输入接口可以例如包括键盘或触摸屏幕。
[0133] 在一些实施例中,个性化装置还可以包括用于提供动态变量的值的组件(370)。例如,该组件可以包括实时的时钟。
[0134] 在一些实施例中,数据处理器可以进一步用于通过加密地组合由组件(370)提供的动态变量的值与例如可以存储在存储器(360)中的私密密码密钥,来生成动态凭证。
[0135] 本发明的一个方面提供了第一软件令牌的个性化方法。
[0136] 在第一方法的第一组实施例中,该方法可以包括以下步骤:在第一认证令牌处,通过加密地组合第一动态变量的值与在第一认证令牌和认证服务器之间共享的第一凭证生成密钥来生成第一动态凭证,其中所述第一凭证生成密钥与特定的用户相关联;在与第一认证令牌不同的第二软件认证令牌处,接收所生成的第一动态凭证;在第二软件认证令牌处,从所接收的第一动态凭证导出第二凭证生成密钥的值;在第二软件认证令牌处,生成使用确认凭证,该确认凭证使用所导出第二凭证生成密钥进行参数化的加密算法;在认证服务器处接收确认凭证;在认证服务器处确定第二凭证生成密钥的服务器副本;在认证服务器处,使用第二凭证生成密钥的服务器副本来验证所接收的确认凭证;如果验证服务器上的确认凭证的验证是成功的,则在认证服务器将所确定的第二凭证生成密钥的服务器副本与特定用户相关联,并且在认证服务器处,将所确定的与特定用户相关联的第二凭证生成密钥存储在非易失性存储器中。可以在本说明书的其他地方找到关于该方法的各个步骤的更多细节。在一些实施例中,可以存储第二凭证生成密钥的服务器副本的确定值本身;在其他实施例中,可以存储允许重建第二凭证生成密钥的服务器副本的确定值的等效数据。在一些实施例中,第二软件认证令牌可以包括运行在诸如智能手机或平板计算机的通用计算设备上的软件认证应用,其中第二软件认证令牌用于通过加密地组合第二动态变量与导出的第二凭证生成密钥来生成动态凭证。在一些实施例中,在认证服务器处使用第二凭证生成密钥的服务器副本来验证所接收的确认凭证的步骤可以包括将密码验证算法应用于所接收的确认凭证,其中所述密码验证算法通过所述第二个凭证生成密钥的服务器副本进行参数化。
[0137] 在一些实施例中,该方法可以包括第一组实施例的任何方法,还包括以下步骤:通过将第二动态变量与第二凭证生成密钥的导出值进行组合,在第二软件令牌处产生第二动态凭证;在认证服务器处接收第二动态凭证;在认证服务器处检索所存储的第二凭证生成密钥的服务器副本;在认证服务器处使用检索到的第二凭证生成密钥的服务器副本验证接收到的第二动态凭证;如果接收到的第二动态凭证的所述核实成功,则在认证服务器处生成认证信号
[0138] 在一些实施例中,该方法可以包括任何前述实施例的方法中的任何一个,还包括以下步骤:在认证服务器处使用所接收的确认凭证来确定第二凭证生成密钥的服务器副本。在一些实施例中,该方法还可以包括以下步骤:在认证服务器处确定第一动态变量的可能值集合;在认证服务器处,使用所述第一凭证生成密钥,针对第一动态变量的每个已确定的可能值来生成第一动态凭证的参考值;针对所生成的第一动态凭证参考值中的每一个,导出第二凭证生成密钥的候选值;在认证服务器处,在所生成的第二凭证生成密码的候选值之中搜索成功地验证所接收的确认凭证的候选值;如果已经发现能够成功地验证所接收的确认凭证的候选值,则在认证服务器处将第二凭证生成密钥的服务器副本确定为已经成功验证接收到的确认凭证的候选值。在一些实施例中,由第一认证令牌生成并由第二软件认证令牌接收的第一动态凭证可以包括同步数据,该同步数据包括由第一动态凭证的第一认证令牌生成中所使用的第一动态变量的值有关的信息;并且生成确认凭证的步骤可以包括,在第二软件认证令牌处提取接收到的第一动态凭证中所包括的同步数据,并将提取出的同步数据包括在确认凭证中;并且在认证服务器处确定第一动态变量的可能值集合可以包括,在认证服务器处提取接收到的确认凭证中所包括的同步数据,并且使用所提取的同步数据来选择第一动态变量的可能值集合。
[0139] 本发明的另一方面提供了第一软件令牌个性化系统。
[0140] 在第一系统的一些实施例中,系统可以包括第一认证令牌、不同于第一认证令牌的第二软件认证令牌和认证服务器;其中第一认证令牌可以用于通过将第一动态变量与在第一认证令牌和认证服务器之间共享的第一凭证生成密钥进行加密组合来生成第一动态凭证,其中第一凭证生成密钥与特定的用户相关联;并且其中第二软件认证令牌可以用于接收所生成的第一动态凭证,使用所接收的第一动态凭证来导出第二凭证生成密钥的值,并且使用导出的第二凭证生成密钥进行参数化的加密算法来生成确认凭证;并且其中认证服务器可以用于接收确认凭证,确定第二凭证生成密钥的服务器副本,使用第二凭证生成密钥的服务器副本来验证接收到的确认凭证;如果对于确认凭证的所述核实成功,则将所确定的第二凭证生成密钥的服务器副本与特定用户相关联,并将所确定的与所述特定用户相关联的第二凭证生成密钥的服务器副本存储在非易失性存储器中。在一些实施例中,第二软件认证令牌可以包括运行在诸如智能手机或平板计算机的通用计算设备上的软件认证应用,其中第二软件认证令牌用于通过加密地组合第二动态变量与导出的第二凭证生成密钥来生成动态凭证。
[0141] 本发明的一方面提供了第二软件令牌的个性化方法。
[0142] 在第二方法的第一组实施例中,个性化方法可以包括以下步骤:在认证服务器处生成第一个性化种子;在认证服务器处生成包括所述第一个性化种子的第一个性化发起消息;在与特定用户相关联的第一认证令牌处接收所述第一个性化发起消息;在第一认证令牌处,根据接收到的第一个性化发起消息来检索所述第一个性化种子;在第一认证令牌处根据所述检索到的第一个性化种子生成第二个性化种子;在第一认证令牌处生成包括所述生成的第二个性化种子的第二个性化消息;在与第一认证令牌不同的第二软件认证令牌处接收所述第二个性化消息;在第二软件认证令牌处从接收到的第二个性化消息中检索所述第二初始化种子;在第二软件认证令牌处,根据检索到的第二个性化种子导出凭证生成密钥的值;在第二软件认证令牌处,使用利用凭证生成密钥的导出值进行参数化的加密算法来生成确认凭证;在认证服务器处接收确认凭证;在认证服务器处确定凭证生成密钥的服务器副本;在认证服务器处使用凭证生成密钥的服务器副本来验证接收到的确认凭证。在一些实施例中,第二软件认证令牌可以包括运行在诸如智能手机或平板计算机的通用计算设备上的软件认证应用,其中第二软件认证令牌用于通过加密地组合动态变量与导出的凭证生成密钥来生成动态凭证。在一些实施例中,第一认证令牌可以包括与特定用户相关联的私密令牌密钥,并且所述私密令牌密钥可以用于在第一认证令牌处从接收到的第一个性化发起消息中检索所述第一个性化种子的步骤中,或者所述私密令牌密钥可以用于在第一认证令牌处从所述检索到的第一个性化种子生成第二个性化种子的步骤中。可以在本说明书的其他地方找到有关第二软件个性化方法的各个步骤的更多细节。
[0143] 在一些实施例中,该方法可以包括第一组实施例的任何方法,其还包括以下步骤:如果在认证服务器处的确认凭证的所述验证成功,则在认证服务器处将所确定的凭证生成密钥的服务器副本与特定用户进行关联,并且在认证服务器处,将所确定的与特定用户相关联的凭证生成密钥的服务器副本存储在非易失性存储器中。在一些实施例中,可以存储凭证生成密钥的服务器副本的确定值本身;在其他实施例中,可以存储允许重建凭证生成密钥的服务器副本的确定值的等效数据。
[0144] 在一些实施例中,该方法可以包括先前实施例的任何方法,其还包括如下步骤:在第二认证令牌处,将凭证生成密钥的导出值或者允许第二认证令牌重建凭证生成密钥的导出值的重建数据存储在非易失性存储器中存储。在一些实施例中,重建数据可以包括第二初始化种子。
[0145] 在一些实施例中,该方法可以包括先前实施例的任何方法,其还包括以下步骤:在第二软件认证令牌处检索凭证生成密钥的导出值;通过组合动态变量与凭证生成密钥的检索值,在第二软件认证令牌处生成动态凭证;在认证服务器处接收动态凭证;在认证服务器处检索凭证生成密钥的服务器副本;使用检索到的凭证生成密钥的服务器副本在认证服务器处验证接收到的动态凭证。在一些实施例中,在第二软件认证令牌处检索凭证生成密钥的导出值可以包括第二软件认证令牌从非易失性存储器读取凭证生成密钥的导出值。在一些实施例中,在第二软件认证令牌处检索凭证生成密钥的导出值可以包括第二软件认证令牌根据从非易失性存储器读取的重建数据来重建凭证生成密钥的导出值。
[0146] 在一些实施例中,该方法可以包括先前实施例的任何方法,其还包括以下步骤:在认证服务器处,通过至少第一初始化种子生成电子签名,并且在第一个性化启动消息中包括所述电子签名;在所述第一认证令牌处检索所述电子签名,以及在第一认证令牌处验证检索到的电子签名。在一些实施例中,该方法还可以包括,如果检索到的电子签名的验证不成功则拒绝第一个性化发起消息的步骤。在一些实施例中,生成电子签名可以通过使用利用密码消息认证密钥进行参数化的加密电子签名生成算法来完成。在一些实施例汇总,密码消息认证密钥可以在认证服务器与第一认证令牌之间共享,并且核实检索到的电子签名可以通过使用密码电子签名核实算法来完成,密码电子签名验证算法利用所述密码消息认证密钥进行参数化。在一些实施例中,电子签名可以包括MAC(消息认证代码)。
[0147] 在一些实施例中,该方法包括先前实施例的任何方法,其还包括以下步骤:在认证服务器处,使用与认证令牌相关联并且对其唯一的第一加密密钥来加密第一个性化种子,并且将经过加密的第一个性化种子包括在第一个性化发起消息中;在第一认证令牌处,从第一个性化发起消息检索经过加密的第一个性化种子,并且解密经过加密的第一个性化种子。在一些实施例中,第一加密密钥可以在认证服务器与第一认证令牌之间共享,并且使用第一加密密钥来加密第一个性化种子可以包括使用第一加密密钥(的服务器副本)进行参数化的对称加密算法来加密第一个性化种子,并且解密检索到的经过加密的第一个性化种子可以包括使用第一加密密钥(的第一认证令牌副本)进行参数化的对称解密算法来解密该检索到的经过加密的第一个性化种子。
[0148] 在一些实施例中,该方法还包括在认证服务器处生成初始值;其中在认证服务器处确定凭证生成密钥的服务器副本的步骤可以包括,在认证服务器处,通过使用密钥导出方法,根据所述初始值来导出凭证生成密钥的服务器副本的值;并且其中在第二软件认证令牌处从检索到的第二个性化种子导出凭证生成密钥的值的步骤可以包括,在第二软件认证令牌处从检索到的第二个性化种子导出所述的初始值,以及在第二软件认证令牌处通过使用所述密钥导出方法从所述检索到的初始值导出凭证生成密钥。在一些实施例中,从初始值导出凭证生成密钥的密钥导出方法可以包括将凭证生成密钥的值设置到初始值。
[0149] 在一些实施例中,在认证服务器处生成第一个性化种子的步骤可以包括,使用第二加密密钥在认证服务器处加密所述初始值并且将所述第二个性化种子的值设置到所述经过加密的初始值;并且在第二软件认证令牌处从检索到的第二个性化种子导出凭证生成密钥的步骤可以包括从所述第二个性化种子检索所述第一个性化种子,利用与所述第二加密密钥匹配的第二解密密钥来解密所述检索到的第一个性化种子从而获取所述初始值。在一些实施例中,第二机密密钥可以在认证服务器和第二软件认证令牌之间共享,并且利用第二加密密钥来加密初始值可以包括利用第二加密密钥(的服务器副本)进行参数化的对称加密算法来加密初始值,并且解密接收到的第一个性化种子可以包括利用第二加密密钥(的第一认证令牌副本)进行参数化的对称解密算法来解密检索到的第一个性化种子。
[0150] 在其他实施例中,在认证服务器处生成第一个性化种子的步骤可以包括将第一个性化种子设置到所述初始值。
[0151] 在一些实施例中,在第二软件认证令牌处从检索到的第二个性化种子导出凭证生成密钥的值的步骤可以包括,在第二软件认证令牌处从检索到的第二个性化种子检索第一个性化种子,以及在第二软件认证令牌从检索到的第一个性化种子导出凭证生成密钥。
[0152] 在一些实施例中,在第一认证令牌处根据所述检索到的第一个性化种子生成第二个性化种子的步骤可以包括,将第二个性化种子的值设置到检索到的第一个性化种子的值;并且在第二软件认证令牌处从检索到的第二个性化种子导出凭证生成密钥的值的步骤可以包括,在第二软件认证令牌处通过采用检索到的第二个性化种子的值从检索到的第二个性化种子中检索第一个性化种子,以及从检索到的第一个性化种子导出凭证生成密钥。在一些实施例中,在第二软件认证令牌处从检索到的第二个性化种子导出凭证生成密钥的值的步骤可以包括,将凭证生成密钥的值设置到检索到的第二个性化种子的值。
[0153] 在其他实施例中,在第一认证令牌处根据所述检索的第一个性化种子来生成第二个性化种子的步骤可以包括,将第二个性化种子的值计算为检索到的第一个性化种子的第一可逆变换函数;并且在第二软件认证令牌处从检索到的第二个性化种子中导出凭证生成密钥的值的步骤可以包括,在第二软件认证令牌处通过在第二软件认证令牌中应用检索到的第二个性化种子的值的第二变换函数,来从检索到的第二个性化种子中检索第一个性化种子,其中第二变换函数是第一可逆变换函数的逆函数,以及在第二软件认证令牌处从检索到的第一个性化种子导出凭证生成密钥。例如在一些实施例中,第一可逆变换函数可以包括利用第一密码变换密钥进行参数化的密码加密算法,并且第二变换函数可以包括与密码加密算法相匹配并且利用第二密码变换密钥进行参数化的密码解密算法,该密码解密算法反过来又与所述第一密码转换密钥相匹配。例如在一些实施例中,所述密码加密算法可以包括对称加密算法(诸如AES),并且所述密码加密算法可以包括对应的对称解密算法,并且第一密码变换密钥和第二密码变换密钥可以是由第一认证令牌和第二软件认证令牌共享的相同的对称密码加密-解密密钥。在一些实施例中,在第二软件认证令牌处从检索到的第一个性化种子中导出凭证生成密钥可以包括在第二软件认证令牌处将凭证生成密钥的值设置到检索到的第一个性化种子。
[0154] 在一些实施例中,该方法可以包括先前实施例的任何方法,其中从所述检索到的第一个性化种子生成第二个性化种子的步骤可以包括将第二个性化种子的值计算为在第一认证令牌处将第一变换函数应用到的检索到的第一个性化种子的值的结果。在一些实施例中,在认证服务器处确定凭证生成密钥的服务器副本的步骤可以包括,在认证服务器处将第二个性化种子的服务器副本的值计算为在认证服务器处将相同的第一变换函数应用到第一个性化种子的值的结果,以及根据第二个性化种子的服务器副本的值来确定凭证生成密钥的服务器副本。在一些实施例中,第一变换函数可以使得第二个性化种子的值不同于第一个性化种子的值。在一些实施例中,第一变换函数可以包括密码函数,例如密码散列函数。在一些实施例中,第一变换函数可以包括对称密码函数,诸如利用第一私密对称密码变换密钥进行参数化的键控散列函数或对称加密/解密函数。在一些实施例中,第一私密对称密码变换密钥可以在认证服务器和第一认证令牌之间共享。在一些实施例中,第一私密对称密码变换密钥可以对于给定的第一认证令牌唯一。在一些实施例中,第一私密对称密码变换密钥可以在第一认证令牌和第二软件认证令牌之间共享。
[0155] 在一些实施例中,该方法可以包括先前实施例的任何方法,其中根据所述检索到的第一个性化种子生成第二个性化种子的步骤可以包括将第二个性化种子的值设置为检索到的第一个性化种子的值。
[0156] 在一些实施例中,该方法可以包括先前实施例的任何方法,其中在第二软件认证令牌处从检索到的第二个性化种子导出凭证生成密钥的值的步骤可以包括,将凭证生成密钥的值计算为在第二软件认证令牌处将第二变换函数应用到检索到的第二个性化种子的值的结果。在一些实施例中,在认证服务器处确定凭证生成密钥的服务器副本的步骤可以包括,在认证服务器处将凭证生成密钥的服务器副本的值计算为在认证服务器处将相同的第二变换函数应用到第二个性化种子的服务器副本的值的结果。在一些实施例中,第二转换函数可以使得凭证生成密钥的值不同于第二个性化种子的值。在一些实施例中,第二变换函数可以包括密码函数,例如密码散列函数。在一些实施例中,第二变换函数可以包括对称密码函数,诸如利用第二私密对称密码变换密钥进行参数化的键控散列函数或对称加密/解密函数。在一些实施例中,第二私密对称密码变换密钥可以在认证服务器和第二软件认证令牌之间共享。在一些实施例中,第二私密对称密码变换密钥可以在第一认证令牌和第二软件认证令牌之间共享。在一些实施例中,第二私密对称密码转换密钥对于包括第二软件认证令牌的一批认证令牌可以具有相同的值。在一些实施例中,第二私密对称加密转换密钥可以与第一私密对称密码变换密钥相同。
[0157] 在一些实施例中,该方法可以包括先前实施例的任何方法,其中在第二软件认证令牌处从检索到的第二个性化种子导出凭证产生密钥的值的步骤可以包括在第二软件认证令牌处将凭证生成密钥的值设置为检索到的第二个性化种子的值。
[0158] 本发明的另一方面提供了第二软件令牌个性化系统。
[0159] 在第二系统的一些实施例中,个性化系统可以包括:认证服务器,与特定用户相关联的第一认证令牌和与第一认证令牌不同的第二软件认证令牌;其中认证服务器可以用于生成第一个性化种子,并且生成包括所述第一个性化种子的第一个性化发起消息;其中第一认证令牌可以用于接收所述第一个性化发起消息,从所接收的第一个性化发起消息中检索所述第一个性化种子,根据所述检索到的第一个性化种子生成第二个性化种子,以及生成第二个性化消息,其中包括所述生成的第二个性化种子;并且其中第二软件认证令牌可以用于接收所述第二个性化消息,从所接收的第二个性化消息中检索所述第二初始化种子,从检索到的第二个性化种子中导出凭证生成密钥的值,以及使用凭证生成密钥的导出值进行参数化的加密算法来生成确认凭证;其中认证服务器还可以用于接收确认凭证,以确定凭证生成密钥的服务器副本,并且使用凭证生成密钥的服务器副本来验证接收到的确认凭证。在一些实施例中,第二软件认证令牌可以包括运行在诸如智能手机或平板计算机的通用计算设备上的软件认证应用,其中第二软件认证令牌用于通过加密地组合动态变量与导出的凭证生成密钥来生成动态凭证。可以在本说明书的其他地方找到有关第二软件个性化系统的各种组件的更多细节。
[0160] 本发明的另一方面提供一种个性化装置。
[0161] 在一些实施例中,个性化装置可以包括:包括数码相机的输入接口,包括图形化显示器的输出接口,存储器和可以连接到输入接口、输出接口和存储器的数据处理器;其中输入接口用于通过利用所述数码相机捕获利用所述第一个性化发起消息进行编码的第一二维条形码图像来接收第一个性化发起消息;其中数据处理器可以用于解码所述获取到的第一二维条形码图像以获取第一个性化发起消息,从接收到的第一个性化发起消息检索第一个性化种子,根据所述检索到的第一个性化种子生成第二个性种子,生成包括所述检索到的第二个性化种子的第二个性化消息,以及利用所述第二个性化消息编码第二二维条形码;其中输出接口用于通过在所述图形化显示器上显示所述第二二维条形码图像来输出所述第二个性化信息;并且其中所述存储器可以用于存储与特定用户相关联的私密令牌密钥,该私密令牌密钥可以由所述数据处理器用于所述从接收到的第一个性化发起消息检索第一个性化种子,或者用于所述根据所述检索到的第一个性化种子生成第二个性种子。已经描述了许多实施方式。然而,应当理解的是可以做出各种修改。例如,一个或多个实施方式的要素可以进行组合、删除、修改或补充从而形成另外的实施方式。因此,其他的实施方式在所附权利要求的范围中。另外,虽然特定的特征只针对几个实施方式中的一个实施方式进行公开,但是当对于任何给定或特定应用有益并且期望时,这样的特征可以与其他实施方式的一个或多个其他特征进行组合。关于方法的实施例,虽然按照特定的顺序描述各个步骤,本领域技术人员将清楚的是可以修改这些步骤中的至少一些步骤的顺序。本领域技术人员也将清楚的是一些步骤是可选的,并且可以添加其他的步骤。虽然上面描述了各种实施例,应当理解的是它们仅作为示例来呈现而并非限制。特定地,当然无法为了描述所要求的主体而描述组件或方法的每个可想到的组合,但是本领域的普通技术人员之一可以认识到的是其他组合和置换是可能的。因此,在此的教导的广度和范围不应当受限于任何上述示例实施例,而应当仅根据下面的权利要求及其等同物来限定。
高效检索全球专利

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

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

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈