🗒️MFA 2MFA TOTP
type
status
slug
date
summary
tags
category
password
icon
Two-factor authentication
2FA 是指使用两种不同类型的身份验证因素来确认用户的身份。
github 举例
- Authenticator app
- SMS/Text message
- Security keys
- Github Mobile
2MFA和 MFA 区别
MFA(多因素身份验证)和2FA(双因素身份验证)都是用于增强账户安全性的方法。它们的目标是通过要求用户提供两个或多个身份验证因素,以确保只有授权用户能够访问账户或系统。
MFA包括2FA,但不限于两个因素。常见的身份验证因素包括:
- 知识因素:例如密码或PIN码。
- 所有权因素:例如手机或硬件令牌收到的验证码。
- 生物特征因素:例如指纹扫描或眼球扫描。
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...