Sikker deling af navn og foto i iMessage
Deling af navn og foto i iMessage gør det muligt for en bruger at dele et navn og et foto ved brug af iMessage. Brugeren kan vælge oplysningerne fra Mit kort eller redigere navnet og inkludere et billede efter eget valg. Deling af navn og foto i iMessage benytter et totrinssystem til at distribuere navnet og fotoet.
Oplysningerne underopdeles i felter, der bliver krypteret og godkendt hver for sig samt godkendt samlet i nedenstående proces. Der er tre felter:
Navn
Foto
Fotoarkivnavn
Et af de første trin i datagenereringen er at generere en tilfældig 128-bit postnøgle på enheden. Denne postnøgle bliver derefter afledt med HKDF-HMAC-SHA256 for at oprette tre undernøgler: Nøgle 1:Nøgle 2:Nøgle 3 = HKDF (postnøgle, “kaldenavne”). For hvert felt genereres der en 96 bit IV-værdi (Initialization Vector), og oplysningerne bliver krypteret med AES-CTR og Nøgle 1. Der bliver beregnet en MAC-værdi (kode til godkendelse af besked) med HMAC-SHA256 ved brug af Nøgle 2, som dækker feltnavnet, felt-IV og feltets ciffertekst. Til sidst bliver de individuelle MAC-feltværdier sammenkædet, og deres MAC beregnet med HMAC-SHA256 ved brug af Nøgle 3. 256-bit MAC-værdien bliver gemt sammen med de krypterede data. De første 128 bits i denne MAC-værdi bliver brugt som RecordID.
Den krypterede post bliver derefter gemt i den offentlige database i CloudKit under sit RecordID. Denne post bliver aldrig ændret, og når brugeren vælger at ændre sit navn og foto, bliver der hver gang genereret en ny krypteret post. Når bruger 1 vælger at dele sit navn og foto med bruger 2, sendes postnøglen sammen med recordID’et inde i iMessage-datastrømmen, som er krypteret.
Når bruger 2's enhed modtager disse iMessage-data, noterer den, at dataene indeholder et kaldenavn og et foto-recordID samt en nøgle. Bruger 2’s enhed foretager et opkald i den offentlige CloudKit-database for at hente det krypterede navn og foto i recordID-posten og sender oplysningerne videre ved hjælp af iMessage.
Når beskeden er modtaget, dekrypterer bruger 2's enhed dataene og kontrollerer signaturen ved at bruge selve recordID'et. Hvis dette godkendes, får bruger 2 navn og foto, og vedkommende kan vælge at føje dette til sine kontakter eller bruge det til iMessage.