我正在尝试围绕 Amazon 的服务器端加密选项进行思考,以便在我的应用程序上传文件时开始要求 S3 加密我的静态数据。
到目前为止,AWS 管理的加密密钥选项听起来像是我正在寻找的(Model C https://media.amazonwebservices.com/AWS_Securing_Data_at_Rest_with_Encryption.pdf):
但随后它说
作为额外的保护措施,该密钥本身是用
定期轮换 Amazon S3 独有的安全主密钥
存储在 AWS 控制下的单独系统中。
这种轮换是如何运作的?这是否意味着每次 AWS 轮换其密钥加密密钥时,他们都必须重新加密每个密钥Data Key
存储在S3中???
这对我来说似乎很疯狂,当我试图说服我的老板这是一个好主意时,我不想听起来很疯狂:)
对于您上传的每个对象,都会生成一个新的加密密钥,并在将对象存储到磁盘之前用于对其进行加密。
将对象加密存储意味着拥有存储在磁盘上的原始数据的人在计算上无法对其进行解密......但是,当然,拥有该密钥的任何人都可以解密它,因此必须存储密钥安全地以相对无用的形式,这是通过使用主密钥对它们进行加密来完成的。
要破坏存储的对象,您必须拥有该对象的特定加密密钥......但即使您拥有它,它也是无用的,因为它也被加密了。要解密它,或者至少让它代表您使用它,您必须拥有主密钥,或者与控制主密钥并可以代表您使用它的实体具有信任关系。
当然,到目前为止,我所做的一切都是显而易见的。
加密密钥本身很小,每个只有几十个字节。当主密钥轮换时,对象特定的加密密钥将使用旧密钥解密,并使用新密钥重新加密。新版本被存储,旧版本被丢弃。
由于密钥很小,因此如果对象本身被解密并重新加密,这并不是所需的大量操作...但当主密钥被解密时,仅对每个对象的加密密钥进行解密和重新加密。旋转。
可以对公寓大楼进行一些类比,其中钥匙存储在公共密码箱中,其中改变密码箱锁将通过限制对公共密码箱的访问来限制对单个公寓钥匙的访问,从而限制将来对单个公寓的访问。这个类比不成立,因为物理钥匙很容易被复制,等等……但很明显,在这个插图中,改变密码箱锁(相对简单的操作)与改变一个或多个公寓的锁(一个或多个公寓)无关。更实质性的操作)。
最重要的是,在这种情况下,他们创建一个新的密钥来加密/解密您上传的每个对象,然后以加密形式存储该密钥......定期且对您透明地,他们更改该密钥的存储表示形式作为预防措施的关键。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)