A ZRTP egy kriptográfiai titkosítási kulcs tárgyalási protokoll , amelyet Voice over IP ( VoIP ) rendszerekben használnak. A ZRTP egy Diffie-Hellman-kulcslevezetési módszert ír le a Secure Real-time Transport Protocol ( SRTP ) számára. A ZRTP ugyanabban az RTP adatfolyamban hajtja végre a kulcsegyeztetést , amelyen keresztül az audio/video kapcsolat létrejön, azaz nem igényel külön kommunikációs csatornát. Phil Zimmermann ( A Pretty Good Privacy szerzője ), Jon Callas és Alan Johnston tervezte 2006-ban. A protokoll leírását 2006. március 5-én nyújtották be az IETF -hez.
A ZRTP-t javasolják a titkosítási kulcsok Diffie-Hellman módszerrel történő tárgyalására az RTP (Real-time Transport Protocol) protokoll által létrehozott médiafolyamon keresztül, amely hívás kezdeményezése után jön létre, bármilyen típusú jelzés használatával, például - Session Initiation Protocol ( SIP ). A hívás során létrejön egy nyilvános azonosító, amely a beszélgetés médiafolyamának titkosítására szolgáló kulcsok létrehozására szolgál. Így a kulcs csak egy beszélgetésre érvényes, így biztonságos RTP ( SRTP ) munkamenetet képez. Amikor a kapcsolat megszakad, a kulcs és a teljes kriptográfiai kontextus megsemmisül, tökéletes továbbító titkosságot (PFS) biztosítva. Így van lehetőség arra, hogy ezt a mechanizmust beépítsék a meglévő VoIP szoftvertermékekbe, átjárókba és IP-telefonokba.
A protokollhoz nincs szükség előre generált kulcsokra, vagy kulcscsere-infrastruktúra ( PKI ) vagy tanúsító hatóság (CA) támogatására. Ez kiküszöböli a bizalomalapú engedélyezési struktúra létrehozásának bonyolultságát, például az SSL -titkosításban használtakat . A titkosított csatorna megszervezésének fő célja, legyen az hangmunka vagy https kapcsolat egy internetbankkal, hogy elkerüljük egy férfi jelenlétét a közepén ( man in the middle ), egyetlen kriptográfiai védelmet biztosítva. az IP világ bármely két pontja között.
A ZRTP elméletileg bármilyen jelzési protokollal együtt használható, amely RTP -t használ a média streaminghez, beleértve a SIP -t , a H.323 -at , az SCCP -t , az MGCP Unistim -et és a Jingle -t, mivel elméletileg a ZRTP nem függ az RTP-médiamunkamenetben a kulcsok cseréjével történő jelzéstől. Így a ZRTP de facto nyílt szabványmá válhat az IP-telefónia világában.
A Diffie-Hellman kulcscsere algoritmus önmagában nem tud védelmet nyújtani egy férfi jelenlétével szemben a középen (ember a közepén) . A ZRTP a Short Authentication String-et (SAS) használja a hitelesítéshez, amely a kapott Diffie-Hellman kulcsok kriptográfiai kivonatának rövidített ábrázolása. A SAS értékeket a kapcsolat mindkét oldalán kiszámítják, az előfizetők hangon továbbítják őket egymásnak ellenőrzés céljából. Ha az értékek nem egyeznek, akkor nagy biztonsággal feltételezhetjük a Man_in középen jelenlétét . A Diffie-Hellman algoritmus használatával a potenciális Man -in-the-Middle egyetlen kísérletet tesz lehetővé a megfelelő SAS létrehozására, amikor támadást kísérel meg. Mivel a SAS a hash felső 32 bitjéből származik, és két ábrázolási formája van (16 bites B256 szópárként a PGP listából és 20 bites B32 négy karakterből), ezért nagyon rövid, a valószínűsége A B256 formátumú SAS használatakor nem észlel támadást az 1/65536. A SAS használata a B32 formátumban 16-szorosára csökkenti a támadás észlelésének valószínűségét (a B256-hoz képest), 1/1048576-ra.
A ZRTP védelem második rétege az ember a középső támadásokkal szemben a kulcsanyag folytonossága. Az előző hívás kulcsinformációinak hash-je a következő hívásnál (ugyanazon előfizetők között) keveredik a Diffie-Hellman algoritmus paramétereibe, ami a ZRTP protokollt az SSH-hoz hasonlóvá teszi. Ha az első hívásnál nem volt „ember a közepén”, akkor az összes következő hívásból kizárásra kerül.