python-vipaccess
Daftar isi
Penyediaan kredensial Akses VIP baru
Tampilkan kode QR untuk mendaftarkan kredensial Anda dengan aplikasi TOTP seluler
Menghasilkan kode akses menggunakan kredensial yang ada
Pendahuluan
Ketergantungan
Instalasi
Penggunaan
Ini adalah cabang dari cyrozap/python-vipaccess
. Perbedaan utama:
Tidak ada ketergantungan pada qrcode
atau perpustakaan image
; Anda dapat dengan mudah menggunakan alat eksternal seperti qrencode
untuk mengonversi URI otpauth://
menjadi kode QR jika diperlukan, jadi sepertinya tidak perlu membangun fungsi ini.
Opsi untuk menghasilkan token Akses VIP versi seluler ( SYMC
/ VSMT
) atau desktop ( SYDC
/ VSST
); sejauh yang saya tahu tidak ada perbedaan nyata di antara keduanya, tetapi beberapa klien memerlukan satu atau yang lain secara khusus. Ada juga beberapa jenis token/awalan yang lebih langka yang dapat dibuat jika diperlukan (daftar referensi dari Symantec)
Utilitas baris perintah diperluas untuk mendukung penyediaan token (membuat token baru) dan mengeluarkan kode untuk token yang sudah ada (terinspirasi oleh antarmuka baris perintah stoken
, yang menangani fungsi yang sama untuk token RSA SecurID
python-vipaccess adalah implementasi perangkat lunak sumber terbuka dan gratis (FOSS) dari klien Akses VIP Symantec (sekarang dimiliki oleh Broadcom).
Jika Anda perlu mengakses jaringan yang menggunakan Akses VIP untuk autentikasi dua faktor, namun tidak dapat atau tidak ingin menggunakan aplikasi milik Symantec—yang hanya tersedia untuk Windows, MacOS, Android, iOS—maka ini cocok untuk Anda .
Seperti yang ditemukan @cyrozap dalam rekayasa balik protokol Akses VIP (postingan blog asli), Symantec VIP Access sebenarnya menggunakan standar terbuka yang disebut Algoritma Kata Sandi Satu Kali Berbasis Waktu untuk menghasilkan kode 6 digit yang dihasilkannya. Satu-satunya bagian non-standar adalah protokol penyediaan yang digunakan untuk membuat token baru.
Python 3.3+ (disarankan) atau 2.7 (tidak disarankan)
oath
pycryptodome
requests
Untuk tujuan pengembangan, Anda dapat menginstal dependensi dengan pip install -r requirements.txt
di direktori root proyek.
Untuk menginstal pip
lihat dokumentasi instalasi pip
.
Instal dengan pip3
untuk mengambil dependensi Python secara otomatis. (Perhatikan bahwa pada sebagian besar sistem, pip3
memanggil versi Python 3.x, sementara pip
memanggil versi Python 2.7; Python 2.7 masih didukung, namun tidak disarankan karena sudah hampir usang.)
# 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
Ini digunakan untuk membuat token Akses VIP baru. Itu terhubung ke https://services.vip.symantec.com/prov dan meminta token baru, lalu membatalkan penyamarannya, dan memeriksa apakah token tersebut didekodekan dengan benar dan berfungsi dengan benar, melalui permintaan kedua ke https://vip.symantec. com/otpCheck.
Secara default, ini menyimpan token baru dalam file .vipaccess
di direktori home Anda (dalam format yang mirip dengan stoken
), tetapi dapat disimpan ke file lain, atau cukup mencetak string "token secret" dengan instruksi tentang cara menggunakannya.
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
Berikut adalah contoh output dari 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
Berikut adalah format keluaran file token .vipaccess
dari vipaccess provision [-o ~/.vipaccess]
. (File ini dibuat dengan izin baca/tulis hanya untuk pengguna saat ini.)
version 1 secret AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA id SYMC12345678 expiry 2019-01-15T12:00:00.000Z
Setelah Anda membuat token dengan vipaccess provision
, gunakan vipaccess uri
untuk menampilkan URI otpauth://
dan qrencode
untuk menampilkan URI tersebut sebagai kode QR:
$ qrencode -t UTF8 'otpauth://totp/VIP%20Access:SYMCXXXX?secret=YYYY&issuer=Symantec&algorithm=SHA1&digits=6'
Pindai kode ke dalam aplikasi penghasil TOTP Anda, seperti FreeOTP atau Google Authenticator.
Opsi vipaccess [show]
juga akan melakukan ini untuk Anda: secara default, opsi ini menghasilkan kode berdasarkan kredensial di ~/.vipaccess
, tetapi Anda dapat menentukan file kredensial alternatif atau menentukan "rahasia token" OATH pada baris perintah.
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
Seperti disinggung di atas, Anda dapat menggunakan alat berbasis OATH standar lainnya untuk menghasilkan kode 6 digit yang identik dengan yang dihasilkan oleh aplikasi resmi Symantec.