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.
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.
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
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.
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.
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.
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.