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 的第二個請求檢查它是否已正確解碼並正常工作。
預設情況下,它將新令牌儲存在主目錄中的文件.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 位元程式碼。