我有一个客户希望持有个人信息,例如驾驶执照和保险文件,以验证该网站的用户是否是他们所说的人以及他们所说的居住地(该网站是一种经纪业务)
我们正在考虑将这些信息存储在诸如 amazon S3 之类的异地解决方案中,显然它会在从我们的服务器发送之前进行加密,并在我们需要时将其拉下并解密,但这是否足够?我需要满足额外的合规级别吗?
请原谅我对此的无知,我绝不是安全专家,只是想知道这是否是我们应该考虑的事情。
我有一个客户希望持有个人信息,例如驾驶执照和保险文件,以验证该网站的用户是否是他们所说的人以及他们所说的居住地(该网站是一种经纪业务)
我们正在考虑将这些信息存储在诸如 amazon S3 之类的异地解决方案中,显然它会在从我们的服务器发送之前进行加密,并在我们需要时将其拉下并解密,但这是否足够?我需要满足额外的合规级别吗?
请原谅我对此的无知,我绝不是安全专家,只是想知道这是否是我们应该考虑的事情。
从纯粹的技术角度来看,如果您在上传之前对其进行了适当的加密,并且它在云中始终保持加密状态,那么数据是非常安全的。
但是,您很可能需要满足额外的法律合规要求。这是“个人身份信息”,有很多适用于处理它的法律和法规。您需要就您需要做的事情征求法律意见。
请注意,您不仅需要担心客户所在的司法管辖区,还需要担心数据所在的司法管辖区以及用户所在的司法管辖区。(仅此一项可能会使使用 S3 更具挑战性,因为您无法控制您放入其中的数据是否存储在纽瓦克或东京或亚马逊尚未告诉我们的其他地方。)
Amazon EC2 允许您指定存储数据的位置:
[ http://docs.aws.amazon.com/AmazonS3/latest/dev/LocationSelection.html][1] 存储在 AWS 区域中的对象永远不会离开该区域,除非您明确将它们转移到另一个区域。例如,存储在欧盟(爱尔兰)区域的对象永远不会离开它。
至于安全性如何“足够”,您需要决定,但是假设您在将其上传到亚马逊之前进行了所有加密,那么您对它的安全性有 100% 的完全控制权(也有责任)。
请注意,通常建议将重要数据的副本保存在不同的位置,以防止任何潜在的丢失/中断。
正如@Graham Hill在他的回答中指出的那样,在它上线之前正确加密它。
Amazon 确实允许您指定您希望他们加密您的 S3 对象,但正如他们在其文档中承认的那样,您可以(并且应该)在您的信息到达他们之前对其进行加密。他们在保存之前/期间添加到您的对象中的自己的加密只能潜在地保护您免受恶意访问亚马逊服务器的人:认为攻击者获得了对亚马逊内部数据中心的访问权限。即使在这种情况下,您是否受到保护也不是很清楚,就像攻击者对机器具有 root 访问权限一样,他可以轻松提取加密密钥。
最好的建议是使用众所周知且经过验证的方法加密您的文件,在这种情况下很可能是 PGP/GPG 加密。然而,PGP 加密的一个缺陷是通过检查内容很容易确定文件类型:
# encrypt myfile.jpg using PGP encryption to a new file called "things"
$ gpg --output things --encrypt --recipient me@myemail.com myfile.jpg
# what kind of file is "things"?
$ file things
things: GPG encrypted data
然而,仅仅因为你知道它是一个 PGP 加密的文件并不意味着你知道它包含什么,特别是如果你给它一个随机的文件名。
一种更好的做事方式是使用 TrueCrypt 2 创建一个文件支持的容器,这对于所有意图和目的来说都是一个二进制 blob,它并没有真正揭示它到底是什么。此外,您可以使用 TrueCrypt 的隐藏卷功能来获得合理的否认。给它起一个有趣的名字,像这样:
$ uuid | sha256sum - | cut -b 1-64
a42815e0a68efac65903cdbbbbf2875ee082d3e5f4f8ee831cbbe27606a8399f
您将拥有一个带有不连贯、随机生成的名称的二进制 blob,它是一个 TrueCrypt 卷(并且可能包含一个额外的隐藏卷)。任何下载此文件的人都无法猜测该文件是什么,如果您使用非常强大的密码,您应该是安全的。
想偏执吗?生成大量此类卷,每个卷都有自己的名称和强大的密码,并将您的 PGP/GPG 加密文件放入卷中。这些卷将具有静态大小,并且在您修改其中的文件时会发生显着变化。
1可能。
2担心 TrueCrypt 卷的安全性?看了安全审计,就知道看了第一阶段审计,Bruce Schneier 还在用。