7 个版本 (4 个重大更新)
0.5.1 | 2024年6月20日 |
---|---|
0.5.0 | 2024年6月4日 |
0.4.1 | 2024年5月21日 |
0.3.0 | 2024年3月24日 |
0.1.0 | 2024年1月21日 |
#1841 in 加密学
每月537次下载
用于 sequoia-sq
265KB
4.5K SLoC
Sequoia 的私钥存储。
此项目实现了 Sequoia 的私钥存储。私钥存储在应用程序访问私钥时充当中介,并且相对于每个直接访问密钥或 HSM 的应用程序,具有三个主要优势
-
私钥存储位于单独的地址空间。这意味着内存中的私钥与应用程序位于不同的地址空间。这是 Heartbleed 漏洞 的根本原因。
-
私钥存储可以为存储在不同后端上的密钥提供统一的接口,例如,内存中的密钥、智能卡上的密钥或通过 ssh 访问的远程计算机上的密钥。这简化了应用程序。
-
此架构简化了多个应用程序之间共享私钥材料。只需私钥存储需要担心管理私钥材料,这提高了安全性。此外,当用户在一个应用程序中解锁一个密钥时,它可能在所有应用程序中解锁,这提高了可用性。
尽管密钥存储可以作为单独的服务器运行,但有时将其放置在一起很有用。这有助于提高健壮性,例如,密钥存储未运行,并且由于某些原因无法启动。此外,它允许在启动进程困难或不希望这样做的地方使用密钥存储,例如在 initrd 中。
私钥存储使用设备驱动程序风格的架构。 sequoia-keystore-backend crate 定义了一个不同后端实现的 trait。目前,后端是在编译时添加的。
sequoia-keystore-softkeys 后端是后端的一个示例。它支持软密钥,即内存中的密钥。
依赖项
~24–37MB
~484K SLoC