关于 YubiKey 的作用,这里有一些解释。基本上,YubiKey“键入”的密码(从计算机的角度来看,它是一个键盘)可以是静态密码,也可以是一次性密码。如果它是一个静态密码,那么您只是透露了它,是时候非常抱歉(并立即更改该密码)。
一次性密码,YubiKey 产生的遵循HOTP。HOTP 中的密码学使得从一个或多个使用 HOTP 生成的一次性密码重新计算“主机密”在计算上是不可行的。此外,每个密码都是从一个计数器内部计算出来的。YubiKey 和服务器都维护相同的计数器,服务器允许一些有限的同步缺失。即,当服务器的当前计数器具有值n并接收密码作为身份验证尝试时,它将在内部生成值n+1,n+2,...的密码,直到n+100(这是可配置的)。如果找到(比如说)密码n+17的匹配项,然后授予访问权限,并且服务器的计数器设置为n+17;否则,连接被拒绝并且服务器的计数器不会改变。
因此,您无意中“在 Internet 上”发布的是一个密码,该密码将授予对相应服务器的访问权限,直到您自己在该服务器上进行下一次身份验证,因为该身份验证会将服务器的计数器更新为另一个计数器值。在某种程度上,使用计数器值为k的OTP 会使所有值为j < k的 OTP 值无效。这导致以下恢复过程:如果您发布了 OTP 值,请快速连接到服务器以使该发布的值无效。之后,您可以忽略它;一旦失效,它是无害的。
(注意:如果您在没有对服务器进行身份验证的情况下使用您的密钥重复生成大量“空白”密码,您的 YubiKey 可能与服务器的密码不同步——使用计数器值的密钥超出了服务器当前接受的范围. 不要让你 3 岁的孩子玩你的 YubiKey !在类似的情况下,对于红外车钥匙,当你启动引擎时,通过 RFID 强制计数器同步。)