Кіріспе

Нақты уақыттық тасымалдау протоколы үшін қауіпсіздік профилі

Қауіпсіз Нақты уақыттық тасымалдау протоколы (SRTP) – бұл unicast және multicast қолданбаларында RTP деректеріне шифрлау, хабарламаның аутентификациясы және тұтастығын қамтамасыз ету, сондай-ақ қайта ойнату шабуылдарынан қорғау үшін арналған Нақты уақыттық тасымалдау протоколы (RTP) үшін жасалған профиль. Оны Cisco және Ericsson компанияларының Интернет протоколы және криптография саласындағы мамандардың шағын тобы әзірледі. Алғаш рет 2004 жылдың наурызында IETF ұйымы жариялады. RTP Нақты уақыттық тасымалдау протоколының бақылау протоколымен (RTCP) бірге қолданылады, ол RTP сессиясын басқару үшін пайдаланылады, сондықтан SRTP-нің серіктес протоколы бар, ол Қауіпсіз RTCP (SRTCP) деп аталады; ол SRTP-ге RTCP-нің RTP-ге ұсынатын функцияларды ұсынады. SRTP немесе SRTCP-ні пайдалану RTP немесе RTCP қолданбаларында міндетті емес; бірақ SRTP немесе SRTCP қолданылса да, ұсынылған барлық мүмкіндіктер (мысалы, шифрлау және аутентификация) міндетті емес және жеке-жеке қосуға немесе өшіруге болады. SRTCP-ні пайдаланғанда хабарламаны аутентификациялау мүмкіндігі – міндетті және қажетті жалғыз ерекшелік.

Деректер ағынын шифрлау

SRTP және SRTCP әдепкі шифр ретінде Advanced Encryption Standard (AES) шифрлау стандартын пайдаланады. AES блок шифрын ағын шифр ретінде пайдалануға мүмкіндік беретін екі шифрлау режимі анықталған:

Сегменттелген бүтін сандар санау режимі – кез келген блоктарға кездейсоқ қол жеткізуге мүмкіндік беретін стандартты санау режимі, бұл пакеттер жоғалу мүмкіндігі бар, сенімсіз желіде жұмыс істейтін RTP трафигі үшін маңызды. Жалпы жағдайда, функция көптеген итерацияларда қайталанбаса, оны санау функциясы ретінде пайдалануға болады. Бірақ RTP деректерін шифрлау стандарты – қарапайым бүтін санды инкременттеу санауы. Бұл режимде AES іске қосылғанда, 128 бит кілт өлшемі және 112 бит сеанс тұз кілт ұзындығы әдепкі шифрлау алгоритмі болып табылады. f8 режимі – іздеу мүмкіндігін жақсарту және өзгертілген инициализация функциясы бар шығыс кері байланыс режимінің нұсқасы. Шифрлау кілті мен тұз кілті AES санау режиміндегідей бірдей әдепкі мәндерге ие. (Бұл режимде жұмыс істейтін AES 3G ұялы байланыс желілерінде пайдалану үшін таңдалған.) AES шифрынан басқа, SRTP шифрлауды толығымен өшіруге мүмкіндік береді, яғни «нөлдік шифрлау» шифрын пайдаланады, оны қолдау көрсетілетін балама шифр ретінде қарастыруға болады. Шын мәнінде, нөлдік шифрлау ешқандай шифрлауды орындамайды; шифрлау алгоритмі сәйкестік функциясы ретінде жұмыс істейді және кіріс ағынын шығыс ағынына өзгеріссіз көшіреді. Бұл шифрлау режимін кез келген SRTP үйлесімді жүйеде міндетті түрде жүзеге асыру қажет. Осылайша, SRTP қамтамасыз ететін құпиялылық кепілдіктері қажет болмаған кезде оны пайдалануға болады, ал аутентификация және хабарламаның тұтастығы сияқты басқа SRTP мүмкіндіктерін пайдалануға болады. SRTP жаңа шифрлау алгоритмдерін оңай қабылдай алады, бірақ SRTP стандартында жаңа шифрлау алгоритмдерін енгізу үшін жаңа серіктес стандарттық RFC жариялануы керек, онда жаңа алгоритм нақты анықталуы тиіс.

Аутентификация, тұтастығы және қайталауды қорғау

Жоғарыда көрсетілген шифрлау алгоритмдері хабардың тұтастығын өздігінен қамтамасыз етпейді. Шабуылшы деректерді шифрлай алмайды, бірақ бұрын жіберілген деректерді жалғандап немесе қайта жіберуі мүмкін. Сондықтан SRTP стандарты деректердің тұтастығын қамтамасыз ету және қайта жіберуден қорғану құралдарын да ұсынады. Хабарды куәландыру және оның тұтастығын қорғау үшін HMAC SHA1 алгоритмі қолданылады. Бұл 160 биттік нәтиже береді, содан кейін 80 немесе 32 битке дейін қысқартылып, әрбір пакетке қосылатын куәлік белгісіне айналады. HMAC пакеттің мазмұны және пакет тақырыбынан алынған деректер, соның ішінде пакеттің реттік нөмірі бойынша есептеледі. Қайта жіберу шабуылдарынан қорғану үшін қабылдаушы бұрын алынған хабарламалардың реттік нөмірлерін сақтайды, оларды әрбір жаңа алынған хабарламадағы реттік нөмірмен салыстырады және жаңа хабарлама бұрын алынбаған болса ғана қабылдайды. Бұл тәсіл тұтастық қорғауға сүйенеді, ол реттік нөмірді анықталмай өзгертуді мүмкін етпейді.

Кілт шығару

Кілтті алу функциясы криптографиялық контексте қолданылатын әртүрлі кілттерді (SRTP және SRTCP шифрлау кілттері мен тұздары, SRTP және SRTCP аутентификация кілттері) криптографиялық тұрғыдан қауіпсіз бір негізгі кілттен тудыру үшін пайдаланылады. Осылайша, кілт басқару протоколына тек бір негізгі кілтті алмасу қажет, ал барлық қажетті сессия кілттері кілтті алу функциясын қолдану арқылы жасалады. Кілтті алу функциясын үнемі қолдану шабуылшыға бір сессия кілтімен шифрланған үлкен көлемдегі шифрмәтінді жинауға мүмкіндік бермейді. Бұл шифрмәтіннің көп мөлшері қолжетімді болғанда оңай орындалатын белгілі бір шабуылдарға қарсы қорғаныс қамтамасыз етеді. Сонымен қатар, кілтті алу функциясын бірнеше рет қолдану өткен және болашақ қауіпсіздікті қамтамасыз етеді, яғни, құпияға ие болған сессия кілті сол негізгі кілттен туындаған басқа сессия кілттеріне қауіп келтірмейді. Бұл шабуылшы сессия кілтін қалпына келтірген жағдайда да, сол негізгі кілттен туындаған бұрынғы және кейінгі сессия кілттерімен қорғалған хабарларды оқуға мүмкіндік алмайды. (Әрине, ашыққа шыққан негізгі кілт одан туындаған барлық сессия кілттерін ашады.) SRTP бастапқы негізгі кілтті орнату үшін сыртқы кілт басқару протоколына сенеді. SRTP-мен бірге қолдануға арналған екі протокол – ZRTP және MIKEY. SRTP кілттерін келісу арқылы анықтаудың басқа да әдістері бар. SDES кілт алмасу әдісін қолданатын өнімдерді ұсынатын бірнеше жеткізушілер бар.

DTLS-SRTP

DTLS SRTP анықталды. DTLS SRTP бас кілтті жеткізу үшін DTLS протоколын пайдаланады және ашық кілттің аутентификациясына мүмкіндік береді.

Өзара әрекеттесушілік және қолдану

SRTP-ні қолдайтын телефондар, серверлер және қосымшалар туралы ақпаратты қараңыз.