Take the 2-minute tour ×
Information Security Stack Exchange is a question and answer site for Information security professionals. It's 100% free, no registration required.

This is a very interesting article about the iMessage technology used in Apple's very popular communication devices. So far, there has not been much technical details released by Apple. Hopefully someone here is able to shed some light on it.

  • What security technologies and protocols are used?

  • How are the messages encrypted?

  • Is it truly end-to-end secure? Can Apple or anyone else circumvent the encryption?

Any other interesting information welcomed as well.

share|improve this question
    
Yes, Apple is its own CA. They issue certificates for developers, they did for MobileMe (I assume they still do for iCloud). –  Everett Aug 20 '12 at 14:15
    
The issue currently seems to be gaining some traction, e.g. check macrumors.com/2012/08/20/… but the articles still fall short on techical details –  Georgios Aug 20 '12 at 20:50
3  
@Georgios Edited the question abit and placed a bounty on it. ;) –  Terry Chia Aug 22 '12 at 12:25
    
If Apple is the CA for the certificates used for entity authentication in the protocol, then in theory they'll be able to carry out a man-in-the-middle attack on it and impersonate another user. –  Matt H Aug 24 '12 at 6:43
    
@Terry, I'm just back from vacation, thanks for caring and "nurturing" the question. –  Georgios Aug 27 '12 at 7:38
show 1 more comment

2 Answers 2

up vote 13 down vote accepted
+50

This is incomplete. But hopefully of some use. http://imfreedom.org/wiki/IMessage and https://github.com/meeee/pushproxy (especially the docs section) have done some reverse engineering of apple's proprietary protocol.

Seems that every apple device has a SSL/TLS client-side cert for authentication that setup to be known to apple's push server. This is used to authenticate you as well encrypt the connection between your apple device and apple's push server. I do not see anything about retrieving public keys of users you are sending messages to; hence your message is completely readable/editable by someone at apple's servers.

To specifically answer the three questions:

  • What security technologies and protocols are used?

Standard SSL/TLS certificates. Apple's self-signed certificate uses RSA 2048-bit public key.

  • How are the messages encrypted?

SSL/TLS to encrypt the connection between the apple push server and your device.

  • Is it truly end-to-end secure? Can Apple or anyone else circumvent the encryption?

Yes. To the best of my knowledge messages are in plaintext on apple's servers.


EDIT: Aug 26th, 2013: I agree this doesn't agree with the official statement made by Apple several months after this answer was written, which stated:

For example, conversations which take place over iMessage and FaceTime are protected by end-to-end encryption so no one but the sender and receiver can see or read them. Apple cannot decrypt that data. Similarly, we do not store data related to customers’ location, Map searches or Siri requests in any identifiable form.

We will continue to work hard to strike the right balance between fulfilling our legal responsibilities and protecting our customers’ privacy as they expect and deserve.

Personally, I don't place much trust in this statement where they got permission to report from the US government. This has nothing to do with my opinions of Apple, but mostly stems from me personally placing little trust in a closed-source proprietary protocol whose inner workings and technical details are kept secret.

Maybe the statement was entirely true, but it seems strange in terms of why are Apple iMessages allowed to be encrypted but LavaBit apparently had to shut down under gag order or secretly disclose email of people like Snowden. Would I expect Apple to suddenly stop allowing iMessages on principle under a court order they do not want to comply with?

Or it could be technically true, but fails to mention backdoors installed per gov't orders that allow them to remotely retrieve private keys from Apple devices (possibly only in the presence of a court order/gov't request). Several observers have mentioned when you get a new iOS device, once you setup your account (either by knowing your password or doing a password reset with a few low-entropy security questions) your device automatically retrieves all your past iMessages from the cloud. That implies Apple definitely has your messages and your private key stored at their end in the cloud -- granted the messages could be encrypted and your private key could be password protected (stored twice -- once with password, once with answers to security questions). Granted anyone at Apple's end frequently verifies your password (e.g., any time you log in to an Apple Store), most passwords are weak, and it wouldn't be for Apple to either log or brute-force a password.

Or it could be completely false, press release, that Apple was either ordered or allowed to release per order of the US gov't so criminals would feel safe using iMessage for illegal activities. Many observers questioned the veracity of the leaked DEA memo (as well as why would a DEA agent would leak it when it seems to tell drug dealers how to safely message without gov't intrusion).

share|improve this answer
1  
This doesn't fit with Apple's official statement. Either your answer is wrong or Apple is blatantly lying in official press releases. To be fair, Apple's press release came months after your answer. –  Abhi Beckert Aug 24 '13 at 22:22
add comment

The recent HITB conference revealed a lot of new information about iMessage. See the official blog post by the speakers.

To summarize,

  • All communications with Apple's server is done over SSL/TLS.
  • No certificate pinning is used. This means that the device can be compromised by a evil root CA certificate installed in the keychain.
  • A 256-bit ECDSA key is used for signing the message. A 1280-bit RSA key is used for encryption.
  • Key exchange is done through Apple's ESS server.

Conclusions

iMessage is surprisingly secure against conventional attackers. The amount of resources needed to subvert the encryption is large. Apple has the technical capabilities of breaking the end-to-end encryption properties of iMessage as they control the key infrastructure. Exchange the keys yourself and use GPG if you are paranoid. Nothing is very surprising.

Self plugging link, my blog where I talk more about the matter. http://www.infosecstudent.com/2013/10/apple-imessage-hitb/

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.