ZRTP
ZRTP (som består av Z och Real-time Transport Protocol ) är ett kryptografiskt nyckelavtalsprotokoll för att förhandla fram nycklarna för kryptering mellan två slutpunkter i ett Voice over IP (VoIP) telefonsamtal baserat på Real-time Transport Protocol . Den använder Diffie–Hellman-nyckelutbyte och Secure Real-time Transport Protocol (SRTP) för kryptering. ZRTP utvecklades av Phil Zimmermann , med hjälp av Bryce Wilcox-O'Hearn , Colin Plumb, Jon Callas och Alan Johnston och skickades till Internet Engineering Task Force (IETF) av Zimmermann, Callas och Johnston den 5 mars 2006 och publicerades den 11 april 2011 som RFC 6189 .
Översikt
ZRTP ("Z" är en referens till dess uppfinnare, Zimmermann; "RTP" står för Real-time Transport Protocol) beskrivs i Internet Draft som ett "nyckelavtalsprotokoll som utför Diffie–Hellman-nyckelutbyte under samtalsuppkoppling i bandet i Real-time Transport Protocol (RTP) mediaström som har etablerats med hjälp av något annat signaleringsprotokoll såsom Session Initiation Protocol (SIP).Detta genererar en delad hemlighet som sedan används för att generera nycklar och salt för en Secure RTP (SRTP) ) session." En av ZRTP:s funktioner är att den inte förlitar sig på SIP-signalering för nyckelhanteringen, eller på några servrar alls. Den stöder opportunistisk kryptering genom automatisk avkänning om den andra VoIP-klienten stöder ZRTP.
Detta protokoll kräver inte tidigare delade hemligheter eller förlitar sig på en Public Key Infrastructure (PKI) eller på certifieringsmyndigheter, i själva verket genereras tillfälliga Diffie–Hellman-nycklar på varje sessionsetablering: detta möjliggör komplexiteten att skapa och underhålla en betrodd tredje part att förbigås.
Dessa nycklar bidrar till genereringen av sessionshemligheten, från vilken sessionsnyckeln och parametrarna för SRTP-sessioner härleds, tillsammans med tidigare delade hemligheter (om några): detta ger skydd mot man-in-the-middle (MiTM)-attacker , så länge som angriparen inte var närvarande i den första sessionen mellan de två slutpunkterna.
ZRTP kan användas med alla signaleringsprotokoll, inklusive SIP, H.323 , Jingle och distribuerade hashtabellsystem . ZRTP är oberoende av signallagret, eftersom alla dess nyckelförhandlingar sker via RTP-medieströmmen.
ZRTP/S, ett ZRTP-protokollförlängning, kan köras på alla typer av äldre telefoninätverk inklusive GSM, UMTS, ISDN, PSTN, SATCOM , UHF / VHF -radio, eftersom det är ett smalbandigt bitströmsorienterat protokoll och utför alla nyckelförhandlingar inuti bitströmmen mellan två ändpunkter.
Alan Johnston döpte protokollet till ZRTP eftersom det i sina tidigaste internetutkast var baserat på att lägga till rubriktillägg till RTP-paket, vilket gjorde ZRTP till en variant av RTP. I senare utkast ändrades paketformatet för att göra det syntaktiskt särskiljbart från RTP. Med tanke på den förändringen är ZRTP nu en pseudo-akronym .
Autentisering
Diffie –Hellman-nyckelutbytet i sig ger inte skydd mot en man-i-mitten-attack. För att säkerställa att angriparen verkligen inte är närvarande i den första sessionen (när det inte finns några delade hemligheter) Short Authentication String (SAS): de kommunicerande parterna korskontrollerar verbalt ett delat värde som visas vid båda slutpunkterna. Om värdena inte stämmer överens indikeras en man-in-the-midten-attack. En specifik attack som teoretiserats mot ZRTP-protokollet involverar att skapa en syntetisk röst från båda parter för att läsa en falsk SAS som är känd som en "Rich little attack", men denna klass av attack tros inte vara en allvarlig risk för protokollets säkerhet. SAS används för att autentisera nyckelutbytet, som i huvudsak är en kryptografisk hash av de två Diffie–Hellman-värdena. SAS-värdet återges till båda ZRTP-ändpunkterna. För att utföra autentisering läses detta SAS-värde upp för kommunikationspartnern över röstanslutningen. Om värdena i båda ändarna inte stämmer överens, indikeras en man-in-midten-attack; om de matchar är det högst osannolikt en man-i-mitt-attack. Användningen av hash-engagemang i DH-börsen begränsar angriparen till endast en gissning för att generera rätt SAS i attacken, vilket innebär att SAS kan vara ganska kort. En 16-bitars SAS, till exempel, ger angriparen bara en chans av 65536 att inte bli upptäckt.
Nyckelkontinuitet
ZRTP tillhandahåller ett andra lager av autentisering mot en MitM-attack, baserat på en form av nyckelkontinuitet. Den gör detta genom att cachelagra lite hashad nyckelinformation för användning i nästa samtal, för att blandas in med nästa samtals DH delade hemlighet, vilket ger det nyckelkontinuitetsegenskaper analoga med SSH . Om MitM inte är närvarande i det första samtalet spärras han ute från efterföljande samtal. Således, även om SAS aldrig används, stoppas de flesta MitM-attacker eftersom MitM inte var närvarande i det första samtalet.
Driftmiljö
- ZRTP-protokollet har implementerats och använts på följande plattformar: Windows , Linux , Android
- ZRTP-protokollet har implementerats på följande språk: C , C++ , Java
- ZRTP-protokollet har använts framgångsrikt på följande transportmedia: WiFi , UMTS , EDGE , GPRS , Satellite IP-modem , GSM CSD , ISDN
Genomföranden
ZRTP har implementerats som
- GNU ZRTP som används i Twinkle
- GNU ZRTP4J som används i Jitsi (tidigare SIP Communicator).
- ortp för användning i Linphone .
- libzrtp som kan användas i FreeSWITCH .
- Signal och dess föregångare, RedPhone , använde ZRTP för krypterade samtal på Android och iOS. Från och med mars 2017 använder Signals röst- och videosamtalsfunktioner appens Signal Protocol- kanal för autentisering istället för ZRTP.
- CSipSimple är en gratis applikation för Android OS som fullt ut stöder ZRTP
- PhonerLite softphone för Windows stöder ZRTP
Kommersiella implementeringar av ZRTP är tillgängliga i RokaCom från RokaCom och PrivateWave Professional från PrivateWave och på senare tid i Silent Phone från Silent Circle, ett företag som grundats av Zimmermann. Det finns även Softphone från Acrobits. Draytek stödjer ZRTP i en del av deras VoIP-hårdvara och mjukvara.
En lista över gratis SIP-leverantörer med ZRTP-stöd har publicerats.
- ^ Alan B. Johnstons blogg: ZRTP Publicerad idag som RFC 6189 . Hämtad 2013-01-13
- ^ Zimmermann, Phil (2010-06-17). "Internet-Draft. ZRTP: Media Path Key Agreement för Unicast Secure RTP" . Hämtad 2010-06-17 .
- ^ "Twinkle - SIP softphone för Linux" . Twinklephone.com . 25 februari 2009 . Hämtad 4 mars 2016 .
- ^ "Zrtp FAQ" . jitsi.org . Hämtad 4 mars 2016 .
- ^ "oRTP, ett Real-time Transport Protocol (RTP,RFC3550) bibliotek | Linphone, en öppen källkod video sip phone" . Linphone.org. Arkiverad från originalet 2013-12-09 . Hämtad 2014-06-07 .
- ^ "ZRTP - FreeSWITCH Wiki" . FreeSWITCH Wiki. 2009-05-21 . Hämtad 2016-01-20 .
- ^ "FreeSWITCH stöder nu ZRTP!" . FreeSWITCH . 21 maj 2009 . Hämtad 4 mars 2016 .
- ^ Andy Greenberg (2014-07-29). "Din iPhone kan äntligen ringa gratis, krypterade samtal" . Trådbunden . Hämtad 2015-01-18 .
- ^ Marlinspike, Moxie (14 februari 2017). "Videosamtal för Signal nu i offentlig beta" . Öppna Whisper Systems . Hämtad 15 februari 2017 .
- ^ Mott, Nathaniel (14 mars 2017). "Signals krypterade videosamtal för iOS, Android lämnar beta" . Toms hårdvara . Purch Group, Inc. Hämtad 14 mars 2017 .
- ^ a b "Gratis SIP-leverantörer med ZRTP-stöd" . The Guardian Project. 22 februari 2012 . Hämtad 4 mars 2016 .
- ^ "PhonerLite" . Phonerlite.de . Hämtad 4 mars 2016 .
- ^ "RokaCom" . RokaCom. 2014-11-29.
- ^ "PrivateWave" . PrivateWave. 1999-02-22 . Hämtad 2014-06-07 .
- ^ Gå med på ett livewebinarium. "Tyst cirkel" . Tyst cirkel . Hämtad 2014-06-07 .
- ^ "Softphone" . Acrobits . Hämtad 2015-01-21 .
- ^ "Specifikation av Draytek 2820Vn ADSL-modem/router/switch" . Ipbusinessphones.co.uk. 2013-08-13 . Hämtad 2014-06-07 .
- ^ "Draytek Softphone (programvara) beskrivning" . Draytek.co.uk . Hämtad 2014-06-07 .
externa länkar
- RFC 6189 — ZRTP: Media Path Key Agreement för Unicast Secure RTP