Amazon的S3存储服务提供对象的服务器端加密,并自动为用户管理(Amazon文档)。启用起来很容易,所以我在考虑“为什么不呢?”,但是它真正提供了什么样的安全性呢?

我想它可以防止某人进入AWS数据中心并抓住硬盘,但这似乎不太可能,而且大概有这样访问权限的任何人都可以在存储在任何地方的情况下获得AES密钥。

一旦从驱动器中取出数据,似乎就无法保护它,因为届时,它会被解密,拥有您的凭据或可以拦截流量的任何人都会看到数据。那么,真正的意义是什么?只是说数据是“加密”的?

评论

为什么不以纯文本形式存储所有密码,因为无论如何都没有人可以访问它们?任何安全措施的目的都是(a)将成功攻击的风险降至最低,并且(b)如果确实发生这种攻击,则将损害降至最低。

例如,@ Aaronaught被盗的备份。

@Aaronaught:我的问题是此程序将防止哪些特定攻击。我猜想偷来的备份很重要,但我的意思是,似乎攻击范围很窄-某人将不得不对驱动器进行物理访问,但不能访问处理AES密钥的内部系统。 >
谁说有人需要对驱动器进行物理访问才能窃取未加密的文件?此外,为什么还要将私有加密密钥与加密文件存储在同一文件系统中?这些假设似乎都不大可能。

一些企业要求对静态数据进行加密,但同时又不想自己对数据进行加密,并且他们特别不想承担丢失密钥的风险。我相信AWS为每个对象都使用一个唯一密钥,并使用自己的主密钥进一步加密这些唯一密钥。密钥与数据分开存储。有关更多信息,请访问aws.typepad.com/aws/2011/10/…。当然,您也可以选择执行客户端加密,这是我个人建议的。

#1 楼

简短的答案是:我们不知道,也许没有。

它可以防止备份被盗。但这假设亚马逊甚至进行备份。这似乎极不可能。如果这样做了,为什么他们不能从最近的S3数据丢失中恢复数据?仅使用多个实时副本会更便宜,更高效。

此外,Amazon每次访问都需要密钥。因此,除了将数据存储在大约相同的位置之外,它们似乎不太可能将密钥存储在其他任何地方。因此,如果您想盗窃实时数据设备,那么它们也同样可能会获得密钥。

但是我们不知道亚马逊如何存储,复制和/或备份数据。数据。我们也不知道它们在哪里存储密钥或如何分配它们。但是,我还没有听到一个合理的论点,即存在着他们可以防范的现实威胁。 “失窃的备份”理论似乎基于这样一个错误的前提:当所有证据都表明亚马逊使用多个活拷贝且密钥就在附近时,亚马逊就会使用备份。

Dropbox的加密确实可以保护对抗一种真实的威胁模型,尽管可能性很小。 Dropbox会存储自己的密钥并将其发送给您,因此可以保护您免受流氓亚马逊员工的侵害。作为交换,您很容易受到流氓Dropbox员工或Dropbox安全漏洞的影响。

我个人认为Amazon添加此功能只是为了使他们可以说数据可以加密存储。有些人会不经意间比较功能列表上的复选框,而Amazon希望在“安全/加密”行上有一个复选框。无论哪种方式,最薄弱的链接最有可能是亚马逊的内部网络和人身安全以及决定是否允许访问的代码实施的有效性。

评论


不需要将密钥与加密数据存储在同一磁盘上。将密钥从内部密钥服务器分发到容纳数据的机器是完全合理的,并且确实在其他组织中也是如此。 (他们提到他们会定期旋转主密钥,这将进一步支持单个密钥源的想法。)因此,密钥和数据永远不会存储在同一物理介质上,因此您需要对走得足够远以恢复数据。

–阿什拉
13年11月29日在1:31

断言和您的回应断言都是推测。实际上没有办法知道,这就是问题所在。如果您需要安全性,但无法验证其安全性,则必须从根本上假设它不安全。

–杰伊
16 Dec 9'在8:35

@Ashe正如您刚刚说的那样,密钥被“分发给存储数据的机器”。这将密钥和加密数据同时精确地放置在同一位置。除非您认为这些机器都具有HSM,否则损害这些机器中的任何一个都会为您带来密钥和数据。

– David Schwartz
17年10月10日在12:08

@DavidSchwartz哇,这是一个令人难以置信的长时间运行的线程。确实可以将它们同时放置在同一位置,但只能放在RAM中,而不能放在磁盘上。您的帖子断言“除了将数据存储在大约相同的位置之外,它们似乎不太可能将密钥存储在其他任何地方”。成功地从RAM中提取它们将花费更多的精力。

–阿什拉
17年11月10日23:14

显然,AWS现在记录了它们如何存储数据和密钥(docs.aws.amazon.com/AmazonS3/latest/dev/…)。 “ Amazon S3用唯一的密钥加密每个对象。作为一项额外的保护措施,它使用定期旋转的主密钥对密钥本身进行加密。”

– wanghq
17年11月14日在22:28

#2 楼


我想它可以阻止某人进入AWS数据中心并抓住硬盘驱动器,但这似乎极不可能,而且大概有这样访问权限的任何人都可以在存储它们的任何地方获得AES密钥。 >

吉尔斯的评论确实有效地回答了您的问题,但是我会再回答更长的时间,因为我很好。当磁盘被盗并且密钥没有被盗时,磁盘加密可以防止数据丢失。就像Gilles所说的那样,此类示例可能是偷来的备份,但也可能在移动中的笔记本电脑中,或者处置了硬盘,以防止有意义的尝试从退役的磁盘中抢救数据。

将密钥和磁盘放在一起时,磁盘加密对您没有多大帮助,因为安全性取决于密钥,并且如果可以截取密钥,则可以解密数据。当操作系统打开并使用磁盘时,密钥和磁盘始终必须紧靠(每次读取都需要该密钥),因此,可以合理拦截密钥的磁盘附近的任何人都应该能够读取数据。当然,您确实需要能够恢复密钥以进行任何形式的攻击,因此它比仅复制硬盘要难一些(但幅度不大)。因此,基本上,是的,您是对的。

但是,保护磁盘以减少由于盗窃和磁盘处置等潜在的数据丢失仍然是一个好主意。您不知道Amazon如何或如何破坏这些磁盘,因此,如果那里有任何有价值的信息,则对其进行加密是个好主意。


那么,真正的意义是什么?只是说数据是“加密的”?


这实际上是一个可能的因素。就像我说的那样,加密数据并没有带来明显的好处,但是仍然存在。就是说,我有一个客户要求,即在与市场营销点类似的情况下(我们会加密您的数据)在服务器端加密数据。我认为安全人员面临着教育方面的挑战。

评论


我了解磁盘加密的价值-我对笔记本电脑进行了加密,以防止数据被盗/丢失。但是在这种情况下,我觉得加密只能防止Amazon员工盗用数据,而且他们很可能仍然可以访问AES密钥。到数据到达REST API时,它已经被解密。就像Dropbox的加密一样,数据被“加密”,但是它们拥有密钥,并且可以根据需要解锁文件。我猜想备份或旧驱动器的盗窃是一个值得关注的问题,但是我觉得这种保护的攻击范围很窄。

–汉克
2011年11月9日,下午1:32

@Henry基本上是-您对Dropbox的加密也是正确的。如果恶意员工愿意,他们会将密钥和数据放在同一位置。解决该问题的唯一方法是在上传之前在本地进行加密。

–user2213
2011年11月9日,下午1:42

Dropbox的加密是否相同?所有用户都通过主“地图”共享文件,因此他们不能为每个帐户使用具有不同密钥的加密。不过,我不知道亚马逊是否对每个账户使用不同的密钥。

–汤姆·安德森(Tom Andersen)
2011年11月9日23:44

#3 楼

需要记住的一些事情:


许多公司都在使用Amazon
那里有很多有价值的数据:财务数据,知识产权等
像目标人物这样的犯罪分子这样的话,可以带来高现金价值
犯罪集团不反对将个人置于数据中心内,或者强迫员工执行邪恶的任务

不要忽视您的数据问题第三方有意或以其他方式泄漏的漏洞,甚至与亚马逊一样大。

评论


由于此问题与亚马逊拥有所有密钥时的服务器端加密有关,因此它无济于事,无法防止亚马逊自身蓄意泄漏...

–克里斯
18/12/4在23:38

#4 楼

使用S3 SSE时,拥有正确IAM凭据的任何人都可以读取和/或写入S3对象,就像您不使用SSE一样。乍一看,似乎唯一的附加好处是,可以保护数据免受有人离线访问S3的情况的影响,例如磁盘驱动器或备份(我怀疑AWS会这样做,因此他们依赖的可能性更大)仅复制)。但是,我认为您需要将其与替代方案进行比较以获得真正的好处:

使用S3进行客户端加密需要两个组件:一个加密密钥以及用于身份验证和授权的IAM凭据。使用服务器端加密时,只需要IAM凭据。

使用客户端加密时,需要将加密密钥分发给所有对S3上的加密数据具有读写访问权限的计算机。在这两种情况下,您还都需要分发IAM凭据。

如果计算机受到威胁,则加密密钥也受到威胁。您可以在知道入侵后立即使IAM凭据无效,如果使用IAM角色或临时IAM凭据,则攻击者只有在您拥有计算机控制权的情况下才有权访问您的数据(这很糟糕,但是也许不是世界末日,您还需要考虑接下来会发生什么。通过客户端加密,攻击者将获得您的加密密钥,并且所有使用受损的加密密钥加密的数据都需要重新加密。使用服务器端加密,您将不必重新加密数据,因为您和攻击者都不会拥有加密密钥。

即使您没有休息时间,在某些情况下您的加密密钥也可能遭到破坏,笔记本电脑丢失或被盗,不熟悉的人通过电子邮件将其发送给某人或某人退出而您不能完全确定他们没有带东西。此时,您的加密密钥已被破坏,您可能应该重新加密所有数据。那可能是很多工作。使用服务器端加密,您所要做的就是使IAM凭据无效并颁发新的凭据。

我上面已经提到了可能有一些缓解客户端加密问题的方法,但是对我来说感觉将SSE与S3结合使用要比自己管理要有更少的缺点。

最后,存在让AWS管理加密密钥的安全性的问题:

AWS的管理加密密钥的系统与S3分开,目的是如果有人从外部闯入S3,他们将不会获得您的数据,因为他们没有加密密钥。如果他们仅闯入密钥管理系统(无论如何也可能无法从外部直接访问密钥管理系统),则他们将不会拥有您的数据,因为他们无法在S3上访问它。他们需要同时进入S3和密钥管理系统才能获取您的数据。

如果他们改而进入物理数据中心,则他们可能同时访问密钥管理系统和S3,但是问题是这是否使事情变得容易。我认为,首先,我们需要信任AWS采取适当的安全措施以阻止人们进入其数据中心,其次,要真正从密钥管理系统中获取密钥,您需要做的不只是只需拉一些磁盘驱动器。据我所知,AWS并未确切发布密钥管理系统的保护方式,而只是说它通过多层安全保护。这是推测,但磁盘加密可能是其中之一。

评论


我认为您假设加密是对称的。

–西蒙·伍德赛德
16-10-7在21:00

#5 楼

就像您提到的许多人一样,如果磁盘丢失或以某种方式访问​​,确实可以为您提供更高级别的安全性(还记得层吗?)。但是
我感到难以置信的是,没有人提到安全合规性认证。

我知道。某些阅读此书的人可能已经在思考“证书是胡扯”。好吧...他们可以。但是,如果操作正确,它们可以确保某些重要功能,并且在企业界中确实意义重大。特别是对于IaaS提供商而言,他们的员工需要对所有数据和代码的访问权限较低,才能提供服务。

因此,这里的威胁不是AWS(有权)访问数据,而是特定的AWS员工有权访问数据。

我不确定这里列出的所有程序。但我敢肯定,其中有些人需要分工。这意味着AWS必须说服外部审计师,确保他们在安全功能需要时能够正确实施职责分离。在这种特殊情况下,这意味着有权访问加密数据的AWS人员永远不会访问加密密钥,而能够访问加密密钥的AWS人员永远不会访问数据。

因此,是的,您已经必须信任AWS的密钥和数据,但是这些认证旨在确保您可以控制谁(在公司内部)可以访问什么。额外的信任级别也是安全性的重要组成部分。

另一方面,也想获得认证的AWS客户也需要这样做,以符合静态数据加密的要求。仅当它们还提供密钥正确存储和管理的保证时,这才有效。借助此功能和AWS认证,他们可以将其委派给AWS。

评论


这绝对是一个很好的理论,但是要完整地回答,如果您可以提供源代码来支持,那就太好了。

–汤姆·K。
17-10-5在8:44

#6 楼

由于其他答案在很大程度上暗示该功能几乎是无用的,因此您需要查看信息安全最佳实践和法规的全景图,以了解其存在的原因。

当前对美国隐私法(例如HIPAA,PCI)的解释要求所有客户数据都必须在静态时进行加密。如果您认为应将存储在亚马逊的数据排除在这一要求之外,请尝试向您的公司法律顾问解释您的推理。祝你好运。这些规则是万能的,并且同样适用于笔记本电脑中的硬盘驱动器以及“安全”数据中心中的磁盘阵列。

虽然亚马逊员工失窃可能是一个问题在某些情况下,此功能的主要卖点是防止公司违反适用的最佳做法和法规,这些法规可能要求对静态数据进行加密。

#7 楼

您还可以防止他人在S3闯入磁盘-(幽默地说)存储S3数据的磁盘也是用于运行Windows XP机器的启动驱动器,并且有人闯入XP计算机(不是物理上) -通过入侵)。然后,他们将所有文件保存在计算机上,但您的文件已用存储在其他盒子上的密钥加密,因此,所有小偷都得到了数字垃圾。

也许有人闯入S3阵列的可能性很小,但我支持其他张贴者,并打赌钥匙在另一堵墙的后面。同样,他们可能会为每个帐户使用不同的密钥。

因此虽然安全性不高,但它确实存在。 Dropbox的商店中有一张巨型的重复数据删除地图,因此我看不到它们如何为每个帐户使用不同的密钥进行加密。