OTP详解,OTP、HOTP、TOTP区别以及Node平台OTP包轻体验

前言

最近上班过程中,谷歌到了一个概念OTP,看到它的全称之后,我发现它是一个我们日常生活中已经离不开的东西:(One-Time-Password),顾名思义,一次性密码。恐怕最常见的可能就是我们动态登录账号的时候选择短信(SSM)验证账号。这个验证码就属于OTP。虽然目前工作中没有用到OTP,但是我还是决定了解一下这个概念,说不定以后什么时候就用到了。

OTP概念

首先我们要知道的是,OTP是MFA(Multi-Factor-Authentication)的一个实现模型。先简单了解一下MFA的概念,MFA概括来说就是用户需要提供2种或2种以上的凭证去验证真实身份。相比仅凭账号密码,MFA提供了更加安全的资源保护。下面列举一些MFA的例子:

  1. 用户安全问题
  2. 密码
  3. OTPs
  4. 软件安全码、keys
  5. 指纹、人脸识别、声纹及其他生物特征
  6. 用户行为足迹分析

其实把资源安全的责任附加到用户身上(如上述的1、2等),并不是十分可靠,用户承担了记忆的责任。因此我认为OTP是一个比较负责任的MFA做法。
接下来介绍OTP。
OTP是应用主、网站提供给用户,需要用户接收并且输入的一次性密码,一旦用户使用过之后,再次登录应用或者页面则需要接受另一个新的密码。OTP的形式可以为短信、手机应用等等。
生成OTPs的标准算法有很多,例如SHA-1,它们都有一个共同点:有一个seed和一个moving factor,seed是绑定在账户上的静态值,从账户创建开始即保持不变,moving factor则在每一次OTP请求中改变。根据这个动态因子的不同,OTP又被分为两种:HOTPTOTP

HOTP

HOTP中,H指代 Hash-based Message Authentication Code,另一种不那么专业的解释方法为:HOTP是一种事件驱动的OTP,它的moving factor基于一个计数器。
HOTP每一次请求,都会让计数器递增,而生成的OTP在下一次计数前保持有效。OTP生成器和服务器会同步监测到用户的有效访问行为。HOTP的一个例子为Yubikey

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值