Libsodium函数sodium_malloc()和sodium_free()的安全性

问题描述 投票:0回答:2

我正在实现一个加密消息的小程序。 为此,我使用 Libsodium。

我需要动态分配敏感数据,为此我使用 Libsodium 函数

我阅读了文档,对于一些疑问,我在互联网上询问,但我发现我的答案越来越怀疑,所以:

sodium_malloc()
sodium_free()
是动态内存分配和清理的函数,同时也考虑到了安全性?

通过安全性,我的意思是,在内存中动态分配的数据不能被尝试访问我的程序正在使用的用

sodium_malloc
分配的内存区域的其他程序读取和/或覆盖;当我在释放内存之前调用
sodium_free
时,它会被覆盖。

c++ libsodium
2个回答
1
投票

在内存中动态分配的数据无法被尝试访问使用odium_malloc 分配的内存区域的其他程序读取和/或覆盖

别开玩笑了,记忆就是记忆。任何拥有足够权限的人都可以随意读取和更改你的记忆。

当我在释放内存之前调用 sodiu_free 时,它会被覆盖

这部分是真的,免费后会归零。


0
投票

我知道这是一篇 2 年前的帖子,但对于从谷歌来到这里的任何人来说,你可能想尝试一下

sodium_mprotect_noaccess(void *ptr);
sodium_mprotect_readonly(void *ptr);
sodium_mprotect_writeonly(void *ptr);
© www.soinside.com 2019 - 2024. All rights reserved.