python-vipaccess
Оглавление
Предоставление новых учетных данных VIP-доступа
Отобразите QR-код, чтобы зарегистрировать свои учетные данные в мобильных приложениях TOTP.
Генерация кодов доступа с использованием существующих учетных данных
Введение
Зависимости
Установка
Использование
Это форк cyrozap/python-vipaccess
. Основные отличия:
Нет зависимости от qrcode
или библиотек image
; вы можете легко использовать внешние инструменты, такие как qrencode
для преобразования otpauth://
в QR-код, если это необходимо, поэтому кажется ненужным встраивать эту функцию.
Возможность создания мобильной ( SYMC
/ VSMT
) или настольной ( SYDC
/ VSST
) версий токенов VIP-доступа; насколько я могу судить, между ними нет реальной разницы, но некоторым клиентам требуется именно то или иное. Существуют также более редкие типы/префиксы токенов, которые при необходимости можно создать (список ссылок от Symantec).
Утилита командной строки расширена и теперь поддерживает как предоставление токенов (создание нового токена), так и выдачу кодов для существующего токена (на основе интерфейса командной строки stoken
, который выполняет те же функции для токенов RSA SecurID).
python-vipaccess — это бесплатная реализация программного обеспечения с открытым исходным кодом (FOSS) клиента VIP Access от Symantec (сейчас принадлежит Broadcom).
Если вам нужен доступ к сети, которая использует VIP-доступ для двухфакторной аутентификации, но вы не можете или не хотите использовать проприетарные приложения Symantec, которые доступны только для Windows, MacOS, Android, iOS, тогда это для вас. .
Как обнаружил @cyrozap при обратном проектировании протокола VIP Access (исходное сообщение в блоге), Symantec VIP Access на самом деле использует полностью открытый стандарт, называемый алгоритмом одноразового пароля на основе времени, для генерации выдаваемых 6-значных кодов. Единственная нестандартная часть — это протокол обеспечения , используемый для создания нового токена.
Python 3.3+ (рекомендуется) или 2.7 (не рекомендуется)
oath
pycryptodome
requests
В целях разработки вы можете установить зависимости с помощью pip install -r requirements.txt
в корневом каталоге проекта.
Чтобы установить pip
обратитесь к документации по установке pip
.
Установите с помощью pip3
чтобы автоматически получать зависимости Python. (Обратите внимание, что в большинстве систем 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/otpCheck.
По умолчанию он сохраняет новый токен в файле .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
, выводимый из vipaccess provision [-o ~/.vipaccess]
. (Этот файл создается с разрешениями на чтение/запись только для текущего пользователя.)
version 1 secret AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA id SYMC12345678 expiry 2019-01-15T12:00:00.000Z
После создания токена с vipaccess provision
используйте vipaccess uri
, чтобы отобразить URI otpauth://
, и qrencode
, чтобы отобразить этот URI в виде QR-кода:
$ qrencode -t UTF8 'otpauth://totp/VIP%20Access:SYMCXXXX?secret=YYYY&issuer=Symantec&algorithm=SHA1&digits=6'
Сканируйте код в приложение, генерирующее TOTP, например FreeOTP или Google Authenticator.
Опция 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-значных кодов, идентичных тем, которые создают официальные приложения Symantec.