Rust 中的隐蔽安全内存管理
大家好!我一直在开发一个处理高价值凭证的进程内项目,我需要比仅在释放时清零内存更强大的方案。最近一个 Show HN[0] 的评论让我意识到,大家对底层内存保护技术的了解可能没有我想象的那么广泛。这个项目的想法是把所有工具整合到一个 crate 中,提供相对简单的 API。* 使用 mlock/VirtualLock 防止敏感内存被交换(例如 KeePass 数据泄露)* 在 Linux 和 Android 上使用 MADV_DONTDUMP 排除核心转储* 使用 mprotect 随时间减少暴露风险* 使用防护页缓解缓冲区下溢/溢出经过一些实战测试,我们的目标是为密码管理器和加密货币钱包等应用提供更安全的内存基础。这是个有趣的项目,我学到了很多——欢迎大家提出反馈![0] - https://news.ycombinator.com/item?id=47073430
- macOS
- 安卓
- 开源
✨ AI 摘要
Shrouded是一个Rust库,旨在增强敏感数据进程内内存管理的安全性。它利用底层内存保护技术来防止数据交换、排除核心转储、随时间减少暴露风险,并缓解溢出问题。
适合谁
密码管理器开发者, 加密货币钱包开发者, 处理高价值凭证的进程内开发者
为什么值得关注
通过实施先进的内存保护技术,为处理敏感数据的应用程序提供更强大、更安全的内存基础。
核心特性
- 使用mlock/VirtualLock防止敏感内存被交换出去。
- 在Linux和Android上通过MADV_DONTDUMP排除内存核心转储。
- 使用mprotect随时间最小化内存暴露。
- 通过保护页缓解下溢/上溢问题。
使用场景
- 加密货币钱包开发者可以使用Shrouded来保护内存中的私钥,防止它们通过交换文件写入磁盘或包含在系统崩溃转储中,从而增强对物理访问攻击的安全性。
- 密码管理器应用程序可以利用Shrouded在用户凭证被主动使用时进行保护,确保敏感数据不会通过内存检查或意外日志记录而暴露。
- 注重安全的开发者构建用于高度敏感信息的内部数据库时,可以集成Shrouded来实现细粒度的内存保护,降低通过系统漏洞导致数据泄露的风险。