这是 oathtool 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
oathtool - OATH 一次性密码工具
概要
誓言工具 [配置]……[KEY [OTP]]...
商品描述
誓言工具 2.6.1
生成并验证 OATH 一次性密码。
-h, - 帮帮我
打印帮助并退出
-V, - 版
打印版本并退出
--hotp 使用基于事件的 HOTP 模式(默认为开启)
--top[=STRING]
使用时变 TOTP 模式(可能的值=“sha1”、“sha256”、“sha512”
默认=`sha1')
-b, --base32
使用 KEY 的 base32 编码而不是十六进制(默认值=关闭)
-c, - 柜台=COUNTER
HOTP 计数器值
-s, --时间步长=期限 TOTP 时间步长
(默认=`30s')
-S, - 开始时间=时间
何时开始计算 TOTP 的时间步长(默认 =`1970-01-01 00:00:00 UTC')
-N, - 现在=时间
将此时间用作 TOTP 的当前时间(默认 =`now')
-d, --数字=DIGITS
一次性密码的位数
-w, - 窗户=宽度
验证 OTP 时要测试的计数器值窗口
-v, --详细
解释正在做什么(默认=关闭)
示例
要为全零密钥生成第一个基于事件 (HOTP) 的一次性密码:
$ 誓言工具 00
328482
$
有时您想要生成多个 OTP。 产生 10 个额外的事件-
基于一次性密码,使用 RFC 4226 示例中使用的密钥,使用 -w
(--window) 参数:
$誓言工具-w 10 3132333435363738393031323334353637383930
755224
287082
359152
969429
338314
254676
287922
162583
399871
520489
403154
$
在最后一个输出中,第一个 OTP 的计数器为 0,第二个 OTP 的计数器为
1,以此类推,最多 10。
为了使用以 Base32 而不是十六进制编码的密钥,您可以提供 -b (--base32)
参数:
$ oathtool --base32 -w 3 GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ
755224
287082
359152
969429
$
该工具忽略 base32 数据中的空格并在必要时重新添加填充,因此您可以
提供如下格式的密钥。
$ oathtool --base32 --totp "gr6d 5br7 25s6 vnck v4vl hlao re"
977872
$
要生成特定的 OTP,请使用 -c (--counter) 参数给出确切位置
直:
$誓言工具-c 5 3132333435363738393031323334353637383930
254676
$
要验证 HOTP 一次性密码,请在命令行最后提供 OTP:
$誓言工具-w 10 3132333435363738393031323334353637383930 969429
3
$
输出指示使用的计数器。 它的工作原理是从计数器 0 开始,然后
在提供的 10 个 OTP 窗口内增加直到找到匹配(或不匹配)。
该工具支持时变一次性密码,即所谓的 TOTP 模式。 用法是
类似,但需要提供 --totp :
$ 誓言工具 --totp 00
943388
$
如果您没有得到相同的输出,请不要惊慌,这是因为输出取决于
当前时间。 要为特定的固定时间生成 TOTP,请使用 -N (--now)
参数:
$ oathtool --totp --now "2008-04-23 17:42:17 UTC" 00
974945
$
该格式是一种大多数自由格式的人类可读日期字符串,例如“Sun, 29 Feb 2004
16:21:42 -0800" 或 "2004-02-29 16:21:42" 甚至"下周四"。用法相同
的 --date 参数 日期(1) 工具。
TOTP 使用的默认 MAC 算法是 HMAC-SHA1,这是通常使用的算法。
该工具还支持另外两个 MAC,即 HMAC-SHA256 和 HMAC-SHA512。 使用
其中任何一个,都用一个值限定 --totp 参数。 对 HMAC-SHA256 使用“sha256”
和 HMAC-SHA512 的“sha512”。 下面演示了生成 RFC 6238 之一
测试向量。
$ oathtool --totp=sha256 --digits=8 --now "2009-02-13 23:31:30 UTC"
3132333435363738393031323334353637383930313233343536373839303132
91819424
$
您可以通过指定 --window 参数来生成多个 TOTP,类似于它的方式
适用于 HOTP。 此处生成的 OTP 将用于初始时间(通常为当前
时间),然后是每个后续时间步长(例如,30 秒窗口)。
$ oathtool --totp 00 -w5
815120
003818
814756
184042
582326
733842
$
您可以通过提供密钥和窗口参数来验证 TOTP 一次性密码
(当前时间之前或之后的时间步数):
$ oathtool --totp -w 5 00`oathtool --totp 00`
0
$
与生成 TOTP 时类似,您可以使用 -N (--now) 参数来指定时间
使用而不是当前时间:
$ oathtool --totp --now="2005-03-18 01:58:29 UTC" -w 10000000
3132333435363738393031323334353637383930 89005924
4115227
$
之前的测试使用来自 TOTP 规范的值,并将对该工具进行压力测试
因为预期的窗口大约是 4 万个时间步长。
TOTP 有两个系统参数:时间步长和时间开始。
默认情况下,时间步长为 30 秒,这意味着您每 30 秒获得一个新的 OTP
秒。 您可以使用 -s (--time-step-size) 参数修改它:
$ oathtool --totp --时间步长=45s 00
109841
$
这些值是有效的 ISO-8601 持续时间,请参阅:
http://en.wikipedia.org/wiki/ISO_8601#持续时间
时间开始通常是 1970-01-01 00:00:00 UTC 但您可以使用 -S 更改它
( - 开始时间):
$ oathtool --totp --start-time "1980-01-01 00:00:00 UTC" 00
273884
$
要获取有关该工具使用内容的更多信息,请使用 -v (--verbose) 参数。
最后,生成测试向量表中的最后一个TOTP(用于SHA-1)
Draft-mraihi-totp-timebased-07 您可以像这样调用该工具:
$ oathtool --totp -v -N "2033-05-18 03:33:20 UTC" -d8
3132333435363738393031323334353637383930
十六进制密码:3132333435363738393031323334353637383930
Base32 秘密:GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ
数字:8
窗口大小:0
步长(秒):30
开始时间:1970-01-01 00:00:00 UTC (0)
现在时间:2033-05-18 03:33:20 UTC (2000000000)
计数器:0x3F940AA (66666666)
69279037
$
使用 onworks.net 服务在线使用 oathtool