파이썬-vipaccess
목차
새로운 VIP Access 자격 증명 프로비저닝
모바일 TOTP 앱에 자격 증명을 등록하려면 QR 코드를 표시하세요.
기존 자격 증명을 사용하여 액세스 코드 생성
소개
종속성
설치
용법
이것은 cyrozap/python-vipaccess
의 포크입니다. 주요 차이점:
qrcode
나 image
라이브러리에 의존하지 않습니다. 필요한 경우 qrencode
와 같은 외부 도구를 사용하여 otpauth://
URI를 QR 코드로 쉽게 변환할 수 있으므로 이 기능을 구축할 필요가 없어 보입니다.
VIP Access 토큰의 모바일( SYMC
/ VSMT
) 또는 데스크톱( SYDC
/ VSST
) 버전을 생성하는 옵션입니다. 내가 알 수 있는 한 그들 사이에는 실질적인 차이가 없지만 일부 고객은 구체적으로 둘 중 하나를 요구합니다. 필요한 경우 생성할 수 있는 몇 가지 희귀한 토큰 유형/접두사도 있습니다(Symantec의 참조 목록).
토큰 프로비저닝(새 토큰 생성)과 기존 토큰에 대한 코드 생성(RSA SecurID 토큰에 대해 동일한 기능을 처리하는 stoken
의 명령줄 인터페이스에서 영감을 받음)을 모두 지원하도록 명령줄 유틸리티가 확장되었습니다.
python-vipaccess는 Symantec VIP Access 클라이언트(현재 Broadcom 소유)의 무료 오픈 소스 소프트웨어(FOSS) 구현입니다.
2단계 인증을 위해 VIP Access를 사용하는 네트워크에 액세스해야 하지만 Windows, MacOS, Android, iOS에서만 사용할 수 있는 Symantec 독점 애플리케이션을 사용할 수 없거나 사용하고 싶지 않은 경우 이 솔루션을 사용하세요. .
@cyrozap이 VIP Access 프로토콜의 리버스 엔지니어링(원본 블로그 게시물)에서 발견한 것처럼 Symantec VIP Access는 실제로 출력되는 6자리 코드를 생성하기 위해 시간 기반 일회성 암호 알고리즘이라는 완전히 개방된 표준을 사용합니다. 유일한 비표준 부분은 새 토큰을 생성하는 데 사용되는 프로비저닝 프로토콜입니다.
Python 3.3+(권장) 또는 2.7(권장하지 않음)
oath
pycryptodome
requests
개발 목적으로 프로젝트 루트 디렉터리에 pip install -r requirements.txt
사용하여 종속성을 설치할 수 있습니다.
pip
설치하려면 pip
설치 설명서를 참조하세요.
Python 종속성을 자동으로 가져오려면 pip3
사용하여 설치하세요. (대부분의 시스템에서 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에 대한 두 번째 요청을 통해 토큰이 올바르게 디코딩되고 올바르게 작동하는지 확인합니다. com/otp체크하세요.
기본적으로 홈 디렉터리의 .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자리 코드를 생성할 수 있습니다.