{ "info": { "author": "Forest Crossman", "author_email": "cyrozap@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Utilities" ], "description": "python-vipaccess\n================\n\n[![Build Status](https://api.travis-ci.org/dlenski/python-vipaccess.png)](https://travis-ci.org/dlenski/python-vipaccess)\n\nTable of Contents\n=================\n\n* [python-vipaccess](#python-vipaccess)\n* [Table of Contents](#table-of-contents)\n * [Intro](#intro)\n * [Dependencies](#dependencies)\n * [Manual](#manual)\n * [Usage](#usage)\n * [Provisioning a new VIP Access credential](#provisioning-a-new-vip-access-credential)\n * [Display a QR code to register your credential with mobile TOTP apps](#display-a-qr-code-to-register-your-credential-with-mobile-totp-apps)\n * [Generating access codes using an existing credential](#generating-access-codes-using-an-existing-credential)\n\nThis is a fork of [**`cyrozap/python-vipaccess`**](https://github.com/dlenski/python-vipaccess). Main differences:\n\n- No dependency on `qrcode` or `image` libraries; you can easily use\n external tools such as [`qrencode`](https://github.com/fukuchi/libqrencode)\n to convert an `otpauth://` URL to a QR code if needed, so it seems\n unnecessary to build in this functionality.\n- Option to generate either the desktop (`VSST`) or mobile (`VSMT`)\n version on the VIP Access tokens; as far as I can tell there is no\n real difference between them, but some clients require one or the\n other specifically. There are also some rarer token types/prefixes\n which can be generated if necessary\n ([reference list from Symantec](https://support.symantec.com/en_US/article.TECH239895.html))\n- Command-line utility is expanded to support *both* token\n provisioning (creating a new token) and emitting codes for an\n existing token (inspired by the command-line interface of\n [`stoken`](https://github.com/cernekee/stoken), which handles the same functions for [RSA SecurID](https://en.wikipedia.org/wiki/RSA_SecurID) tokens\n\nIntro\n-----\n\npython-vipaccess is a free and open source software (FOSS)\nimplementation of Symantec's VIP Access client.\n\nIf you need to access a network which uses VIP Access for [two-factor\nauthentication](https://en.wikipedia.org/wiki/Two-factor_authentication),\nbut can't or don't want to use Symantec's proprietary\napplications\u2014which are only available for Windows, MacOS, Android,\niOS\u2014then this is for you.\n\nAs [@cyrozap](https://github.com/cyrozap) discovered in reverse-engineering the VIP Access protocol\n([original blog\npost](https://www.cyrozap.com/2014/09/29/reversing-the-symantec-vip-access-provisioning-protocol)),\nSymantec VIP Access actually uses a **completely open standard**\ncalled [Time-based One-time Password\nAlgorithm](https://en.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm)\nfor generating the 6-digit codes that it outputs. The only\nnon-standard part is the **provisioning** protocol used to create a\nnew token.\n\nDependencies\n------------\n\n- Python 2.7 or 3.3+\n- [`lxml`](https://pypi.python.org/pypi/lxml/4.2.5)\n- [`oath`](https://pypi.python.org/pypi/oath/1.4.1)\n- [`pycryptodome`](https://pypi.python.org/pypi/pycryptodome/3.6.6)\n- [`requests`](https://pypi.python.org/pypi/requests)\n\nIf you have `pip` installed on your system, you can easily install the dependencies by running\n`pip install -r requirements.txt` in the project root directory.\n\nTo install `pip` see the [`pip` installation documentation](https://pip.pypa.io/en/stable/installing/).\n\nManual\n------\n\nIf you have Docker installed, you can simply use the\n[Docker image](https://hub.docker.com/r/kayvan/vipaccess/) to run\nthe `vipaccess` tool:\n\n```\ndocker run --rm kayvan/vipaccess provision -p -t VSST\nCredential created successfully:\n\totpauth://totp/VIP%20Access:VSST1113377?secret=YOURSECRET&issuer=Symantec\nThis credential expires on this date: 2020-06-05T15:26:26.585Z\n\nYou will need the ID to register this credential: VSST1113377\n```\n\nAnd with your generated secret, use the `show` command like this:\n\n```\ndocker run --rm kayvan/vipaccess show -s YOURSECRET\n935163\n```\n\nAlternatively, you can build it:\n\n1. Check out this repository by running\n ``git clone https://github.com/dlenski/python-vipaccess.git``\n2. Switch to the ``python-vipaccess`` directory by running\n ``cd python-vipaccess``\n3. Install the ``vipaccess`` module\n\n - With [pip](https://en.wikipedia.org/wiki/Pip_(package_manager)): ``pip install .``\n - Without pip: ``python setup.py install``\n\nUsage\n-----\n\n(This section covers the expanded CLI options of this fork, rather than [@cyrozap](https://github.com/cyrozap)'s original version.)\n\n### Provisioning a new VIP Access credential\n\nThis is used to create a new VIP Access token: by default, it stores\nthe new credential in the file `.vipaccess` in your home directory (in a\nformat similar to `stoken`), but it can store to another file instead,\nor instead just print out the \"token secret\" string with instructions\nabout how to use it.\n\n```\nusage: vipaccess provision [-h] [-p | -o DOTFILE] [-t TOKEN_MODEL]\n\noptional arguments:\n -h, --help show this help message and exit\n -p, --print Print the new credential, but don't save it to a file\n -o DOTFILE, --dotfile DOTFILE\n File in which to store the new credential (default\n ~/.vipaccess)\n -t TOKEN_MODEL, --token-model TOKEN_MODEL\n VIP Access token model. Normally VSST (desktop token,\n default) or VSMT (mobile token). Some clients only\n accept one or the other. Other more obscure token\n types also exist:\n https://support.symantec.com/en_US/article.TECH239895.html\n```\n\nHere is an example of the output from `vipaccess provision -p`:\n\n```\nCredential created successfully:\n\totpauth://totp/VIP%20Access:VSST12345678?secret=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&issuer=Symantec\nThis credential expires on this date: 2019-01-15T12:00:00.000Z\n\nYou will need the ID to register this credential: VSST12345678\n\nYou can use oathtool to generate the same OTP codes\nas would be produced by the official VIP Access apps:\n\n oathtool -d6 -b --totp AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # 6-digit code\n oathtool -d6 -b --totp -v AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # ... with extra information\n```\n\nHere is the format of the `.vipaccess` token file output from\n`vipaccess provision [-o ~/.vipaccess]`. (This file is created with\nread/write permissions *only* for the current user.)\n\n```\nversion 1\nsecret AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nid VSST12345678\nexpiry 2019-01-15T12:00:00.000Z\n```\n\n### Display a QR code to register your credential with mobile TOTP apps\n\nOnce you generate a token with `vipaccess provision -p`, use\n[`qrencode`](https://fukuchi.org/works/qrencode/manual/index.html) to display\nthe `otpauth://` URL as a QR code:\n\n```\nqrencode -t ANSI256 'otpauth://totp/VIP%20Access:VSSTXXXX?secret=YYYY&issuer=Symantec'\n```\n\nScan the code into your TOTP generating app,\nlike [FreeOTP](https://freeotp.github.io/) or\n[Google Authenticator](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2).\n\n### Generating access codes using an existing credential\n\nThe `vipaccess [show]` option will also do this for you: by default it\ngenerates codes based on the credential in `~/.vipaccess`, but you can\nspecify an alternative credential file or specify the OATH \"token\nsecret\" on the command line.\n\n```\nusage: vipaccess show [-h] [-s SECRET | -f DOTFILE]\n\noptional arguments:\n -h, --help show this help message and exit\n -s SECRET, --secret SECRET\n Specify the token secret on the command line (base32\n encoded)\n -f DOTFILE, --dotfile DOTFILE\n File in which the credential is stored (default\n ~/.vipaccess\n```\n\nAs alluded to above, you can use other standard\n[OATH](https://en.wikipedia.org/wiki/Initiative_For_Open_Authentication)-based\ntools to generate the 6-digit codes identical to what Symantec's official\napps produce.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/chris17453/python-vipaccess", "keywords": "development", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "python-vipaccess2", "package_url": "https://pypi.org/project/python-vipaccess2/", "platform": "", "project_url": "https://pypi.org/project/python-vipaccess2/", "project_urls": { "Homepage": "https://github.com/chris17453/python-vipaccess" }, "release_url": "https://pypi.org/project/python-vipaccess2/0.3.6/", "requires_dist": null, "requires_python": "", "summary": "A free software implementation of Symantec's VIP Access application and protocol, a fork of a fork.", "version": "0.3.6" }, "last_serial": 4438408, "releases": { "0.3.6": [ { "comment_text": "", "digests": { "md5": "5af7b4ece7084846f9ccbb3d43839600", "sha256": "a67649522923d74c0ba9807358b30bba1d914dd7f114da542d8ad7a3dfd7fde4" }, "downloads": -1, "filename": "python-vipaccess2-0.3.6.tar.gz", "has_sig": false, "md5_digest": "5af7b4ece7084846f9ccbb3d43839600", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17111, "upload_time": "2018-10-31T20:21:02", "url": "https://files.pythonhosted.org/packages/c4/96/233e319d70eb01076785375b448bb0afb3eff53cf0ed7bced4c63b0ccffa/python-vipaccess2-0.3.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5af7b4ece7084846f9ccbb3d43839600", "sha256": "a67649522923d74c0ba9807358b30bba1d914dd7f114da542d8ad7a3dfd7fde4" }, "downloads": -1, "filename": "python-vipaccess2-0.3.6.tar.gz", "has_sig": false, "md5_digest": "5af7b4ece7084846f9ccbb3d43839600", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17111, "upload_time": "2018-10-31T20:21:02", "url": "https://files.pythonhosted.org/packages/c4/96/233e319d70eb01076785375b448bb0afb3eff53cf0ed7bced4c63b0ccffa/python-vipaccess2-0.3.6.tar.gz" } ] }