2014-10-26 4 views
16

Есть ли простой способ совместного использования частных данных между двумя или более пользователями с помощью CloudKit?Частный обмен данными с использованием CloudKit

Публичная и закрытая дата очевидны, но, похоже, не существует способа, позволяющего группе пользователей организовывать собственный силос для совместного использования данных между собой, не делая его доступным для всех других пользователей системы и разработчику приложения.

У меня есть приложение для академического сотрудничества, но самым простым примером может быть обмен частным сообщением между двумя пользователями.

Я предполагаю, что для достижения этой цели можно попытаться создать систему шифрования с открытым ключом поверх CloudKit, но это не то, что я ищу, и будет плохо масштабироваться за пределами двух пользователей в каждой группе.

+0

Public Key (асимметричное шифрование) не очень хорошо масштабируется, только один ключ необходим для каждого пользователя. Существует центральная точка для получения информации о каждом пользователе по требованию. Симметричное шифрование ключей не масштабируется, поскольку для каждого потенциального соединения требуется ключ, то есть каждый пользователь будет иметь симметричный ключ с каждым другим пользователем. Вся безопасность поставляется со стоимостью. – zaph

+0

Чтобы уточнить, я имел в виду, что он не очень хорошо масштабируется, если пользователь пытается обмениваться данными с несколькими другими пользователями (например: групповой чат с пятью другими пользователями), потому что пользователь, отправляющий сообщение, должен будет зашифровать его с помощью открытый ключ каждого из других членов группы и пять зашифрованных копий необходимо сохранить для каждого сообщения, общего в группе. – hashemi

+1

[Брент Симмонс писал об этом и думает, что это невозможно.] (Http://inessential.com/2014/07/28/setting_expectations_about_cloudkit) – hashemi

ответ

0

Технически да, вы можете делиться частными данными между двумя нашими больше пользователями с CloudKit. Хотя хранилище данных является общедоступным, это не означает, что каждый пользователь имеет доступ ко всему хранилищу. Ваш проект может контролировать доступ к частям публичной базы данных в каждом экземпляре приложения.

Разрабатывая приложение, которое использует общественную базу данных с уникальными идентификаторами для групп пользователей, а также зонами с использованием CKRecordZoneNotification для управления уведомлениями, вы должны быть в состоянии создать достаточно безопасное решения. Вы решаете, что разумно защищен означает.

Вот ссылка на документы компании Apple для CKRecordZoneNotification

+1

Мы не согласны с тем, что считается достаточно безопасным. Это в основном безопасность безвестности. Любой пользователь может обойти приложение и получить доступ к хранилищу данных напрямую, если они были достаточно мотивированы, чтобы получить данные. – hashemi

+0

Я не разбираюсь в механизмах аутентификации CloutKit, поэтому не могу сказать, является ли это только SBO. Действительно ли это тривиально, что «кто-нибудь» может обойти приложение? – bitsand

+4

Зоны не работают с публичным db. – Shmidt

0

Использование базы данных общих и шифрование общего содержимого будет работать. Не может быть слишком весело, потому что тогда вам нужно будет делиться ключами шифрования.

5

На WWDC 2016 Apple представила CKShare, который обращается к этому прецеденту. По состоянию на 13 июня 2016 года бета-API является общедоступным, но недокументированным. API совместного использования демонстрируется в видеоролике WWDC 2016 What's new with CloudKit, начиная с 19:57.

Смежные вопросы