Secure Real-time Transport Protocol (neboli SRTP) je v informatice protokol, který poskytuje šifrování, možnost ověřovat zprávy a integritu RTP (Real-time Transport Protocol) přenášených dat v unicast i multicast aplikacích. Poprvé byl publikován IETF v březnu 2004 jako RFC 3711. Byl vyvinut malým týmem, který vyvíjel IP protokol, ve spolupráci s kryptografickými odborníky z firem Cisco a Ericsson. Na vývoji se také podílel David Oran, David McGrew, Mark Baugher, Mats Naslund, Elisabetta Carrara, Karl Norman a Rolf Blom.
Vzhledem k tomu, že RTP úzce souvisí s RTCP (Real Time Control Protocol), který může být použit k řízení RTP relace, SRTP má také sesterský protokol, tzv. Secure RTCP (neboli SRTCP). SRTCP poskytuje stejné bezpečnostní funkce související s RTCP, jako ty poskytované protokolem SRTP protokolu RTP. Používání SRTP/SRTCP je nepovinné. Pokud jsou ale použité, všechny poskytované funkce (například šifrování a autentizace) jsou volitelné a mohou být samostatně povoleny nebo zakázány. Jedinou výjimkou je ověřování zpráv, které je nezbytně nutné při použití SRTCP.
Šifrování datového toku
Pro šifrování a dešifrování datového toku (a tím i pro zajištění důvěrnosti toku dat), SRTP (společně s SRTCP) využívá AES jako výchozí šifru. Je možné vybrat jeden ze dvou definovaných módů jako proudový šifrovací klíč:
- SICM (Segment Integer Counter Mode)
- Je režim čítače umožňující náhodný přístup k veškerým bloků, které jsou nezbytné pro RTP provoz a které putují přes nespolehlivé sítě s možnou ztrátou paketů. V obecném případě lze použít jakoukoliv funkci v roli čítače za předpokladu, že tato funkce se nebude opakovat větší počet iterací. Obvykle se pro šifrování dat RTP používá číselný inkrementální čítač. V AES je tento režim výchozím šifrovacím algoritmem, s šifrovacím klíčem o délce 128 bitů a se 112bitovým klíčem relace.
- Tento režim je modifikací režimu zpětné vazby se zlepšenou vyhledávatelností a změněnou inicializační funkcí. Výchozí hodnoty šifrovacího klíče a klíče relace jsou stejné jako u AES v režimu čítače. AES běží v tomto režimu při použití v sítích UMTS 3G.
SRTP umožňuje zakázat šifrování přímo pomocí tzv. „NULL šifry“, kterou lze pokládat za druhý typ podporované šifry (prvním je AES). Ve skutečnosti NULL šifra neprovádí žádné šifrování. V každém SRTP kompatibilním systému musí být tato šifra implementována. Jako taková může být použita, pokud není vyžadována důvěrnost poskytnutá SRTP, ale mohou být použity jiné SRTP funkce (například autentizace a integrita zpráv).
Ačkoli technicky lze SRTP snadno přizpůsobit novým šifrovacím algoritmům, SRTP norma uvádí, že nové šifrovací algoritmy kromě těch popsaných nemohou být jednoduše přidány do implementace protokolu SRTP. Jediný legální způsob, jak přidat nový šifrovací algoritmus, a přitom zachovat slučitelnost se SRTP normou, je publikovat nový standard RFC, který musí jasně definovat nový algoritmus.
Ověřování pravosti, ochrana před replay útokem
Výše uvedené algoritmy šifrování nezajišťují bezpečnost integrity zprávy samy o sobě, což umožňuje útočníkovi buď navazovat data nebo alespoň přehrávat dříve přenášená data. Z tohoto důvodu SRTP také poskytuje prostředky pro zajištění integrity dat a bezpečnosti z přehrávání.
K ověření zprávy a ochraně integrity zprávy se používá algoritmus HMAC - SHA1 (definován v RFC 2104), který produkuje 160bitový tag, který je pak zkrácen na 80 nebo 32 bitů. Takto zkrácený tag je poté připojen k paketu a slouží pro jeho ověření. HMAC se počítá z užitečného zatížení paketu (tzv. payload) a z hlavičky paketu včetně čísla sekvence paketů. Pro ochranu proti tzv. replay útokům, přijímač udržuje identifikátory dříve přijatých zpráv, porovnává je s identifikátorem každé nové přijaté zprávy a připouští novou zprávu pouze tehdy, pokud ještě nebyl paket předtím odehrán (tj. odeslán). Takový přístup silně spoléhá na integritu ochrany.
Odvození klíče
Funkce pro odvození klíče se používá k odvození různých klíčů (SRTP a SRTCP šifrovacích klíčů a jejich soli, SRTP a SRTCP autorizační klíče) z jednoho hlavního klíče kryptograficky bezpečným způsobem. To znamená, že při změně hlavního klíče se tento hlavní klíč vymění a všechny potřebné klíče jsou generovány použitím funkce pro odvození klíče.
Periodicky odvozené klíče, voláním funkce pro odvození klíčů, přinášejí bezpečnostní výhody. To útočníkovi zabraňuje sběr velkého množství zašifrovaných dat s jedním klíčem relace. Některé útoky lze snadněji provést, když je k dispozici velké množství šifrového textu. Aplikace, které používají funkci na odvození klíče, poskytují zpětnou a dopřednou bezpečnost v tom smyslu, aby při kompromitování aktuálního klíče relace nedošlo k ohrožení klíče následující relace odvozeného ze stejného hlavního klíče. V případě, že útočník překoná určitý klíč relace, není schopen dekódovat zprávy zajištěné předchozími a pozdějšími klíči relací odvozených od téhož hlavního klíče.
SRTP spoléhá na externí správu klíčů k nastavení počátečního hlavního klíče. Dva protokoly speciálně určeny k použití se SRTP jsou ZRTP a MIKEY. Existují i jiné metody nastavení hlavního SRTP klíče. Někteří výrobci nabízejí produkty, které používají SDES metodu výměny klíčů.
Reference
V tomto článku byl použit překlad textu z článku SRTP na anglické Wikipedii.