TOTP的含义
“基于时间的一次性密码”是指使用共享密钥值和系统上的当前时间形成后仅在30-90秒内有效的密码。
密码几乎总是由每三十秒更改一次的六位数序列组成。另一方面,TOTP的某些实现使用四位数代码,这些代码在90秒后变得无效。
什么是共享密钥?
TOTP身份验证使用在客户端和服务器之间共享的密钥形式的共享密钥。
肉眼看来,共享密钥似乎是一个字符串,其表示形式在Base32中类似于以下内容:
KRUGS4ZANFZSAYJAONUGC4TFMQQHGZLDOJSXIIDFPBQW24DMMU======
计算机能够理解和理解信息,即使人类无法以呈现的方式辨认信息。
客户端和服务器在单次传输密钥后,共享密钥的副本安全地存储在各自的系统上。
如果攻击者能够发现共享密钥的价值,那么他们将能够构建自己独特的合法一次性密码。因此,TOTP的每个实现都需要特别注意以安全的方式安全地存储共享密钥。
什么是系统时间?
每台计算机和手机中都有一个时钟,用于测量所谓的Unix时间。
Unix时间是根据自1年1970月00日00:00:<>UTC 以来经过的秒数来衡量的。
Unix时间似乎只不过是一串数字:1643788666
然而,这个小数字非常适合生成OTP,因为大多数使用Unix时钟的电气设备彼此充分同步。
TOTP身份验证协议的实现
不建议使用密码。但是,您可以通过将传统密码与时间敏感的一次性密码(TOTP)结合使用来提高安全性。这种组合称为双因素身份验证或2FA,可用于安全地对您的帐户、虚拟专用网络(VPN)和应用程序进行身份验证。
TOTP可以在硬件和软件令牌中实现:
•TOTP硬件令牌是一种物理钥匙串,可在小屏幕上显示当前代码
•TOTP软令牌是一种移动应用程序,可在手机屏幕上显示代码
使用软件令牌还是硬件令牌都没有区别。使用两种不同形式的身份验证的目的是提高为您的在线帐户提供的保护级别。您可以访问一次性密码生成器,您可以在双因素身份验证期间使用该生成器来访问您的帐户。无论您有遥控钥匙还是带有身份验证应用程序的智能手机,都可以使用此生成器。
基于时间的一次性密码如何工作?
共享密钥的值包含在每个基于时间的一次性密码(TOTP)的生成中,该密码取决于当前时间。
为了生成一次性密码,TOTP方法会同时考虑当前的Unix时间和共享密钥值。
基于HMAC的一次性密码(HOTP)方法中的计数器将换成基于时间的一次性密码算法(HOTP算法的一个版本)中的当前时间值。
一次性密码(TOTP)技术基于哈希函数,给定不确定长度的输入,生成固定长度的短字符串。这种解释避免了在技术语言上陷入困境。如果您只是拥有哈希函数的结果,您将无法重新创建用于生成它的原始参数。这是哈希函数的优势之一。
必须记住,TOTP提供比HOTP更高的安全级别。每30秒,使用TOTP时就会生成一个全新的密码。使用HOTP时,只有在输入和使用前一个密码后才会创建新密码。事实上,即使HOTP的一次性密码已被用于身份验证,它仍然有效,这为黑客提供了成功发起攻击的重要机会。
使用多因素(MFA)进行身份验证
用户必须先在任何支持基于时间的一次性密码的多因素身份验证(MFA)系统中注册其 TOTP令牌,然后才能使用设备连接到其帐户。
一些TOTP软代币需要为每个帐户注册不同的OTP生成器。这实际上意味着,如果您将两个帐户添加到身份验证器应用程序,程序将每30秒生成两个临时密码,每个帐户一个。单个TOTP软令牌(身份验证器程序)可以支持无限数量的一次性密码生成器。单个一次性密码生成器可在帐户安全性受到威胁的情况下保护所有其他帐户的安全。
要使用2FA,必须创建密钥并在TOTP令牌和安全系统之间共享。然后,必须将安全系统的机密传递给令牌。
如何将共享机密发送到令牌?
通常,安全系统会创建一个二维码,并请求用户使用身份验证器应用程序对其进行扫描。
这种类型的二维码是对一长串字母的视觉描述。粗略地说,共享的秘密是这个冗长序列的一部分。
当用户使用身份验证器应用程序扫描二维码时,该软件将串起图像并提取密钥。身份验证器程序现在可以利用共享密钥生成一次性密码。
注册TOTP令牌时,密钥仅发送一次。许多关于窃取私钥的担忧都得到了缓解。对手仍然可以窃取机密,但他们必须首先实际窃取令牌。
即使您没有连接到互联网,它也可以工作!
要使用TOTP技术,您不需要智能手机上的有效互联网连接或物理密钥。
TOTP令牌只需要获取一次共享密钥值。因此,安全系统和OTP生成器可以产生连续的密码值,而无需通信。因此,即使计算机关闭,基于时间的一次性密码(TOTP)也会运行。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !