
Sikkerhed til Tjek ankomst
Med Tjek ankomst kan en bruger vælge en kontakt, som får besked, hvis brugerens understøttede enhed ikke ankommer til en forudbestemt destination. Når brugeren vælger en kontakt, som brugeren vil starte Tjek ankomst med, sendes der en iMessage til kontakten med oplysninger om sessionen og brugerens destination. Brugeren, som starter sessionen, genererer også et adgangstoken og en krypteringsnøgle til Tjek ankomst. Krypteringsnøglen til Tjek ankomst sendes i en anden iMessage-besked, men beskeden opbevares af iMessage-servere i stedet for at blive leveret med det samme. Da beskeden er end-to-end-krypteret mellem brugeren og brugerens udpegede kontakt, er beskedens indhold ikke tilgængelig for Apple.
Mens brugerens enhed, der har startet sessionen, bevæger sig hen imod sin destination, sender enheden løbende en heartbeat-besked til iMessage-servere, som forlænger udløbstiden, før krypteringsnøglebeskeden til Tjek ankomst leveres. Hvis enheden slukkes eller mister forbindelsen, frigiver iMessage-serverne automatisk iMessage-beskeden med krypteringsnøglen til kontakten, når tiden er udløbet. Krypteringsnøglebeskeden til Tjek ankomst kan også frigives, hvis enheden ikke bevæger sig hen imod sin destination. Når beskeden frigives på denne måde, inkluderes adgangstokenet.
Under en Tjek ankomst-session indsamler brugerens enhed, som har startet sessionen, løbende relevante Tjek ankomst-data (f.eks. lokalitet og batteriniveau), krypterer dataene med nøglen til Tjek ankomst og overfører dem til iCloud. Apple har ikke adgang til nøglen til Tjek ankomst og har ikke adgang til de overførte data.
Der kræves godkendelse fra brugeren for at slutte en session med Tjek ankomst. Hvis brugeren annullerer en session, slettes de krypterede data og iMessage-beskeden med krypteringsnøglen til Tjek ankomst på sikker vis fra serveren.
Hvis enheden med Tjek ankomst ikke er nået frem til sin destination som forventet, eller den indstillede tidtagning udløber, modtager den valgte kontakt iMessage-beskeden med krypteringsnøglen til Tjek ankomst. Der er to situationer, hvor dette kan ske:
Når forbindelsen mistes: I dette tilfælde har den udpegede kontakt ikke adgangstokenet, og kontaktens enhed foretager en ny kontrol for at vurdere, om der er gået tilstrækkeligt med tid siden sidste heartbeat. Kontaktens enhed anmoder om de krypterede Tjek ankomst-data fra serveren, og serveren udfører en tredje kontrol for igen at bekræfte, at der er gået tilstrækkeligt med tid siden sidste heartbeat. Hvis dette er tilfældet, sender serveren de krypterede data om Tjek ankomst til kontakten, og kontakten kan dekryptere dataene med nøglen til Tjek ankomst.
Når brugerens enhed har vurderet, at brugeren ikke bevæger sig hen imod sin destination: I dette tilfælde modtager den udpegede kontakt både adgangstokenet og krypteringsnøglen til Tjek ankomst, medmindre brugeren annullerer eller forlænger Tjek ankomst, når brugeren bliver bedt om det. Kontaktens enhed sender adgangstokenet til serveren, så enheden kan hente de krypterede data til Tjek ankomst. Dataene kan derefter krypteres med nøglen til Tjek ankomst.