1 3. přenáška Protokoly přenosu dat Osnova přednášky 2 1. Protokoly RTP 2. Protokol RTCP 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 K čemu RTP slouží 5 Poskytuje mechanizmy pro koncové multimediální přenosy v reálném čase. Protokol podporuje přenos dat mezi dvěma i více účastníky. - Identifikace rámce – Identifikuje začátek a konec rámce - Rekonstrukce správného pořadí paketů na základě sekvenčních čísel - Synchronizace: Určuje správný okamžik přehrávání dat na základě časových razítek, a to - Intermedia – Synchronizace více médií (audio-video-text) - Identifikace toku – Identifikuje typ médií a jeho kódování RTP v RFC 3550 6 RTP v RFC 3551 7 Formát záhlaví 8  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. Poslední oktet obsahuje informaci o tom, kolik oktetů bylo celkem přidáno,  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) 9 Typ kódování médium taktovací počet kanálů kmitočet Jaké je časování odesílání paketů ze zdroje? 10 ∆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 11 Co zde z přenášených údajů o přenosu tónu DTMF podle RFC 2833 vyčteme? 12 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. 13 2. Protokol RTPC Protokol RTCP 14 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. Periodické posílání mezi účastníky komunikace (na jiném portu než RTP – o jedna větší). Šířka pásma pro RTCP nesmí přesáhnout 5 % šířky pásma pro RTP spojení. Zpráva od zdroje – Send Report (soubor statistik o přijímaných a vysílaných datech) 15 Zpráva od příjemce – Received Report 16 Vizitky odesilatelů – Source DEScription (vlastnosti odesilatelů RTP komunikace) 17 Packet RTCP s vizitkou SDES odchycený Wiresharkem 18 Verze 2 Zasílání rozšířených zpráv dohledu dle RTCP XR 19 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 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ů Naměřen údaje lze použít pro vylepšování vlastností přenosu 21 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ů 22 3. Protokoly cRTP, SRTP a ZRTP cRTP 23 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 24 Nástroje pro odposlech (VOIPSA – The Voice over IP Security Alliance) 25 http://www.voipsa.org/Resources/tools.php Protokol SRTP (Secure Real-time Transport Protocol) 26 Formát SRTP paketu (zdroj http://realtimesecure.asp2.cz/srtp.aspx) 27 Pole, která jsou navíc oproti RTP: MKI a Authentication tag. Pole, která jsou navíc oproti RTP 28 Master Key Identifier (MKI) – nepovinné a identifikuje master key, od kterého jsou odvozeny tajné symetrické klíče session keys (klíče relace). Klíče relace jsou dohodnuty mezi uživateli hned po navázání spojení a po zbytek celé relace se jimi šifrují přenášená multimediální data. Nejdřív si ovšem komunikující strany musí vyměnit master key, pomocí kterého si pak vygenerují všechny potřebné klíče sezení. K výměně master key se může použít protokol SDP (protokol pro inicializaci relací). Ten ale neposkytuje žádnou formu zabezpečení a tak je třeba navíc použít protokoly TLS nebo IPSec. Authentication tag je šifrovaný kontrolní součet záhlaví a těla RTP paketu. Je doporučený a chrání pakety od neautorizované změny obsahu. Formát paketu SRTCP 29 SRTCP paket je chráněný obdobně jako SRTP paket, ale na rozdíl od SRTP je zde pole Authentication tag povinné. Jinak by bylo například možné ukončit spojení, kdyby útočník poslal paket BYE. Navíc je zde ještě pole SRTCP index, který se používá jako čítač pořadí SRTCP paketů a slouží k zabránění opakovaným útokům. První bit v tomto poli E se používá jako šifrovací značka (Encryption flag), která značí, jestli bylo tělo SRTCP paketu šifrováno. AES je v counter nebo F8 módu 30 1. counter mód E(k, IV) || E(k, IV + 1 mod 2^128) || E(k, IV + 2 mod 2^128)... povinný pro šifrování a vyvozování klíčů relace z master key Algoritmus umožňuje příjemci zpracovat přijaté pakety v nestanoveném pořadí, což je požadováno při použití real-time aplikací, kde pakety nemusí být vždy spolehlivě doručeny. IV = (k_s * 2^16) XOR (SSRC * 2^64) XOR (i * 2^16) Inicializační vektor IV’, který se skládá z kontrolního součtu salt_key k_s, SSRC (náhodné číslo jednoznačně identifikující zdroj) a indexu paketu i. 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ě) 31 Generování dodatku pomocí hash funkce 32 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 Vzhledem k tomu, že je při přenosu kladen důraz na co nejmenší šířku přenosového pásma, je výsledný kontrolní součet zkrácen na 80 nebo 32 bitů. Generování klíčů relace pomocí jednoho master key 33 Pro distribuci je použit protokol nechráněný protokol SDP (viz RFC 4566). ZRTP jako nástavba SRTP (Zimmermann Real-Time Transport Protocol) 34 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 35 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 36 Příklady řešení bezpečnosti RTP u softphonů 37Na téma penetračnícjh testů doporučuji http://www.cesnet.cz/akce/2010/vzdalena-spoluprace/p/voznak-penetracni-testy.pdf 38 4. Protokol SCTP Protokol SCTP 39 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) 40 Zdroje 41 Wiki Wireshark http://wiki.wireshark.org/SampleCaptures#SIP_and_RTP