Princip zabezpečení protokolem SRTP

Protože protokoly RTP a RTCP neobsahují žádné mechanismy pro zajištění integrity, autentičnosti a důvěrnosti, byly definovány protokoly SRTP (Secure RTP) a SRTCP (Secure RTCP), které už mají požadované mechanismy implementované.

Formát paketu protokolu SRTP je znázorněn na obrázku 1. Na obrázku je vidět, že šifrovaná je pouze část paketu RTP, kam jsou vkládána přenášená data. Oproti paketu RTP jsou zde navíc dvě pole – MKI a Authentication tag.

Obr. 1: Formát SRTP paketu
Obr. 1: Formát SRTP paketu

Pole Master Key Identifier (MKI) je nepovinné a identifikuje master key, od kterého jsou odvozeny tajné symetrické klíče session keys (klíče sezení). Klíče sezení 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 bezpečnostní mechanismy typu TLS nebo IPsec.

Authentication tag je šifrovaný kontrolní součet hlavičky a těla RTP paketu. Je doporučený a chrání pakety od neautorizované změny obsahu.

Na obrázku 2 je znázorněn formát paketu SRTCP. SRTCP paket je chráněný obdobně jako SRTP paket, ale narozdí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.

Formát SRTCP paketu
Obr. 2: Formát SRTCP paketu

Oba protokoly používají stejné postupy a algoritmy pro zajištění důvěrnosti, autentičnosti a integrity přenášených dat.

Pro zajištění důvěrnosti přenášených dat se používá symetrická kryptografická metoda AES-CTR (counter mode), která pracuje jako generátor pseudonáhodných klíčů. AES-CTR je právě svou stavbou vhodný pro multimediální nepotvrzované přenosy. 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. Vstupem do generátoru je inicializační vektor IV, který se skládá z kontrolního součtu salt_key, SSRC (náhodné číslo jednoznačně identifikující zdroj) a  paket indexu. Dalším vstupem do generátoru je jeden z klíčů sezení a to šifrovací klíč (encryption key). Výsledný pseudonáhodný klíč je pomocí operace XOR aplikován na nezabezpečený obsah paketu, viz. obr. 3.

Princip šifrování obsahu paketu SRTP a SRTCP algoritmem AES-CTR
Obr. 3: Princip šifrování obsahu paketu SRTP a SRTCP algoritmem AES-CTR

K zajištění autentičnosti přenášených dat je použít algoritmus HMAC-SHA-1. Tímto algoritmem je vytvořen kontrolní součet z hlavičky a obsahu SRTP paketu. Tato hodnota se pak uloží do pole authentication tag, viz. obr. 4. 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ů.

Princip zajištění autentičnosti paketu SRTP a SRTCP algoritmem HMAC-SHA-1
Obr. 4: Princip zajištění autentičnosti paketu SRTP a SRTCP algoritmem HMAC-SHA-1

SRTP prakticky

KPhoneSI 1.0.2.1

Tento program umožňuje zabezpečit audio i video komunikaci pomocí protokolu SRTP, jak je naznačeno na obrázku 5. Aby byla komunikace úspěšná, musejí mít obě komunikující strany nastaveny stejný master key, který se při komunikaci mezi klienty nevyměňuje. KphoneSI využívá metodu přednastaveného sdíleného klíče PSK (Pre-Shared Key), tzv. „předem sdílené tajemství“.

Nastavení použití protokolu SRTP v programu KPhoneSI
Obr. 5: Nastavení použití protokolu SRTP v programu KPhoneSI

Když na obou komunikujících klientech bude nastaven stejný master key, obě strany si vygenerují i stejné klíče relace (Session Keys) a mohou si tak mezi sebou vyměňovat zašifrovaná data. Pokud by se nastavené klíče lišily, byly by data posílány do sítě zašifrovány, ale druhá strana by je nedokázala správně dešifrovat.

Informace, že klienti mají mezi sebou komunikovat pomocí protokolu SRTP, je obsažena při navazování komunikace ve zprávě SIP INVITE, která přenáší i SDP protokol. Účelem SDP protokolu je zprostředkovávání informací o mediálním toku v multimediálních relací. Ze zachycené zprávy SIP INVITE (obr. 6) si lze všimnou, že položka Media Proto obsahuje záznam RTP/SAVP (Real-Time Transport Protocol/Secure Audio and Video Profile), což značí použití protokolu SRTP. Pokud by měl být pro přenos dat použit běžný protokol RTP, obsahovala by tato položka záznam RTP/AVP.

Zachycený paket zprávy SIP INVITE klienta KPhoneSI
Obr. 6: Zachycený paket zprávy SIP INVITE klienta KPhoneSI

Na obrázku 7 je zobrazen jeden zachycený paket SRTP, který se liší od běžného paketu RTP tím, že je v něm obsažena informace, že užitečná data (Payload) jsou šifrována.

Zachycený paket SRTP klienta KPhoneSI
Obr. 7: Zachycený paket SRTP klienta KPhoneSI

Minisip 0.7.1

Tento komunikační klient umožňuje zabezpečit přenášená multimediální data pomocí protokolu SRTP. Pro počáteční výměnu sdíleného klíče master key má Minisip implementovaný algoritmus MIKEY (Multimedia Internet KEYing). K výměně sdíleného klíče je použit protokol SDP, který je obsažen ve zprávách SIP při navazování spojení. Volající klient posílá volanému klientovi ve zprávě INVITE v SDP zprávu MIKEY Init, kde jsou kromě sdíleného klíče také informace, jaké bezpečnostní algoritmy nabízí pro zabezpečení přenosu. Volaný klient odpovídá zprávou 200 OK, která obsahuje MIKEY Respons – viz obr. 8.

Zachycená komunikace klientů Minisip při použití protokolu SRTP
Obr. 8: Zachycená komunikace klientů Minisip při použití protokolu SRTP

Na obrázku 9 je zobrazený zachycený paket SIP INVITE, jehož součástí je protokol SDP obsahující zprávu MIKEY Init, z které lze vyčíst jaké informace posílá volající klient volanému při navazování spojení. Nejzajímavější informace z hlediska zabezpečení jsou vyznačeny žlutě. Nejdůležitější informace, která je posílána, je sdílený symetrický klíč, tzv. master key (první zvýrazněná informace). Na obrázku je zobrazeno pouze několik prvních znaků symetrického klíče. Ve skutečnosti má master key přibližně sto znaků. Protože je master key přenášen v otevřené podobě, je tato komunikace náchylná na útoky typu man in the middle. Dále jsou posílány informace o tom, jakými bezpečnostními algoritmy se budou data šifrovat a jakou délku budou mít jednotlivé šifrovací klíče relace (session keys). Pro zajištění důvěrnosti přenášených dat bude využita symetrická metoda AES-CM-128 a pro zajištění autentičnosti algoritmus HMAC-SHA-1. Důležitou informací jsou také čísla SSRC, které slouží k jednoznačné identifikaci zdroje. Jak již bylo zmíněno, čísla SSRC se využívají při tvorbě inicializačního vektoru IV, který je vstupem do generátoru klíčů AES-CTR.

Zachycená zpráva SIP INVITE klienta Minisip se zprávou MIKEY Init
Obr. 9: Zachycená zpráva SIP INVITE klienta Minisip se zprávou MIKEY Init


© 2010, Vošec - Petr Otoupalík