相关疑难解决方法(0)

密码学:内存中密钥的最佳实践?

背景:我在数据库中使用AES(即对称加密)加密了一些数据.在(假设的)安全且隔离的Linux机器上运行的服务器端应用程序使用此数据.它从DB读取加密数据,并写回加密数据,仅处理内存中未加密的数据.因此,为了做到这一点,应用程序需要将密钥存储在内存中.

问题是,这有什么好的最佳实践吗?保护内存中的密钥.

一些想法:

  1. 将它保存在不可挽回的内存中(对于linux:设置SHM_LOCKshmctl(2)?)
  2. 将密钥拆分到多个内存位置.
  3. 加密密钥.有什么,以及如何保持...关键密钥..安全吗?
  4. 每次需要时从文件加载密钥(慢,如果恶人可以读取我们的内存,他也可以读取我们的文件)

密钥泄漏原因的一些场景:恶意获取mem dump/core dump; 检查代码导致信息泄漏的不良界限;

第一个似乎是一个很好而且很简单的事情,但其余的怎么样?其他想法?任何标准规格/最佳实践?

感谢您的任何意见!

memory cryptography key aes

12
推荐指数
2
解决办法
6562
查看次数

标签 统计

aes ×1

cryptography ×1

key ×1

memory ×1