Python-vipaccess
目次
新しい VIP Access 資格情報のプロビジョニング
QR コードを表示してモバイル TOTP アプリに資格情報を登録します
既存の認証情報を使用したアクセス コードの生成
イントロ
依存関係
インストール
使用法
これはcyrozap/python-vipaccess
のフォークです。主な違い:
qrcode
やimage
ライブラリには依存しません。必要に応じて、 qrencode
などの外部ツールを使用して、 otpauth://
URI を QR コードに簡単に変換できるため、この機能を組み込む必要はないようです。
モバイル ( SYMC
/ VSMT
) またはデスクトップ ( SYDC
/ VSST
) バージョンの VIP Access トークンを生成するオプション。私の知る限り、それらの間に実際の違いはありませんが、一部のクライアントはどちらか一方を特に必要とします。必要に応じて生成できる、まれなトークン タイプ/プレフィックスもいくつかあります (Symantec の参照リスト)。
コマンドライン ユーティリティは、トークン プロビジョニング (新しいトークンの作成) と既存のトークンのコードの発行 (RSA SecurID トークンと同じ機能を処理するstoken
のコマンドライン インターフェイスからインスピレーションを得た) の両方をサポートするように拡張されました。
python-vipaccess は、Symantec の VIP Access クライアント (現在は Broadcom が所有) の無料のオープン ソース ソフトウェア (FOSS) 実装です。
2 要素認証に 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 への 2 回目のリクエストを通じてトークンが適切にデコードされ、正しく動作しているかどうかを確認します。 com/otpCheck。
デフォルトでは、新しいトークンはホーム ディレクトリの.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'
FreeOTP や Google Authenticator などの TOTP 生成アプリにコードをスキャンします。
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 桁のコードを生成できます。