繁体   English   中英

libgcrypt安全内存

[英]libgcrypt secure memory

从libgcrypt手册中:

Libgcrypt使用称为安全内存的概念,这是为存储敏感数据而预留的内存区域。 由于此类内存是稀缺资源,因此需要预先将其设置为固定大小。 此外,大多数操作系统对如何使用安全内存有特殊要求。 例如,可能需要将应用程序安装为“ setuid(root)”以允许分配此类内存。 [...]如果您必须保护自己的密钥或内存中的其他信息以免被换出到磁盘上,并启用已使用和已释放的内存的自动覆盖功能,则需要[...]

我对该安全内存的工作方式有些困惑。
我正在开发执行aes256-cbc文件加密的软件,并且它还计算IV + CIPHERTEXT的MAC(带有sha512的hmac),因此我必须使用安全内存来存储敏感信息。
我对“安全内存”的概念不了解的是:

  1. 假设我有这个: unsigned char *key; key = malloc(32); unsigned char *key; key = malloc(32); 库如何知道此变量希望“分配内存”?
  2. “自动覆盖释放的内存”意味着free(key)将被擦除,因此我不需要在释放指针之前对内存进行内存设置吗?

只需继续阅读复制和粘贴的页面即可: http : //www.gnupg.org/documentation/manuals/gcrypt/Initializing-the-library.html

有有关如何初始化库的示例。

通常,安全内存使用mlock锁定,因此无法分页。

该库当然不知道在程序其他位置的malloc调用,请查看其文档以了解如何使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM