动态口令(OTP,One-Time Password)又称一次性密码,是使用密码技术实现的在客户端和服务器之间通过共享秘密的一种认证技术,是一种强认证技术,是增强目前静态口令认证的一种非常方便技术手段,是一种重要的双因素认证技术。
动态口令认证技术包括客户端用于生成口令产生器的动态令牌,是一个硬件设备,和用于管理令牌及口令认证的后台动态口令认证系统组成。
目前在安全强认证领域使用的OTP动态密码技术,源于最早由RSA公司于1986年开发的RSA SecureID产品,动态密码并不是一次性密码技术,而是动态一次性口令技术。目前,国际上动态口令OTP有2大主流算法,一个是RSA SecurID ,一个是OATH组织的OTP算法。如果在国内来说的话,另一个是国密的OTP密码算法。RSA SecurID使用AES对称算法,OATH使用HMAC算法,国密算法使用的国密SM1(对称)和SM3(HASH)算法。
OTP和常用的认证技术
USBKey: 申请PKI证书。
动态口令卡:打印好的密码刮刮卡。
动态短信:使用电信通道下发口令。
IC卡/SIM卡:内置与用户身份相关的信息。
生物特征:采用独一无二的生物特征来验证身份,如指纹。
动态令牌:动态口令生成器和认证系统
.动态口令:
时间型口令,验证过程:
1.动态密码令牌产生动态密码,以时间和种子为参数,进行迭代,得出动态密码.这里的时间一般是秒数,每个时间性动态密码令牌中会内置一个时钟芯片。
2.服务器校验动态密码.服务器读取系统时间加上种子,以相同的迭代方法得出动态密码,然后双方进行比对.
但是由于服务器的时间和本地的时间有可能是不一致的。怎么解决?
https://blog.csdn.net/wxy540843763/article/details/84497359
https://github.com/erlang/otp
https://github.com/pquerna/otp
支持totp hotp
https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication-recovery-methods
https://github.com/knadh/otpgateway
https://github.com/hgfischer/go-otp
https://github.com/dim13/otpauth
https://github.com/xlzd/gotp
https://github.com/RijulGulati/otpgen
https://github.com/smallstep/cli
https://github.com/ergo-services/ergo
https://github.com/gotoolkits/AuthOTP
https://www.sooele.com/1529.html
FreeOTP可以用作谷歌认证的替代
https://zh.wikipedia.org/wiki/FreeOTP
https://blog.csdn.net/weixin_30271335/article/details/97916367
安装FreeOTP Authenticator来作为验证码生成工具即可。
FreeOTP Authenticator可以从谷歌Play下载:https://play.google.com/store/apps/details id=org.fedorahosted.freeotp&hl=zh_CN
如果你访问不了,那可以从这里下载:点击下载
下载后,安装时记得去掉文件名中的中文,否则有可能异常。
下面介绍使用方法:
1.进入程序后,点右上第二个钥匙状按钮,添加密钥
2.第一行填写描述名称、第二行随便填写、第三行Secret是密钥,
https://shipengliang.com/software-exp/google-authenticator%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E5%99%A8%E7%BA%A2%E7%B1%B31s-android-4-4-2%E6%97%A0%E6%B3%95%E5%BE%97%E5%88%B0%E6%AD%A3%E7%A1%AE%E9%AA%8C%E8%AF%81%E7%A0%81%E8%A7%A3.html/amp