{ "info": { "author": "Gavin Wahl", "author_email": "gavinwahl@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Security", "Topic :: Security :: Cryptography" ], "description": "Django U2F\n----------\n\n.. image:: https://travis-ci.org/gavinwahl/django-u2f.svg?branch=master\n :alt: Build Status\n :target: https://travis-ci.org/gavinwahl/django-u2f\n\ndjango-u2f provides support for FIDO U2F security tokens in Django. The\nfunctionality is similar to the `Security Key two-factor authentication that\nGoogle recently announced\n`_,\nand uses the same tokens.\n\ndjango-u2f isn't yet production ready, but is a working proof of\nconcept. There are many TODOs sprinkled around the code that should be\nfixed before relying on it.\n\nInstallation\n============\n\n::\n\n $ pip install django-u2f\n\nAdd ``django_u2f`` to ``INSTALLED_APPS`` and include\n``django_u2f.urls`` somewhere in your url patterns. Set ``LOGIN_URL\n= 'u2f:login'``. Make sure that Django's built in login\nview does not not have a urlpattern, because it will authenticate users\nwithout their second factor. django-u2f provides its own login view to\nhandle that.\n\nDemo\n====\n\nTo see a demo, use the test project included in the repo. Install django-u2f\nwith ``pip install -e .``, then install the demo-specific requirements with\n``cd testproj; pip install -r requirements.txt``. Run syncdb and create a user,\ncreate a self-signed certificate with ``./mkcert.sh``, \nthen start ``./manage.py runserver_plus --cert localhost``.\n\nFor now the only supported browser is Chrome, version 41 or higher.\nU2F also requires that the page is served over a secure connection.\n\n\nStart by going to https://localhost:8000/u2f/login. Since you\nhaven't added any security keys yet, you will be logged in with just a\nusername and password. Once logged in, click 'Add another key' on the\nkey management page and follow the instructions. Now your account is\nprotected by two factor authentication, and when you log in again your\nU2F token will be required.\n\nYou can administrate the keys attached to your account on the key\nmanagement page as well, at the URL https://localhost:8000/u2f/keys.\n\nUsing U2F keys on linux\n=======================\n\nSome distros don't come with udev rules to make USB HID /dev/\nnodes accessible to normal users. If your key doesn't light up\nand start flashing when you expect it to, this might be what is\nhappening. See https://github.com/Yubico/libu2f-host/issues/2 and\nhttps://github.com/Yubico/libu2f-host/blob/master/70-u2f.rules for some\ndiscussion of the rule to make it accessible. If you just want a quick\ntemporary fix, you can run ``sudo chmod 666 /dev/hidraw*`` every time\nafter you plug in your key (The files disappear after unplugging).\n\n\nHelpful links\n=============\n\n- The code to actually implement the crypto in python:\n https://github.com/Yubico/python-u2flib-server\n- A description of the process from a developer's perspective from Yubico:\n https://developers.yubico.com/U2F/Libraries/Using_a_library.html", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/gavinwahl/django-u2f", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "django-u2f", "package_url": "https://pypi.org/project/django-u2f/", "platform": "", "project_url": "https://pypi.org/project/django-u2f/", "project_urls": { "Homepage": "https://github.com/gavinwahl/django-u2f" }, "release_url": "https://pypi.org/project/django-u2f/0.3.0/", "requires_dist": null, "requires_python": "", "summary": "FIDO U2F security token support for Django", "version": "0.3.0" }, "last_serial": 3804313, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "265be469f57fae54c67713e6ba67e234", "sha256": "1e7a4c826e8270ae36563274f59c4a3150f83e11c232de11c8aedc5c63ceae52" }, "downloads": -1, "filename": "django-u2f-0.1.0.tar.gz", "has_sig": false, "md5_digest": "265be469f57fae54c67713e6ba67e234", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17474, "upload_time": "2016-04-15T16:50:54", "url": "https://files.pythonhosted.org/packages/f2/61/a701e2c9582c8d413d623100dc1ff87951020028e17d57b42e263ae5d9be/django-u2f-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "64799821965e11c5d303ba3db7588b84", "sha256": "eaacc19078527bbbd9734cd29afc93268060f128e2afb3c2d967d4143b0938c7" }, "downloads": -1, "filename": "django-u2f-0.2.0.tar.gz", "has_sig": false, "md5_digest": "64799821965e11c5d303ba3db7588b84", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18933, "upload_time": "2017-05-22T22:25:44", "url": "https://files.pythonhosted.org/packages/9e/18/a8f7444f72a63508931f2ad7ca08c0b4c9b08c45752542f2a20b0d759ce2/django-u2f-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "fe518825bed511bc7dd8e7db93b47ada", "sha256": "6418a4c4c41bc4c0bb8307f8b9f45e1f999af5a2f66eace8b3a02871ad398aaf" }, "downloads": -1, "filename": "django-u2f-0.3.0.tar.gz", "has_sig": false, "md5_digest": "fe518825bed511bc7dd8e7db93b47ada", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19024, "upload_time": "2018-04-24T19:54:47", "url": "https://files.pythonhosted.org/packages/9b/22/8987c7b58b2cbf723393bc549b1cecc098567a3b00f1b8c9a4ecd60e2ff6/django-u2f-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fe518825bed511bc7dd8e7db93b47ada", "sha256": "6418a4c4c41bc4c0bb8307f8b9f45e1f999af5a2f66eace8b3a02871ad398aaf" }, "downloads": -1, "filename": "django-u2f-0.3.0.tar.gz", "has_sig": false, "md5_digest": "fe518825bed511bc7dd8e7db93b47ada", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19024, "upload_time": "2018-04-24T19:54:47", "url": "https://files.pythonhosted.org/packages/9b/22/8987c7b58b2cbf723393bc549b1cecc098567a3b00f1b8c9a4ecd60e2ff6/django-u2f-0.3.0.tar.gz" } ] }