Šifrované hovory ZRTP a Odorik

tls,srtp,zrtp a bezpečnostní potíže VoIP
Odpovědět
4smart.cz
Administrátor
Příspěvky: 1373
Registrován: úte 12. říj 2010 9:16:11
Kontaktovat uživatele:

Šifrované hovory ZRTP a Odorik

Příspěvek od 4smart.cz »

Dobrý den.

Rád bych zde popsal možnosti a úskalí šifrování hovorů, tak jak se mi je podařilo nastudovat z různých zdrojů (Google) a RFC, dostupných na internetu
a dále bych zde chtěl ukázat způsob, jak kdokoliv z uživatelů Odoriku může realizovat šifrovaný hovor mezi svými linkami.
Tímto článkem bych chtěl odstartovat veřejnou diskuzi na toto téma a předem upozorňuji, že se nepovažuji za odborníka na tuto problematiku a také bych
tímto chtěl poskytnout návod na to, jak nastavit svého klienta pro šifrování hovorů.

Protokol ZRTP, co se šifruje, co se nešifruje - teorie kolem
Pokud Vás nezajímá teorie kolem a chcete rovnou instantní řešení pro svoje šifrované volání s Odorikem, pak tento odstavec přeskočte.
Protokol ZRTP je určen k šifrování pouze RTP paketů, tj. audio, případně video, které se přenáší mezi dvěma koncovými body. Tímto protokolem se
nešifruje řídící provoz, tj. SIP pakety, takže lze zjistit například kdo koho volá. SIP protokol se však nepoužívá k ustanovení šifrovaného RTP spojení.
Protokol ZRTP také nabízí mechanizmy k detekci a ochraně před útokem Man In the Middle, tedy, kdy mezi bodem A a B se objeví aktivní útočník, např. nějaká
PBX jako Asterisk, Freeswitch, nebo něco podobného. Na začátku přímého spojení mezi dvěma útočníky dochází k výměně veřejných klíčů pomocí algoritmu
Diffie-Hellman. Oba účastnící si díky tomuto algoritmu vypočtou i své vnitřní klíče, které se na přenosové cestě nikdy neobjeví. Veřejné a vnitřní klíče tedy vždy vznikají na začátku hovoru a zanikají s ukončením hovoru. Z tohoto důvodu tedy musí útočník pro každý hovor, chce-li jej dekriptovat a má-li jej například wiresharkem zachycený, spoustu práce s tím, prolomit vnitřní klíče. Tento fakt je výhodou oproti prostému šifrování SRTP, kdy klíče, certifikáty a věci kolem
jsou předem dány a nemění se.
Jak již jsem zmínil, protokol ZRTP nabízí způsob, jak zjistit aktivního útočníka Man In the Middle a to tak, že na začátku
spojení si oba účastnící hovoru vymění tzv. Short Authentication String (v suché teorii uváděno zkráceně SAS). Tento řetězec je dle RFC určen k tomu, aby
jej VoIP klienti uživateli zobrazili, přičemž po zahájení spojení oba účastníci (lidé) si tento řetězec přečtou a navzájem si jej zdělí. Pokud SAS účastníků neodpovídá, je pravděpodobné, že konverzaci odposlouchává aktivní útočník. Je-li řetězec stejný, pak je vše v pořádku. V okamžiku kdy proběhla výměna veřejných klíčů, pomocí algoritmu Diffie-Hellman, je zahájeno šifrování RTP paketů a to s pomocí symetrické blokové šifry - AES 128 bit, případně až AES 256 bit. AES 128bit používá například můj linuxový klient Twinkle. Dle toho, co jsem dále vypátral, je třeba k prolomení šifry AES 128 bit v nejlepším případě 2^126 operací, což je hodnota, která vzhledem k aktuálnímu vývoji hardware znamená nemožné. V dohledné době je tak stále jedinou nadějí nasazení kvantových počítačů, což je stále teorie budoucnosti. Nemluvě o úsilí, které by bylo třeba k prolomení šifry AES 256 bit. Případný pasivní sniffer, který například s wiresharkem zachytí celé vaše spojení, tak má pramalé šance, že kdy hovor dešifruje. Přitom samotný fakt, že zachytil veřejné klíče mu mnoho nepomůže.
RFC je možné implementaci ZRTP doplnit také o tzv "Preshared mode", kdy se veřejné klíče mezi klienty přenesou při úplně prvním spojení a dále platí, že vnitřní klíče klientů se nemažou, ale částečně se cachují a slouží k výpočtu šifry pro 2. až n-tý hovor. Význam "preshared mode" je dle RFC ale spíše v tom, ušetřit výpočetně slabším CPU od výpočtů spojených s Diffie-Hellman při každém začátku hovoru a jak jsem zjistil, mnoho klientů jej nepodporuje.

Co potřebuji, abych mohl volat mezi Odorik linkami šifrovaně ?
* 1) Potřebujete VoIP klienty s podporou protokolu ZRTP, který začíná být poměrně rozšířený.
Pro android například csipsimple, pro Linux twinkle, pro windows - prosím uživatele o doplnění (jako Linuxák nemám zkušenosti)*
* 2) Pokud jde o nějaké zvláštní nastavení Vašich voip klientů - žádné není, pouze se ujistěte, že máte zapnutý ZRTP
(v twinkle kliknete na Upravit/Uživatelký profil/zabezpečení/Aktivovat ZRTP/SRTP šifrování)
* 3) Při volání mezi linkami odoriku je pak třeba linku druhého účastníka vytočit ne s jednou hvězdičkou, ale s hvězdičkami dvěma, například **123456.
Pokud hovor vytočíte pouze s jedinou hvězdičkou, hovor šifrován nebude.

Závěr
Tento článek je shrnutím mých poznatků, které jsem načerpal v souvislosti s problematikou šifrování hovorů, popisuje fakta tak jak jsou.
Pokud jsem se v některé části zmýlil, prosím zkušenější uživatele o nápravu, kterou vřele přivítám. Pro uživatele, kteří chtějí Odorik použít
pro šifrované hovory s minimální šancí na odhalení je tento článek spíše návodem.

Zdroje:
http://tools.ietf.org/html/draft-zimmermann-avt-zrtp-22
http://zmsoft.cz/sifruj/difhell.html
http://cs.wikipedia.org/wiki/Advanced_E ... n_Standard
http://cs.wikipedia.org/wiki/D%C3%A9lka_kl%C3%AD%C4%8De
http://en.wikipedia.org/wiki/ZRTP

J. Marák
luky
Příspěvky: 635
Registrován: sob 24. bře 2012 20:56:12

Re: Šifrované hovory s pomocí Odoriku, jak na to.

Příspěvek od luky »

dobré vlákno. U nás je stále rozšířen názor, že se skrývají a utajují jen ti, co konají neplechu. Ono to tak někdy bývá, ale žijeme v dnešní době, kdy nejcennější jsou informace. Uvítám, když si uživatel bude moci zvolit, jestli a které své hovory bude kodovat nebo ne.
Bude to plus, jak pro lidi z top bussinesu, tak pro komunální politiky, ale i pro lidi s vrozenou vyšší mírou paranoi (dělám si legraci). Nevím, jak náročné je šifrování v reálném čase třeba na takovém androidu, jaká je tam časová prodleva apod.

dříve již na http://forum.odorik.cz/viewtopic.php?f=7&t=602
Uživatelský avatar
Zedna
Příspěvky: 736
Registrován: stř 04. dub 2012 0:57:53

Re: Šifrované hovory s pomocí Odoriku, jak na to.

Příspěvek od Zedna »

Bude pridana podpora pro sifrovane hovory i do (Windows) programu odorik.exe?
Návštěvník

Re: Šifrované hovory s pomocí Odoriku, jak na to.

Příspěvek od Návštěvník »

Narazil jsem na toto vlákno a celkem mne zaujalo. Mám na mobilu program csipsimple a hledal jsem voip program pro windows, který zrtp podporuje a byl by s csipsimple kompatibilní. Našel jsem phonerlite, ale vzájemně byly programy nekompatibilní (nebo jsem je špatně nastavil). Nemá někdo zkušenosti s šifrovaným funkčním voláním mezi csipsimple a nějakým voip programem pod windows???
Návštěvník

Re: Šifrované hovory s pomocí Odoriku, jak na to.

Příspěvek od Návštěvník »

Zoiper by měl mít podporu SRTP a je to dobrý sw telefon. Jitsi podporuje ZRTP, ale jinak není nijak excelentní.
luky
Příspěvky: 635
Registrován: sob 24. bře 2012 20:56:12

Re: Šifrované hovory s pomocí Odoriku, jak na to.

Příspěvek od luky »

pokud volám na pevnou nebo na mobil, bude možné šifrovat hovory mezi mnou a serverem Odoriku (např. gsm bránou)?
Uživatelský avatar
xsouku04
Administrátor
Příspěvky: 8138
Registrován: pát 15. říj 2010 11:11:44
Bydliště: Brno
Kontaktovat uživatele:

Re: Šifrované hovory s pomocí Odoriku, jak na to.

Příspěvek od xsouku04 »

Ano bude, je to ale polovičaté řešení, protože odposlech bude možný někde dále. Pokud máte veřejné geografické, nomadické nebo mobilní číslo, může být odposlouchávano zařízením soudu, takže ochrana je to hlavně proti správcům sítě, kteří se takto už k šifrovanému hovoru nedostanou.
Co se týče ale volání pře zrtp v síti uvnitř sítě odorik, tam předpokládám, že odposlech nebude možný vůbec nikdy, tedy ani u nás na ústředně. Šifrovat budou totiž přímo koncové "telefony" a hovor půjde zašifrován celou dobu až do koncového zařízení na druhé straně. Jediné teoreticky slabé místo zůstane v koncovém zařízení. Tedy v počítači nebo telefonu s androidem, který je ale plně pod kontrolou uživatele.
ViR
Příspěvky: 1327
Registrován: sob 30. črc 2011 10:50:06

Re: Šifrované hovory s pomocí Odoriku, jak na to.

Příspěvek od ViR »

xsouku04 píše:Co se týče ale volání pře zrtp v síti uvnitř sítě odorik, tam předpokládám, že odposlech nebude možný vůbec nikdy, tedy ani u nás na ústředně......
K tomto pozor - technicky to tak samozřejmě lze, ale musí se tato komunikace smluvně ošetřit jako "neveřejná služba". Operátor je totiž u veřejné telefonní služby povinen možnost odposlechů zajistit, pokud je k tomu "oprávněnými orgány" vyzván.

Sice samozřejmě může poukázat na to, že je to "mimo jeho kontrolu" a že šifrují účastnická koncová zařízení, což by pravděpodobně prošlo, ale jen potud, pokud by (patrně ČTÚ) nedošel k závěru, že operátor tomu vědomě napomáhá.....
Návštěvník

Re: Šifrované hovory s pomocí Odoriku, jak na to.

Příspěvek od Návštěvník »

Nevidím do toho zcela detailně, ale zdá se mi, že pokud jde o možnost realizace, není rozdíl mezi voláním přes zrtp uvnitř sítě odorik a obecným voláním PC-PC (třeba přes ZRTP) na přímo, tj. bez zapojení VOIP operátora.
(Tedy, že je možné se šlo obejít bez zapojení Odoriku a tudíž není třeba vystavovat operátora možným komplikacím se státními orgány ...)
Nebo pro volání přes zrtp uvnitř sítě odorik by nebyla potřebná vlastní veřejná IP adresa?
Uživatelský avatar
xsouku04
Administrátor
Příspěvky: 8138
Registrován: pát 15. říj 2010 11:11:44
Bydliště: Brno
Kontaktovat uživatele:

Re: Šifrované hovory s pomocí Odoriku, jak na to.

Příspěvek od xsouku04 »

VoIP volání přes proxy, tedy uvnitř sítě se dvěma hvězdičkami má i jiné využití. Např. pro přenos videohovoru nebo hlasu v extra kvalitě v nějakém neobvyklém kodeku, který ale podporují obě koncová zařízení. Není to nic víc, než nabízení všech výhod a možností co VoIP poskytuje. Proxy odorik to umožňuje hned od začátku nové proxy, jen zatím nebyl důvod tuhle nedokumentovanou vlastnost zveřejňovat, protože neměla dobře odzkoušené praktické využití.
Další možnost je spojit hovor tak, aby ani RTP nešlo přes náš RTP proxy. To by fungovalo hlavně u vidohovorů v lokální síti uvnitř budovy, kterých bude většina. Tam je ale možné dělat vidohovory přímo na URI a nebýt tak závislí ani na funkčnosti internetu.
Odpovědět