Python-Vipaccess
Inhaltsverzeichnis
Bereitstellung einer neuen VIP-Zugangsberechtigung
Zeigen Sie einen QR-Code an, um Ihre Zugangsdaten bei mobilen TOTP-Apps zu registrieren
Generieren von Zugangscodes mithilfe eines vorhandenen Berechtigungsnachweises
Einführung
Abhängigkeiten
Installation
Verwendung
Dies ist ein Fork von cyrozap/python-vipaccess
. Hauptunterschiede:
Keine Abhängigkeit von qrcode
oder image
; Sie können bei Bedarf problemlos externe Tools wie qrencode
verwenden, um einen otpauth://
-URI in einen QR-Code umzuwandeln, sodass es unnötig erscheint, diese Funktionalität einzubauen.
Option zum Generieren entweder der mobilen ( SYMC
/ VSMT
) oder der Desktop-Version ( SYDC
/ VSST
) der VIP-Zugriffstoken; Soweit ich das beurteilen kann, gibt es keinen wirklichen Unterschied zwischen ihnen, aber einige Kunden benötigen speziell das eine oder das andere. Es gibt auch einige seltenere Token-Typen/Präfixe, die bei Bedarf generiert werden können (Referenzliste von Symantec).
Das Befehlszeilen-Dienstprogramm wurde erweitert, um sowohl die Token-Bereitstellung (Erstellen eines neuen Tokens) als auch die Ausgabe von Codes für ein vorhandenes Token zu unterstützen (inspiriert von der Befehlszeilenschnittstelle von stoken
, die dieselben Funktionen für RSA SecurID-Tokens übernimmt).
python-vipaccess ist eine kostenlose und Open-Source-Software (FOSS)-Implementierung des VIP Access-Clients von Symantec (jetzt im Besitz von Broadcom).
Wenn Sie auf ein Netzwerk zugreifen müssen, das VIP Access für die Zwei-Faktor-Authentifizierung verwendet, aber die proprietären Anwendungen von Symantec – die nur für Windows, MacOS, Android und iOS verfügbar sind – nicht nutzen können oder wollen, dann ist dies das Richtige für Sie .
Wie @cyrozap beim Reverse Engineering des VIP Access-Protokolls herausfand (ursprünglicher Blogbeitrag), verwendet Symantec VIP Access tatsächlich einen völlig offenen Standard namens Time-based One-time Password Algorithm zur Generierung der 6-stelligen Codes, die es ausgibt. Der einzige nicht standardmäßige Teil ist das Bereitstellungsprotokoll , das zum Erstellen eines neuen Tokens verwendet wird.
Python 3.3+ (empfohlen) oder 2.7 (nicht empfohlen)
oath
pycryptodome
requests
Zu Entwicklungszwecken können Sie die Abhängigkeiten mit pip install -r requirements.txt
im Projektstammverzeichnis installieren.
Informationen zur Installation pip
finden Sie in der pip
-Installationsdokumentation.
Installieren Sie mit pip3
um Python-Abhängigkeiten automatisch abzurufen. (Beachten Sie, dass pip3
auf den meisten Systemen die Python 3.x-Version aufruft, während pip
die Python 2.7-Version aufruft; Python 2.7 wird weiterhin unterstützt, aber nicht empfohlen, da es bald veraltet ist.)
# 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
Dies wird verwendet, um ein neues VIP-Zugriffstoken zu erstellen. Es stellt eine Verbindung zu https://services.vip.symantec.com/prov her und fordert ein neues Token an, entschlüsselt es dann und prüft über eine zweite Anfrage an https://vip.symantec, ob es ordnungsgemäß dekodiert ist und ordnungsgemäß funktioniert. com/otpCheck.
Standardmäßig speichert es das neue Token in der Datei .vipaccess
in Ihrem Home-Verzeichnis (in einem ähnlichen Format wie stoken
), es kann jedoch stattdessen auch in einer anderen Datei gespeichert werden oder stattdessen einfach die Zeichenfolge „Token Secret“ mit Anweisungen dazu ausdrucken Benutze es.
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
Hier ist ein Beispiel für die Ausgabe von 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
Hier ist das Format der .vipaccess
Tokendatei, die von vipaccess provision [-o ~/.vipaccess]
ausgegeben wird. (Diese Datei wird nur mit Lese-/Schreibberechtigungen für den aktuellen Benutzer erstellt.)
version 1 secret AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA id SYMC12345678 expiry 2019-01-15T12:00:00.000Z
Sobald Sie mit vipaccess provision
ein Token generiert haben, verwenden Sie vipaccess uri
um den otpauth://
-URI anzuzeigen, und qrencode
um diesen URI als QR-Code anzuzeigen:
$ qrencode -t UTF8 'otpauth://totp/VIP%20Access:SYMCXXXX?secret=YYYY&issuer=Symantec&algorithm=SHA1&digits=6'
Scannen Sie den Code in Ihre TOTP-generierende App, wie FreeOTP oder Google Authenticator.
Die vipaccess [show]
erledigt dies ebenfalls für Sie: Standardmäßig generiert sie Codes basierend auf den Anmeldeinformationen in ~/.vipaccess
, Sie können jedoch eine alternative Anmeldeinformationsdatei angeben oder das „Token-Geheimnis“ von OATH in der Befehlszeile angeben.
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
Wie oben erwähnt, können Sie andere Standard-OATH-basierte Tools verwenden, um die 6-stelligen Codes zu generieren, die mit denen identisch sind, die die offiziellen Apps von Symantec erzeugen.