9 个版本
使用旧的 Rust 2015
0.9.5 | 2018 年 7 月 27 日 |
---|---|
0.9.3 | 2016 年 8 月 24 日 |
0.9.2 | 2016 年 6 月 14 日 |
0.2.0 | 2016 年 5 月 13 日 |
0.1.2 | 2016 年 4 月 28 日 |
在 身份验证 中排名 #828
每月下载量 25 次
24KB
464 行(不包括注释)
警告
警告:在 1.0 版本之前,我可能会稍微改变文件格式:将 JSON 文件格式改为更整洁的格式。也许可以借鉴 pass 的文件-条目想法,这样对版本控制会更好。
我应该能够编写一个从 pre-1.0 到 1.0 格式的转换脚本。无论如何,我都需要一个。
chaos
Password 元数据存储器和 xsalsa20 哈希器。它生成并存储肉和盐以及主密钥,并能够通过 xsalsa20 哈希来回忆密码。Chaos 还会自动将每次对 JSON 文件的更改作为 git 提交。
安装 / 要求
需要 Rust 稳定版本(已知在 1.8 上工作)来编译。Git 需要包含在路径中。
一种可靠地保护未加密的主密钥文件 (~/.chaos/key) 的方法。也许可以将它放在一个你总是随身携带的 U 盘中。或者将其保存在一个仅在使用期间打开的加密卷中。
cargo install chaos
使用
vegai@discord ~ » chaos help
chaos
Vesa Kaihlavirta <vegai@iki.fi>
USAGE:
chaos [FLAGS] [SUBCOMMAND]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
SUBCOMMANDS:
get get entry
help Prints this message or the help of the given subcommand(s)
ls lists entries (default action if none specified)
new generate new entry
rm remove entry
vegai@discord ~ » chaos new folder/meep
Initialized empty Git repository in /home/vegai/.chaos/.git/
[master (root-commit) ebb27d6] new folder/meep
1 file changed, 10 insertions(+)
create mode 100644 data.json
folder/meep added
vegai@discord ~ » chaos get folder/meep
Creating a new key in /home/vegai/.chaos/key
MB;W5N:O8U[)*+y']<".>NLO4g<rIp%*
vegai@discord ~ » chaos get folder/meep
MB;W5N:O8U[)*+y']<".>NLO4g<rIp%*
vegai@discord ~ » chaos new simplesite -l 8 -f 3
[master e11a4c8] new simplesite
1 file changed, 6 insertions(+)
simplesite added
vegai@discord ~ » chaos get simplesite
eaxBRjVz
vegai@discord ~ » chaos new folder/meep
'folder/meep' exists already. --force to overwrite
vegai@discord ~ » chaos new folder/meep --force
[master 0c7ab32] new folder/meep
1 file changed, 2 insertions(+), 2 deletions(-)
folder/meep added
vegai@discord ~ » chaos get folder/meep
09C8OdeTlCO)OQI1[#Q)lQ^0]]$4~]Q+
vegai@discord ~ » chaos rm folder/meep
'folder/meep' exists. --force to remove
vegai@discord ~ » chaos rm folder/meep --force
[master 0781633] rm folder/meep
1 file changed, 6 deletions(-)
安全
我不是安全专家。最多只是一个爱好者。
如果主密钥文件可以很好地保护,那么它可能相当安全。不幸的是,在典型的桌面上,几乎不可能保护单个文件免受所有入侵。
密码是 xsalsa20 哈希,由生成的肉、主密钥和盐生成,所有这些都在 ~/.chaos/ 中以未加密的形式保存
这可能比在纯文本文件中存储密码更安全。它比在每个网站上使用“username123”作为密码要安全得多。
细节
chaos 创建并存储以下纯文本内容
- 主密钥在 ~/.chaos/key 中
- 密码元数据在 ~/.chaos/data.json 中
拥有这两个文件意味着你可以毫不费力地获取所有密码,因此保护它们很重要。
密码元数据包含标题、格式、长度和生成的肉+盐的结构。
实际的密码不会存储在任何地方,而是通过 xsalsa20 计算,并根据所需的格式进行切割。
待办事项
- 支持编辑文本字段
- 与 pijul 集成而不是 git
- 打破文件格式,走向更稳定的格式(排序 JSON 会产生可怕的 vcs 补丁)
- 某种加密机制,用于元数据,可能通过系统支持(将加密镜像作为文件系统挂载等)
- 当上述事情完成时,发布 1.0 版本并停止破坏它:)
依赖关系
~6.5MB
~98K 行代码(估计)