#key #memory #ed25519 #key-pair #wasmium #secret-key #encryption

wasmium-securemem

在内存中保护 Ed25519 签名密钥

2 个版本

0.2.1 2022 年 3 月 17 日
0.2.0 2021 年 12 月 22 日

#56 in #key-pair

CC0-1.0 OR Apache-2.0

14KB
205 代码行

wasmium-securemem

此包用于在内存中安全存储 Wasmium 钱包的 Ed25519 密钥对。当密钥未被使用时,它们会被加密;当需要使用密钥来签署任意长度的字节时,它们会被解密。

此设计灵感来源于 sequoia-openpgp 的加密数据结构

其文档摘录

此类加密敏感数据(如密钥)在内存中的非使用状态,并在需要时进行解密。这可以防止通过 Spectre 或 Meltdown 等微架构缺陷进行跨保护边界读取,通过 Rowbleed 等物理布局攻击,甚至通过冷启动攻击。

关键洞察是这类攻击是不完美的,即恢复的数据包含位翻转,或者攻击仅提供任意给定位的概率。应用于加密密钥,这类不完美攻击足以恢复实际密钥。

另一方面,此实现通过密钥派生函数从大区域的内存中派生出一个密封密钥,即“预密钥”。现在,预密钥读取中的任何单个位翻转都将通过密封密钥的所有位产生雪崩效应,使其无法使用,而没有任何错误发生位置的指示。

这种保护是由 OpenSSH 领先提出的。添加此功能的提交可以在此找到 这里

许可证

CCO-1.0Apache-2.0

依赖项

~7MB
~152K SLoC