如何使用本身已加密的私钥/密码加密数据?

问题描述 投票:1回答:1

我想使用Java加密某些数据(一些简单的文本):

  • 我必须将编码密钥/密码一次提供给将在其上运行应用程序的服务器。
  • 然后,应用程序可以使用先前存储的密钥自己对数据进行加密。
  • 将获得对服务器访问权限的攻击者将无法获取存储的密钥。

换句话说,我希望我的应用程序能够自己加密某些数据,而不必每次都需要密钥,并且我希望此密钥本身可以加密(而不是以纯文本形式存储),这样攻击者就无法获得它。

我可以使用哪些工具/技术来实现这一目标?

java encryption encryption-symmetric
1个回答
0
投票

将获得对服务器访问权限的攻击者将无法获取存储的密钥

这通常是一个问题,主要是在数据旁边有加密密钥时。一旦密钥泄露,攻击者就无法阻止解密数据。您的主要任务是防止攻击者首先获得对密钥的访问权(我知道,这很容易说)。

似乎您只想将密钥保留在内存中,在许多情况下,这可能是个好主意。解密时,最后无论如何都需要将密钥存储在内存中。

我希望此密钥本身被加密(不存储为纯文本)

然后,您需要存储和维护加密密钥以对第一个密钥进行加密。而且您有保护两个密钥的相同问题。

建议:

我经常看到使用外部服务来管理密钥或执行加密操作(密钥库,密钥管理服务,HSM,TPM等)的解决方案。但是,如果攻击者获得了完整的应用程序级别访问权限,则他可能会使用相同的服务来解密数据。

但是至少如果数据泄漏(以我的经验,经常备份或旧副本泄漏),这些服务将有助于使数据不可访问。

© www.soinside.com 2019 - 2024. All rights reserved.