两因素系统的python誓言实现。
pyoath的Python项目详细描述
pyoat
python誓言实现。
誓言是Initiative for Open Authentication-不要与之混淆 oauth,对authorization的开放标准,这是完全不同的 范式。
pyoat实现了在RFC 4226中定义的hotp算法,发布于 2005年12月,以及RFC 6238中定义的totp算法,发表于 2011年5月。它是为 双因素认证系统。
要求
- python=2.7、3.4、3.5、3.6
安装
对于用户:
pip install pyoath
用于开发人员:
git clone git@github.com:markgollnick/pyoath.git cd pyoath python setup.py build install # Alternatively... python setup.py sdist pip install dist/pyoath-*.tar.gz
使用量
安装后,您可以将其用作脚本(即在客户端)…..
$ pyoath -h usage: pyoath.py [-h] [--google] [--loop] secret positional arguments: secret shared secret [file] between client and server optional arguments: -h, --help show this help message and exit --google Google Authenticator mode (assumes secret is encoded in base32) --loop start an authenticator instance that will continue until killed
…或者,您可以将其用作库(即,在服务器端):
>>> import pyoath >>> pyoath.HOTP(b'secret', 0) '814628' >>> pyoath.HOTP(b'secret', 1, Digit=8) '28533881' >>> pyoath.TOTP(b'secret') '123456' >>> pyoath.TOTP(b'secret', Digit=8) '12345678' >>> import hashlib >>> pyoath.TOTP(b'secret', Digit=8, Mode=hashlib.sha512) '87654321'
额外费用
因为大多数服务都会向用户提供两种形式的密钥 对于可扫描的QR Codes,您可能对以下实用程序感兴趣:
- Open Source QR Code Library,一个用java编写的用于读取qr代码的cli工具
- pyqrcode,一个基于上述java工具提供绑定的python库
- BarCapture,一个用java编写的从二维码中提取数据的gui工具
致谢
- 特别感谢james cuff的Java-based Google Authenticator Desktop Client,它激发了这个项目。
- 特别感谢Yusuke Yanbe的Open Source QR Code Library。
- 特别感谢来自Jaxo Systems的皮埃尔G.理查德为BarCapture 工具,以及他在移动平台上进行条形码解释的工作。
- 特别感谢OpenSSH关于文件访问位差的粗体通知。
- 特别感谢AJ为padlockicons。
免责声明
这是一个概念的证明。
*不建议*存储双因素身份验证 硬盘上的秘密密钥,因为这明显地重现了 二元身份验证提供的安全性。两个因素的整体观点 身份验证是潜在攻击者必须跳转到twoseparate 箍圈:
- (s)他必须破解(或通过黑客、社会工程等收集)你的 系统或服务的密码或密码短语。
- (s)他必须能接触到装有你的双因素密钥的设备, 通常是你的手机,或者是你应该带的钥匙 一直都是你的人。
因为你用来登录其他系统的计算机 在线服务有自己的密码缓存和/或存储形式,存储 机器上某个地方的第二把密匙消除了这种装置的想法 分离,让潜在的攻击者更容易获得 获取不应该访问的内容。
如许可证中所述:
软件按“原样”提供,不提供任何形式的保证,无论是express还是
隐含的,包括但不限于适销性保证,
适合某一特定目的、头衔和行为的适合性。无论如何版权所有者或任何分发软件的人应承担责任
对于任何损害或其他责任,无论是在合同、侵权行为或其他方面,
由软件、使用或其他原因引起、产生或与之相关
软件交易。
换言之,明智地或不明智地使用此软件,风险自负。
既然这已经不碍事了……不管你选择怎样做,你应该 仍然
Two。
许可证
Boost软件许可证,1.0版:<;http://www.boost.org/LICENSE_1_0.txt>;