无状态密码管理器Heimdallr

什么是 Heimdallr ?

Heimdallr 是一个无状态的密码管理器/生成器。是否厌倦了不断记住网站或应用程序的密码?是否忘记将新帐户写入密码管理器或忘记将其与另一台设备同步?Heimdallr解决了这些问题!您只需要记住一个主密码,就可以根据它获取其他网站的密码。

Heimdallr和老苏现在正在使用的 Bitwarden/Vaultwarden 存在比较大的差异,首先是因为 Heimdallr 是没有数据库的

无状态密码管理器是一个有趣的技术想法,使用从主密码派生的密钥与网站名称进行散列来动态生成密码。要找回密码,您只需记住主密码和用于任何特定网站的确切名称即可

暂时老苏并没有打算换掉 Bitwarden,但是多了解了解总是好的

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 heimdallr ,选择第三个 eluki/heimdallr-password-manager,版本选择 latest

这个镜像目前只有 latest ,其他版本都是2 年前的;

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
30003 80

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
# 运行容器
docker run -d \
--restart unless-stopped \
--name heimdallr \
-p 30003:80 \
eluki/heimdallr-password-manager

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
version: '3.8'

services:
host:
image: eluki/heimdallr-password-manager
container_name: heimdallr
restart: unless-stopped
ports:
- target: 80
published: 30003
protocol: tcp
mode: host
deploy:
replicas: 1
logging:
driver: "json-file"
options:
max-size: "3m"
max-file: "3"

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 kavita 和 子目录
mkdir -p /volume2/docker/heimdallr

# 进入目录
cd /volume2/docker/heimdallr

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:30003 就能看到主界面

  • Service name:这是必填的,是为其生成密码的服务名称,比如用 github 来标识网站 https://www.github.com
  • Common name:这是必填的,一般用账号或者密码 ID,比如用账号 laosu
  • Master password:主密码,用于根据服务名称和公用名称以及使用的字典生成幂等密码;
  • Include letters:包含字母,默认启用;
  • Include numbers:包含数字,默认启用;
  • Include symbols:包含符号,默认启用;
  • Password length:密码长度;
  • Version:版本信息;

所以我们生成的第一版的密码是 410{SvE3ge=f7l{4

如果我们要给 github 生成新的密码,可以将 Version 设置为 2,然后重新 generate,这时候密码会生成新密码 3SXNg^n2XS)GRs%9

只要以上参数都不变的情况下,每次生成的密码是绝对一致的,但只要有一个参数变化,就像我们举例中的 Version1 变为 2,密码就会有变化,这解决了无状态密码管理器刚出来的时候存在的问题,比如:

  • 对于同一个网站,如果您想为单个网站保存多个密码,则必须在网站名称中包含用户名;
  • 许多网站仍然需要定期更改密码,这使得用户不仅要记住网站名称,还要记住密码迭代;

这些问题的的解决,有效提高了 Heimdallr 的实用性

参考文档

AMEST/Heimdallr: Heimdall is a stateless password manager / generator.
地址:https://github.com/AMEST/Heimdallr

Stateless Password Manager Usability – kichik’s blog
地址:https://kichik.com/2020/06/19/stateless-password-manager-usability/