Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

hehe299792458

macrumors 6502a
Original poster
Dec 13, 2008
783
3
I've been wondering about the end to end encryption offered by iMessage. From what I understand, after you sign in, the device automatically generates a public key which it uploads to Apple's iMessage servers. There is one key per device. So in the future, when someone sends you a message, their device first goes to Apple's serves, retrieves your public keys, and encrypt their message with those keys.

However, the problem I have with this model is what's to stop Apple (e.g. compelled by court order) to surreptitiously add an additional public key to your account, and thus divert some portion of your messages that new key under their control? I'm now saying this is likely, or indeed will ever happen, but theoretically is it possible?
 
I've been wondering about the end to end encryption offered by iMessage. From what I understand, after you sign in, the device automatically generates a public key which it uploads to Apple's iMessage servers. There is one key per device. So in the future, when someone sends you a message, their device first goes to Apple's serves, retrieves your public keys, and encrypt their message with those keys.

However, the problem I have with this model is what's to stop Apple (e.g. compelled by court order) to surreptitiously add an additional public key to your account, and thus divert some portion of your messages that new key under their control? I'm now saying this is likely, or indeed will ever happen, but theoretically is it possible?

Public keys are public for a reason; you cannot decrypt anything with just a public key. You need a private key that is paired with that public key. Each device has its own private key that is stored locally on the device. Each device also has its own public that is shared with all the other devices it needs to communicate with.

When a message is sent from one iPhone(A) to another iPhone(B) the process looks like this:

iPhone(B) sends its public key to iPhone(A)
iPhone(A) encrypts the message with iPhone(B)'s public key.
iPhone(B) decrypts the message with iPhone(B)'s private key.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.