Zabezpečení protokolu SIP

SIP je textově orientovaný protokol a principiálně podobný protokolu HTTP a jeho modelu žádost/odpověď. Proto lze na tento protokol uplatnit stejné principy zabezpečení jako na protokol HTTP. Hlavní bezpečnostní mechanismy používané pro protokol SIP jsou:

HTTP Základní autentizace

Tato metoda pouze zajišťuje autentizaci uživatele na základě výměny nezabezpečeného tajného hesla. Při přenosu identifikačních údajů není použitá žádná šifrovací metoda a není zajištěna ani integrita dat. Tato metoda se k zabezpečení signalizace SIP příliš nepoužívá a není doporučena.

HTTP Rozšířená autentizace

Zdokonalená verze základní autentizace, kde namísto výměny nezabezpečeného tajného hesla je využita hashovací funkce, na jejíchž vstup se přivede heslo a náhodný řetězec. Výpočet se provádí na obou stranách komunikace a výsledek je porovnáván. Jako hashovací funkce je použita MD5 nebo SHA1. Tato metoda pouze umožňuje ověření autentičnosti uživatele, nezavádí žádnou metodu šifrování obsahu zprávy ani integritu dat.

Secure MIME (S/MIME)

Secure MIME definuje mechanismy k zabezpečení obsahu a k zajištění integrity MIME zprávy. S/MINE používá zejména jednoduché zprávy využívající typ application/pkcs7-mime, který umožňuje přenášená data digitálně podepsat a zašifrovat. Autentizace je zajištěna použitím architektury veřejných klíčů. K ochraně přenášených dat se používá šifrovací algoritmy DES, 3DES, AES.

SIPS URI (TLS)

K zabezpečení signalizačního protokolu SIP lze také použít šifrovaný protokol TLS (Transport Layer Security), který je vložen do síťového modelu mezi aplikační a transportní vrstvu. Přenášená data mohou být symetricky šifrována algoritmy DES, 3DES, AES, DEA nebo RC4. Pro zabezpečení výměny symetrického klíče využívá asymetrický šifrovací algoritmus RSA. Protokol TLS je rovněž vybaven silnými prostředky pro autentizaci, pro niž využívá výměnu certifikátů. Vždy provádí autentizaci serveru a umožňuje autentizaci klienta. Je vyžadováno, aby protokol TLS byl použit v průběhu celé cesty sítí a aby byl jako transportní protokol pro SIP použit protokol TCP.

IP Security (IPsec)

Jedná se o společné zabezpečení jak signalizačních, tak i multimediálních dat tím, že se před sestavením spojení vytvoří bezpečný kanál, ve kterém se přenáší jak signalizace, tak i užitečná data.

Zabezpečení SIP prakticky

Pakety SIP jsou sítí přenášeny standardně v otevřené podobě a nejsou nijak zabezpečeny. Jsou jimi přenášeny informace o názvech účtů volajícího a volaného uživatele a jejich IP adresy. Dochází také k přenosu názvu a verze komunikačního programu. Tato informace by mohla útočníkovi pomoci, pokud by věděl o nějaké bezpečnostní chybě v některé verzi programu.

Na obrázku 1 je zobrazen registrační SIP paket, kterým se klient SIP registruje k SIP serveru. Ze zachyceného paketu lze vyčíst, že se uživatel s přihlašovacím jménem vomacka pokouší registrovat na server iptel.org, na kterém má zaregistrovaný svůj účet. Uživatel se identifikuje pomocí svého SIP URI sip:85263@iptel.org, komunikuje ze své zdrojové IP adresy 192.168.2.159 a cílová IP adresa SIP serveru je 213.192.59.75. Zdrojová i cílová adresa portu je 5060. Ze zachyceného paketu lze také vyčíst, že uživatel používá jako svého komunikačního klienta program X-Lite release 1105x.

Zachycený registrační SIP paket klienta X-Lite
Obr. 1: Zachycený registrační SIP paket klienta X-Lite

Ze zachycené komunikace bylo také ověřeno, jak funguje autentizace uživatele k SIP serveru, která je založena na hashovací funkci. Nejprve klient posílá SIP serveru neautentizovanou zprávu REGISTER, na kterou server odpoví zprávou 401 Unauthorized obsahující výzvu a metodu, kterou se má autentizace provést. Ve výzvě je obsaženo náhodné číslo a metodou se myslí, jaká hashovací funkce má být použita.

Klient poté na základě znalosti náhodného čísla a svého hesla vypočítá pomocí dané hashovací funkce hash a zopakuje původní zprávu REGISTER, do které doplní pole Authorization obsahující vypočtenou hash. Tento hash pak server ověří obdobným výpočtem na své straně. Pokud výpočet na serveru souhlasí s výpočtem, který poslal klient, je autentizace potvrzena. Na obrázku 2 je zobrazen zachycený proces autentizace uživatele.

Zachycený proces autentizace klienta X-Lite k SIP serveru
Obr. 2: Zachycený proces autentizace klienta X-Lite k SIP serveru

Jak je vidět na obrázku 3 první registrační zpráva nenese pole Authorization

Zachycená první zpráva REGISTER klienta X-Lite
Obr. 3: Zachycená první zpráva REGISTER klienta X-Lite

Na obrázku 4 je vidět detail zprávy 401 Unauthorized. Nonce Value je zmiňované náhodné číslo v hexadecimální podobě, které posílá SIP server klientovi. Také je zde uvedena použitá hashovací funkce, konkrétně je použit algoritmus MD5.

Zachycená zpráva 401 Unauthorized zaslaná SIP serverem směrem ke klientovi
Obr. 4: Zachycená zpráva 401 Unauthorized zaslaná SIP serverem směrem ke klientovi

Druhá registrační zpráva REGISTER již nese pole Authorization obsahující vypočtený hash (Digest Authentication Response) – viz obr. 5.

Zachycená druhá zpráva REGISTER klienta X-Lite
Obr. 5: Zachycená druhá zpráva REGISTER klienta X-Lite

Vlastní multimediální komunikace mezi klienty byla přenášena pomocí RTP paketů. Výpis jednoho ze zachycených RTP paketů je zobrazen na obrázku 6.

Zachycený RTP paket klienta X-Lite
Obr. 6: Zachycený RTP paket klienta X-Lite

Z výpisu lze vyčíst, že k přenosu byl použit protokol RTP dle doporučení RFC 1889. Přenášené RTP pakety nebyly nikterak zabezpečeny. Toto tvrzení bylo doloženo tím, že veškerý RTP tok byl pomocí programu Wireshark uložen jako zvukový soubor a následně byl bez problému přehrán ve zvukovém přehrávači. Skutečnost, že se jedná o zvuková data, naznačuje případnému útočníkovi pole Payload Type. U zachyceného RTP paketu je vidět, že toto pole obsahuje ITU-T G.711 PCMU, kde G.711 značí použitý zvukový kodek.


© 2010, Vošec - Petr Otoupalík