#password #hasher #security #simple #key-file #cli #file-format

app chaos

密码元数据存储和 xsalsa20 哈希器

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

Unlicense 许可协议

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 行代码(估计)