![](https://help.apple.com/assets/627EBB4D4FDDD519030FB00A/627EBB504FDDD519030FB012/fi_FI/52d714626638d3391623c853be0c593b.png)
Miten iMessage lähettää ja vastaanottaa viestejä suojatusti
Käyttäjät aloittavat uuden iMessage-keskustelun syöttämällä osoitteen tai nimen. Jos he syöttävät puhelinnumeron tai sähköpostiosoitteen, laite ottaa yhteyttä Applen IDS-palveluun noutaakseen julkiset avaimet ja APNs-osoitteet kaikille vastaanottajaan liitetyille laitteille. Jos käyttäjä syöttää nimen, laite kerää ensin käyttäjän Yhteystiedot-apista nimeen liittyvät puhelinnumerot ja sähköpostiosoitteet ja hankkii sitten julkiset avaimet ja APNs-osoitteet IDS-palvelusta.
Käyttäjän lähtevä viesti salataan yksilöllisesti jokaiselle vastaanottajan laitteelle. Vastaanottavien laitteiden julkiset salausavaimet ja allekirjoitusavaimet noudetaan IDS-palvelusta. Lähettävä laite luo jokaiselle vastaanottavalle laitteelle satunnaisen 88-bittisen arvon ja käyttää sitä HMAC-SHA256-avaimena muodostaakseen 40-bittisen arvon lähettäjän ja vastaanottajan julkisesta avaimesta ja ilmitekstistä. Yhdistämällä 88-bittinen ja 40-bittinen arvo saadaan 128-bittinen avain, joka salaa viestin AES-salauksella laskuritilassa (CTR). Vastaanottajapuoli käyttää 40-bittistä arvoa salauksesta puretun ilmitekstin eheyden tarkistukseen. Tämä viestikohtainen AES-avain salataan käyttäen RSA-OAEP:tä vastaanottavan laitteen julkiseen avaimeen. Salatun viestitekstin ja salatun viestiavaimen yhdistelmä tiivistetään käyttäen SHA-1:tä, ja tiiviste allekirjoitetaan elliptisten käyrien allekirjoitusalgoritmilla (ECDSA) käyttäen lähettävän laitteen yksityistä allekirjoitusavainta. iOS 13:ssa tai uudemmissa ja iPadOS 13.1:ssä tai uudemmissa laitteet voivat käyttää ECIES-salausta (Elliptic Curve Integrated Encryption Scheme) RSA-salauksen sijaan.
Tuloksena oleva oma viesti jokaiselle vastaanottavalle laitteelle koostuu salatusta viestitekstistä, salatusta viestiavaimesta ja lähettäjän digitaalisesta allekirjoituksesta. Ne lähetetään APNs-palvelun toimitettaviksi. Metadataa, kuten aikaleimaa ja APNs:n reititystietoja, ei salata. Viestintä APNs-palvelun kanssa salataan käyttäen TLS-kanavaa, jossa paljastuneella avaimella ei voi purkaa aiemmin salattuja viestejä (forward secrecy).
APNs-palvelu voi välittää vain enintään 4 tai 16 Kt kokoisia viestejä riippuen iOS- tai iPadOS-versiosta. Jos viestin teksti on liian pitkä tai jos siihen sisältyy liite, kuten kuva, liite salataan käyttäen AES-salausta CTR-tilassa satunnaisesti generoidulla 256-bittisellä avaimella ja ladataan iCloudiin. Liitteen AES-avain, sen URI (Uniform Resource Identifier) ja sen salatun muodon SHA-1-tiiviste lähetetään sitten vastaanottajalle iMessage-viestin sisältönä, jossa niiden luottamuksellisuus ja eheys on suojattu iMessagen tavallisella salauksella seuraavan kaavion mukaisesti.
![Kaavio, joka näyttää, miten iMessage lähettää ja vastaanottaa viestejä.](https://help.apple.com/assets/627EBB4D4FDDD519030FB00A/627EBB504FDDD519030FB012/fi_FI/eab102494f85d7f515876506263134dd.png)
Ryhmäkeskusteluissa tämä prosessi toistetaan kullekin vastaanottajalle ja heidän laitteilleen.
Vastaanottajapuolella kukin laite vastaanottaa oman kopionsa viestistä APNs-palvelulta ja tarvittaessa noutaa liitteen iCloudista. Lähettäjän saapuvaa puhelinnumeroa tai sähköpostiosoitetta verrataan vastaanottajan yhteystietoihin, jotta nimi voidaan näyttää, jos se on mahdollista.
Kuten kaikki push-ilmoitukset, viesti poistetaan APNs-palvelusta, kun se on toimitettu. Kuitenkin toisin kuin muut APNs-ilmoitukset, iMessage-viestit laitetaan jonoon odottamaan toimittamista poissa linjoilta oleviin laitteisiin. Viestejä säilytetään Applen palvelimilla enimmillään 30 päivää.