当前位置:首页 > HOTP
确定是否相配。有时系统可能要求用户发送一系列HOTP值(如2,3个)来进行重同步,因为伪造一系列连续的HOTP值要比猜测一个HOTP值更困难。
参数s的上限值保证了服务器不会不停检测HOTP值,同时也限制了试图制造HOTP值的攻击者的可能解空间。s的值应当越小越好,同时保证可用性不受很大影响。
7.5共享密钥的管理
对用于产生和认证OTP值的共享密钥进行处理的运算应当安全地运行,以降低敏感信息泄露的风险。本节我们将描述不同的运算和技术方式,以展示对数据安全领域里的不同运作模式。
现在我们考虑在认证系统中两种不同的产生和存储共享密钥的途径。 确定性生成:同时在提供和认证阶段都由主种子得出密钥,在需要时都能即时产生。
随机性生成:在提供阶段密钥随机产生,而且要被及时存储,并在整个有效周期中保持安全。
确定性生成
一种可行的方法是从主密钥中得出共享密钥,该主密钥只能存储在服务器中。必须使用一种防篡改的装置来存储该主密钥,并能从该主密钥和公共信息中得出共享密钥。这样做的主要优点是可以在任何时候都不会暴露该共享密钥,避免了对存储的特殊要求,因为共享密钥在提供和认证阶段都可以根据需要随时产生。
考虑两种不同情况
使用一个主密钥MK产生共享密钥,每一个HOTP装置都有一个不同的密钥。K_i = SHA-1 (MK,i),这里i表示用以唯一标志一个HOTP装置的公共信息,可以是序列号、一个令牌标识符等等。很明显,存在着一个应用或服务的背景——不同的应用或服务应当提供不同的密钥和设置。
使用若干主密钥MK_i,每一个HOTP装置存储个从中得到的互不相同的密钥。{K_i,j = SHA-1(MK_i,j)},这里j表示标识装置的公共信息。其思想是只需在
认证服务器和硬件安全模块中存储有效主密钥,采用密钥分享法例如[Shamir]将其放置在一个安全的地方。在这种情况下,如果一个主密钥MK_i被泄露,只需要换用另一个而不必替换所有的装置。
确定性方法的缺点是当主密钥被泄露后,攻击者很容易在正确公共信息的基础上重建任何共享密钥。因此必须废除所有的密钥,或在多主密钥系统中换用另一组密钥。
在另一方面,用于存储主密钥和产生共享密钥的装置必须可以防止篡改,而且,HSM不能暴露于认证系统的安全范围之外以减少泄漏的风险。
随机性生成
随机生成共享密钥。我们建议依据[RFC4086]中的规定并选择好而安全的随机信号发生器来产生密钥。一个随机信号发生器要有随机性的自然发生源。实际中,可以考虑用两种方法来产生共享密钥。
*基于硬件的发生器:通过物理现象产生随机数。可以利用振荡器来实现并 并以主动攻击更难以执行的方式构建。
*基于软件的发生器:设计一个好的软件发生器并非易事。一种简单而又有 效的方法是使用多种信号源并将单向函数例如SHA-1应用于抽样序列。 我们推荐使用已经过证明的产品,可以是硬件或软件发生器来计算共享密钥。
我们同样建议使用安全方法存储密钥。更特别地,可使用防篡改的硬件加密存储器对共享密钥加密,并且仅在需要的时候才将其取出。
例如,当需要认证一个HOTP值时,共享密钥将被解密,之后将被立即加密以减少其在RAM中暴露的时间。存储共享密钥的数据存储器必须处于一个安全的环境中,以尽量避免对认证系统和保密数据库的攻击。
特别地,对共享密钥的使用权应当限制在认证系统的程序和进程中。我们不再详细说明所用的各种安全装置。但很明显,对共享密钥的保护是最重要的事。
8.合成共享密钥
在共享密钥K中也许会需要附加一些认证因素,组成这些附加的数据可以是
由令牌知道而不易被其他人获得的任何数据。这些数据可以包括:
* 用户输入令牌的PIN或口令 * 电话号码
* 任何令牌能以编程方式得到的任何唯一的识别码
在这种方案下,在提供阶段共享密钥K由一个随机种子值联合一或多个附加认证值复合而成。服务器可以根据需要产生或存储密钥——不论哪种情况都依赖于执行选择。令牌仅存储种子值。当令牌执行HOTP运算,它从种子值和其他局部导出或输入的认证因子值计算出K。
使用合成共享密钥可以通过引入令牌中的附加认证因子加强基于HOTP的认证系统。
在某种程度上,令牌是一个可信的设备。而且这种方法可以避免将认证因子(如用户输入PIN)暴露给其他设备。
9.双向认证
有趣的是,HOTP服务端也可以用来认证服务器,宣称其为知道共享密钥的真实实体。
由于HOTP服务器和客户端是同步的并共享同一密钥(或用某种方法重算),可以使用一种简单的3通过协议。
终端用户输入令牌口令和第一个OTP值OTP1。 服务器检查OTP1,如果正确,返回OTP2。
终端用户使用他的HOTP装置检查OTP2,如果正确就进入为网站。 很明显,正如前文所述,所有的OTP通信都应在安全信道上进行。例如SSL/TLS, Ipsec链路。
10.结论
本文描述了HOTP, 基于HMAC的一次性口令生成算法。同时也推荐了较好的执行工具和实现该算法的相关方法。
本文同时展示了安全因素并证明了HOTP算法是实用且合理的。最可能的攻击即蛮力攻击可以通过认证服务器中计数器的仔细运行而阻止。
最后,为了改善安全性以满足某些特定应用的需要提出了一些增强方法。
共分享92篇相关文档