CloudKit 是端到端加密的吗?

Posted

技术标签:

【中文标题】CloudKit 是端到端加密的吗?【英文标题】:Is CloudKit end-to-end encrypted? 【发布时间】:2017-04-19 22:36:33 【问题描述】:

对于我们的消息应用程序,如果我们将用户消息直接发送到CloudKit(不进行任何我们自己的加密),我们是否可以声称我们的应用程序是end-to-end encrypted,“只有通信用户才能阅读消息” ?

【问题讨论】:

在几乎 50k rep 你必须知道一个是或否的问题不是很有建设性... 这不是云,而是加密和密钥交换方式。它看似简单,但安全实现却很少,据我估计,它是Open Whisper Systems 的 iMessages 和 Signal。现在你来了,认为你可以做得和Moxie一样好? 如果您想要一个安全的系统,您需要聘请密码领域专家来设计和审查实施。这就是我过去为商业系统所做的,然后我晚上睡得很好。 @zaph 谢谢。 CloudKit 是否为我们处理加密,以便我们不必进行任何加密?请查看更新问题。 我看不出 CloudKit 安全提供端到端加密的任何方式。要了解安全端到端加密所涉及的内容,请参阅 Open Whisper Systems Technical Documentation 和 ios Security 2017 iMessage:第 43 页,CloudKit 第 45 页。有关 Apple Cloud 安全性的想法,请参阅 Apple Black hat 2016 32:26到 35:56。端到端安全并非易事。 【参考方案1】:

马特,

我假设/假设这是一个编码问题?所以我会用编码的答案来回答:)

您可以通过使用公钥/私钥对加密消息来保证只有通信用户才能读取消息。已经存在了一段时间的技术。这个讨论详细讨论了这个过程。

在https://forums.developer.apple.com 论坛上搜索“Swift RSA Public Key Encryption Howto”。

【讨论】:

谢谢。那么,您是说 CloudKit 不为我们做端到端加密,即我们必须自己做吗?请查看我们更新的问题。 问题在于密钥共享、存储和转发存储以及初学者的完美转发保密。这真的是一件非常复杂和难以实现的事情。 @user3069232 从论坛消息中引用了奎因“爱斯基摩人!”回复:……设计自己的加密方案只能由加密专家尝试(即使他们大多数时候都会出错,因此我们使用的是 TLS 版本 1.2 :-)跨度> @user3069232 这是不正确的,公钥用于加密,而不是私钥。每个人都可以向对方发送他们的公钥并用其他人的公钥加密,这将是安全的……除了你怎么知道你正在与正确的实体连接并且可能存在 MITM,这会带来密钥交换问题。 SSL 本身并不能解决这个问题。 您的权利。我弄错了:)正确的顺序;人 1 用人 2 的公钥加密他们的消息。然后只有人 2 可以解密它,因为只有人 2 有匹配的私钥。使用私钥加密用于证明真实性。如果人 1 用他们自己的私钥加密了一条消息,那么人 2 可以用人 1 的公钥解密它,这证明人 1 发起了该消息,因为它只能用他们的私钥加密。我删除了我的错误评论。【参考方案2】:

我知道这是一个古老且有些争议的问题,但我想我会在这个主题上借我两分钱。

经过一些快速的谷歌搜索,我发现这个问题的最权威的公众和面向用户的答案是 Apple's Privacy page。请参阅有关 iCloud 的部分,内容如下:

您的 iCloud 内容 [...] 在传输和存储在我们的服务器上时会被加密。

然后谈到 CloudKit。

这对我来说听起来很端到端-ish。

但是,他们继续声明“某些个人数据,例如家庭和健康数据,是通过端到端加密存储的。”这段对比鲜明的段落不适合您的“我们是端到端加密的!” 要求,除非上面的引用足以满足您的目的。

对于我自己目前的项目,确实如此,因为我的数据不一定是企业级的敏感数据;我不需要完全控制加密的内容和方式。我最担心的是我,开发人员,看不到我的用户数据。这一点,CloudKit 为我强制执行,而 Firebase 等工具没有。

就是这样。

谷歌搜索愉快! ?

【讨论】:

以上是关于CloudKit 是端到端加密的吗?的主要内容,如果未能解决你的问题,请参考以下文章

什么是端到端(end2end)学习?

端到端E2E

分层测试:端到端测试

IM聊天传输内容端到端加密技术

IM聊天传输内容端到端加密技术

系统测试与端到端测试:哪一个更适合选择?