HOTP基本原理 知道了OTP的基本原理,HOTP只是将其中的参数C变成了随机数HOTP(K,C) = Truncate(HMAC-SHA-1(K,C)) 即:C作为一个参数,获取动态密码。 HOTP的python代码片段: class HOTP(OTP): def at(self, count): """ Generates the OTP for TOTP(K,C) = HOTP(K,C) = Truncate(HMAC-SHA-1(K,C)) 不同点是TOTP中的C是时间戳计算得出。 的使用说明(官网) hotp = pyotp.HOTP('base32secret3232') hotp.at(0) # => 260182 hotp.at(1) # => 55283 hotp.at (1401) # => 316439 # OTP verified with a counter hotp.verify(316439, 1401) # => True hotp.verify(316439
@代码的注释其实就是最好的说明 class _GoogleTwoSetpAuth(object): '''Google令牌二次认证相关''' def _get_hotp_token(self _get_hotp_token(secret, intervals_no=int(t_60) // 30) old = self. _get_hotp_token(secret, intervals_no=int(t_30_)//30) now = self. _get_hotp_token(secret, intervals_no=int(t)//30) new = self. _get_hotp_token(secret, intervals_no=int(t_30)//30) return oold, old, now, new def shutff_str
3.2、HOTP 基本原理 知道了 OTP 的基本原理,HOTP 只是将其中的参数 C 变成了随机数。 HOTP(K,C) = Truncate(HMAC-SHA-1(K,C)) HOTP: Generates the OTP for the given count C 作为一个参数,获取动态密码。 示例: HOTP 的 python 代码片段: class HOTP(OTP): def at(self, count): """ Generates the OTP 的使用说明 hotp = pyotp.HOTP('base32secret3232') hotp.at(0) # => 260182 hotp.at(1) # => 55283 hotp.at(1401 ) # => 316439 # OTP verified with a counter hotp.verify(316439, 1401) # => True hotp.verify(316439,
-1 value into an HOTP value. R3: The algorithm MUST use HOTP [RFC4226] as a key building block. R3: 算法必须使用HOTP算法来进行关键块构建。 TOTP算法是用时间因子来表示计数器的一种计算一次性密码的HOTP算法的变体。 算法的安全性和可靠程度依赖于用于构建HOTP块的属性参数。它是在构造HMAC时使用的SHA-1作为哈希函数。 分析表明,针对HOTP最有可能的破解方式就是暴力破解。
941782') True >>> time.sleep(30) >>> totp.verify('941782') False 除了使用基于时间的动态密码,也可以用基于计数的动态密码,逻辑如下: hotp = pyotp.HOTP('base32secret3232') hotp.at(0) # => '260182' hotp.at(1) # => '055283' hotp.at(1401) # = > '316439' # OTP verified with a counter hotp.verify('316439', 1401) # => True hotp.verify('316439',
HOTP基于消息认证码的一次性密码 HOTP是HMAC-Based One Time Password的缩写,即是基于HMAC(基于Hash的消息认证码)实现的一次性密码。 算法细节定义在RFC4226(https://tools.ietf.org/html/rfc4226),算法公式为: HOTP(Key,Counter) ,拆开是 Truncate(HMAC-SHA- (key, counter,6); 7 //otp8=49752378 8 var otp8 = SecurityHelper.HOTP(key, counter, 8); 其中key是HOTP算法需要的一个密钥 (不可泄露);counter是每次生成HOTP的时候使用的计数器,使用一次就更换一个。 TOTP是在HOTP的基础上扩展的一个算法,算法细节定义在RFC6238(https://tools.ietf.org/html/rfc6238),其核心在于把HOTP中的counter换成了时间T,可以简单的理解为一个当前时间的时间戳
[#11] torben dot egmose at gmail dot com [2009-03-22 11:40:43] HOTP Algorithm that works according to Secret=”12345678901234567890″; Count: 0 755224 1 287082 function oath_hotp(key,counter) { // Convert (a=oath_hotp(“12345678901234567890”, print “\t”.oath_truncate($a).”
HOTP算法是一个以事件计数器作为移动因子,基于事件的一次性密码算法。 本文所讲述的算法则是将时间值作为移动因子。 HOTP(K,C) = Truncate(HMAC-SHA-1(K,C)) Truncate函数表示它能够将HMAC-SHA-1的计算结果转换成HOTP的结果值。 TOTP算法是上述算法基于时间的变体,使用通过时间戳和时间步长推导出来的数值T来代替原有HOTP算法中的计数器C。 TOTP算法的实现可以采用HMAC-SHA-256或HMAC-SHA-512函数,用此来代替原有HOTP计算中采用的HMAC-SHA-1方案。 基于安全的考量 常规的 算法的安全性和可靠程度依赖于用于构建HOTP块的属性参数。它是在构造HMAC时使用的SHA-1作为哈希函数。
mycentos-name (重起生效) 6:修改ssh端口号:vim /etc/ssh/sshd_config 修改#port行端口 (重起生效 service sshd restart) 7:安装hotp
在文件第一行添加如下行(先进行google_authenticator认证再进行密码的认证): auth required pam_google_authenticator.so no_increment_hotp accessfile=/etc/security/access-localhost.conf auth required pam_google_authenticator.so no_increment_hotp
TOTP是来自 HOTP [RFC4226] 的变形,从统筹上看,他们都是将数据文件进行散列计算,只是HOTP的因子是事件因子,TOTP将因子换成了时间因子,具体的TOTP计算公式(其中的HMAC-SHA
/算术 2.2 双因素认证 短信/时间令牌/邮件 2.3 短信认证 腾讯云短信 2.4 时间令牌 登录易/Google/Microsoft Authenticator/FreeOTP/支持TOTP或者HOTP
双因素认证 短信/时间令牌/邮件 2.3 短信认证 腾讯云短信/阿里云短信/网易云信 2.4 时间令牌 Google/Microsoft Authenticator/FreeOTP/支持TOTP或者HOTP
动态验证码字母/数字/算术2.2双因素认证短信/时间令牌/邮件2.3短信认证腾讯云短信2.4时间令牌登录易/Google/Microsoft Authenticator/FreeOTP/支持TOTP或者HOTP2.5
FreeOTP 实现了开放的标准,这意味着系统中不包含收费组件,FreeOTP 提供 HOTP 和 TOTP 的实现。
accessfile=/etc/security/access-localhost.conf auth required pam_google_authenticator.so no_increment_hotp
第二个十六进制代码将类似于以下内容: HOTP/T30 example-user - 961497ad4942e19507006c1e849ab271c1f1cb75 将上面的行复制到新文件/etc/liboath /users.oath中,该文件将存储每个用户的密钥: echo 'HOTP/T30 example-user - 961497ad4942e19507006c1e849ab271c1f1cb75' |
用户和系统之间共享一个密钥,结合当前时间生成密码,常见的实现包括Google Authenticator和Microsoft Authenticator等应用程序 基于计数器的OTP(HMAC-based OTP,HOTP https://github.com/jamie-mh/AuthenticatorPro 项目介绍:Authenticator Pro是一款面向Android的免费开源双因素认证APP,支持TOTP、HOTP
Google Authenticator(谷歌身份验证器),是谷歌公司推出的一款动态令牌工具,解决账户使用时遭到的一些不安全的操作进行的“二次验证”,认证器基于RFC文档中的HOTP/TOTP算法实现
实现方式主要分为两种:HOTP,TOTP,国内主要使用TOTP,因为时间同步并不是太难的事。 进行验证时,客户端对密钥和计数器的组合(K,C)使用HMAC(Hash-based Message Authentication Code)算法计算一次性密码 公式如下:HOTP(K,C) = Truncate counter // First 8 bytes are for the movingFactor // Compliant with base RFC 4226 (HOTP