Нақты уақыт протоколының қауіпсіздік профилі (SRTP)
Secure Real-time Transport Protocol
Қауіпсіз RTP (SRTP) – RTP деректерін қорғауға арналған протокол. Шифрлау, растау, бүтіндік сақтау және шабуылдардан қорғауды қамтамасыз етеді. SRTCP-мен жұмыс істейді.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Нақты уақыттық тасымалдау протоколы үшін қауіпсіздік профилі
Security profile for Real time Transport Protocol
Қауіпсіз Нақты уақыттық тасымалдау протоколы (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-ні пайдаланғанда хабарламаны аутентификациялау мүмкіндігі – міндетті және қажетті жалғыз ерекшелік.
The Secure Real time Transport Protocol (SRTP) is a profile for Real time Transport Protocol (RTP) intended to provide encryption, message authentication and integrity, and replay attack protection to the RTP data in both unicast and multicast applications. It was developed by a small team of Internet Protocol and cryptographic experts from Cisco and Ericsson. It was first published by the IETF in March 2004 as
Since RTP is accompanied by the RTP Control Protocol (RTCP) which is used to control an RTP session, SRTP has a sister protocol, called Secure RTCP (SRTCP); it securely provides the same functions to SRTP as the ones provided by RTCP to RTP. Utilization of SRTP or SRTCP is optional in RTP or RTCP applications; but even if SRTP or SRTCP are used, all provided features (such as encryption and authentication) are optional and can be separately enabled or disabled. The only exception is the message authentication feature which is indispensable and required when using SRTCP.
Деректер ағынын шифрлау
SRTP және SRTCP әдепкі шифр ретінде Advanced Encryption Standard (AES) шифрлау стандартын пайдаланады. AES блок шифрын ағын шифр ретінде пайдалануға мүмкіндік беретін екі шифрлау режимі анықталған:
SRTP and SRTCP use Advanced Encryption Standard (AES) as the default cipher. There are two cipher modes defined which allow the AES block cipher to be used as a stream cipher:
Сегменттелген бүтін сандар санау режимі – кез келген блоктарға кездейсоқ қол жеткізуге мүмкіндік беретін стандартты санау режимі, бұл пакеттер жоғалу мүмкіндігі бар, сенімсіз желіде жұмыс істейтін RTP трафигі үшін маңызды. Жалпы жағдайда, функция көптеген итерацияларда қайталанбаса, оны санау функциясы ретінде пайдалануға болады. Бірақ RTP деректерін шифрлау стандарты – қарапайым бүтін санды инкременттеу санауы. Бұл режимде AES іске қосылғанда, 128 бит кілт өлшемі және 112 бит сеанс тұз кілт ұзындығы әдепкі шифрлау алгоритмі болып табылады. f8 режимі – іздеу мүмкіндігін жақсарту және өзгертілген инициализация функциясы бар шығыс кері байланыс режимінің нұсқасы. Шифрлау кілті мен тұз кілті AES санау режиміндегідей бірдей әдепкі мәндерге ие. (Бұл режимде жұмыс істейтін AES 3G ұялы байланыс желілерінде пайдалану үшін таңдалған.) AES шифрынан басқа, SRTP шифрлауды толығымен өшіруге мүмкіндік береді, яғни «нөлдік шифрлау» шифрын пайдаланады, оны қолдау көрсетілетін балама шифр ретінде қарастыруға болады. Шын мәнінде, нөлдік шифрлау ешқандай шифрлауды орындамайды; шифрлау алгоритмі сәйкестік функциясы ретінде жұмыс істейді және кіріс ағынын шығыс ағынына өзгеріссіз көшіреді. Бұл шифрлау режимін кез келген SRTP үйлесімді жүйеде міндетті түрде жүзеге асыру қажет. Осылайша, SRTP қамтамасыз ететін құпиялылық кепілдіктері қажет болмаған кезде оны пайдалануға болады, ал аутентификация және хабарламаның тұтастығы сияқты басқа SRTP мүмкіндіктерін пайдалануға болады. SRTP жаңа шифрлау алгоритмдерін оңай қабылдай алады, бірақ SRTP стандартында жаңа шифрлау алгоритмдерін енгізу үшін жаңа серіктес стандарттық RFC жариялануы керек, онда жаңа алгоритм нақты анықталуы тиіс.
Segmented Integer Counter Mode A typical counter mode, which allows random access to any blocks, which is essential for RTP traffic running over unreliable network with possible loss of packets. In the general case, almost any function can be used in the role of counter, assuming that this function does not repeat for a large number of iterations. But the standard for encryption of RTP data is just a usual integer incremental counter. AES running in this mode is the default encryption algorithm, with a default key size of 128 bits and a default session salt key length of 112 bits. f8 mode A variation of output feedback mode, enhanced to be seekable and with an altered initialization function. The default values of the encryption key and salt key are the same as for AES in counter mode. (AES running in this mode has been chosen to be used in 3G mobile networks.) Besides the AES cipher, SRTP allows the ability to disable encryption outright, using the so called null encryption cipher, which can be assumed as an alternate supported cipher. In fact, the null encryption cipher does not perform any encryption; the encryption algorithm functions as the identity function, and copies the input stream to the output stream without any changes. It is mandatory for this cipher mode to be implemented in any SRTP compatible system. As such, it can be used when the confidentiality guarantees ensured by SRTP are not required, while other SRTP features, such as authentication and message integrity, may be used. Though SRTP can easily accommodate new encryption algorithms, the SRTP standard states that new encryption algorithms may only be introduced through publication of a new companion standard track RFC which must clearly define the new algorithm.
Аутентификация, тұтастығы және қайталауды қорғау
Жоғарыда көрсетілген шифрлау алгоритмдері хабардың тұтастығын өздігінен қамтамасыз етпейді. Шабуылшы деректерді шифрлай алмайды, бірақ бұрын жіберілген деректерді жалғандап немесе қайта жіберуі мүмкін. Сондықтан SRTP стандарты деректердің тұтастығын қамтамасыз ету және қайта жіберуден қорғану құралдарын да ұсынады. Хабарды куәландыру және оның тұтастығын қорғау үшін HMAC SHA1 алгоритмі қолданылады. Бұл 160 биттік нәтиже береді, содан кейін 80 немесе 32 битке дейін қысқартылып, әрбір пакетке қосылатын куәлік белгісіне айналады. HMAC пакеттің мазмұны және пакет тақырыбынан алынған деректер, соның ішінде пакеттің реттік нөмірі бойынша есептеледі. Қайта жіберу шабуылдарынан қорғану үшін қабылдаушы бұрын алынған хабарламалардың реттік нөмірлерін сақтайды, оларды әрбір жаңа алынған хабарламадағы реттік нөмірмен салыстырады және жаңа хабарлама бұрын алынбаған болса ғана қабылдайды. Бұл тәсіл тұтастық қорғауға сүйенеді, ол реттік нөмірді анықталмай өзгертуді мүмкін етпейді.
The above listed encryption algorithms do not alone secure message integrity, an attacker will not be able to decrypt data but may be able to forge or replay previously transmitted data. Hence the SRTP standard also provides the means to secure the integrity of data and safety from replay. To authenticate the message and protect its integrity, the HMAC SHA1 algorithm is used. This produces a 160 bit result, which is then truncated to 80 or 32 bits to become the authentication tag appended to each packet. The HMAC is calculated over the packet payload and material from the packet header, including the packet sequence number. To protect against replay attacks, the receiver maintains the sequence numbers of previously received messages, compares them with the sequence number in each new received message and admits the new message only if it has not been previously received. This approach relies on the integrity protection to make it impossible to modify the sequence number without detection.
Кілт шығару
Кілтті алу функциясы криптографиялық контексте қолданылатын әртүрлі кілттерді (SRTP және SRTCP шифрлау кілттері мен тұздары, SRTP және SRTCP аутентификация кілттері) криптографиялық тұрғыдан қауіпсіз бір негізгі кілттен тудыру үшін пайдаланылады. Осылайша, кілт басқару протоколына тек бір негізгі кілтті алмасу қажет, ал барлық қажетті сессия кілттері кілтті алу функциясын қолдану арқылы жасалады. Кілтті алу функциясын үнемі қолдану шабуылшыға бір сессия кілтімен шифрланған үлкен көлемдегі шифрмәтінді жинауға мүмкіндік бермейді. Бұл шифрмәтіннің көп мөлшері қолжетімді болғанда оңай орындалатын белгілі бір шабуылдарға қарсы қорғаныс қамтамасыз етеді. Сонымен қатар, кілтті алу функциясын бірнеше рет қолдану өткен және болашақ қауіпсіздікті қамтамасыз етеді, яғни, құпияға ие болған сессия кілті сол негізгі кілттен туындаған басқа сессия кілттеріне қауіп келтірмейді. Бұл шабуылшы сессия кілтін қалпына келтірген жағдайда да, сол негізгі кілттен туындаған бұрынғы және кейінгі сессия кілттерімен қорғалған хабарларды оқуға мүмкіндік алмайды. (Әрине, ашыққа шыққан негізгі кілт одан туындаған барлық сессия кілттерін ашады.) SRTP бастапқы негізгі кілтті орнату үшін сыртқы кілт басқару протоколына сенеді. SRTP-мен бірге қолдануға арналған екі протокол – ZRTP және MIKEY. SRTP кілттерін келісу арқылы анықтаудың басқа да әдістері бар. SDES кілт алмасу әдісін қолданатын өнімдерді ұсынатын бірнеше жеткізушілер бар.
A key derivation function is used to derive the different keys used in a crypto context (SRTP and SRTCP encryption keys and salts, SRTP and SRTCP authentication keys) from one single master key in a cryptographically secure way. Thus, the key management protocol needs to exchange only one master key, all the necessary session keys are generated by applying the key derivation function. Periodic application of the key derivation function prevents an attacker from collecting large amounts of ciphertext encrypted with one single session key. This provides protection against certain attacks which are easier to carry out when a large amount of ciphertext is available. Furthermore, multiple applications of the key derivation function provides backwards and forward security in the sense that a compromised session key does not compromise other session keys derived from the same master key. This means that even if an attacker managed to recover a session key, he is not able to decrypt messages secured with previous and later session keys derived from the same master key. (Note that, of course, a leaked master key reveals all the session keys derived from it.) SRTP relies on an external key management protocol to set up the initial master key. Two protocols specifically designed to be used with SRTP are ZRTP and MIKEY. There are also other methods to negotiate the SRTP keys. There are several vendors which offer products that use the SDES key exchange method.
DTLS-SRTP
DTLS SRTP анықталды. DTLS SRTP бас кілтті жеткізу үшін DTLS протоколын пайдаланады және ашық кілттің аутентификациясына мүмкіндік береді.
has defined DTLS SRTP. DTLS SRTP uses DTLS protocol to deliver master key, and allows public key authentication.
Өзара әрекеттесушілік және қолдану
SRTP-ні қолдайтын телефондар, серверлер және қосымшалар туралы ақпаратты қараңыз.
See for phones, servers and applications that support SRTP.