首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libgcrypt安全存储器

libgcrypt安全存储器
EN

Stack Overflow用户
提问于 2013-02-02 16:51:11
回答 1查看 1K关注 0票数 0

来自libgcrypt手册:

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

对于这个安全的内存是如何工作的,我有点困惑。

我正在开发一个软件,可以对sha512文件进行加密,并计算IV+CIPHERTEXT的MAC (hmac ),因此i必须使用安全内存来存储敏感信息。

对于“安全内存”的概念,我不理解的是:

  1. 假设我有这样一个:unsigned char *key; key = malloc(32);。库如何知道这个变量希望安全内存被“调出”?
  2. “自动覆盖释放的内存”意味着free(key)将被擦除,所以在释放指针之前我不需要设置内存,对吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-02 20:07:20

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

下面是如何初始化库的示例。

一般来说,安全的内存是用mlock锁定的,所以不能分页。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14664147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档