🗒️MFA 2MFA TOTP

type
status
slug
date
tags
summary
category
password
icon

Two-factor authentication

2FA 是指使用两种不同类型的身份验证因素来确认用户的身份。
github 举例
  • Authenticator app
  • SMS/Text message
  • Security keys
  • Github Mobile

2MFA和 MFA 区别

MFA(多因素身份验证)和2FA(双因素身份验证)都是用于增强账户安全性的方法。它们的目标是通过要求用户提供两个或多个身份验证因素,以确保只有授权用户能够访问账户或系统。
MFA包括2FA,但不限于两个因素。常见的身份验证因素包括:
  1. 知识因素:例如密码或PIN码。
  1. 所有权因素:例如手机或硬件令牌收到的验证码。
  1. 生物特征因素:例如指纹扫描或眼球扫描。

TOTP算法

动态口令
一种 MFA 的实现方式
Time-based One-Time Password(TOTP)是一种基于时间的一次性密码算法,用于增强身份验证的安全性。
TOTP基于HMAC(Hash-based Message Authentication Code)算法和时间戳生成一次性密码。用户和服务器之间共享一个密钥,通常在初始化身份验证时交换。基于该密钥,服务器生成一个用于验证的初始值。
在每个时间步长(通常是30秒),基于当前时间戳和共享密钥,使用HMAC算法生成一个哈希值。然后,从哈希值中提取一个固定长度的动态密码。这个动态密码在设定的时间步长内有效,之后会自动失效。
用户在进行身份验证时,需要输入当前时间步长内生成的动态密码。服务器会使用相同的算法和共享密钥,验证用户提供的密码是否匹配。由于动态密码在时间步长过期后就会失效,即使被截获,也无法在下一个时间步长内重复使用。
TOTP广泛应用于双因素身份验证(2FA)和多因素身份验证(MFA)的实现中。通过结合用户的密码和每次生成的动态密码,TOTP提供了一层额外的安全保护,有效降低了密码被盗用或猜测的风险。
常见的TOTP应用包括Google Authenticator和Authy等身份验证应用程序,它们生成基于TOTP算法的动态密码,并与用户的在线账户相绑定,提供更安全的登录方式。
说白了,就是一个带生命周期的密钥,30秒之后这个密钥就会过期,客户端和服务端共享一个密钥,通过HMAC算法来验证密钥的合法性。
 

代码实现

上一篇
阿里云切换 MFA
下一篇
图片处理基础知识
Loading...
文章列表
王小扬博客
云原生
Git
Elasticsearch
Apollo
产品
Think
生活技巧
软件开发
计算机网络
CI
DB
设计
缓存
Docker
Node
操作系统
Java
大前端
Nestjs
其他
PHP
AI