Vedi Sicurezza iOS , pp30-32:
iMessage
Apple iMessage is a messaging service for iOS devices and Mac computers. iMessage supports text and attachments such as photos, contacts, and locations. Messages appear on all of a user’s registered devices so that a conversation can be continued from any of the user’s devices. iMessage makes extensive use of the Apple Push Notification service (APNs). Apple does not log messages or attachments, and their contents are protected by end-to-end encryption so no one but the sender and receiver can access them. Apple cannot decrypt the data.
When a user turns on iMessage, the device generates two pairs of keys for use with the service: an RSA 1280-bit key for encryption and an ECDSA 256-bit key for signing. For each key pair, the private keys are saved in the device’s keychain and the public keys are sent to Apple’s directory service (IDS), where they are associated with the user’s phone number or email address, along with the device’s APNs address.
As users enable additional devices for use with iMessage, their public keys, APNs addresses, and associated phone numbers are added to the directory service. Users can also add more email addresses, which will be verified by sending a confirmation link. Phone numbers are verified by the carrier network and SIM. Further, all of the user’s registered devices display an alert message when a new device, phone number, or email address is added.
How iMessage sends and receives messages
Users start a new iMessage conversation by entering an address or name. If they enter a phone number or email address, the device contacts the IDS to retrieve the public keys and APNs addresses for all of the devices associated with the addressee. If the user enters a name, the device first utilizes the user’s Contacts app to gather the phone numbers and email addresses associated with that name, then gets the public keys and APNs addresses from the IDS.
The user’s outgoing message is individually encrypted using AES-128 in CTR mode for each of the recipient’s devices, signed using the sender’s private key, and then dispatched to the APNs for delivery. Metadata, such as the timestamp and APNs routing information, is not encrypted. Communication with APNs is encrypted using TLS.
If the message text is too long, or if an attachment such as a photo is included, the attachment is encrypted using a random key and uploaded to iCloud. The key and URI (Uniform Resource Identifier) for the attachment are encrypted and signed, as shown below.
For group conversations, this process is repeated for each recipient and their devices.
On the receiving side, each device receives its copy of the message from APNs, and, if
necessary, retrieves the attachment from iCloud. The incoming phone number or email
address of the sender is matched to the receiver’s contacts so that a name can be
displayed, if possible.
As with all push notifications, the message is deleted from APNs when it is delivered.
Unlike other APNs notifications, however, iMessage messages are queued for delivery
to offline devices. Messages are stored for up to seven days.
Se implementato correttamente, ciò significa che i tuoi messaggi sui server Apple possono solo essere decodificati dai dispositivi che hai registrato con Apple per iMessage prima di essere inviati . Inoltre, devi collegare il dispositivo al servizio push di Apple entro 7 giorni dalla trasmissione del messaggio, altrimenti i messaggi verranno eliminati.
Tuttavia, questo è un grande "se":
-
Non esiste un controllo indipendente della base di codice di Apple, quindi i dispositivi utilizzati da te e dai tuoi corrispondenti potrebbero contenere "backdoor" (intenzionali o meno), ad es. debolezza nella generazione di chiavi o perdita di informazioni attraverso canali nascosti - e presumendo che i dispositivi stessi siano "sicuri";
-
Non c'è modo che i tuoi corrispondenti possano verificare che le chiavi pubbliche scoperte (ricevute dalla directory di Apple) siano effettivamente accoppiate con le chiavi private che hai sui tuoi dispositivi - Apple potrebbe sostituirle con quelle di un "uomo in il mezzo "o semplicemente aggiungi una chiave pubblica aggiuntiva per un dispositivo che non possiedi ma che poi sarà in grado di decrittografare tutti i messaggi destinati a te ( tu puoi tentare di rilevare tali attacchi interrogando per il tuo chiavi pubbliche da un altro account e verifica della risposta, sebbene non ci sia ancora alcuna garanzia che Apple non stia fornendo una risposta diversa ad altre parti);
-
Come sempre, la sicurezza è valida quanto il link più debole: i tuoi corrispondenti hanno accesso completo e non criptato alle tue conversazioni e qualsiasi compromissione di essi o dei loro dispositivi porterebbe a un totale compromesso della tua comunicazione.