#buffer #memory #libsodium #sodium #api-bindings #content

hard

基于libsodium的Rust的强化缓冲区安全

9个版本 (4个破坏性更新)

0.5.0 2022年1月7日
0.4.0 2021年12月27日
0.3.1 2021年12月26日
0.2.2 2021年11月29日
0.1.1 2021年6月26日

#2116 in 加密

每月25次下载

MIT/Apache

59KB
634

Hard - Rust的强化缓冲区

crates.io docs.rs

存储敏感数据(加密密钥、密码、明文等)可能会遇到问题。数据可能从未初始化的内存中恢复,从核心转储/崩溃报告中恢复,或意外地通过缓冲区溢出泄露。

Hard试图提供对这些错误具有强化功能的缓冲区类型。基于libsodium加密库,我们使用其安全内存实用程序来分配和管理缓冲区类型背后的内存。使用hard分配的内存直接放置在页面末尾,然后是保护页面,因此任何缓冲区溢出都会立即导致程序终止。在分配的内存之前放置一个canary,以检测释放时的修改,并在其前面放置另一个保护页面。建议操作系统不要将内存交换到磁盘,或将其包含在崩溃报告/核心转储中。最后,当释放内存时,首先安全地清除,以便编译器不会尝试优化掉该操作。

有关更多信息,请参阅文档

安全/漏洞披露

如果您发现hard中的漏洞,请立即联系tom25519@pm.me并提供详细信息。

我的age公钥(首选)是

age1gglesedq4m2z9kc7urjhq3zlpc6qewcwpcna7s0lwh8k2c4e6fxqf3kdvq

我的PGP公钥指纹为0x4712EC7C9F404B14,可以从keyserver.ubuntu.compgp.mit.eduGithub获取。

许可

在以下任一项许可下发布:

由您选择。

贡献

除非您明确声明,否则您根据Apache-2.0许可证定义的,旨在包含在工作中的任何贡献,都应双重许可,如上所述,没有任何附加条款或条件。

依赖项

~2.3–4.5MB
~45K SLoC