
Hur iMessage skickar och tar emot meddelanden pÄ ett sÀkert sÀtt
AnvÀndarna startar en ny iMessage-konversation genom att ange en adress eller ett namn. Om de skriver in ett telefonnummer eller en e-postadress kontaktar enheten IDS (Apple Identity Service) och hÀmtar de publika nycklarna och APNs-adresserna för alla enheter som Àr kopplade till mottagaren. Om anvÀndaren skriver in ett namn anvÀnder enheten först appen Kontakter till att samla in telefonnummer och e-postadresser som Àr kopplade till det namnet. Sedan hÀmtar enheten de publika nycklarna och APNs-adresserna frÄn IDS.
AnvĂ€ndarens utgĂ„ende meddelande krypteras enskilt för var och en av mottagarens enheter. De publika krypteringsnycklarna och signeringsnycklarna för de mottagande enheterna hĂ€mtas frĂ„n IDS. För varje mottagande enhet genererar den avsĂ€ndande enheten ett slumpmĂ€ssigt 88-bitarsvĂ€rde och anvĂ€nder det som en HMAC-SHA256-nyckel för att konstruera ett 40-bitarsvĂ€rde hĂ€rlett frĂ„n avsĂ€ndarens och mottagarens publika nyckel och texten. HoplĂ€nkningen av 88-bitars- och 40-bitarsvĂ€rdet ger en 128-bitarsnyckel som krypterar meddelandet med AES i CTR-lĂ€ge (Counter). 40-bitarsvĂ€rdet anvĂ€nds av mottagarsidan till att verifiera integriteten för den avkrypterade texten. Denna AESânyckel per meddelande krypteras med RSA-OAEP till den publika nyckeln för den mottagande enheten. Kombinationen av den krypterade meddelandetexten och den krypterade meddelandenyckeln bearbetas med hashfunktionen SHA-1, och hashvĂ€rdet signeras med ECDSA (Elliptic Curve Digital Signature Algorithm) med hjĂ€lp av den avsĂ€ndande enhetens privata signeringsnyckel. I iOS 13 eller senare och iPadOS 13.1 eller senare kan enheter anvĂ€nda ECIES-kryptering (Elliptic Curve Integrated Encryption Scheme) istĂ€llet för RSA-kryptering.
De resulterande meddelandena, ett för varje mottagande enhet, bestÄr av den krypterade meddelandetexten, den krypterade meddelandenyckeln och avsÀndarens digitala signatur. Dessa skickas sedan till APNs för leverans. Metadata som tidsstÀmpel och APNs-routinginformation krypteras inte. Kommunikation med APNs krypteras med en sÄ kallad FS-TLS-kanal.
APNs kan endast vidarebefordra meddelanden pÄ upp till 4 eller 16 KB beroende pÄ iOS- eller iPadOS-version. Om meddelandet Àr för lÄngt, eller om en bild eller annan bilaga ingÄr, krypteras bilagan med hjÀlp av AES i CTR-lÀge med en slumpgenererad 256-bitarsnyckel och överförs till iCloud. Bilagans AES-nyckel, dess URI (Uniform Resource Identifier) och ett SHA-1-hashvÀrde för dess krypterade form skickas sedan till mottagaren som innehÄllet i ett iMessage. Deras konfidentialitet och integritet skyddas genom normal iMessage-kryptering (se diagrammet nedan).

NÀr det gÀller gruppkonversationer upprepas processen för varje mottagare och deras enheter.
PÄ den mottagande sidan fÄr varje enhet en kopia av meddelandet frÄn APNs och hÀmtar bilagan frÄn iCloud nÀr det behövs. AvsÀndarens inkommande telefonnummer eller e-postadress matchas mot mottagarens kontakter sÄ att ett namn kan visas om möjligt.
I likhet med alla pushnotiser raderas meddelandet frÄn APNs nÀr det har levererats. Men till skillnad frÄn andra pushnotiser stÀlls iMessage-meddelanden i kö för leverans till enheter som Àr offline. Meddelanden lagras pÄ Apple-servrar i upp till 30 dagar.