0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是共享密钥?TOTP身份验证协议的实现

哲想软件 来源:哲想软件 2023-02-27 11:16 次阅读

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)也会运行。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • VPN
    VPN
    +关注

    关注

    4

    文章

    291

    浏览量

    29656
  • UNIX
    +关注

    关注

    0

    文章

    296

    浏览量

    41413
  • OTP
    OTP
    +关注

    关注

    4

    文章

    183

    浏览量

    47098
  • 生成器
    +关注

    关注

    7

    文章

    313

    浏览量

    20973

原文标题:Passwork:所有关于基于时间的一次性密码 (TOTP)

文章出处:【微信号:哲想软件,微信公众号:哲想软件】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    无线身份验证的门禁控制系统设计方案

    的网络,可提供身份验证传输框架,实现安全产品和服务的交付。它是一种用于创建、交付和管理安全身份验证的综合性框架。简单来说,该基础架构是一个中央安全库,通过安全的网络连接,并以公开的加密密钥
    发表于 11-05 11:11

    基于ESP32实现打开身份验证器的设计

    描述打开身份验证器我总是对这些小型设备感到惊讶。我爸爸用这些来登录他的工作笔记本电脑,我无法理解它如何在没有连接到任何网络的情况下生成代码。我启动了谷歌并试图搜索它,令人惊讶的是它使用了一个非常惊人
    发表于 07-25 06:35

    ESP8266有没有办法在不使用指纹的情况下使用HTTPS,只使用密钥作为身份验证

    的,因为它不“安全”,即使使用基本的用户名/密码身份验证也是如此,而且 HTTPS 需要指纹。有没有办法在不使用指纹的情况下使用 HTTPS,只使用密钥作为身份验证?那会安全吗?
    发表于 02-28 06:34

    PN5180无法使用mifare classic进行身份验证怎么解决?

    ....ok 2. Anticollision CL1.....ok 3. 选择......ok 4. 验证....错误当我发送身份验证命令时,我得到 0x02(等待卡响应超时(卡不存在)。)但是卡存在,我
    发表于 03-23 08:46

    如何创建一个经过身份验证的会话以使用DeleteAll函数?

    我想使用 AES 密钥与 se050 创建经过身份验证的会话。nano 包似乎不支持这一点。我的理解正确吗? 这很重要 b/c 我想为特定密钥的安全密钥和数据设置策略。我知道您可以在设
    发表于 06-08 08:36

    什么是身份验证和授权

    什么是身份验证和授权 根据RFC2828(Internet Security Glossary,May2000),验证是“校验被或向某系统实体声明的身份的过程”。此处的关键字
    发表于 04-03 16:03 5735次阅读

    什么是Kerberos身份验证协议

    什么是Kerberos身份验证协议 kerberos是由MIT开发的提供网络认证服务的系统。它可用来为网络上的各种server提供认证服务,使得口令不再
    发表于 04-03 16:04 3025次阅读

    什么是询问握手身份验证协议

    什么是询问握手身份验证协议 CHAP(询问握手身份验证协议)是用于远程登录的身份验证协议,通过
    发表于 04-03 16:06 2650次阅读

    什么是密码身份验证协议

    什么是密码身份验证协议 PAP是一种身份验证协议,是一种最不安全的身份协议,是一种当客户端不
    发表于 04-03 16:07 1592次阅读

    身份验证和生物识别身份系统应用越加广泛

    身份验证和生物识别身份系统应用越加广泛
    发表于 02-27 14:37 1555次阅读

    PCB身份验证

    电子发烧友网站提供《PCB身份验证器.zip》资料免费下载
    发表于 07-22 10:09 2次下载
    PCB<b class='flag-5'>身份验证</b>器

    基于DS28S60的双向身份验证示例

    本应用笔记详细介绍了DS28S60与Jupyter笔记本配合使用进行双向认证的基本应用。它使用分步方法来演练设置设备和所有相关软件,创建用于通过 ECDHE 密钥交换加密数据的共享密钥,使用 AES-GCM 加密和解密数据,以及
    的头像 发表于 02-17 11:32 621次阅读

    HDCP 2.2:使用中继器进行局部性检查、SKE和身份验证

    使用的基础加密标准。AKE 是身份验证协议的第一步。在这里,我们将继续探索协议的后续 3 个步骤:位置检查、会话密钥交换 (SKE) 和中继器身份验
    的头像 发表于 05-29 09:24 2009次阅读
    HDCP 2.2:使用中继器进行局部性检查、SKE和<b class='flag-5'>身份验证</b>

    HDCP 2.2:身份验证密钥交换

    HDCP 发射器可以随时启动,甚至在之前的身份验证完成之前。HDCP 接收器的公钥证书由 HDCP 发射器验证,然后设备共享密钥 Km。这个存储的主
    的头像 发表于 05-29 09:28 4212次阅读
    HDCP 2.2:<b class='flag-5'>身份验证</b>和<b class='flag-5'>密钥</b>交换

    TMP1827 的 密钥生成和身份验证机制

    电子发烧友网站提供《TMP1827 的 密钥生成和身份验证机制.pdf》资料免费下载
    发表于 09-09 09:24 0次下载
    TMP1827 的 <b class='flag-5'>密钥</b>生成和<b class='flag-5'>身份验证</b>机制