我是数据安全领域的新手,我正在为一个用于管理某些文件的应用程序开发PoC。现在,这些文件可能是任何东西,从休假形式到潜在的保密协议。作为一名新手,我确实建议我的团队,一旦PoC完成,我们应该聘请一名安全专家和/或进行一次安全审计。
我想以分散的方式存储加密文件的问题。我要用IPFS来做这个。但是由于文件是加密的,所以我需要安全地存储加密密钥。
目前的解决方案我已经通过使用Hashicorp和它的Transit实现了加密密钥的信封加密。因此,当用户上传一个文件时,生成一个新的加密密钥(数据加密密钥- DEK),对该文件进行加密,然后通过HTTPS将加密密钥发送到主机Vault并加密(使用密钥加密密钥- KEK)。然后,用KEK包装的DEK存储在一个中央数据库中。我知道HSMs的存在,但我现在还不能使用。我们确实计划在未来使用HSM (我们也计划实现数字签名)。至少,我们可能会将密钥管理基础设施转移到Google,并使用HSM级别的键。
当用户在应用程序中注册时,就会在Vault中创建一个新实体,这样我就可以利用ACL来限制对KEKs (每个用户都创建)的访问权限仅限于特定用户。
问题
发布于 2020-09-17 15:20:31
DEK和KEK在任何地方都被使用,特别是在云加密中,所以你走上了一条好路。您可以从:https://cloud.google.com/kms/docs/envelope-encryption?hl=en阅读
HSM是用来保护Hashicorp Vault的主密钥的,所以如果您没有它,那么当您想解封/恢复它时,必须使用物理过程来存储基于Vault主键的Shamir。如果您使用HSM,那么这个键将被安全地存储,Hashicorp将能够恢复自己,因为它总是可用的。
Edit2:您可以使用softHSM来模拟行为。我已经设置了一个HashiCorp Vault + Utimaco hsm使用pkcs#11库,它工作得很好。不确定utimaco模拟器是否对每个人都可用。
此外,HSM还可以防止物理攻击,即使在Vault运行的物理黑客服务器上运行,他也不会拥有密钥,也无法恢复Vault,他将需要拥有HSM。从保险库本身看得很好:https://www.vaultproject.io/docs/enterprise/hsm/behavior
关于3,我建议使用最少的特权,实际上是限制根权限。我没有使用它,但是HCL喜欢在这里描述:https://learn.hashicorp.com/tutorials/vault/policies
这句话说简单是终极的复杂,所以保持简单,然后你就会看到
编辑:最后但并非最不重要的是,在使用加密时,提醒您如果密钥丢失了,那么数据也会丢失。
希望它能帮上忙
https://security.stackexchange.com/questions/238076
复制相似问题