2014-10-26 9 views
16

Gibt es eine direkte Möglichkeit, private Daten zwischen zwei oder mehr Benutzern mit CloudKit zu teilen? Die öffentlichen und privaten Daten sind offensichtlich, aber es scheint keine Möglichkeit zu geben, einer Gruppe von Benutzern zu erlauben, ihr eigenes Silo zu organisieren, um Daten untereinander zu teilen, ohne es allen anderen Benutzern des Systems zugänglich zu machen an den App-Entwickler.Private Datenfreigabe mit CloudKit

Ich habe eine akademische Zusammenarbeit app im Sinn, aber das einfachste Beispiel wäre private Messaging zwischen zwei Benutzern.

Ich denke, man könnte versuchen, ein Public-Key-Verschlüsselungssystem auf CloudKit zu bauen, um das zu erreichen, aber das ist nicht, was ich suche und würde schlecht über zwei Benutzer pro Gruppe skalieren.

+0

Public Key (asymmetrische Verschlüsselung) gut skaliert, nur ein Schlüssel pro Benutzer benötigt. Es gibt einen zentralen Punkt, um die Öffentlichkeit jedes Benutzers bei Bedarf zu erhalten. Die symmetrische Schlüsselverschlüsselung wird nicht skaliert, da für jede mögliche Verbindung ein Schlüssel erforderlich ist, dh jeder Benutzer hat einen symmetrischen Schlüssel mit jedem anderen Benutzer. Alle Sicherheit ist mit Kosten verbunden. – zaph

+0

Zur Klarstellung, ich meine, dass es nicht gut skaliert, wenn ein Benutzer versucht, die Daten mit mehr als einem anderen Benutzer zu teilen (zB: Gruppenchat mit fünf anderen Benutzern), weil der Benutzer die Nachricht mit dem verschlüsseln muss Der öffentliche Schlüssel jedes anderen Gruppenmitglieds und fünf verschlüsselte Kopien müssen für jede in der Gruppe geteilte Nachricht gespeichert werden. – hashemi

+1

[Brent Simmons hat darüber gebloggt und denkt, dass es nicht möglich ist.] (Http://inessential.com/2014/07/28/setting_expections_about_cloudkit) – hashemi

Antwort

0

Technisch ja, Sie können private Daten zwischen zwei unserer mehr Benutzer mit CloudKit teilen. Während der Datenspeicher öffentlich ist, bedeutet dies nicht, dass jeder Benutzer Zugriff auf den gesamten öffentlichen Speicher hat. Ihr Design kann den Zugriff auf Teile der öffentlichen Datenbank innerhalb jeder App-Instanz steuern.

Durch die Entwicklung einer App, die die öffentliche Datenbank mit eindeutigen IDs für Benutzergruppen verwendet, und von Zonen, die CKRecordZoneNotification für die Verwaltung von Benachrichtigungen verwenden, sollten Sie eine vernünftige sichere Lösung erstellen können. Sie entscheiden, was einigermaßen sicher bedeutet.

Hier ist ein Link zu Apples Dokumentation für CKRecordZoneNotification

+1

Wir stimmen nicht überein, was als einigermaßen sicher angesehen wird. Dies ist im Grunde Sicherheit durch Dunkelheit. Jeder kann die App umgehen und direkt auf den Datenspeicher zugreifen, wenn er motiviert genug ist, um die Daten zu erhalten. – hashemi

+0

Ich habe mich nicht in CloutKits Authentifizierungsmechanismen vertieft, daher kann ich nicht sagen, ob dies nur SBO ist. Ist es wirklich so trivial, dass "irgendjemand" eine App umgehen kann? – bitsand

+4

Zonen funktioniert nicht mit öffentlichen db. – Shmidt

0

die öffentliche Datenbank verwenden und gemeinsam genutzte Inhalte verschlüsselt funktionieren würde. Könnte nicht zu viel Spaß machen, denn dann müssten Sie Verschlüsselungsschlüssel teilen.

5

Auf der WWDC 2016, Apple eingeführt CKShare, die diesen Anwendungsfall adressiert. Ab dem 13. Juni 2016 ist die Beta-API öffentlich, aber nicht dokumentiert. Die Sharing-API wird in der WWDC 2016 Video What's new with CloudKit, beginnend um 19:57 Uhr demonstriert.