1 3. přenáška Protokoly přenosu dat Osnova přednášky 2 1. Protokoly RTP 2. Protokol RTPC 3. Protokoly cRTP, SRTP a ZRTP 4. Protokol SCTP 3 1. Protokol RTP Protokol RTP 4 RTP (Real-time Transport Protokol) je aplikační protokol, který byl navržen pro přenos audio/video dat přes Internet. Postaven je na protokolu UDP a jsou mu přidány některé vlastnosti pro zajištění lepšího přenosu mediálních dat. Zajišťuje seřazení jednotlivých paketů (sequence number), jejich časové značkování (timestamp – vzorkovací značka prvního oktetu v paketu) a multiplexování a demultiplexování. Záhlaví je velké obvykle 12 byte. RTP nezajišťuje rezervaci kanálu a negarantuje QoS (Quality of Service ). Verze: 1996 – RFC 1889 a 1890 (verze 2), 2003 – RFC 3550 a 3551 (vylepšují především dohled nad RTP), 2004 – RFC 3711 (SRTP). Doporučený zdroj: Wiki Wireshark http://wiki.wireshark.org/SampleCaptures#SIP_and_RTP RTP v RFC 3550 5 RTP v RFC 3551 6 Formát záhlaví 7  Ver označuje verzi protokolu (dnes se používá verze 2),  P (padding field) v případě P=1 označuje vycpávku v posledním paketu toku  na dorovnání jednotné délky,  X (extension bit) v případě X=1 označuje, že za záhlavím následuje rozšíření paketu s CSRC  význam M (marked field) je dán aplikačním profilem (např. konec paketu v toku rámců). RTP na rozdíl od UDP zavádí následující služby:  identifikace obsahu paketu (PT – payload type);  doručení ve správném pořadí, kontrola ztráty paketu (sequence number);  zavedení časového razítka (timestamp);  rozlišení synchronizačního zdroje – při přenosu více kanálů audio/video (SSRC – indikace synchronizačního zdroje, CSRC – identifikace příspěvkového (contribution) zdroje, používaná při mixování zdrojů). Typy zátěže (PT) 8 Typ kódování médium taktovací počet kanálů kmitočet Jaké je časování odesílání paketů ze zdroje? 9 ∆t = (1400 – 1240)/8 kHz = 160/8000 = 20 ms Neboli 50 paketů za sekundu Přenosu DTMF a jiných tónů řeší RFC 2833 10 Co zde z přenášených údajů o přenosu tónu DTMF podle RFC 2833 vyčteme? 11 Co se dovídáme: - bylo voleno číslo 911 - první číslice „9“ je tón o délce trvání 200 ms (1 600/8 kHz) a začíná v čase 0 - druhé číslice „1“ je tón o délce trvání 250 ms (2 000/8 kHz) a začíná v čase 800 (6 400/8 kHz) časových jednotek, timetamps) - třetí číslice „1“ je tón o délce trvání 50 ms (400/8 kHz) a bylo stisknuto v čase1,4 s (11 200/8 kHz) časových jednotek, timetamps) První generace Cisco IP telefonů (7902, 7905, 7910, 7912, 7940, 7960) RFC 2833 nepodporovala, druhá (7906, 7911, 7941, 7942, 7945, 7961, 7962, 7965, 7970, 7971, 7975) a další už ano. U Cisco Unified Call Manager a je RFC 28833 podporováno od verze 5.0. Je dobré DTMF na branách řešit in-band pomocí Named Telephone Events, které RFC 2811 znají, např. out-of-band SIP signalizace ne. Identifikace volajícího (DTMF): - out-of-band (mimo hovorové pásmo): čísla, kmitočet… - in-band: PCM, tóny v pásmu 300-3400 Hz digitalizované dle G.711. 12 2. Protokol RTPC Protokol RTCP 13 RTP podporuje sloučení několika mediálních toků do jedné relace (session) za účelem podpory aplikací ,jako je pořádání konferenčních hovorů. Chybí mu však zpětná kontrola o tom, zda a v jakém stavu dorazily pakety k příjemci. Z tohoto důvodu je pro protokol RTP implementován doplňkový protokol Real-time Transport Control Protocol (RTCP) zajišťuje odezvu od příjemce k odesílateli. Odesílatel tak může získávat informace o tom, v jaké kvalitě je signál přijímán, kolik paketů se cestou ztratilo nebo jaký byl rozkmit zpoždění (jitter) doručených paketů. Lze tedy s jeho pomocí sledovat úroveň kvality služby. Zpráva od zdroje – Send Report (soubor statistik o přijímaných a vysílaných datech) 14 Zpráva od příjemce – Received Report 15 Vizitky odesilatelů – Source DEScription (vlastnosti odesilatelů RTP komunikace) 16 Packet RTCP s vizitkou SDES odchycený Wiresharkem 17 Verze 2 Zasílání rozšířených zpráv dohledu dle RTCP XR 18 pakety zahozené sítí pakety zahozené uživatelem shluky mezery mezi shluky tam zpět [ms] mezi konci [ms] Residual Echo Return Loss (vzniká ve 4/2 vidlici) MOS-LQ – listening quality, MOS-CQ – conversational quality jitter buffer (adaptive – nonadaptive) Rozšíření RTCP XR (Extended Reports) v RFC 3611 z roku 2003 umožňuje zasílání informace o kvalitě hovoru v MOS. K výměně těchto zpráv se používají tzv. bloky oznámení (Report Blocks), např.: Naměřen údaje lze použít pro vylepšování vlastností přenosu 19 Příklad: Použití Gilbert-Elliotova modelu pro vylepšování vlastností algoritmu PLC ( Packet Loss Concealment) použitého v kodeku G.729A. Zdroj: Jinsul Kim, Seung Ho Han, Hyun-Woo Lee, Won Ryu, and Minsoo Hahn: „QoS-Factor Transmission Control Mechanism for Voice over IP Network based on RTCP-XR Scheme“ Individuální výpadky Výpadky celých skupin paketů Naměřen údaje lze použít pro vylepšování vlastností přenosu 20 Příklad: Použití Gilbert-Elliotova modelu pro vylepšování vlastností algoritmu PLC ( Packet Loss Concealment) použitého v kodeku G.729A. Zdroj: Jinsul Kim, Seung Ho Han, Hyun-Woo Lee, Won Ryu, and Minsoo Hahn: „QoS-Factor Transmission Control Mechanism for Voice over IP Network based on RTCP-XR Scheme“ Individuální výpadky Výpadky celých skupin paketů 21 3. Protokoly cRTP, SRTP a ZRTP cRTP 22 RFC 2508 – komprese záhlaví IP, UDP, RTP pro nízkorychlostní sériová připojení. RFC 2509 – komprese záhlaví IP přes protokol PPP. RFC 3545 – protokol ECRTP pro připojení s vysokým zpožděním, ztrátou paketů zpřeházenými pakety. Podstata: nepřenáší se opakující se stejné údaje. Nevýhoda: Zátěž procesorů na směrovačích. Kalkulace: G.711 - 160 B IP/UDP/RTP 40 B, FR 4 B Celkem 204 B * 50 p/s * 8b = 81,600 kb/s G.711 - 160 B IP/UDP/cRTP 5 B, FR 4 B Celkem 169 B * 50 p/s * 8b = 67,600 kb/s G.729 - 20 B IP/UDP/RTP 40 B, FR 4 B Celkem 64 B * 50 p/s * 8b = 25,600 kb/s G.729 - 20 B IP/UDP/cRTP 5 B, FR 4 B Celkem 29 B * 50 p/s * 8b = 11,600 kb/s Enhanced Compressed RTP v RFC 3545 23 Nástroje pro odposlech (VOIPSA – The Voice over IP Security Alliance) 24 http://www.voipsa.org/Resources/tools.php Protokol SRTP 25 AES je v counter nebo F8 módu 26 1. counter mód E(k, IV) || E(k, IV + 1 mod 2^128) || E(k, IV + 2 mod 2^128)... IV = (k_s * 2^16) XOR (SSRC * 2^64) XOR (i * 2^16) povinný pro šifrování a vyvozování klíčů relace z master key 2. F8 mód (varianta OFB – Output Feedback Block) S(j) = E(k_e, IV' XOR j XOR S(j-1)) volitelný pro šifrování (určen pro pro UMTS 3G mobilní sítě) 27 Generování dodatku pomocí hash funkce 28 Zajištění autenticity a integrity v SRTP HMAC – Hash Message Authentication Code Jde o hash funkci nad zprávou m kombinovanou s klíčem k HMAC(k,m) = H[(k  opad)||H[k  ipad)||m]] ipad = 00110110 opakované 64x opad = 01011100 opakované 64x Je popsána v RFC 2104 V TLS a IP Sec se používá HMAC-MD5 i HMAC-SHA-1, V SRTP jen HMAC-SHA-1 2006: Úspěšný plný útok na MD4 a částečný na MD5 Povinná je i implementace režimu nulové šifry (zajišťují se alespoň tyto vlastnosti) Generování klíčů relace pomocí jednoho master key 29 Pro distribuci je použit protokol nechráněný protokol SDP (viz RFC 4566). ZRTP jako nástavba SRTP (Zimmermann Real-Time Transport Protocol) 30 Pro výměnu klíčů používá mechanismus Diffie-Hellmana (D-H hodnoty 3072 a 4096) a pak přepne do režimu SRTP. Pro zamezení útoku typu MITM používá metody - SAS (Short Authentication Key) – porovnávají se hashe sdíleného symetrického klíče M. Abdall: A Simple Threshold Authenticated Key Exchange from Short. ASIACRYPT 2005. S. Pasini and S. Vaudenay: SAS-Based Authenticated Key Agreement. http://lasecwww.epfl.ch/pub/lasec/doc/PV06b.pdf Pro WiFi patentováno v USA v roce 2009 (Luciana Costa (It)) - Retained secrets – porovnávají se hashe vytvořené z předchozího hashe a z nového sdíleného symetrického klíče. Blíže viz http://realtimesecure.asp2.cz/zrtp.aspx (2010, Vošec - Petr Otoupalík, pěkné) Příklad použití algoritmu D-H 31 1. Dohoda g = 11, n = 347, 1 < g < 347 2. Tajné klíče jsou x = 240, y = 39 3. A počítá X = gx mod n = 11240 mod 347 = 49 B počítá Y = gy mod n = 1139 mod 347 = 285 4. A pošle B 49, B pošle A 285 5. A počítá Yx mod n = 285240 mod 347 = 268 B počítá Xy mod n = 4939 mod 347 = 268 A a B mají dohodnut společný klíč rovný 268, aniž by byl přenášen. Řešení problému s nechráněným přenosem master key v SDP použitím DTLS 32 Příklady řešení bezpečnosti RTP u softphonů 33Na téma penetračnícjh testů doporučuji http://www.cesnet.cz/akce/2010/vzdalena-spoluprace/p/voznak-penetracni-testy.pdf 34 4. Protokol SCTP Protokol SCTP 35 Protokol SCTP (Stream Control Transmission Protocol), je protokol, který se ve VoIP zatím ještě příliš neprosadil. Primárně byl navržen pro přenos PSTN signalizace přes sítě IP, lze jej však použít i pro přenos signalizačních protokolů. Jedná se o nespojovaný protokol, podobně jako UDP, ale na rozdíl od UDP je spolehlivý, doručuje pakety ve správném pořadí a má ochranu proti zahlcení. Protokol rovněž zavádí podporu multihoming, kde se jeden (nebo oba) koncové body, mohou skládat z více IP adres. Data jsou zde přenášena v dávkách zvaných chunk. Každý chunk je identifikován svým typem, osmibitové pole umožňuje definovat 255 typů, RFC 4960 jich zatím definovalo 15. Chunky v SCTP (Wireshark) 36 Zdroje 37 Wiki Wireshark http://wiki.wireshark.org/SampleCaptures#SIP_and_RTP