python-vipaccess
Table des matières
Mise à disposition d'un nouvel identifiant d'accès VIP
Affichez un code QR pour enregistrer votre identifiant avec les applications mobiles TOTP
Générer des codes d'accès à l'aide d'un identifiant existant
Introduction
Dépendances
Installation
Usage
Il s'agit d'un fork de cyrozap/python-vipaccess
. Principales différences :
Aucune dépendance aux qrcode
ou aux bibliothèques image
; vous pouvez facilement utiliser des outils externes tels que qrencode
pour convertir un otpauth://
en code QR si nécessaire, il semble donc inutile d'intégrer cette fonctionnalité.
Possibilité de générer les versions mobile ( SYMC
/ VSMT
) ou de bureau ( SYDC
/ VSST
) des jetons d'accès VIP ; Pour autant que je sache, il n'y a pas de réelle différence entre eux, mais certains clients exigent spécifiquement l'un ou l'autre. Il existe également des types/préfixes de jetons plus rares qui peuvent être générés si nécessaire (liste de référence de Symantec)
L'utilitaire de ligne de commande est étendu pour prendre en charge à la fois le provisionnement de jetons (création d'un nouveau jeton) et l'émission de codes pour un jeton existant (inspiré de l'interface de ligne de commande de stoken
, qui gère les mêmes fonctions pour les jetons RSA SecurID
python-vipaccess est une implémentation gratuite et open source (FOSS) du client VIP Access de Symantec (maintenant propriété de Broadcom).
Si vous avez besoin d'accéder à un réseau qui utilise VIP Access pour l'authentification à deux facteurs, mais que vous ne pouvez ou ne voulez pas utiliser les applications propriétaires de Symantec, qui ne sont disponibles que pour Windows, MacOS, Android, iOS, alors ceci est pour vous. .
Comme @cyrozap l'a découvert lors de l'ingénierie inverse du protocole VIP Access (article de blog original), Symantec VIP Access utilise en fait une norme complètement ouverte appelée Time-based One-time Password Algorithm pour générer les codes à 6 chiffres qu'il génère. La seule partie non standard est le protocole de provisionnement utilisé pour créer un nouveau jeton.
Python 3.3+ (recommandé) ou 2.7 (non recommandé)
oath
pycryptodome
requests
À des fins de développement, vous pouvez installer les dépendances avec pip install -r requirements.txt
dans le répertoire racine du projet.
Pour installer pip
consultez la documentation d'installation pip
.
Installez avec pip3
pour récupérer automatiquement les dépendances Python. (Notez que sur la plupart des systèmes, pip3
invoque la version Python 3.x, tandis que pip
invoque la version Python 2.7 ; Python 2.7 est toujours pris en charge, mais n'est pas recommandé car il est presque obsolète.)
# 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
Ceci est utilisé pour créer un nouveau jeton d'accès VIP. Il se connecte à https://services.vip.symantec.com/prov et demande un nouveau jeton, puis le désobscurcit et vérifie s'il est correctement décodé et fonctionne correctement, via une deuxième requête à https://vip.symantec. com/otpCheck.
Par défaut, il stocke le nouveau jeton dans le fichier .vipaccess
de votre répertoire personnel (dans un format similaire à stoken
), mais il peut le stocker dans un autre fichier à la place, ou simplement imprimer la chaîne "jeton secret" avec des instructions sur la façon de le faire. utilisez-le.
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
Voici un exemple du résultat de 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
Voici le format du fichier de jeton .vipaccess
généré par vipaccess provision [-o ~/.vipaccess]
. (Ce fichier est créé avec des autorisations de lecture/écriture uniquement pour l'utilisateur actuel.)
version 1 secret AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA id SYMC12345678 expiry 2019-01-15T12:00:00.000Z
Une fois que vous avez généré un jeton avec vipaccess provision
, utilisez vipaccess uri
pour afficher l' otpauth://
et qrencode
pour afficher cet URI sous forme de code QR :
$ qrencode -t UTF8 'otpauth://totp/VIP%20Access:SYMCXXXX?secret=YYYY&issuer=Symantec&algorithm=SHA1&digits=6'
Scannez le code dans votre application génératrice de TOTP, comme FreeOTP ou Google Authenticator.
L'option vipaccess [show]
le fera également pour vous : par défaut, elle génère des codes basés sur les informations d'identification dans ~/.vipaccess
, mais vous pouvez spécifier un autre fichier d'informations d'identification ou spécifier le "jeton secret" OATH sur la ligne de commande.
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
Comme mentionné ci-dessus, vous pouvez utiliser d'autres outils standard basés sur OATH pour générer les codes à 6 chiffres identiques à ceux produits par les applications officielles de Symantec.