0

Context:

CloudKit is a framework that lets app developers store key-value data, structured data, and assets (large data stored separately from the database, such as images or videos) in iCloud. CloudKit supports both public and private databases, grouped in containers. Public databases are globally shared, typically used for generic assets, and aren’t encrypted. Private databases store each user’s iCloud data

CloudKit uses a hierarchy of keys that matches the structure of the data. Each container’s private database is protected by a key hierarchy, rooted in an asymmetric key called a CloudKit Service key. These keys are unique to each iCloud user and generated on their trusted device. When data is written to CloudKit, all record keys are generated on the user’s trusted device and wrapped to the appropriate key hierarchy before any data is uploaded.

Key hierarchy

My question is: If Zone Keys can be securely shared using the HSM public keys for servers and iCloud Keychain for devices, why do Service Keys need to be asymmetric or exist at all?

1 Answer 1

0

If Zone Keys can be securely shared using the HSM public keys for servers and iCloud Keychain for devices, why do Service Keys need to be asymmetric or exist at all?

Because zone keys and Service keys fulfilling different functions, and because not all Services are under exclusively under Apple’s control.

Also, asymmetric cryptography is easier to maintain and utilize, since there are no shared secrets involved. This also means a compromised machine can only affect the contents on and going through that specific machine, it has no secret knowledge about any other machine (something which is not true in the case of symmetric encryption).

Finally you have the advantage that the end users device can be used to encrypt the whole chain of packages ahead of time (since they don’t need to know any shared secret either, and their asymmetric key can be used for the full process, essentially the core of E2EE.

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.