CN102187619A - 认证系统 - Google Patents
认证系统 Download PDFInfo
- Publication number
- CN102187619A CN102187619A CN2009801416416A CN200980141641A CN102187619A CN 102187619 A CN102187619 A CN 102187619A CN 2009801416416 A CN2009801416416 A CN 2009801416416A CN 200980141641 A CN200980141641 A CN 200980141641A CN 102187619 A CN102187619 A CN 102187619A
- Authority
- CN
- China
- Prior art keywords
- authenticate device
- code
- fetcher code
- authentication
- certification entity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
- H04L9/3273—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/34—User authentication involving the use of external additional devices, e.g. dongles or smart cards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及用于用户的系统,用处理在认证实体(1)上认证的装置(3),所述认证装置包括用于存储至少一个状态变量的装置(11)和根据用户请求激发驱动的一次性使用的访问代码发生器(2),所述访问代码包括至少一个不可预测部分并传输至认证实体进行核实,所述核实在认证实体中认证用户,其特征在于,状态变量以随机的方法通过并且根据认证装置的激励驱动在任何新的访问代码产生之前进行系统性的更新;其中一旦其被更新,则发生器用于使用状态变量来计算访问代码;认证实体用于在访问代码至少部分核实期间通过使用认证实体先前获知的信息和由传输的访问代码表示的不可预测部分来修改至少一个内部状态变量的数值。
Description
本发明涉及远程服务的认证系统。
目前,在互联网或计算机以及通讯网络中的许多远程服务通常都使用认证它们用户的装置。
最普遍的是,这种认证由用户以问候形式输入标识符和密码来实现的。但是,这种简单且用户普遍接受的解决方式被认为只能提供较低的安全性。例如,用户选择的密码很容易被猜测出,并且专用的软件程序能够在几分钟内找到大量用户的密码。
因此,提出了旨在适用于严重问题(例如访问银行操作)的服务的安全认证的多种解决方法。
大部分这类解决方法根据使用特殊安全的器件,最普遍的是智能卡或者芯片卡,其能够作为存储加密的密钥且能进行一定加密计算的电子保险箱。这类解决方法的缺点是用户必须携带附加物体。此外,还必须提供接口器件,以便允许智能卡与这类需要鲁棒性认证的服务进行通讯。
因此,通过使用用户已拥有的物体(例如用户的手机、便携式电脑或者PDA或者甚至是其个人电脑)来提供相当于智能卡所具有的安全层级将是非常有利的。
为了解决上述一个或多个缺点,用于认证用户的系统,包括具有认证实体(1)的认证装置(3),所述认证装置包括用于存储至少一个状态变量的装置(11),以及可由用户请求下激励驱动的一次性访问代码的发生器(2),所述访问代码包括至少一个不可预测部分并且传输至用于核实的认证实体,所述核实使用认证实体来认证用户,其特征在于,所述状态变量以随机方法由所述认证装置主动地在各个新访问代码产生前执行系统更新,一旦所述状态变量已经更新,所述发生器适用于通过所述至少一个状态变量来计算所述访问代码,并且所述认证实体通过使用所述认证实体预先获知的信息和由已传输访问代码表示的不可预测部分,在所述访问代码的至少部分核实中,来修改至少一个内部变量的数值。
这就有可能有效地处理与这类装置去同步的问题,例如当用户没有传输由具计数器器件所产生的一个或多个代码或者器件采用电源或者时钟设置不能保证随着时间而变化的情况,诸如采用手机的情况。这种情况所产生的附加优点是不需要外部重新同步机制的介入,例如用户必须连接远程服务商以执行重新同步的情况下,这些机制是昂贵的或者从安全性的观点而言不是非常一致的情况,也就是说,从认证系统有效性的观点而言,例如在核实认证的服务器授权计数器或时钟大量可能性的数值,使得用户可能不合理的使用将计数器或时钟保持在这一范围内。
此外,这种方法还有可能有利于处理在本领域所熟知的安全性问题,由认证装置中的器件所引起的安全性问题,这些认证装置是不依赖硬件安全元件的软件程序,认证装置可以进行复制和分析并且对系统的安全性进行折衷;相似的,当认证装置是要求用户输入短密钥的软件程序时、所述密钥本领域技术人员较容易实现且不论认证装置是否存储该密钥都不需要与核实认证服务器进行通讯的情况下,这就有利于处理下述问题。
具体的特征或实施例为:
●各个状态变量由单向函数Fx进行更新,所述单向函数Fx具有作为输入参数的至少一个专用于所述认证装置的密钥。
●至少一个可用的第一和一个第二认证层级,例如访问代码根据第一或第二层级来计算,第二层级包括由用户作为函数Fx输入参数所输入的密钥代码;
●认证装置包括由函数Fx更新的多个状态变量,所述Fx包括一簇具有作为输入参数的所述状态变量的子函数,使得由一个Fx子函数之一所更新的状态变量不再被后者作为输入参数使用;
●其包括第一、第二和第三认证层级,更新的状态变量的数值随着所应用的认证层级的函数而变化,因此:
●在第一认证层级中:更新一个状态变量,其他两个状态变量作为Fx子函数的输入参数;
●在第二认证层级中:更新两个状态变量,第三个状态变量作为Fx子函数的输入参数;以及,
●在第三认证层级中:更新三个状态变量并且不使用任何状态变量作为输入变量。
●其还包括认证客户端以及使用该客户端的第三认证层级,所述认证客户端包括密钥并适用于根据由认证装置所产生的访问代码来产生第二访问代码,所述第二访问代码适用于通过认证实体来认证用户。
●发生器包括用于根据单向函数Gx产生第一数值的装置,所述单向函数Gx的输入参数包括至少一个更新过的状态变量。
●发生器包括:
●单向函数Ex,用于产生第二数值并包括输入参数:
●认证装置的密钥;
●随机数值
●一个具有逆向函数的函数,适用于叠加由函数Gx和Ex所产生的第一和第二数值与逆向函数的函数,叠加的数值表示访问代码并且逆向函数适用于根据访问代码来产生第一和第二数值。
●认证实体适用于以不同的方法来核实第二数值的有效性和第一数值的有效性;
●在有效性的核实过程中,认证实体更新内部状态。
●函数Gx至少一个输入参数为先前访问代码产生步骤中由认证装置产生的不可预测信息项所更新的状态变量。
●认证装置和认证实体各自包括时钟,并且认证装置适用于在计算访问代码中使用参考时间和时钟时间之间的时间间隙(time gap),并且仅当认证实体在涉及产生所述访问代码的确定时间间隔中接受访问代码时,认证实体适用于核实访问代码。
●因为系统允许对多个服务进行用户的认证,访问代码由认证装置使用专用给定服务的代码来产生,使得由认证实体对其的核实仅对该服务进行访问。
●所述认证装置适用于通过使用至少一个专用于服务、专用于认证装置和时间间隙的代码来计算第一访问代码,以及认证实体适用于计算专用于服务、专用于认证装置的第二访问代码,并将其传输至用户,使得用户可以将其与第一访问代码进行比较,并且因此识别所确定的服务,仅当由认证装置计算第一访问代码在相对于由认证实体计算第二密钥代码的时间的确定时间间隔中执行并且所述专用于使用服务和认证装置的代码都是相同时,则所述第一和第二访问代码是一致的。
本发明将通过阅读下列仅以实例方式给出的描述及其附图得以更好的理解,附图包括:
图1是根据本发明一个实施例的认证系统的示意图;
图2A、2B和2C是根据图1所示系统的三种不同选择的操作示意图;
图3是由图1所示系统的认证装置计算访问代码的流程图;
图4是由图1所示系统的认证客户计算访问代码的流程图;
图5是由图1所示系统的认证实体核实访问代码的流程图;
参考图1,认证系统包括作为认证服务器的认证实体1、一个或多个认证装置3和一个或多个认证客户端5。认证装置3和认证客户端5由系统用户拥有。
服务器7作为认证管理器,用于实现认证装置、客户端和实体使用的安全和多项服务所需的接口和功能,后者选择性地作为该阐述的第三方。
认证实体1和认证管理器7可以组合在同一物理服务器中,也可以不组合在同一物理服务器中。
认证装置3包括可编程计算和用户接口装置9。用户接口具体包括用于输入密钥密码的装置(例如数值键盘),以及用于显示和/或传输访问代码M的装置。具体地说,访问代码M直接通过数据链接传输至认证实体,或由用户观察认证装置的显示器并随后由该用户在认证窗口中输入或者口述传输,或者采用DTMF调制方式传输至例如语音服务器。认证装置还包括用于存储一个或多个状态变量i、j、k以及用于各个装置独有的密钥K1的装置11。例如,认证装置3可在具有编程执行装置(例如Java虚拟机)的手机中进行编程。
客户端5还包括可编程计算和用户接口装置13和用于与认证实体1传输数据(例如通过因特网)的装置15。具体地说,客户端5包括用于存储各个客户端独有的密钥K3的装置17,该密钥可选择公共密钥加密算法的私人/公共密钥对(pK3,sK3)的类型。客户端5通常可在计算机上执行,例如台式计算机、笔记本计算机、便携式计算机(pocket computers)或手机。
认证管理器7是认证装置3和认证实体1之间的智能接口。该接口在下文所描述的认证协议中透明的并且可选择性应用于后者。
然而,在真实环境中,认证管理器提供在其环境中易于操作且有效运作认证系统所需的功能,即其用户和服务可使用认证系统为用户提供它们服务的访问。因此,认证管理器7可明确地提供下述功能:
●实体的访问控制,用于管理使用认证系统的服务:下载发布(loading spreading)、、认证、连接和请求的管理和安全;
●处理由这些实体发出的对这些服务的认证请求:路由选择、由静态或动态数据增强、响应;
●处理由这些实体发出的管理或监督的请求,无论该请求是否与系统或与最终用户相关:创建密钥并且激活可以应用的帐户(例如,对由初始“惰性(inert)”认证装置所产生密钥的安全传输应用Diffie-Hellmann类型的算法)、添加或删除服务(例如:远程服务、远程使用支付卡或会员卡、权限管理等);
●认证客户端的控制访问:认证、下载发布连接及请求的管理和安全;
●处理由认证客户端所发出的管理终端用户账户的请求:权限管理、服务请求、装置或认证/识别客户端的增加、删除或管理、帐户恢复装置的增加或管理;
●在线请求的访问控制和处理(特别是用户帐户的恢复):认证、下载发布、请求的处理;以及,
●认证系统的管理功能。
除了计算装置20以外,认证实体1还包括装置22,用于为各个认证装置和各个认证客户端存储密钥K1、密钥K3,或者采用公共密钥加密方法的公共密钥pK3、认证装置的状态变量i、j、k的对称状态变量ii、jj、kk,采用离散方式、误差计数器和优选的数据堆栈π方式对应于用户密钥密代码的常数密钥。
参照图2A、2B及2C阐述认证系统和认证协议的操作。
具有服务的用户的认证通过传输由认证实体1认证的访问代码CA来执行。如果该码有效,则认证实体允许该用户访问所请求的服务。
认证系统包括用于由认证装置所产生的访问代码的三种选择A、B和C所反映的三种操作模式访问代码。
选择A和B产生用于认证使用认证系统的服务的访问代码。如图2A所示,选择A允许具有因素1的认证,其基于认证装置所具有的密钥K1。如图2B所示,选择B允许具有因素2的认证:认证装置具有密钥K1且由持有人输入密钥C。
如图2C所示,选择C产生用于连接认证客户端的访问密钥CA1,该认证客户端执行了将访问代码CA2传输至认证实体的操作,由认证装置计算而产生不同的访问代码。选择C允许具有因素3的认证:认证装置具有密钥K1以及如选择B中由持有人所输入的密钥C,和认证客户端具有密钥K3或者sK3/pK3密钥对。
为选择授权使用而做出的选择的抉择通常是由用户所决断的,因为C不具有A和B相同的功能:从持有者的观点而言,C用于连接认证客户端,同时A和B用于系统所使用的服务的授权。
使用A而不使用B的决定或者相反的决定也是取决于持有者。选择A产生独有的链接至认证装置的访问代码,使得获得该装置的攻击者可作为持有者让自己通过。选择B产生与认证装置和持有者为获得访问代码而输入的个人密钥相关的访问代码。持有者的个人密钥不存储在认证装置中,但是仅当用户输入正确的个人密钥时,产生的访问代码才会正确。
然而,系统的某些条件可能迫使用户使用一种选择而不是另一种。特别是,认证装置执行与多种选择的同步和异步使用相关的多种检测,并且如果需要能够根据这些检测通过强制执行选择B来替换选择A强制持有者的个人密钥的输入。这些条件将在下文中进行阐述,尤其是参考系统误差的管理。
如图3所示,用于选择x的认证装置产生访问代码包括下述步骤:
●产生步骤S30,用于产生伪随机数randx;
●计算步骤S32,用于通过具有例如状态变量k、密钥K1和随机数randx之一作为输入参数的函数Ex来计算第一数M1,x,且表示为:
M1,x=Ex(k,K1,randx) 公式1
●计算步骤S34,用于通过具有例如输入参数状态变量j、k、密钥K1、随机数randx以及在选择A中省略的CODE码数的函数Fx计算状态变量i、j和k的新数值inew、jnew和knew,以及选择性地包括与认证装置关联的序列号SN()的函数,且表示为:
(inew,jnew,knew)=Fx(j,k,K1,CODE,SN(),randx) 公式2
●计算步骤S36,用于通过具有例如新计算得到的状态变量inew、jnew和knew以及在参考时间与计算访问代码的执行时间之间的时间间隔Δt的时间函数ρ的结果作为输入参数的第三函数Gx来计算第二数M2,x,且表示为:
M2,x=Gx(inew,jnew,knew,ρ(Δt)) 公式3
●计算步骤S38,用于通过函数concatx(M1,x,M2,x,randx)计算访问代码,使之有可能根据访问代码来产生M1,x、M2,x、randx。concatx是其输入参数连接串的双射函数,其反函数是标记为separerx的函数。concatx可选择性地具有密码的性质,例如作为实施部分所执行的安全分析所建议的对称密钥加密算法的应用。此外,concatx可选择性地由交错位的连接至输入参数,从而有利于持有者的访问代码的输入错误不影响一个其他的独立输入参数。
索引x表示选择A、B或C,并且Ea对应选择A使用的函数E的版本。
通常,函数Ex、Fx和Gx为单向函数,也就是说,即使知道结果也不能够反向获得输入参数。哈希函数是编码系统所熟知的单向函数的一个例子。
函数Ex、Fx和Gx不作加密(它们是认证装置和认证实体所公知的)。
特别是,函数Ex用于核实访问代码的发生器是否具有认证装置。
各个步骤将进行详细的阐述,尤其对根据所选择的选择类型的操作的特有特征。
对于公式1,Ea和Eb既不是i也不是j的函数,Ec也不是状态变量的函数,也就是说,不是i或j或k的函数。
需要明确的是,如果Ea或Eb是j的函数,则在选择B中受到不成功的黑客行为后,有可能对初始内部状态的多次迭代来实施对持有者的个人密钥的强行攻击。这种攻击可能不能由认证实体检测到,因为j已经在第一次不成功的尝试之后由认证实体进行了更新,正如下文中所阐述的那样,当用于攻击所使用的个人密钥不正确时,那么MM1也是不正确的。
然而,如果Ea为j的函数,这种内部状态的去同步将损害到持有者的使用(损失步骤的风险)。
相似的,如果Ec为k的函数,这种内部的去同步将损害到持有者的使用(损失步骤的风险)。另一方面,当Ec不是k的函数时,将不会出现问题,因为:
●当通过认证客户端传送的情况中MM1对选择C正确时,该认证客户端必然为持有者;以及,
●对攻击者而言,不可能在不具有持有者的认证客户端的情况下来测试具有选择C的持有者的个人密钥的数值。
对公式2,函数Fx用于更新内部状态i、j和k且具有下述特别特征。
Fa返回单一数值且仅更新内部状态i。Fb返回一对数值且仅更新i和j。Fc返回三个数值且更新i、j和K。然而,Fa不是i的函数,以及Fb既不是i也不是j的函数,Fc既不是i也不是j又不是K的函数。也就是说,函数Fx不具有它们所更新的作为输入函数的状态变量。
有利的是,在计算访问代码之前执行更新,以对持有者最小化去同步的影响。正如下文所阐述的,认证装置在产生各个访问代码时无条件地更新其内部状态,同时除非认证成功,认证实体通常不更新对应的内部状态。
CODE数值对应于常数e或当使用模式B或C时由用户输入的密钥代码c的哈希值。值得注意的是,选择A的函数Fa不必须使用e作为参数。
因而,内部状态同时更新:
●采用随机的方式(使用randx),并且可通过传输的访问代码观察到;以及,
●通过使用密钥K1和c,或者甚至j和k的确定但保密的方式,但是不能通过传输访问代码观察到。
因此,
●伴随选择A的i的正确更新需要获知j、k和K1(Fa密钥参数);
●伴随选择B的i和j的正确更新需要获知k、K1和c;
●伴随选择C的i、j和k的正确更新需要获知K1、K3和c。
参考公式3,函数Gx为单向函数并且完全取决于相同的参数inew、jnew、knew和ρ(Δt)。
关于函数Fx和Gx的选择的唯一额外要求是不论持有者使用选择的序列(x(n),x(n-1),…),它们的复合组合Gx(n)oFx(n)oGx(n-1)oFx(n-1)o…不收敛(converge)于由固定点(或周期)。如果使用安全(选择性阻截)哈希函数(例如MD5、SHA256等)作为单向函数,则该需求不是真正的需求条件。值得注意的是,这些函数的参数不收敛于任何子集,因为随机数值randx插入在各个访问代码的产生过程中,并且如果函数的组合自身不能收敛于函数意义,因此这些函数的结果较难收敛于一个数值或数值周期。
数值Δt定义为时间间隔,用于分隔先前访问请求tref和当前请求t。
函数ρ为Δt的函数,Δt可由下述方法根据第二函数λ确定:
λ(Δt)=E(Δt/δ2)modN2 (公式4)
若λ(Δt)≤γM,则ρ(Δt)=λ(Δt)
否则,则ρ(Δt)=λ(Δt)+σ (公式5)
式中:γM、δ2、N2和σ必须为正整数。δ2为编码间距且δ2.N2为λ的伪周期。具体地说,N2可选择为任意大的整数,例如可由认证装置表示的最大整数,并因而被下述计算省略。在这种情况下,E()指定为较小的整数。σ为随意选择且需要足够大,即大于γM+β,其中γM和β为本文下述部分所定义的确切正整数。
根据公式1至3,可明确至多4个参数在各个访问代码请求中更新:i、j、k和tref可以选择其对应这类访问代码请求的时间作为数值。因此,如果认证装置检测到访问代码没有被使用,例如因为用户键入取消键,则这4个参数可以保持它们在访问代码请求之前的状态。
如图4所示,在选择C的情况下,由认证装置产生的访问代码转移至认证客户端。
认证客户端通过步骤40通过对访问代码使用函数separec计算数值(M1;M2;rand)并且随后计算数值:
●步骤S42,M’1等于Ed(K3;M1,c),即如果访问代码输入正确且其确实包括持有者的认证客户端时,则为Ed(k;K1;K3;randc);
●步骤S44,M’2等于Gd(K3;M2,c),即在相同条件下为Gd(inew;jnew;knew;K3;ρ(Δt))。
随后,在步骤S46中,由认证客户端传输的访问代码CA2为concatc(M’1;M’2;randc)。
K3为认证客户端所相关的密钥。因为访问代码由电子装置传输至认证实体,这里不限制由认证客户端所计算和传输的访问代码的长度。这样,根据本发明的实施例,函数Gd和Ed可为同时被认证客户端与认证实体所获知的单向函数,或者为采用非对称加密方法的消息M’1和M’2分别的签名函数,其中K3作为私人密钥sK3。在这第二种情况下,认证实体具有与sK3相关的公共密钥pK3,以便核实签名的有效性,即所已传输的访问代码的有效性。
非对称加密与使用单向函数和使用对认证客户及认证实体端获知密钥的方法相比的优点在于即使认证实体被破解(compromised)时仍旧安全(认证实体不具有产生M’1或M’2的装置,仅用于核实它们是否正确)。对于已满足的认证管理器具有适用且传统的安全性,则有可能具有选择C的认证作为操作基础,所述操作基础对整个系统的安全性非常敏感(例如,持有者的个人密钥代码的变换、持有者的认证装置的管理等)。
非对称加密的使用可拓展至在本发明实施例的选择A和选择B,其中将认证装置所产生的访问代码传输至认证实体,且不通过持有者的输入或语音方式,或在实施例中未充分考虑和提及的签名方法,使得所产生的访问代码可由持有者传输至认证实体。
如图5所示,认证实体通过执行下述步骤核实所接收到的访问代码:
●检测步骤S50,用于检测认证实体系统时钟的当前时间以及记录tt本身的数值;
●循环返回步骤S52,用于如果认证客户端已传输访问代码时,所选择的类型循环返回至已获知的选择C。否则,实体检测选择B,然后A,最后C。
●确定步骤S54,用于根据选择来确定CODE。对选择A,不使用CODE或者CODE为常数,而对其它选择,则CODE为密钥代码的哈希数值;
●计算步骤S56,用于通过对访问代码运用函数separex来计算数值(MM1,x、MM2,x、rrandx);
●计算步骤S58,用于通过使用函数Ex和Gx以及由认证实体具有的密钥来计算数值MM’1,x、MM’2,x,密钥对称于认证装置所具有的密钥,而对选择C而言由认证客户端所具有密钥。同时,还使用认证实体的可能参考时间ttref与时间tt之间的时间间隙Δtt以及使用函数Fx来计算状态变量ii、jj和kk。
●核实步骤S60,S62,用于核实MM1,x、MM2,x以及对应的MM’1,x、MM’2,x。该步骤和先前步骤通常对应于采用具有密钥的对称加密中的代码的核实;
●如果访问代码被核实,除了访问服务以外,在步骤S64中,认证实体更新内部变量ii、jj、kk和ttref,使之与认证装置保持同步。
可以理解的是,系统的特别敏感的要素是保持认证装置与认证实体的同步。
为此目的,下文将阐述初始同步时钟的问题,因此有可能获得一个在两者之间具有相同数值的时间间隙的时间tref、ttref、t和tt。具体的说,这有利于使系统在两个时钟的差异之间具有鲁棒性。
可假设:
●Pmin为访问代码至认证实体的最小传输时间,即持有者的输入时间加上传输时间,在该实施过程中持有者必须输入访问代码;
●Pval为确认所产生的访问代码有效过程的时间;
●Pmax为大于Pval的时间,且超过Pmax如果持有者没有在此之前完成,那么可以合理的认为持有者不再传输访问代码,则可获知该代码不再有效;
●tm为最小时间以及tM为最大时间,且在这个最大时间中可以合理的认为如果第一次失败之后,持有者将作出第二次认证尝试。
下述内容需明确:
●α=E((Pval-Pmin)/δ2);
●β=E((Pmax-Pmin)/δ2);
●γm=E(tm/δ2);
●γM=E(tM/δ2).
这就给出了Δt=Δtt+Δo-Δt,式中Δt=tt-t且Δo=ttref-tref。
我们可从上式中推导出λ(Δt)=λ(Δtt)+E(Δ),式中Δ=(r+Δo-Δt)/δ2且0≤r<δ2。
我们假设Pmin<Δo<Pval。
可能出现三种情况:
●如果在有效的时间中由认证实体接收访问代码,即Pmin<Δt<Pval,则可得到E(-(Pval-Pmin)/δ2)<E(Δ)<1+E((Pval-Pmin)/δ2),且因为E(Δ)为整数,则最终获得-α≤E(Δ)≤α;
●如果在有效时间之后但在最大输出时间之前接收到访问代码,即Pval<Δt<Pmax,则可得到E(-(Pmax-Pmin)/δ2)<E(Δ)<1;且因为E(Δ)为整数,则最终获得-β≤E(Δ)≤0;
●最后,如果Δt在tm和tM秒之间,则得到γm≤λ(Δt)≤γM。
相反,如果λ(Δt)-λ(Δtt)等于一相关整数a,则:
E((r+Δ0-Δt)/δ2)=a,
即a≤(r+Δ0-Δt)/δ2<a+1
因此Pmin-(1+a).δ2<Δt<Pval+(1-a).δ2
这是对上述验证的三种情况的结果:
●如果认证实体认为访问代码有效使得-α≤E(Δ)≤α,则在Pval+(1+α).δ2之后接收到的访问代码将不再认为有效。
●如果虽然超过计时,但认证实体认为访问代码为真使得-β≤E(Δ)≤-α-1,则在Pmax+(1+β).δ2之后接收到的访问代码将不会认为为真。
●如果认证实体认为访问代码有效使得γm≤λ(Δt)≤γM,则如果其是在前一访问代码产生之后在γm.δ2和(γM+1).δ2之间的时刻所产生的,那么即使在去同步的情况下仍旧可以保持访问代码的有效性。
然而,如果在Pval后接收到访问代码,则必须对tt进行校正,使得在接收下一个访问代码时,条件Pmin<Δ0<Pval仍然保持有效。这情况等效于如果λ(Δt)-λ(Δtt)等于一相关整数a使得Pval≤Pmin-(1+a).δ2,即如果α≤-α-1。因此,对aε[-β;-α-1]而言,tt在具有数值tt+(a+α).δ2的访问代码认证操作的末端进行更新。值得注意的是,该校正:
●不检测所有超时输入的情况,因为Pval和Pmax之间的输入可能会得到E(Δ)ε[-β;0]的结果;现在未检测超时输入会产生“断裂”(disruption),可在下个步骤中致使排斥有效的访问代码和及时输入(虽然不具有大的概率)。然而,可能通过接受有效的码使得E(Δ)=α+1以防范这个问题,其表示对认证实体进行附加计算;
●当超过计时的输入被检测到且如上述进行校正,则不需完全或系统地控制断裂。然而,在实际操作中,当tt的校正在上述两个认证尝试的一个过程中完成时,通过接受代码为有效的使得E(Δ)ε[α+1;β]可防范这个问题,在上述两个认证尝试中,访问代码被认为为真,其表示对认证实体进行忽略附加计算,这种情况不具有大的概率。
最后,例如σ>γM+β,上述验证的第三种情况与其余两种情况完全不同。如果这种条件不能满足,则上述两种情况可能在某些情况下不能被区分开,尽管导致不同步的或在超过计时后的正确输入因而无效,认证实体随意地确定访问代码是否有效,并因此也随意地确定是否执行ttref的校正。
认证装置的时钟的绝对精度是无用的,因为唯一值得关注的是时间差异;同样,在认证装置时钟和认证实体时钟之间的差异也是不重要的,因为它以差异计算进行了简化。
认证装置的时钟在长时间周期中的相对精度也是不必需的,因为持有者将会在这个时间阶段中或在最差的情况(第一个访问代码不被认为是真的)中具有所使用的认证装置。
然而,重要的是由持有者使用的认证装置的时钟在其“正常”使用量级周期中的相对精度保证了在认证装置时钟和认证实体时钟之间引入的最大差异至多为Pval量级。在实际操作中,不对该时钟进行约束。
除了由上述方法解决时钟同步问题以外,可以理解的是,在生产环境中,系统必须具有对按键错误和黑客企图的鲁棒性,从而保证状态变量i、j、k去同步,同时保持访问代码的安全性。
为此,在所示实施例中,使用了选择A,B和C的混合体,根据某些环境保留访问代码的使用和状态i、j、k的更新的历史记录。
认证装置具有标记optionB。
如果使用选择B或C,则标记optionB设置为FALSE。
如果认证装置意识到认证尝试使用对未通过选择A所产生的访问代码(例如,持有者可能在认证装置上具有一个选择,用于指示认证尝试的失败),则内部状态optionB设置为TRUE。
在下述情况下强制执行选择B(因此取代由持有者所选择的选择A):
●对选择A的认证尝试失败:如果这个失败情况是在认证装置和认证实体之间的内部状态j去同步的情况,则使用选择B允许重新同步。这个情况不由认证实体进行检测(在不考虑选择的认证失败后,不排斥选择A产生的访问代码);
●选择A连续使用的数值超出了在系统设计过程中所设置的阈值。其目的在于限制有效访问代码的数值,这样可无须输入持有者的密钥而产生,特别是在认证装置被盗的情况下。选择和附加的是,对认证装置的访问必须受一个简单密码的限制。这个检测的第二目的在于保证内部状态j的最小刷新速度。相似的检测由具有稍小于严格阈值的认证实体来执行,使得如果选择B不能在认证装置一侧很快强制执行,而不发生认证的错误;
●在设定时间周期中选择A的连续使用数值大于在系统设计过程中所设定的阈值。这一目的是相似的,该检测更具体地针对于认证装置被盗情况下阻止具有选择A的访问代码的“防御性存储”。该检测还能够由认证实体来实施,用于核实诸如λε[γm;γM]的为选择A所产生的可靠的访问代码构成的连续认证尝试的数值不超过在系统设计过程中所设置的阈值。
在选择B的连续失败的情况下(并且失败的次数满足一定数量)这可能仅为持有者标识符或选择B的数据块的输入重复错误导致的结果,认证装置建议持有者重新产生认证装置的密钥以对选择B去阻止。具有两个认证要素(认证装置和持有者的个人密钥代码)的去阻止概率的数值也可由内部状态erreurcodeB的特性通过认证实体进行检测,并且限制在稍大于seuilcodeB的数值。超过这个数值,则选择B可能就不能仅通过认证装置的操作进行去阻止;为此目的,持有者必须使用选择C和认证客户端。
上述检测尤其有可能使之(并不是他们的唯一目的)检测内部状态的重新更新的速度。还必须保证已产生的访问代码可以再次产生的极小概率,因为几乎可以确认进行尝试攻击。
对选择C而言,如果正在执行公式Gc和产生随机数randc,则三元组(i、j、k)的可能数值是与可能随机字randc的数值Randc相同(即假设K1、c、λ(Δt)是固定的访问代码的数值)。因此,该实施方式一方面必须选择足够大的Randc,另一方面在认证客户端上检测密钥代码c的重建频率是充分高的,例如强制在与认证客户端的一些连接之后的c的重建频率等于Randc/Pc,其中Pc是在系统设计过程中所设置的阈值。如果认证装置不能存储在两个c重建之间所使用的randc数值,则Pc必需设置成第二次产生相同数值randc的概率非常小。“纪念日理论”(anniversaries theorem)指出该阈值是非常小的,因此,在该实施例中,Randc本身就相对较小并且需要优先使用,以便防止对于Randc的重建而言c的重建频率过快,伪随机发生器的特性保证了在没有冲突风险的情况中,可以产生randc的大部分数值Randc。然后,认证实体存储在两个c重建之间由选择C(或随机字randc)产生的访问编码,并且拒绝已经使用的访问代码(或由已经使用的随机字randc产生的访问代码)。
对于选择B,如果正在执行公式Gb和产生随机数值randB,则可能的数值对(i,j)的数值(即假设k、K1、c、λ(Δt)是固定的访问代码的数值)等于可能的随机字randB的数值RandB。因此,实施例必须一方面选择足够大的RandB,另一方面检查满足k的重建频率(作为最小数值)。然后,认证实体存储在两个k重建之间由选择B(或随机字randB)产生的访问代码,并且拒绝已经使用的访问代码(或由已经使用的随机字randB产生的访问代码)。
对于选择A,如果正在执行公式Ga和产生随机数值randA,则可能的内部状态i的数值(即假设j、k、K1、c,λ(Δt)为固定的访问代码的数值)等于可能的随机字randA的数值RandA。因此,该实施例必须一方面选择足够大的RandA,另一方面检查j的重建频率(作为最小数值)是否充分满足,上述是通过使用强制选择B的检测机制之一来实施的。认证实体存储在两个j重建之间由选择A(或随机字randA)产生的访问代码,并且拒绝已经使用的访问代码(或由已经使用的随机字randA产生的访问代码)。
因此,在认证装置和认证实体之间的内部状态i、j、k和tref的同步由下述方法实施:
●更改为“更高的”选择,例如在认证失败的情况下,从选择A更改到选择B(即,重新同步除了i、j、k以外的更多内部状态);
●认证实体将M1为正确而M2为不正确的访问代码存储于访问代码接收存储器的数据堆栈π中;
●检测有效但由认证实体超时接收到的或不能对应必要选择的访问代码;
●由认证实体有条件地根据所提供的认证访问代码来更新内部状态;
●限制访问代码λε[γm;γM]的认证,即在另一个访问代码考虑到第一访问代码没有被认证实体所接收的情况,而立即产生。
这一范围内的装置有可能在持有者单一键出错的情况中避免任何去同步,也就是:
●当持有者提示认证装置如果这样的选择存在,则不传输所产生的访问代码;
●对于需要认证的服务,产生的访问代码或者持有者的标识符的不正确传输。在这些情况下,认证实体接收非访问代码或不认为其是由持有者发出;
●对于选择B或C的使用,不正确的个人代码的输入;
●访问代码的超时传输;
●不正确选择的使用。
在由多次键入错误导致去同步的情况中,重新同步在最坏的情况下通过持有者做出的第二次正确认证尝试来保证。
这一范围内的装置有可能在另一方面避免由于访问尝试而引起的任何去同步
●如果攻击者具有认证装置或者复制品,但是没有持有者的个人密钥或持有者的认证客户端,包括对选择A而言,因为如果选择A的认证成功,则数据堆栈π不被清空;以及此外;
●如果攻击者不具有认证装置。
然而,可以理解的是,在认证实体中,防止攻击可能去同步和保护是指用于核实访问代码的算法为了考虑这些风险而进行了修改。
x、n、λ在他们各自定义组合中以同中心算法循环变化(x变换最大,然后是n,接着是λ):
●x示出访问代码产生的选择,如果访问代码已经由认证客户端传输,则仍为选择C,否则持续为B、A和C;
●对于存储在π中的各个数值ttπ,n而言,Δttn=tt-ttπ,n的索引n由最近存储的数值开始(当前指定为ttref);
●λ为在下述中连续为正或零整数:
■[σ+λ(Δttn)-α;σ+λ(Δttn)+α+1]
■选择B和C的[γm;γM]
■仅当在访问代码确认可信的前两次认证尝试之一的过程中已经对ttref进行了校正时,[σ+λ(Δttn)+α+2;σ+λ(Δttn)+β]
■[σ+λ(Δttn)-β;σ+λ(Δttn)-α-1]
尽管较为复杂,但是,由认证实体做出的计算数值实际上仍对认证装置的正常使用有很大的限制:
●MM1,x的1至3次计算用于确定产生访问代码所使用的选择x,因为当发现与MM1,x匹配,则不考虑随后的选择;
●MM2,x,n,λ的1至2α+1次计算用于确定λ的校正数值(参数选择例如可以为α=1或者因此相关)。
计算可以为更多次数的:
●当访问代码的输入超时:直至MM2,x,n,λ的附加计算β-α,即典型的参数选择为2;
●如果由攻击者使用认证装置来产生具有选择A的连续访问代码:直至(2α+1)*seuilA的附加计算,其中seuilA是认证实体所接受的选择A产生的连续访问代码的最大数值;
●如果在认证装置被盗后的攻击尝试,或如果由持有者不正确地输入个人密钥代码:直至(2α+1)*(seuilcodeA+seuilcodeB)的附加计算,或如果用户(攻击者或持有者)还具有持有者的认证客户端时,则甚至可达(2α+1)*(seuilcodeA+seuilcodeB+seuilcodeC)。seuilcodeX表示在锁定该选择使用前的认证实体可接受的连续错误(在选择x中)的最大数值。
当形成累加时,则这些数值相乘,但是因为这些数值是相互独立的,这样累加的发生概率较低。在任何情况下,由具有持有者认证装置的攻击所直接引起的附加计算唯一原因为其在最坏的情况中导致执行(2α+1)*(seuilcodeA+seuilcodeB)的附加计算,并且如果大小设置正确,则难以对认证系统拒绝的服务形成攻击,这正是本发明的目的。
在这些循环中,执行下述步骤:
●CODE选取适用选择A的数值e,并且适用选择B和C的密钥哈希数值(hash value)H(cc)。
●(MM1,x;MM2,x;rrandx)的数值通过对访问代码使用函数separex进行计算。当访问代码是由认证实体通过认证客户端获得的,则函数separec提供MM’1和MM’2;MM1和MM2然后分别根据MM’1和MM’2通过使用非对称加密方法和公共密钥pK3或对称密钥K3进行计算。
●表示为MM’1,x的整数如同Ex(kk;K1;rrandx)进行计算;
●核实MM1,x的有效性
●seuil在seuilmin处进行初始化;
●如果tt-ttlast<seuil并且访问代码还没有通过认证客户端进行传输,
●如果对选择x而言MM’1,x和MM1,x相等,并且randx还没有被用于该选择,则erreurM1设置为0,seuil设置为seuilmin,ttlast设置为tt,tt被加入数据堆栈π。对堆栈增加tt通过避免与认证实体相关认证装置的任何去同步限制持有者对该机制的可能影响;
●否则,不对erreurM1进行加值,且如果erreurM1≥seuilM1,则seuil设置为实施例所允许的最大数值;
●在任何情况中,拒绝认证以及停止核实访问代码的操作。该机制旨在如果自最后访问代码检测开始的时间小于seuil时,在没有检测任何访问代码的情况下通过拒绝来避免在访问代码上强制执行的攻击。
●如果tt-ttlast≥seuil或者访问代码已经通过认证客户端传输
●如果对于选择x而言MM’1,x和MM1,x相等,并且randx还没有用于该选择,则erreurM1设置为0,seuil设置为seuilmin,ttlast设置为tt,访问代码的认证操作将在下文阐述;
●否则,不对erreurM1进行加值,拒绝认证,停止操作,并且如果erreurM1≥seuilmaxM1,则seuil设置为由实施例允许的最大数值。
●如果对应选择A的索引x和erreurcodeA的数值大于seuilcodeA,则停止访问代码的核实操作,拒绝认证;
●如果对应选择B的索引x和erreurcodeB的数值大于seuilcodeB,则停止访问代码的核实操作,拒绝认证;
●如果对应于选择C的索引x和访问代码已经通过认证客户端提供,并且erreurcodeC的数值大于seuilcodeC,则停止访问代码的核实操作,拒绝认证;
●所述(iinew;jjnew;kknew)采用上述Fx(jj;kk;K1;code;SN();rrandx)数值进行计算(x的各个新的数值);
●标记为MM’2,x,n,A的数值如同Gx(iinew;jjnew;kknew;λ)进行计算。
●如果MM’2,x,n,λ和MM2,x相等,则访问代码对选择x,参数n和λ是可信的,并且在选择x的协助下,对其进行存储,或者存储字randx。其他选择和参数的分析不再继续。在更新内部状态和下述步骤后终止操作:
●以数值(iinew;jjnew;kknew)来更新(ii;jj;kk);
●除了选择A以外清空数据堆栈;
●对于对应选择A的索引x而言,erreurcodeA设置为0;
●对于对应选择B的索引x而言,erreurcodeA和erreurcodeB设置为0;
●对于对应选择C的索引x而言,并且如果访问代码已经通过认证客户端提供,则erreurcodeA、erreurcodeC和erreurcodeB设置为0;
●如果x不对应于所期望的选择,则拒绝认证并且仅执行下述检测:
●如果λ在[σ+λ(Δttn)-α;σ+λ(Δttn)+α+1]中,或对于选择B或C而言在[γm;γM]中,则接受认证,并且不进行下述的检测;
●如果λ在[σ+λ(Δttn)+α+2;σ+λ(Δttn)+β]中并且ttref校正在认证代码被认为可信的两次先前的认证尝试中的一次过程中完成,则接受认证,并且不进行下述的检测;
●如果λ在[σ+λ(Δttn)-β;σ+λ(Δttn)-α-1]中,则拒绝认证并且ttref通过数值tt+(α-p).δ2更新(包括π)。
●如果MM’2,x,n,λ和MM2,x不相等,算法循环由λ、n、x的其他数值继续。如果不能获得相等的情况,则访问代码是不可信的并且拒绝认证。通过下述方法更新内部状态,以终止访问代码的认证操作:
●仅对于对应选择B的索引x,以数值(iinew;jjnew;kknew)来更新(ii;jj;kk);
●将tt加入数据堆栈中;
●对于对应选择A的索引x,将erreurcodeA增加一个单位;
●对于对应选择B的索引x,将erreurcodeB增加一个单位;
●对于对应选择C的索引x,并且如果访问代码已经通过认证客户端应用,则将erreurcodeC增加一个单位。
如果MM1和MM1,x相等,但MM2不会等于MM2,x,n,λ,则访问代码无效,但是在某些情况中有一更新内部状态ii、jj和kk的数值。
在选择A的情况中,这样表示没有风险或数值,因此不执行更新。
在选择B的情况中,该更新表示:
●安全协议没有安全性风险:希望与下一认证步骤同步的攻击实际上将必须提供准确的个人代码,不论是否执行更新;
●没有特别的去同步的风险;
●没有对个人代码强制攻击的风险:如果由内部状态更新将导致这样的情况,在下一个认证尝试的过程中,使得MM1和MM1,x不再相等(理论上,由“多次迭代”的攻击是可能的),但是MM1既不取决于ii也不取决jj,它们是仅为选择B所更新的两个内部状态;
●具有优势,因为状态jj根据H(c)进行更新,则成功获得认证装置(或者甚至对其进行逆向工程)的攻击者不再具有对于选择A的成功认证,因为其至少有一次尝试,如果他不知道持有者的密钥,那么这样通过选择B的情况就一定不会成功。
在选择C的情况中,分析稍微有些不同,并且导致不更新内部状态ii、jj、kk。特别是,在这类更新之后,如果选择A或B由攻击者使用,则MM1和MM1,x不再相等(因为MM1是k的公式),其中理论上允许对个人密钥代码进行“多次迭代”强行实施的攻击,并且不能被认证实体检测到。
如果满足下述3个条件,则访问代码可被知道它的攻击者使用:
-持有者之前没有对其使用过;
-攻击者在访问代码有效期之前或在上述已经选择为任意大小的伪周期之后的核实过程中使用;
-同时,持有者没有对产生大于由攻击者所更新的输入访问代码的更多内部状态的选择输入访问代码。
除了认证装置被盗的情况以外,这还需要攻击者监听认证信道,并且在持有者尝试前执行到达认证实体的攻击。如果持有者的尝试没有被禁止或不正确的导向,则攻击只能通过迅速代替持有者的尝试来执行:因此,在一个实施例的情况中,认证实体必须知道怎样检测,以及拒绝对同一持有者通过同一访问代码几乎同时的认证请求。
因此,上述能有效处理技术问题的系统和协议可以对它们进行设置,它们允许:
●一种对与持有者完全屏蔽潜在复杂性的使用,特别注意的是,它能维持内部状态的同步并且更新这些内部状态;
●一种强力认证,其既不使用保护认证装置密钥数据的物理装置(例如智能卡),也不使用将信息从认证实体传输至认证装置的技术装置,还不需要在认证装置中使用稳定的时钟。
本发明已经参考附图和上文作了详细的阐述。上文中的阐述必须视为作为一种说明,并且给出了实施例,并且本发明不限制于上述说明。许多变化实施例都是可能的。
在第一变化例中,系统包括操作选择B相似的选择B’。在k的去同步情况中,不可能要求用户使用选择C,因为它不能完成这样的操作并且“屏蔽”方法也不能完成这样的操作,因为这必须能区分出认证实体上的多种选择。然后,由认证装置和认证实体进行类似于C选择来执行选择B’,特别是对变量的更新,但是作为选择B来使用,即通过持有者输入密钥代码而不是通过认证客户端输入密钥代码的情况。在选择B认证失败的情况下,如果认证装置因此获得信息,则强制执行选择B’。选择B’还用于强制保证内部状态k的最小更新速度。此外,认证实体检测选择B’的合理使用。
在第二变化例中,用于计算字M2的函数Gx还是没有更新初始状态的函数。更具体的说,
●Gb为j的函数(除了inew,jnew和knew以外);
●Gb’为k的函数(除了inew,jnew和knew以外);
●Gc为j和k的函数(除了inew,jnew和knew以外)。
该变化例的目的在于用户个人密钥代码不能成为强制攻击的目标,即使在攻击者实施认证装置的逆向工程的情况下。我们可以具体假设,该逆向工程已经开始进行,因此攻击者在给定时刻清楚地获知K1、SN和(i、j、k)。如果攻击者接着尝试获得由持有者通过选择C计算的有效访问代码,那么在理论上攻击者可以很容易实现对持有者个人密钥代码的强制攻击,因为选择的访问代码仅基于K1和SN(可由逆向工程获得),ρ(Δt)(它可对其作一些假设)以及H(c)。攻击包括尝试通过改变c和ρ(Δt)来重新产生访问代码的数值而不再需要认证实体的传输,并因此不需要后者检测的可能。
如果,另一方面,不论所使用的选择如何,访问代码是在访问代码中的一个或多个没有传输的内部状态的函数,并且不仅是取决于逆向工程能够访问的常数数值,而且还是攻击者在他执行强制攻击时必须考虑的常数数值。在一个实际的实施例中,由个人密钥代码可能数值所产生两个内部状态的可能数值远大于(通常大于2^50)可能的访问代码(可能不包括字randx)的数值,这就是说,强制攻击将为所有可能的个人密钥代码数值提供多个结果(内部状态的数值以及ρ(Δt)的伪(plausible)数值),因此使得攻击者难以区分该数值。实际上,如果攻击者假设攻击者已经获得的访问代码正是在逆向工程操作后所产生的,也就是说,通过改变字randx(小于未知的内部状态)来实现攻击;在该变化例的典型实施方法中,在逆向工程后产生访问代码的2至3个步骤之后,个人密钥代码变得难以区分,强制攻击产生每个个人密钥代码的可能数值。如果所使用的函数Fx是“充分映射的”(sufficiently injective),即使是从第一步骤开始也有相当的可能,强制攻击可由攻击者产生很多能够直接使用的结果(通常5个)。因此,仅可能保留的强制攻击的可能性包括在逆向工程之后,或相同的在黑客截取在逆向工程和强制攻击之间所产生的所有访问代码(字randx),攻击者拦截由持有者计算的第一访问代码,各种这类情况都是在技术上可行的,但不是非常的现实。
在该第二变化例中,没有更新的内部状态(i、j、k)由内部状态h在Gx的计算过程中替换。该变化例的目的在于降低对具体可能发生在第二变化例中的去同步状况的敏感度,同时提供如同第二变化例的相同安全性的优势。为此目的,在步骤n中对h的更新籍助于单向函数F通过下述方法来实施:
hnew=F(h;randn-n1),式中randn-n1为步骤n-n1所产生的随机密钥,其中n1必须为正整数。这样的更新条件也是根据认证装置没有在步骤n-n1所产生的不传输的访问代码的直接或间接的指示。在一个相反的情况下,hnew=h,不更新内部状态。
在这方面,服务器必须在n1个步骤中存储密钥数值,并且在有可能的n1 2数值中检测hnew的数值,使之有可能解释已传输的代码。因此,该变化例在某些情况中增加了有效代码的数值,并且在实施例中,必须分析代码的长度能否满足保证所需安全性的等级。该变化例的另一个优点涉及选择不重新执行直接检测的选择C或B’,由通过为这些选择增加rand的重新使用的周期进行简单的最小化,在实践中,h不是周期性的。
在该第二变化例中的第二种变化例中,内部状态h和内部状态k只是仅有的一种状态,因此k籍助于函数f而不是函数Fx来进行更新。
在第三变化例中,认证装置可以产生专用于服务s的访问代码并且仅对后者认证有效,或者用于所有服务且不需要专用访问代码的有效通用的访问代码。
整数ms可通过如下进行定义或者计算:
●常数e,如果持有者已经做出了通用访问代码的默认选择,则该常数可以省略;
●整数Φs,如果持有者已经选择了专用于服务s的访问代码。
在这样的变化例中,用于核实认证实体的算法包括基于ms的可能数值的在选择循环与时间间隙循环之间的附加中间循环,其中s为表示使用认证系统服务的索引,通过能够产生当前已分析的访问代码的服务开始,即e,…,Φs,…。
因此,在服务选择存在错误的情况中,计算的数值可以增加至(2α+1)*S个附加的计算,在这种情况中必须提供专用的访问代码,S为考虑了持有者的这类服务的数值。
在已经核实M’1,x和M’2,x有效的情况后,如果s不对应所产生访问代码的服务,则拒绝该认证,但是认证实体如同认证过程已经正确执行一样更新其内部状态,使得与认证装置保持同步。值得注意的是,如果整数ms由函数Gx使用,而不是由函数Fx使用。
在第四变化例中,对于专用服务而言,认证实体为其提供了零时代码,专用于该服务以及持有者的认证装置,持有者可将其与在提供访问代码之前显示在持有者认证装置上的代码进行比较。
认证实体计算诸如tt-ttref的Δtt,其中tt表示由认证实体的内部时钟测量的数值,以及ttref为在数据堆栈π中最新存储的数值。
提供给持有者用于服务s的相互认证代码如同D(jj;kk;K1;SN;ms;μ(Δtt))进行计算。
然后,认证装置可以显示必须精确重新产生的代码,其由请求认证服务s来提供,值得注意的是,当s请求专用访问代码时,使得认证装置的持有者能够确定他是由s授权的并且没有寻求模仿s服务的。
为此目的,在并行于认证实体计算的方法,计算诸如t-tref的Δt,其中t表示由认证装置内部时钟所测量的数值,并且由用于服务s的认证装置显示例如D(j;k;K1;SN();ms;μ(Δt))的相互认证代码。
D为单向函数。
μ为所定义的Δt的编码函数,因此:μ(Δt)为在[Δt;Δt+nδM]间隙中q.nδM+δ’类型的特有数值,其中:
●q为正或零整数数值;
●n为在系统设计时所选择的正或零的数值;
●δM=Qval+Pval,δm=Qmin+Pmin,δQ=Qval-Qmin,δP=Pval-Pmin;
●0≤δ’<nδM为在系统设计时任意选择的;
●Qmin为在由认证实体计算相互认证代码时间与由认证装置计算互相认证代码时间之间可接受的最小时间。如果接受持有者可以在从服务s处请求相互认证代码之前在认证装置上显示相互认证代码,则如果必要的话Qmin可以为负数。在时间Qmin之前,相互认证代码可以不为正确数值;
●Qval为在由认证实体计算相互认证代码的时间与由认证装置计算互相认证代码时间之间可接受的最大时间。在时间Qval之后,相互认证代码可以不为正确数值;
●Pval为访问代码的最小有效时间;
●Pmin为用于传输由认证装置产生的访问代码的最小时间。Pval和Pmin已经在时间间隔的管理的内容中阐述。
这里和式中 Qval],并且为任意差值且假设为常数,但是可以偶尔在认证实体和认证装置的时钟之间变化。由此,我们可推导出所以Δt-Δttε[δm;δM]。对于给定的μ(Δtt)与μ(Δt)不相同的可能性等于假设和在它们各自的定义域中平均的分布,则μ(Δtt)和μ(Δt)不相同的可能性等于在的[Pmin;Pval]x[Qmin;Qval]的整数,即(1+δm/δM)/2n。
已经增加n的选择提高了相互认证代码正确的概率;其还可以增加该码为常数的周期。这不能构成一个确实的问题,因为,一方面,其包含用于获得大于使得显示的与提供的相互认证代码一致的0.95概率的几分钟;另一方面,因为模仿s的服务不能预先获知持有者将在几分钟的特定时间段中尝试进行认证。
一种处理可能和不确定结果的改进实施例包括诸如访问代码的相互认证代码,其包括随机(“质疑”)部分,并且其由持有者在不一定接受它的认证装置上输入。这种方法是可靠的,但是对于持有者而言较复杂,首先要求在认证装置上进行输入,其次进行请求认证的服务,对于消费者的应用而言可能过于复杂。
当由服务s提供并经认证实体显示的相互认证代码是一致时,持有者可以输入允许其进行自身与服务s确认的访问代码。当不是这样的情况(概率小于(1+δm/δM)/2n或认证装置和认证实体的去同步)时,持有者可以在两者之间进行选择:
●“刷新”由服务提供且由认证装置显示的代码。新的代码一方面通过反转δ’的“相位”另一方面如同用于计算Δt和Δtt的参考时间进行计算和提供/显示,第一相互认证代码的计算瞬间,因为参考时间在代码新刷新的情况下没有变化。这样的选择可以解决在认证装置和认证实体之间Δt去同步的情况,并且甚至当不是在去同步的情况下,μ(Δtt)和μ(Δt)在这样的情况中是不同的。在后一种情况中,可能会存在着概率(1+δm/δM)/2n的问题,因为Δt和Δtt已经进行了更新。一个新的刷新操作(变化相位但是不再变化参考时间)必然将解决这个问题;这个操作在一方面没有解决在认证装置和认证实体之间内部状态(j、k或δ’)去同步的情况,如果在提供/显示的认证代码保持连续刷新的时间,那么持有者必须依赖下面的选择:在第一刷新后,这些代码在两个数值间交替;
●获得由认证装置显示的伪访问代码,由与选择B’相似的B”产生,使得能够执行连续的认证,但是在认证装置和认证实体之间的内部状态进行重新同步(例如,δ’与randB”的奇偶校验进行重新同步,同时在持有者个人密钥正确输入的条件下,Δt、j和k通过认证协议的选择B”重新同步),并且因此使得能够提供/显示一致的相互认证代码。由认证实体考虑的B”除了在可信的代码的情况中接受认证的确定以外,在B’的所有其他情况下都是一致的。
在第五变化例中,认证装置能够显示:
●由持有者输入参数的函数代码;
●内部状态i、j、k的函数代码;
●SN()的函数代码;
●密钥K1的函数代码,甚至是如果由持有者再次输入情况下的H(c)的函数代码。
所述代码具有不同的函数和显示类型,显示类型本身能够从包含由用户输入的参数信息项的特性预先确定的多种形式中进行选择,或者从后者的计算中获得。
例如,在与服务成功的认证之后,为了保护防止针对可能已经成功但没有监测到的“中间人”攻击的特别敏感的操作,为持有者提供IP地址且其预先已经进行编码并以掩码的特性进行变化。这样的掩码由认证实体提供,并且为内部状态的单向函数,并专用于持有者和持有者的认证装置。然后,认证装置“清晰”地在持有者显示器的浏览器中必须输入的IP地址,以能够继续进行操作,一个新的认证可能由服务来请求,因为它是一个先进行的会话。认证装置在传输信息不可能会被攻击者拦截的条件下,具有允许其计算掩码或其逆变换的所有要素,并因此将其应用于已输入的参数中,以便获得原始的信息。另外,如果“中间人”攻击是较为普遍并且影响到了访问提供者的路由而不仅是由持有者使用的“DNS”缓存,则由认证装置显示的多功能代码可以用于执行在持有者网络浏览器与服务提供商网站之间的会话加密。
在第六变化例中,存储在认证客户端中的密钥K3(或者密钥对pK3/sK3)籍助于认证实体获知的密钥的特性进行加密,在各个认证客户端的成功认证中进行更新,并且仅当已传输的访问代码(通常由选择C产生)正确时,将其提供至认证客户端。
需要注意的是,所示出的实施例依赖于对访问代码透明的传输信道:输入数据项用于在其初始状态中的接收,并且进行传输的同时不考虑其可能执行的变换。本领域的技术人员可以简单地将该实施例用于半透明的信道中,例如http协议的http摘要认证模式的使用。
在权利要求中,“包括”一字不排除其他要素,且不定冠词“一个/一”不排除多个。
Claims (14)
1.一种用于认证的用户的系统,包括具有认证实体(1)的认证装置(3),所述认证装置包括用于存储至少一个状态变量的装置(11),以及可在用户请求下激励驱动的一次性访问代码的发生器(2),所述访问代码包括至少一个不可预测的部分并且传输至用于核实的认证实体,所述核实使用所述认证实体来认证用户,其特征在于:
●所述状态变量以随机方法由所述认证装置主动地在各个新访问代码产生前执行系统更新;
●一旦所述状态变量已经更新,所述发生器适用于通过所述至少一个状态变量来计算所述访问代码;以及
●所述认证实体设置成通过使用所述认证实体预先获知的信息和由已传输访问代码表示的不可预测部分,在所述访问代码的至少部分核实中,来修改至少一个内部变量的数值。
2.根据权利要求1所述的系统,其特征在于,所述认证装置包括至少三个状态变量,并且所述认证实体包括一一对应于认证装置状态变量的同一和相同数量的内部状态变量,以及所述系统包括第一、第二和第三认证层级,各个认证层级使用不同方法,以便更新至少三个状态变量中的至少一个,所述的三种方法在认证装置和认证实体中所共有。
3.根据权利要求2所述的系统,其特征在于:
●在第一认证层级中,至少三个状态变量之中的一个,称为第一状态变量,由第一单向函数(F1.1)进行更新,所述第一单向函数(F1.1)具有作为输入参数的其它状态变量,在每个访问代码产生之前由认证装置产生至少一个专用于认证装置的密钥和一个随机密钥;
●在第二认证层级中,在至少三个状态变量之中的所述第一状态变量和第二状态变量由第一单向函数(F2.1,F2.2)分别进行更新,所述单向函数具有作为输入参数的其它状态变量,至少一个专用于认证装置的密钥、随机密钥、和在认证装置根据该第二层级产生各个访问代码之前由用户输入的信息项、以及在认证实体上专用于用户的密钥代码;
●在第三认证层级中,所述至少三个状态变量由第一单向函数(F3.1,F3.2,F3.3)分别进行更新,所述第一单向函数(F3.1,F3.2,F3.3)具有作为输入参数的至少一个专用于认证装置的密钥、随机密钥、在认证装置根据第三层级所产生的各个访问代码之前由用户输入的信息项,以及在认证实体上专用于用户的密钥。
4.根据权利要求3所述的系统,其特征在于,在所述第一认证层级中,由认证装置产生的随机密钥不能重新使用同一和相同的数值,同时第二或第三层级不能被认证装置使用,并且在第二层级中,所述随机密钥不能重新使用相同的数值,同时第三层级不能被认证装置使用。
5.根据权利要求4所述的系统,其特征在于,所述认证装置选择必须根据至少一个法则确定特性的法则集合进行使用的认证层级,所述法则表现出,如果认证装置具有诸如用户明确选择的信息的直接项,或诸如在足够接近的时间里由用户重复使用的认证装置的信息非直接项,且至少可以满足先前产生的访问代码没有被认证实体认为是有效的,那么如果该要求的层级还不是第三层级时,则必须使用其它更高要求的认证层级。
6.根据权利要求3至5中任一所述的系统,其特征在于,所述发生器包括用于各个认证层级根据第二单向函数(Gx)产生第一数值(MM2,x)的装置,所述第二单向函数(Gx)的输入参数包括至少一个已更新的状态变量。
7.根据权利要求6所述的系统,其特征在于,所述发生器包括适用各个认证层级的:
●第三单向函数(Ex),用于产生第二数值(MM1,x)并且包括作为输入参数的:
●认证装置的密钥
●随机数值
●一个具有逆向函数的函数,用于将由第二和第三函数(Gx,Ex)产生的第一和第二数值与由认证装置产生的随机密钥相叠加,所述叠加数值表示访问代码并且逆向函数适用于允许认证实体根据访问代码获得第一数值、第二数值和的随机密钥。
8.根据权利要求7所述的系统,其特征在于,所述认证实体适用于以不同的方法核实第二数值(MM1,x)的有效性和第一数值(MM2,x)的有效性。
9.根据权利要求8所述的系统,其特征在于,在有效性的核实过程中,所述认证实体更新内部状态。
10.根据权利要求2所述的系统,其特征在于,所述认证装置和所述认证实体各自具有至少一个相互对应且与第一和第二状态变量不同的状态变量,并且所述状态变量籍助于单向函数的特性进行更新,所述单向函数是例如该状态变量的当前数值和在由所述发生器产生访问代码的先前步骤中由所述认证装置产生的随机密钥的函数。
11.根据权利要求7所述的系统,其特征在于,所述认证装置和认证实体各自包括时钟和用于产生第一数值(MM2,x)的装置,所述装置适用于使用认证装置获知的参考时间的确切数值与认证装置时钟的当前之间间隙的函数,并且仅当认证实体在该认证实体获知一个或多个参考时间的确切数值对应的确定时间间隔中接收到的访问代码,所述认证实体适用于的访问代码的核实,并且当第二数值(MM1,x)有效时,用于更新其本身的一个或多个参考时间的测试。
12.根据上述任一权利要求所述的系统,其特特征在于,由于所述系统允许对多个服务的用户的认证,访问代码由认证装置使用专用于特定服务的代码来产生,使得通过认证实体对其的核实过程仅对所述服务进行访问。
13.根据权利要求12所述的系统,其特征在于,所述认证装置适用于通过使用至少一个专用于服务、专用于认证装置和时间间隙的代码来计算第一访问代码,以及认证实体适用于计算专用于服务、专用于认证装置的第二访问代码,并将其传输至用户,使得用户可以将其与第一访问代码进行比较,并且因此识别所确定的服务,仅当由认证装置计算第一访问代码在相对于由认证实体计算第二密钥代码的时间的确定时间间隔中执行并且所述专用于使用服务和认证装置的代码都是相同时,则所述第一和第二访问代码是一致的。
14.根据权利要求3所述的系统,其特征在于,还包括认证客户端(5),所述认证客户包括密钥以及适用于根据由认证装置产生的访问代码来产生第二访问代码,所述第二访问代码适用于认证具有认证实体的用户。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0856997A FR2937204B1 (fr) | 2008-10-15 | 2008-10-15 | Systeme d'authentification |
FR0856997 | 2008-10-15 | ||
PCT/FR2009/001186 WO2010043779A1 (fr) | 2008-10-15 | 2009-10-06 | Systeme d'authentification. |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102187619A true CN102187619A (zh) | 2011-09-14 |
Family
ID=40791334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009801416416A Pending CN102187619A (zh) | 2008-10-15 | 2009-10-06 | 认证系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8856895B2 (zh) |
EP (1) | EP2347541B1 (zh) |
CN (1) | CN102187619A (zh) |
FR (1) | FR2937204B1 (zh) |
WO (1) | WO2010043779A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8595806B1 (en) * | 2010-09-21 | 2013-11-26 | Amazon Technologies, Inc. | Techniques for providing remote computing services |
FR2974207B1 (fr) * | 2011-04-14 | 2013-05-24 | In Webo Technologies | Procede et systeme de securisation d'un logiciel |
KR101137523B1 (ko) * | 2011-09-26 | 2012-04-20 | 유승훈 | 인증매체, 인증단말, 인증서버 및 이들을 이용한 인증방법 |
WO2014153420A1 (en) | 2013-03-19 | 2014-09-25 | Acuity Systems, Inc. | Authentication system |
CN104104508B (zh) * | 2013-04-11 | 2018-09-11 | 腾讯科技(深圳)有限公司 | 校验方法、装置和终端设备 |
FR3008837B1 (fr) | 2013-07-19 | 2015-08-07 | In Webo Technologies | Procede d'authentification forte |
US10505957B2 (en) * | 2015-12-29 | 2019-12-10 | Oath Inc. | User verification |
CA3036561C (en) | 2016-09-19 | 2021-06-29 | Pindrop Security, Inc. | Channel-compensated low-level features for speaker recognition |
WO2018053537A1 (en) | 2016-09-19 | 2018-03-22 | Pindrop Security, Inc. | Improvements of speaker recognition in the call center |
MY181840A (en) * | 2016-11-04 | 2021-01-08 | Thomson Licensing | Devices and methods for client device authentication |
US10397398B2 (en) | 2017-01-17 | 2019-08-27 | Pindrop Security, Inc. | Authentication using DTMF tones |
FR3062501B1 (fr) * | 2017-02-02 | 2019-03-15 | Idemia France | Procede pour la securite d'une operation electronique |
US10362055B2 (en) * | 2017-08-10 | 2019-07-23 | Blue Jeans Network, Inc. | System and methods for active brute force attack protection |
CN107943470B (zh) * | 2017-11-23 | 2020-10-23 | 四川长虹电器股份有限公司 | 云管理平台代码生成与回收的系统与方法 |
FR3073998B1 (fr) * | 2017-11-23 | 2019-11-01 | In Webo Technologies | Procede numerique de controle d'acces a un objet, une ressource ou service par un utilisateur |
US11405375B2 (en) * | 2018-09-27 | 2022-08-02 | Lenovo (Singapore) Pte. Ltd. | Device and method for receiving a temporary credit token |
US11019201B2 (en) | 2019-02-06 | 2021-05-25 | Pindrop Security, Inc. | Systems and methods of gateway detection in a telephone network |
US10742619B1 (en) * | 2019-04-18 | 2020-08-11 | Sas Institute Inc. | Secure authentication for a computing environment |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002017555A2 (en) * | 2000-08-18 | 2002-02-28 | Verisign, Inc. | Countering credentials copying |
US20040172535A1 (en) * | 2002-11-27 | 2004-09-02 | Rsa Security Inc. | Identity authentication system and method |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5937068A (en) * | 1996-03-22 | 1999-08-10 | Activcard | System and method for user authentication employing dynamic encryption variables |
GB0210692D0 (en) * | 2002-05-10 | 2002-06-19 | Assendon Ltd | Smart card token for remote authentication |
NO20050152D0 (no) * | 2005-01-11 | 2005-01-11 | Dnb Nor Bank Asa | Fremgangsmate ved frembringelse av sikkerhetskode og programmbar anordning for denne |
US8266441B2 (en) * | 2005-04-22 | 2012-09-11 | Bank Of America Corporation | One-time password credit/debit card |
JP4954628B2 (ja) * | 2006-05-16 | 2012-06-20 | 修 亀田 | 真性乱数発生素子あるいは擬似乱数発生素子を用いた認証用デバイス、認証装置及び認証方法 |
WO2009052548A1 (en) * | 2007-10-22 | 2009-04-30 | Microlatch Pty Ltd | A transmitter for transmitting a secure access signal |
-
2008
- 2008-10-15 FR FR0856997A patent/FR2937204B1/fr not_active Expired - Fee Related
-
2009
- 2009-10-06 US US13/061,213 patent/US8856895B2/en active Active
- 2009-10-06 WO PCT/FR2009/001186 patent/WO2010043779A1/fr active Application Filing
- 2009-10-06 EP EP09756328.2A patent/EP2347541B1/fr active Active
- 2009-10-06 CN CN2009801416416A patent/CN102187619A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002017555A2 (en) * | 2000-08-18 | 2002-02-28 | Verisign, Inc. | Countering credentials copying |
US20040172535A1 (en) * | 2002-11-27 | 2004-09-02 | Rsa Security Inc. | Identity authentication system and method |
Also Published As
Publication number | Publication date |
---|---|
FR2937204A1 (fr) | 2010-04-16 |
EP2347541A1 (fr) | 2011-07-27 |
EP2347541B1 (fr) | 2018-04-04 |
US8856895B2 (en) | 2014-10-07 |
US20110185407A1 (en) | 2011-07-28 |
FR2937204B1 (fr) | 2013-08-23 |
WO2010043779A1 (fr) | 2010-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102187619A (zh) | 认证系统 | |
CN108064440B (zh) | 基于区块链的fido认证方法、装置及系统 | |
CN111213171B (zh) | 用于安全离线支付的方法和装置 | |
EP2020797B1 (en) | Client-server Opaque token passing apparatus and method | |
CN101427510B (zh) | 用于网络功能描述的数字通行 | |
US9467293B1 (en) | Generating authentication codes associated with devices | |
CN1323538C (zh) | 一种动态身份认证方法和系统 | |
JP6399382B2 (ja) | 認証システム | |
CN109660343A (zh) | 令牌更新方法、装置、计算机设备及存储介质 | |
CN102474416B (zh) | 具有增量密钥建立能力的认证令牌 | |
US20110113237A1 (en) | Key camouflaging method using a machine identifier | |
CN101278538A (zh) | 用于用户认证的方法和设备 | |
AU2005318933A1 (en) | Authentication device and/or method | |
NZ550381A (en) | Authentication device and/or method | |
KR102274285B1 (ko) | 동적 공유 시크릿 분배 방식의 otp 보안관리 방법 | |
Patel et al. | DAuth: A decentralized web authentication system using Ethereum based blockchain | |
CN104125230B (zh) | 一种短信认证服务系统以及认证方法 | |
CN109936552A (zh) | 一种密钥认证方法、服务器及系统 | |
CN106063188B (zh) | 在通信网络中的认证和/或标识方法 | |
EP3292654B1 (en) | A security approach for storing credentials for offline use and copy-protected vault content in devices | |
KR101202245B1 (ko) | 이체정보로 생성되는 otp를 활용한 계좌이체시스템 및 방법 | |
CN101924734A (zh) | 一种基于Web表单的身份认证方法及认证装置 | |
CN100459495C (zh) | 一种公开加密方式的口令动态加密输入方法 | |
JP2000508099A (ja) | 複数の動的暗号化変数を使用する機能へのアクセスを制御するシステム | |
KR101577058B1 (ko) | 오티피 생성 조건 등록 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110914 |