MIKEY

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

MIKEY - акронім англ. Multimedia Internet KEYing, протокол обміну ключами розроблений спеціально для мультимедійних застосунків, що працюють в реальному часі, таких як передача потокових аудіо даних. Використовується для обміну ключами шифрування голосових сесій протоколу SRTP.

Використання MIKEY визначено в RFC 3830.

Введення[ред. | ред. код]

Мультимедійні програми – це сукупність сучасних цифрових засобів комунікацій, які дозволяють одночасно передавати і отримувати, або перетворювати різного роду інформацію (текстову, графічну, аудіовізуальну).

До мультимедійних додатків можна, наприклад, віднести IP-телефонію, яка представляє з себе сукупність інфокомунікаційних протоколів з використанням різних мережевих технологій і методів, що забезпечують стандартний для телефонії функціонал (від набору номера абонента до встановлення двосторонньої взаємодії по каналу зв'язку). Також до IP-телефонії, можна віднести і відеоконференції (Skype, Cisco Jabber). В якості основної технології для організації двостороннього спілкування в IP-телефонії використовується технологія VoIP, яка забезпечує встановлення і підтримання у працездатному стані мультимедійний додаток. Дана технологія повинна якісно передавати, як мовну, так і відеоінформацію.

Однак VoIP стикається з проблемами збільшення ймовірності втрати IP-пакетів при великих навантаженнях, появі джитерів, що призводить до втрати якості передачі в мережі Інтернет. Тому, щоб організувати якісний доступ до мережі, а також усунути помилки проходження пакетів, VoIP необхідно використовувати QoS (Quality of Service).

Забезпечення якості доставки, однак, робить сильний вплив на продуктивність системи[1]. До того ж, якщо в мережі застосовуються різні протоколи безпечної передачі даних, які, в свою чергу, використовують процедуру управління ключами, то дані протоколи також вносять свій внесок у зменшення продуктивності системи передачі даних[2]. Додаткове навантаження особливо проявляється у пристроїв, які мають обмежену обчислювальну потужність. Наприклад, до них відносяться кишенькові пристрої. Хоча на сьогоднішній день продуктивність і обчислювальна потужність кишенькових пристроїв значно покращилися, процес організації життєвого циклу ключів, починаючи з реєстрації користувача і закінчуючи скасуванням ключа, залишається ресурсномістким завданням.

Одним з протоколів обміну ключами для мультимедійних додатків виступає протокол MIKEY. Даний протокол був розроблений з метою зменшити затримки при обміні ключами між невеликими взаємодіючими групами, що знаходяться в гетерогенних мережах. Можливість обміну ключами між групами є важливою властивістю протоколу MIKEY. Так, наприклад, в протоколі SDP присутні процедури управління ключами (в повідомленнях SDP опціонально використовується параметр, який відповідає за ключ шифрування), але в даному протоколі немає механізмів узгодження ключів[3]. MIKEY, у свою чергу, вирішує дану проблему.

Властивості протоколу MIKEY[ред. | ред. код]

Протокол MIKEY, як протокол керування ключами, повинен володіти наступними властивостями[4]:

  • End-to-end шифрування. Дана властивість гарантує, що ключі шифрування відомі тільки взаємодіючим сторонам. Також гарантує безпечну передачу даних між вузлами. Однак даний вид шифрування вразливий для такого роду атак, як атака "людина посередині"[5][6].
  • Простота в реалізації.
  • Ефективність реалізації. Протокол підтримує низьке споживання смуги пропускання, мала кількість використання системних ресурсів, при цьому підтримуючи високу продуктивність системи передачі даних. Також вузли, що використовують протокол MIKEY, обмінюються повідомленнями за найкоротший час, використовуючи мінімальну відстань, наприклад, між вузлами А і Б.
  • Незалежність від функціональної безпеки. Обмін ключами і коректне виконання функцій транспортного рівня, таких як, наприклад, функції передачі даних без підтвердження прийому, виконуються незалежно.
  • Інтеграція з іншими протоколами безпечної передачі даних. Протокол підтримує можливість передавати службові повідомлення іншим протоколам, таким як, наприклад, SDP.

Взаємодія з протоколами безпечної передачі даних[ред. | ред. код]

Такі протоколи безпечної передачі даних, як SRTP (Secure Real Time Protocol) і IPSec використовуються для захисту переданої інформації, шифрування, перевірки достовірності переданої інформації між мультимедійними додатками, що працюють в реальному часі[7][8]. Основна проблема, яка лежить перед цими протоколами, це те, що вони не підтримують вбудовані механізми обміну ключами. Для вирішення цієї проблеми був розроблений протокол MIKEY.

На даний момент SRTP є єдиним протоколом безпечної передачі даних, яка покладається на протокол обміну ключами MIKEY для встановлення первинного ключа. Що стосується протоколу IPSec/ESP, то він також підтримує MIKEY, але для цього потрібно реалізувати відповідний функціонал, який потім використовується для взаємодії протоколів. Протокол MIKEY може використовуватися в наступних режимах передачі даних[9]:

  • Unicast (один-до-одного)
  • Багаторангова мережа (багато-до-багатьох, без централізованого управління).

Також підтримується режим багато-до-багатьох з централізованим управлінням. Зазвичай використовується стосовно до більш широкої групи користувачів, яка вимагає координації обміну ключами[10]. Найчастіше користувачі, використовуючи мультимедійні додатки, взаємодіють і спілкуються один з одним в реальному часі. В такому випадку, можна сказати, що кінцеві вузли створюють між собою мультимедійні сеанси. Мультимедійний сеанс, в свою чергу, представляє з себе набір з одного або декількох захищених мультимедійних потоків (у випадку використання протоколу SRTP, то це потоки даних SRTP)[11].

Основні способи передачі й методи обміну ключами[ред. | ред. код]

MIKEY підтримує три різних методи[10]:

  • попередньо узгоджені ключі (англ. pre-shared key): найбільш ефективний спосіб, який передбачає, що сторони обмінялися умовним паролем, який є ключем для шифрування, і для дешифрування переданих даних, так зване симетричне шифрування. Тим не менш підтримувати велику структуру паролів, індивідуальних для кожного адресата представляється дуже складним, особливо при взаємодії груп користувачів.
  • криптосистема з відкритим ключем (англ. private- and public-key): асиметричне шифрування, при якому публічний ключ передається відкритим способом (тобто по незахищеному, доступному для спостереження каналу), і використовується для шифрування повідомлення. Для розшифровки повідомлення використовується приватний (секретний) ключ. Даний метод підтримує взаємодію декількох груп користувачів. Тому для кращої масштабованості системи передачі даних використовується централізоване управління обміну ключами.
  • Алгоритм Діффі — Геллмана: алгоритм, що дозволяє двом сторонам отримати загальний секретний ключ, використовуючи незахищений канал зв'язку. Цей ключ може бути використаний для шифрування подальшого обміну повідомленнями за допомогою алгоритму симетричного шифрування. Цей метод вимагає великих обчислювальних ресурсів (і більший час обчислення) ніж попередні, і потребує централізованої системи підтримки ключів авторизації як і у випадку відкритого ключа.

Конструкції і визначення протоколу MIKEY[ред. | ред. код]

Щоб розібратися, як влаштований цей протокол, необхідно в першу чергу ознайомитися з основними конструкціями і параметрами протоколу MIKEY. Для реалізації функціоналу управління ключами MIKEY встановлює Data SA.

  • Data SA (Data Security Association, далі забезпечення захисту даних) представляє з себе з'єднання, яке організовують протоколи безпечної передачі даних. При цьому встановлюється прямий зв'язок між двома вузлами мережі (point-to-point). Основною метою забезпечення захисту даних є обмін різними атрибутами безпеки, що забезпечують з'єднання і шифрування даних між кінцевими точками мережі. В даному випадку, до атрибутів безпеки можна віднести TEK, а також різні політики безпеки.
  • TEK (Traffic-Encrypting Key, далі сеансовий ключ) представляє з себе симетричний ключ, який використовується для шифрування повідомлень. Даний ключ не є постійною величиною. Так, наприклад, два різних зашифровані повідомлення, можуть мати абсолютно різні ключі шифрування. Для того щоб отримати симетричний ключ, що використовується TGK.
  • TGK (TEK Generation Key, далі генератор сеансових ключів) - це узгоджений між вузлами мережі набір біт, який, навпаки, є постійною величиною в процесі передачі зашифрованих даних по каналу зв'язку. Генератор сеансових ключів є атрибутом CSB (Crypto Session Bundle, буде розглянуто нижче). Тому в процесі отримання сеансового ключа і забезпечення захисту даних генератор сеансових ключів повинен бути узгоджений з набором сесій шифрування (CSB).
  • CS (Crypto Session, далі сесія шифрування) представляє з себе двонаправлений потік даних по каналу зв'язку, який захищений різними протоколами безпечної передачі даних (SRTP, IPSec). Так як, наприклад, SRTP визначає профіль RTP. RTP, в свою чергу, тісно пов'язаний з RTCP. Тому, коли в якості протоколу безпечної передачі даних виступає SRTP, сесія шифрування представляє з себе два потоку трафіку: RTP і відповідним йому RTCP. Обидва потоки поділяють загальний сеансовий ключ для шифрування SRTP контексту. Сеансовий ключ виходить шляхом використання функції генерації ключів у протоколі SRTP. Для сесії шифрування в MIKEY передбачено сесійне сховище, яке зберігає дані протягом однієї сесії. В якості сховища набору сесій з загальним генератором сеансових ключів виступає CSB.
  • Завдяки конструкції CSB (Crypto Session Bundle, далі набір сесій шифрування) у протоколу MIKEY існує можливість одночасного встановлення ключів і політик безпеки для різних протоколів безпечної передачі даних. Використовуючи набір сесій шифрування, MIKEY може виймати з колекції необхідний йому сеансовий ключ.

Таким чином, в процесі формування сеансового ключа відбувається наступне: визначення відповідного сеансового ключа для поточної сесії шифрування з допомогою генератора сеансових ключів, узгодження з набором сесій шифрування і об'єднання сеансового ключа з відповідним протоколом безпечної передачі даних для забезпечення захисту даних[12].

Установка сесії[ред. | ред. код]

Кожен спосіб передачі і метод обміну ключами (pre-shared key, private - and public-key і алгоритм Діффі-Геллмана), визначені в протоколі MIKEY, орієнтовані на те, щоб успішно доставити ключі шифрування вузлам мережі, а також створити з'єднання, на основі якого встановити сесію, в якій здійснюється управління ключами. Підхід до встановлення сесії у всіх трьох методів збігається, але атрибути і структура зашифрованих повідомлень відрізняються в залежності від методу обміну ключами. Для будь-якого повідомлення використовуються наступні загальні позначення[13]:

  • HDR – стандартний заголовок MIKEY, який містить CSB ID (ідентифікатор необхідного сховища CS), а також параметри, що визначають який протокол безпечної передачі даних використовується в процесі управління ключами MIKEY.
  • T – часова мітка для запобігання повторних атак.
  • IDi - ідентифікатор відправника повідомлення.
  • IDr - ідентифікатор одержувача повідомлення.
  • RAND – псевдовипадковий рядок байтів, який є доповненням до набору біт у генератора сеансових ключів. Зв'язок TGK і RAND використовується для визначення ключа шифрування. Як доповнення до виділення необхідного сеансового ключа з набору сесій шифрування, визначається його актуальність у поточному процесі управління ключами MIKEY.
  • SP (далі політика безпеки) – політика безпеки протоколу безпечної передачі даних.

Перш ніж розглянути кожен метод обміну ключами, необхідно відзначити, що основним завданням для них є складання KEMAC (Key Data Transport Payload). KEMAC - це набір зашифрованих бітів. KEMAC містить TGK в закодованому вигляді послідовності бітів.

У методі попередньо узгоджених паролів основною метою відправника є доставити до одержувача один або кілька TGK і встановити відповідні політики безпеки. Для перевірки цілісності та захисту від підробки переданої інформації відправник використовує MAC. Відправлення повідомлення з підтвердженням від одержувача є опціональним дію, залежно від того, що вкаже відправник в HDR.

Обчислення виглядають наступним чином:

Як і у випадку методу попередньо узгоджених паролів, в криптосистемі з відкритим ключем, ініціатор повідомлення надсилає один або кілька TGK в зашифрованому вигляді. Дане повідомлення зашифроване з допомогою публічного ключа одержувача. Якщо одержувач містить кілька відкритих ключів, то відправник може указати конкретний ключ, використовуючи в повідомленні параметр CHASH. CHASH - це набір бітів, що містить хеш сертифіката.

Таким чином, KEMAC обчислюється наступним чином:

,

де Idi - ідентифікатор відправника (той же ідентифікатор, що зазначений у сертифікаті).

В алгоритм Діффі-Геллмана створюється з використанням генератора групи g загальний секретний ключ. Після відпрацювання алгоритму цей ключ буде TGK. Основною метою ініціатора повідомлення є відправка відкритого ключа одержувача.

Відкритий ключ обчислюється наступним чином: , де - секретна випадкова величина відправника. Одержувач, у свою чергу, відправляє ініціатору відкритий ключ зі значенням: , де - секретна випадкова величина одержувача.

Таким чином, ініціатор обирає параметри групи (група G, генератор g) і сигналізує про це одержувача, відправивши повідомлення. Після обміну відкритими ключами обчислюється загальний секретний ключ, який в свою чергу є TGK: .

Питання безпеки[ред. | ред. код]

В процесі передачі обміну ключами на систему можуть бути здійснені різного роду атаки. Зловмисник може таємно змінювати інформацію між двома сторонами, підміняти її або прослуховувати. До атак такого типу можна віднести:

Тому даний протокол повинен надавати різні методи і засоби захисту від такого роду атак. Для цього розглянемо протокол MIKEY, що використовує алгоритм Діффі-Геллмана для передачі та обміну ключами з методами двосторонньої аутентифікації. У цьому випадку, як зазначалося вище, генератор сеансових ключів не передається явно. Передається тільки часткова інформація, яка служить для отримання генератора сеансового ключа. До того ж, передаються й інші дані, такі як тимчасові мітки, випадкові або псевдовипадкові значення, ідентифікаційна інформація або різні політики безпеки. А прослуховування таких даних не несе істотних ризиків для безпеки.

На додаток до вищесказаного, дана модель протоколу MIKEY вирішує проблему, пов'язану з атакою "людина посередині", end-to-end шифрування, а також захищає від спуфінга. Атаки такого типу загрожують безпеці у випадку, коли між вузлами мережі відправляються не автентифіковані повідомлення. Протокол MIKEY усуває цю загрозу, забезпечуючи взаємну автентифікацію кінцевих вузлів мережі і цілісність повідомлень[14].

Дивись також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. Wenyu Jiang, Henning Schulzrinne, 1999, с. 9
  2. Andre L. Alexander et al, 2009, с. 96-97
  3. Handley, Mark, Perkins, Colin, Jacobson, Van. SDP: Session Description Protocol. tools.ietf.org. Процитовано 2017-12-10. 
  4. Ari Takanen, Peter Thermos, 2007, с. 234
  5. Wen-Pai Lu, Malur K. Sundareshan, 1989, с. 1014-1017
  6. Hacker Lexicon: What Is End-to-End Encryption?. WIRED (en-US). Процитовано 2017-12-22. 
  7. McGrew, David A., Norrman, Karl. The Secure Real-time Transport Protocol (SRTP). tools.ietf.org. Процитовано 2017-12-11. 
  8. Krishnan, Suresh, Frankel, Sheila. IP Security (IPsec) and Internet Key Exchange (IKE) Document Roadmap. tools.ietf.org. Процитовано 2017-12-11. 
  9. Ari Takanen, Peter Thermos, 2007, с. 234-235
  10. а б Ari Takanen, Peter Thermos, 2007, с. 235
  11. L. Lo Iacono, C. Ruland. . — Т. 1. — DOI:10.1109/ICCS.2002.1182529.
  12. Ari Takanen, Peter Thermos, 2007, с. 235-237
  13. Ari Takanen, Peter Thermos, 2007, с. 236-240
  14. HMAC-Authenticated Diffie-Hellman for Multimedia Internet KEYing (MIKEY). с. p. 12–13. 

Література[ред. | ред. код]

Посилання[ред. | ред. код]