python-vipaccess
目录
配置新的 VIP 访问凭证
显示二维码以使用移动 TOTP 应用程序注册您的凭证
使用现有凭证生成访问代码
简介
依赖关系
安装
用法
这是cyrozap/python-vipaccess
的一个分支。主要区别:
不依qrcode
或image
库;如果需要,您可以轻松地使用qrencode
等外部工具将otpauth://
URI 转换为 QR 码,因此似乎没有必要构建此功能。
可选择生成移动( SYMC
/ VSMT
)或桌面( SYDC
/ VSST
)版本的 VIP 访问令牌;据我所知,它们之间没有真正的区别,但有些客户特别需要其中之一。如有必要,还可以生成一些较罕见的令牌类型/前缀(赛门铁克的参考列表)
命令行实用程序已扩展为支持令牌配置(创建新令牌)和为现有令牌发出代码(受到stoken
命令行界面的启发,它处理 RSA SecurID 令牌的相同功能
python-vipaccess 是 Symantec VIP Access 客户端(现属于 Broadcom)的免费开源软件 (FOSS) 实现。
如果您需要访问使用 VIP Access 进行双因素身份验证的网络,但不能或不想使用赛门铁克的专有应用程序(仅适用于 Windows、MacOS、Android、iOS),那么这适合您。
正如 @cyrozap 在对 VIP Access 协议(原始博客文章)进行逆向工程时发现的那样,Symantec VIP Access 实际上使用一种完全开放的标准(称为基于时间的一次性密码算法)来生成其输出的 6 位代码。唯一的非标准部分是用于创建新令牌的配置协议。
Python 3.3+(推荐)或2.7(不推荐)
oath
pycryptodome
requests
出于开发目的,您可以在项目根目录中使用pip install -r requirements.txt
安装依赖项。
要安装pip
请参阅pip
安装文档。
使用pip3
安装以自动获取 Python 依赖项。 (请注意,在大多数系统上, pip3
调用 Python 3.x 版本,而pip
调用 Python 2.7 版本;仍支持 Python 2.7,但不推荐使用,因为它已接近过时。)
# Install latest release from PyPI $ pip3 install python-vipaccess # Install latest development version from GitHub $ pip3 install https://github.com/dlenski/python-vipaccess/archive/HEAD.zip
这用于创建新的 VIP 访问令牌。它连接到 https://services.vip.symantec.com/prov 并请求一个新令牌,然后对其进行反混淆,并通过对 https://vip.symantec 的第二个请求检查它是否已正确解码并正常工作。 com/otpCheck.com/otpCheck.com/otpCheck.com/otpCheck.com/otpCheck.com
默认情况下,它将新令牌存储在主目录中的文件.vipaccess
中(格式类似于stoken
),但它可以存储到另一个文件,或者只是打印出“令牌秘密”字符串,其中包含有关如何进行操作的说明使用它。
usage: vipaccess provision [-h] [-p | -o DOTFILE] [-t TOKEN_MODEL] optional arguments: -h, --help show this help message and exit -p, --print Print the new credential, but don't save it to a file -o DOTFILE, --dotfile DOTFILE File in which to store the new credential (default ~/.vipaccess) -i ISSUER, --issuer ISSUER Specify the issuer name to use (default: Symantec) -t TOKEN_MODEL, --token-model TOKEN_MODEL VIP Access token model. Often SYMC/VSMT ("mobile" token, default) or SYDC/VSST ("desktop" token). Some clients only accept one or the other. Other more obscure token types also exist: https://support.symantec.com/en_US/article.TECH239895.html
以下是vipaccess provision -p
的输出示例:
Generating request... Fetching provisioning response from Symantec server... Getting token from response... Decrypting token... Checking token against Symantec server... Credential created successfully: otpauth://totp/VIP%20Access:SYMC12345678?secret=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&issuer=Symantec&algorithm=SHA1&digits=6 This credential expires on this date: 2019-01-15T12:00:00.000Z You will need the ID to register this credential: SYMC12345678 You can use oathtool to generate the same OTP codes as would be produced by the official VIP Access apps: oathtool -b --totp AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # output one code oathtool -v -b --totp AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # ... with extra information
以下是vipaccess provision [-o ~/.vipaccess]
输出的.vipaccess
令牌文件的格式。 (创建此文件时仅对当前用户具有读/写权限。)
version 1 secret AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA id SYMC12345678 expiry 2019-01-15T12:00:00.000Z
使用vipaccess provision
生成令牌后,使用vipaccess uri
显示otpauth://
URI,使用qrencode
将该 URI 显示为 QR 代码:
$ qrencode -t UTF8 'otpauth://totp/VIP%20Access:SYMCXXXX?secret=YYYY&issuer=Symantec&algorithm=SHA1&digits=6'
将代码扫描到 TOTP 生成应用程序中,例如 FreeOTP 或 Google Authenticator。
vipaccess [show]
选项也会为您执行此操作:默认情况下,它会根据~/.vipaccess
中的凭证生成代码,但您可以指定备用凭证文件或在命令行上指定 OATH“令牌秘密”。
usage: vipaccess show [-h] [-s SECRET | -f DOTFILE] optional arguments: -h, --help show this help message and exit -s SECRET, --secret SECRET Specify the token secret on the command line (base32 encoded) -f DOTFILE, --dotfile DOTFILE File in which the credential is stored (default ~/.vipaccess
如上所述,您可以使用其他基于 OATH 的标准工具来生成与赛门铁克官方应用程序生成的相同的 6 位代码。