python-vipaccess
Tabla de contenido
Aprovisionamiento de una nueva credencial de acceso VIP
Muestre un código QR para registrar su credencial con aplicaciones TOTP móviles
Generar códigos de acceso utilizando una credencial existente
Introducción
Dependencias
Instalación
Uso
Esta es una bifurcación de cyrozap/python-vipaccess
. Principales diferencias:
No depende de qrcode
o bibliotecas image
; Puede utilizar fácilmente herramientas externas como qrencode
para convertir un otpauth://
en un código QR si es necesario, por lo que parece innecesario incorporar esta funcionalidad.
Opción para generar las versiones móvil ( SYMC
/ VSMT
) o de escritorio ( SYDC
/ VSST
) de los tokens de acceso VIP; Hasta donde yo sé, no existe una diferencia real entre ellos, pero algunos clientes requieren uno u otro específicamente. También hay algunos tipos/prefijos de tokens más raros que se pueden generar si es necesario (lista de referencia de Symantec)
La utilidad de línea de comandos se amplía para admitir tanto el aprovisionamiento de tokens (creación de un token nuevo) como la emisión de códigos para un token existente (inspirado en la interfaz de línea de comandos de stoken
, que maneja las mismas funciones para los tokens RSA SecurID).
python-vipaccess es una implementación de software (FOSS) gratuita y de código abierto del cliente VIP Access de Symantec (ahora propiedad de Broadcom).
Si necesita acceder a una red que utiliza VIP Access para la autenticación de dos factores, pero no puede o no quiere utilizar las aplicaciones patentadas de Symantec, que solo están disponibles para Windows, MacOS, Android e iOS, entonces esto es para usted. .
Como descubrió @cyrozap al aplicar ingeniería inversa al protocolo VIP Access (publicación original del blog), Symantec VIP Access en realidad utiliza un estándar completamente abierto llamado Algoritmo de contraseña de un solo uso basado en el tiempo para generar los códigos de 6 dígitos que genera. La única parte no estándar es el protocolo de aprovisionamiento utilizado para crear un nuevo token.
Python 3.3+ (recomendado) o 2.7 (no recomendado)
oath
pycryptodome
requests
Para fines de desarrollo, puede instalar las dependencias con pip install -r requirements.txt
en el directorio raíz del proyecto.
Para instalar pip
consulte la documentación de instalación pip
.
Instale con pip3
para recuperar automáticamente las dependencias de Python. (Tenga en cuenta que en la mayoría de los sistemas, pip3
invoca la versión Python 3.x, mientras que pip
invoca la versión Python 2.7; Python 2.7 todavía es compatible, pero no se recomienda porque está casi obsoleto).
# 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
Esto se utiliza para crear un nuevo token de acceso VIP. Se conecta a https://services.vip.symantec.com/prov y solicita un nuevo token, luego lo desofusca y verifica si está correctamente decodificado y funcionando correctamente, mediante una segunda solicitud a https://vip.symantec. com/otpCheck.
De forma predeterminada, almacena el nuevo token en el archivo .vipaccess
en su directorio de inicio (en un formato similar a stoken
), pero puede almacenarlo en otro archivo o simplemente imprimir la cadena "token secret" con instrucciones sobre cómo úsalo.
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
A continuación se muestra un ejemplo del resultado 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
Este es el formato de la salida del archivo token .vipaccess
de vipaccess provision [-o ~/.vipaccess]
. (Este archivo se crea con permisos de lectura/escritura solo para el usuario actual).
version 1 secret AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA id SYMC12345678 expiry 2019-01-15T12:00:00.000Z
Una vez que genere un token con vipaccess provision
, use vipaccess uri
para mostrar el otpauth://
y qrencode
para mostrar ese URI como un código QR:
$ qrencode -t UTF8 'otpauth://totp/VIP%20Access:SYMCXXXX?secret=YYYY&issuer=Symantec&algorithm=SHA1&digits=6'
Escanee el código en su aplicación generadora de TOTP, como FreeOTP o Google Authenticator.
La opción vipaccess [show]
también hará esto por usted: de forma predeterminada genera códigos basados en la credencial en ~/.vipaccess
, pero puede especificar un archivo de credencial alternativo o especificar el "token secreto" de OATH en la línea de comando.
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
Como se mencionó anteriormente, puede utilizar otras herramientas estándar basadas en OATH para generar códigos de 6 dígitos idénticos a los que producen las aplicaciones oficiales de Symantec.