就像SnapChat... 为密码。
项目描述
就像SnapChat... 为密码。
这是一个允许您安全共享密码的Web应用程序。
假设您有一个密码。您想将其提供给您的同事Jane。您可以通过电子邮件发送给她,但这样它会出现在她的电子邮件中,可能会被备份,并且可能存储在由NSA控制的某些存储设备中。
您可以通过聊天发送给她,但Jane很可能会记录她的所有消息,因为她使用Google Hangouts Chat,而Google Hangouts Chat可能会记录所有内容。
您也可以将其写下来,但您找不到笔,而且因为您的安全人员Paul很偏执,所以密码有太多字符。
因此我们开发了SnapPass。其实并不复杂,它只做一件事。如果Jane收到一个密码链接但从未查看,那么这个密码就会消失。如果NSA获得了这个链接并查看密码……嗯,他们就有了密码。另外,Jane无法获得密码,但现在Jane知道,不仅有人查看她的邮箱,他们还在点击链接。
无论如何,我们写这个花的时间很少,但我们认为你可以省去自己写的麻烦,因为你可能很忙,有其他事情要做。祝您愉快。
安全性
密码使用来自Fernet库的对称加密进行加密,该库位于cryptography。为每个密码生成一个随机的唯一密钥,并且永远不会存储;它作为密码链接的一部分发送。这意味着即使有人能够访问Redis存储,密码仍然安全。
需求
Python 3.8+
安装
$ pip install snappass $ snappass * Running on http://0.0.0.0:5000/ * Restarting with reloader
配置
首先确保Redis正在运行。
然后,您可以通过环境变量配置以下内容。
SECRET_KEY:用于签名密钥的唯一密钥。这应该是保密的。有关更多信息,请参阅Flask 文档。
DEBUG:用于以调试模式运行Flask Web服务器。有关更多信息,请参阅Flask 文档。
STATIC_URL:这是您的静态资源位置。您可能不需要更改此设置。
NO_SSL:如果您不使用SSL。
URL_PREFIX:当在类似nginx的代理服务器后面运行snappass时很有用。例如:"/some/path/",默认为None。
REDIS_HOST:这应该由Redis设置,但您可以根据需要覆盖它。默认为"localhost"。
REDIS_PORT:Redis服务所在的端口,默认为6379。
SNAPPASS_REDIS_DB:您要在该Redis服务器上使用的数据库。默认为db 0。
REDIS_URL:(可选)将用于配置Redis客户端对象,而不是REDIS_HOST、REDIS_PORT和SNAPPASS_REDIS_DB。例如:redis://username:password@localhost:6379/0。
REDIS_PREFIX:(可选,默认为"snappass")用于Redis键的前缀,以防止与其他潜在客户端冲突。
HOST_OVERRIDE:(可选)用于覆盖基础URL,如果应用不了解。当在类似身份感知SSO的代理服务器后面运行时很有用。例如:sub.domain.com。
Docker
或者,您可以使用Docker和Docker Compose来安装和运行SnapPass。
$ docker-compose up -d
这将拉取所有依赖项,即Redis和适当的Python版本(3.7),然后启动SnapPass和Redis服务器。SnapPass服务器可通过http://localhost:5000访问。
类似工具
Snappass.NET是SnapPass的.NET(ASP.NET Core)版本。
我们正在招聘!
你对开源和优秀的软件开发真的那么兴奋吗?Pinterest正在招聘!
鸣谢
“snappass”最初由Owen Coutts和Ryan Park编写。
目前由Pinterest的Nicholas Charriere和Yongwen Xu维护。
感谢以下人士的贡献:
Owen Coutts
Ryan Park
Yongwen Xu
Nicholas Charriere
Samuel Dion-Girardeau
James W Thorne
Brandon Davis
Joseph Boiteau
Carlos Moreno
Donny Winston
James Barclay
Thomas Decaux
Lauri Lubi
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。