Korábban már megemlítettük azt a dokumentumot, amit az Apple nemrég élesített weboldalán: ebben egy sor titkosítási és biztonsági mechanizmust írnak le, olyan eljárásokat, amiket korábban csak találgattunk.

Ebben elmagyarázzák azt is, hogyan működik az iMessage üzenetek titkosítása. Akit érdekel a kriptográfia, annak érdekes lehet, a többiek nézzenek most félre.

imessage-graphic.png

Az iMessage a nyílt/nyilvános kulcsú rejtjelezés vagy aszimmetrikus kulcsú titkosítás módszerét használja. Ennek ugye az a lényege, hogy a kommunikációban résztvevő feleknek két kulcsuk van: egy publikus és egy saját, titkos kulcs. A publikus bárki által elérhető: ha valaki üzenetet akar küldeni nekünk, csak letölti a nyilvános kulcsunkat, titkosítja vele az üzenetet, és elküldi. A lényeg az algoritmusban van: ezt az üzenetet kizárólag a rejtett kulccsal lehet dekódolni, a nyilvános kulccsal nem.

Ennyit az alapokról, most lássuk, hogyan használja ezt a módszert az iMessage:

  • Amikor először bekapcsolja a felhasználó a szolgáltatást, a készülék két-két publikus és saját kulcsot generál. Az egyik pár az adatok titkosítását (AES-128) és dekódolását végzi majd, a másik párt az adataláírásra használják majd (az ebben lévő ellenőrző kód mutatja meg, változott-e az adat, mielőtt a célba ért)
  • A publikus kulcsot az Apple szervereinek elküldi a készülékünk, itt eltárolják. A titkos kulcs a készüléken marad, és sosem hagyja el azt.
  • Amikor valaki iMessage üzenetet akar küldeni neked, a készüléke letölti a szerverről a publikus kulcsodat. Az üzenetet ezzel a kulccsal kódolja az ő szoftvere, és úgy küldi ki, hogy azt már csak a te titkos kulcsoddal lehet dekódolni.
  • Bizonyos adatok (időbélyeg, routing infók) nem kerülnek titkosításra. A vegyes csomagot, ami a titkosított üzenetből és nem titkosított információkból áll, az Apple szerverei egyetlen nagy csomagban titkosítják újra.
  • Képek esetében más a helyzet. Itt a készülék generál egy random kulcsot és egy URI-t (a cím, amivel eléred a képet az Apple szerverén). Ezt az Apple elküldi neked a publikus kulcsoddal titkosítva. Amint megnyitod a képet, és a random kulccsal igazolod magad, a kép átkerül a készülékre, és azonnal törlésre kerül az Apple szerveréről. Ha több készüléked van, a másik készülékre vonatkozóan az adat hét napig vár a megnyitásra, aztán azt is törlik.
  • Ha több készüléked van, minden egyes készüléked esetében lezajlik ez a művelet. Vagyis egyetlen iMessage üzenethez akár három-négy publikus kulcsot kell letölteni, azzal titkosítani, elküldeni. Az Apple több példányban küld tovább a számára értelmezhetetlen információt, és azt minden célkészülék saját magának dekódolja.

via Techcrunch