Кіріспе

VoIP кілт келісім протоколы

ZRTP (Z және Real time Transport Protocol-ден құралған) — Real time Transport Protocol негізінде Voice over IP (VoIP) телефондық қоңырауындағы екі түйін арасында шифрлау кілттерін келісуге арналған криптографиялық кілт келісім протоколы. Ол шифрлау үшін Diffie–Hellman кілт алмасуын және Secure Real time Transport Protocol (SRTP) протоколын пайдаланады. ZRTP-ді Фил Циммерманн, Брайс Уилкокс О’Херн, Колин Пламб, Джон Каллас және Алан Джонстон жасады және 2006 жылдың 5 наурызында Циммерманн, Каллас және Джонстон Интернет-инженерлік тобына (IETF) ұсынды, ал 2011 жылдың 11 сәуірінде жарияланды.

Шолу

ZRTP ("Z" - оның ойлап тапқан Циммерманның аты; "RTP" - Нақты уақытты жеткізу протоколы) Интернеттегі жобада «Нақты уақытты жеткізу протоколы (RTP) медиа ағынында Diffie–Hellman кілтін алмасуды жүзеге асыратын кілт келісім протоколы ретінде» сипатталған. Бұл сессияны бастау протоколы (SIP) сияқты басқа сигнал беру протоколын пайдалану арқылы құрылған. Осы арқылы ортақ құпия жасалады, содан кейін ол Secure RTP (SRTP) сессиясы үшін кілттер мен тұзды (salt) құруға қолданылады. ZRTP-нің ерекшеліктерінің бірі – ол кілтті басқару үшін SIP сигналдауына немесе қандай да бір серверлерге тәуелді емес. Егер басқа VoIP клиенті ZRTP-ні қолдаса, ол автоматты түрде анықтап, мүмкіндік туғанда шифрлауды қолдайды. Бұл протоколға бұрыннан ортақ құпиялар қажет емес, сондай-ақ ол ашық кілт инфрақұрылымына (PKI) немесе сертификаттау органдарына сүйенбейді. Шын мәнінде, әрбір сессия құрылғанда уақытша Diffie–Hellman кілттері жасалады: бұл сенімді үшінші тарапты құру және күтудің қиындығын жоюға мүмкіндік береді. Осы кілттер сессия құпиясын құруға көмектеседі, одан SRTP сессияларының сессия кілті мен параметрлері, сондай-ақ бұрын бөліскен құпиялар (бар болса) алынады. Бұл екі нүктенің арасындағы алғашқы сессияда шабуылшы болмаған жағдайда, ортадағы адамға (MiTM) қарсы қорғаныс қамтамасыз етеді. ZRTP кез келген сигнал беру протоколымен, соның ішінде SIP, H.323, Jingle және таратылған хэш-кесте жүйелерімен қолданылуы мүмкін. ZRTP сигналдық қабаттан тәуелсіз, өйткені оның барлық кілт келісімдері RTP медиа ағыны арқылы жүзеге асырылады. ZRTP/S, ZRTP протоколының кеңейтімі, GSM, UMTS, ISDN, PSTN, SATCOM, UHF/VHF радиосы сияқты кез келген ескі телекоммуникациялық желілерде жұмыс істей алады, өйткені бұл тар жолақты биттік ағынға бағытталған протокол және екі нүктенің арасындағы биттік ағын ішінде барлық кілт келісімдерін жүргізеді. Алан Джонстон протоколды ZRTP деп атады, өйткені оның алғашқы Интернеттегі жобалары RTP пакеттеріне қосымша тақырыптарды қосуға негізделген, бұл ZRTP-ні RTP-нің түріне айналдырды. Кейінгі жобаларда пакет форматы өзгеріп, оны синтаксистік тұрғыдан RTP-ден ажыратуға мүмкіндік берді. Осы өзгерісті ескере отырып, ZRTP қазір псевдо-акроним болып табылады.

Аутентификация

Diffie-Hellman кілт алмасуының өзі ортадағы адам шабуылына қарсы қорғаныс қамтамасыз етпейді. Шабуылшының бірінші сессияда қатыспағанына көз жеткізу үшін (ортақ құпиялар жоқ болғанда) Қысқа аутентификация жолы (SAS) әдісі қолданылады: байланыс жасайтын тараптар екі нүктенің әрқайсысында көрсетілген ортақ мәнді ауызша тексеріп қарастырады. Егер мәндер сәйкес келмесе, ортадағы адам шабуылы байқалады. ZRTP протоколына қарсы теориялық шабуылда екі тараптың синтетикалық дауысын жасау арқылы жалған SAS оқылады, бұл шабуыл "бай кішкентай шабуыл" деп аталады, бірақ бұл сипаттағы шабуыл протоколдың қауіпсіздігіне елеулі қауіп төндірмейді деп саналады. SAS кілт алмасуды растау үшін қолданылады, ол екі Diffie-Hellman мәнінің криптографиялық хэші болып табылады. SAS мәні ZRTP нүктелерінің екеуіне де жіберіледі. Аутентификацияны жүзеге асыру үшін бұл SAS мәні дауыстық байланыс арқылы әріптеске дауыстап оқылады. Егер екі жақтағы мәндер сәйкес келмесе, ортадағы адам шабуылы байқалады; егер сәйкес келсе, ортадағы адам шабуылының болу ықтималдығы төмен. DH алмасуында хэш-келісімді пайдалану шабуылшыны шабуылда дұрыс SAS жасау үшін бір ғана мүмкіндікке шектейді, яғни SAS өте қысқа болуы мүмкін. Мысалы, 16 биттік SAS шабуылшыға 65536-ның біреуі ғана анықталмау мүмкіндігін береді.

Кілт сабақтастығы

ZRTP кілттің сабақтастығы түріне негізделген, MitM шабуылдарына қарсы екінші аутентификация қабатын ұсынады. Ол келесі қосылуда пайдалану үшін бірнеше хэштелген кілт туралы ақпаратты сақтайды, осы ақпаратты келесі қосылудың DH ортақ құпиясымен біріктіріп, SSH-ге ұқсас кілт сабақтастығы қасиеттерін қамтамасыз етеді. Егер MitM алғашқы қосылуда болмаса, ол келесі қосылуларға қатынаса алмайды. Осылайша, SAS ешқашан қолданылмаса да, көптеген MitM шабуылдары тоқтатылады, себебі MitM алғашқы қосылуда қатыспаған.