2014-10-26 51 views
16

使用CloudKit有两种或两种以上用户共享私人数据的直接方式吗?使用CloudKit分享私人数据

公共和私人日期很明显,但似乎没有办法允许一组用户组织他们自己的筒仓在他们之间共享数据,而不会让系统的所有其他用户给应用开发者。

我有一个学术协作应用程序,但最简单的例子是两个用户之间的私人消息。

我想可以尝试在CloudKit之上构建一个公钥加密系统来实现这一目标,但这并不是我所期望的,并且会超出每个组的两个用户。

+0

公钥(非对称加密)不会很好地扩展,则每个用户只需要一个键。按需求获得每个用户的公共中心点。对称密钥加密不会伸缩,因为它需要每个潜在连接的密钥,即每个用户都与每个其他用户有一个对称密钥。所有的安全都需要付出代价。 – zaph 2014-10-27 00:56:06

+0

为了澄清,我的意思是,如果用户试图与多于一个其他用户共享数据(例如:与其他五个用户进行群聊),那么它不会很好地扩展,因为发送消息的用户需要使用需要为组中共享的每条消息存储每个其他组成员的公钥和五个加密副本。 – hashemi 2014-10-27 02:48:16

+1

[布伦特西蒙斯对此进行了博客,并认为这是不可能的。](http://inessential.com/2014/07/28/setting_expectations_about_cloudkit) – hashemi 2014-10-27 02:56:39

回答

0

从技术上讲,您可以通过CloudKit在两位更多用户之间共享私人数据。虽然数据存储是公开的,但这并不意味着每个用户都可以访问整个公用存储。您的设计可以控制对每个应用程序实例中公共数据库部分的访问。

通过开发使用使用CKRecordZoneNotification管理通知的用户组的唯一标识符和区域公共数据库的应用程序,你应该能够创建一个合理的安全解决方案。你决定什么合理安全的意思。

这里是苹果公司的文档的链接CKRecordZoneNotification

+1

我们不同意认为合理的安全措施。这基本上是默默无闻的安全。如果有足够的动机需要数据,任何人都可以绕过应用程序并直接访问数据存储。 – hashemi 2014-11-26 17:49:51

+0

我还没有深入研究CloutKit的认证机制,所以我不能说这是唯一的SBO。 “任何人”都可以绕过应用程序真的很微不足道吗? – bitsand 2014-12-17 22:34:15

+4

区域不能与公用数据库一起使用。 – Shmidt 2015-03-26 20:59:47

0

使用公共数据库和加密共享的内容是可行的。可能不会太有趣,因为那时你需要共享加密密钥。

5

在WWDC 2016上,苹果公司推出CKShare,它解决了这个用例。截至2016年6月13日,测试版API是公开的,但没有记录。共享API在WWDC 2016视频What's new with CloudKit中展示,从19:57开始。