Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекция 8

.doc
Скачиваний:
13
Добавлен:
30.05.2020
Размер:
141.82 Кб
Скачать

Криптографічні протоколи

План

1 Поняття протоколу

2 Призначення та учасники протоколів

3 Учасники протоколів

4 Типи протоколів

5 Атаки на протоколи

6 Типи організації зв’язків у криптографічних протоколах

Криптографічні протоколи

1 Поняття протоколу

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

Протоколом називають послідовність дій, що виконуються двома й більше сторонами, спроектовану для розв’язання деякої задачі.

Слова «послідовність дій» означають, що протокол виконується послідовно, від початку й до кінця. Кожна дія виконується по черзі, причому кожна наступна дія починає виконуватися тільки після закінчення попередньої.

Слова «виконується двома й більше сторонами» означають, що для виконання протоколу потрібно принаймні дві людини. Виконати протокол поодинці неможливо.

Нарешті слова «спроектована для рішення деякої задачі» означають, що протокол повинен вести до якогось результату, чогось досягати.

Крім того, у протоколів є й інші характеристики:

      1. Кожен учасник протоколу повинен знати протокол і всю послідовність його дій.

      2. Кожен учасник протоколу повинен погодитися додержуватися протоколу.

      3. Протокол повинен бути недвозначним – кожна дія повинна бути добре визначена так, щоб не виникало ніякого непорозуміння.

      4. Протокол повинен бути повним – у ньому повинні бути зазначені точні дії в будь-якій можливій ситуації.

Будемо розглядати всі протоколи у формі послідовності дій. Протокол виконується послідовними етапами, якщо тільки немає вказівок перейти до іншої дії. У кожну дію входить, щонайменше, одне із двох: обчислення, що виконуються однією або декількома сторонами, або повідомлення, що розсилаються між учасниками.

Криптографічним протоколом називають протокол, у якому використовується криптографія. Сторони можуть бути друзями й беззастережно довіряти один одному, або ворогами й не довіряти один одному навіть при одержанні повідомлень про поточний час.

До криптографічного протоколу належить деякий криптографічний алгоритм; однак, як правило, протоколи призначені не тільки для забезпечення таємності. Так учасникам протоколу може знадобитися:

      • розділити на частини свої секрети для розрахунку будь-якого значення;

      • спільно згенерувати випадкову послідовність;

      • упевнитися в істинності один одного;

      • одночасно підписати контракт.

Ідея використання в протоколі криптографії полягає в запобіганні або виявленні фактів підслуховування й шахрайства. Загальне правило протоколів говорить про те, що: «Неможливо зробити або довідатися більше, ніж визначено протоколом».

Це правило набагато жорсткіше, ніж може здатися на перший погляд. У деяких протоколах один з учасників може ошукати іншого. В інших протоколах зловмисник може зруйнувати протокол або довідатися секретну інформацію. Ряд протоколів провалюється, оскільки їх розробники недостатньо продумали вимоги до протоколу. Інші провалюються через те, що їх розробники недостатньо ретельно проаналізували свої протоколи. Як і для алгоритмів, довести ненадійність протоколу набагато простіше, ніж його надійність.

2 Призначення та учасники протоколів

У повсякденному житті неформальні протоколи використовуються практично всюди:

      • для замовлення товарів по телефону;

      • при грі в покер;

      • при голосуванні на виборах і т.п.

Люди не замислюються над цими протоколами. Протоколи еволюціонували протягом тривалого часу, усі знають, як ними користуватися і вони працюють досить надійно.

Сьогодні все більше й більше людей віддають перевагу комп’ютерній мережі, ніж особистому спілкуванню. Однак комп’ютерам потрібні формальні протоколи щоб робити те, що люди роблять, не замислюючись.

Багато протоколів особистого спілкування для забезпечення чесності й таємності покладаються на людську присутність. Чи можливо дати незнайомцеві пачку грошей, щоб він купив для вас що-небудь у бакалійній крамниці? Чи сядете ви грати в покер, якщо не бачите, як ваш партнер тасує й здає карти? Чи відправите поштою свій виборчий бюлетень без деякої гарантії анонімності?

Наївно розраховувати на чесність користувачів комп’ютерних мереж. Наївно покладатися на чесність адміністраторів і проектувальників комп’ютерних мереж. Звичайно, більшість із них – чесні люди, але навіть декілька шахраїв можуть завдати великої шкоди. Формалізація протоколів дозволяє виявити методи, які використовуються зловмисниками для руйнування протоколів, і надає можливість розробити протоколи, стійкі до руйнування.

Крім формалізації дій, протоколи дозволяють відокремити процес розв’язання задачі від механізму рішення.

3 Учасники протоколів

Для полегшення демонстрації роботи протоколів, як правило, беруть участь декілька учасників (табл. 1). Основні діючі особи – Аліса (Alice) і Боб (Bob). Вони виконують всі загальноприйняті двосторонні протоколи. Як правило, всі протоколи ініціює Аліса, а Боб відповідає. Якщо протокол вимагає участі третьої або четвертої сторін, у гру вступають Керол (Carol) і Дейв (Dave). Інші учасники відіграють спеціальні допоміжні ролі; вони виходять на сцену за потреби.

Таблиця 1 – Діючі особи протоколів

Учасник

Роль

Аліса

Перший учасник всіх протоколів

Боб

Другий учасник всіх протоколів

Керол

Учасник у трьох- і чотирибічних протоколах

Дейв

Учасник у чотирибічних протоколах

Єва

Перехоплювач повідомлень

Мелорі

Зловмисний активний зломщик

Трент

Довірений посередник

Уолте

Наглядач, який стереже Алісу й Боба

Пеггі

Претендент, намагається довести щось

Віктор

Верифікатор, перевіряє Пеггі

4 Типи протоколів

Розрізняють три основні типи протоколів (рис. 1):

      • протокол з посередником;

      • протокол з арбітром;

      • самодостатні протоколи.

Рисунок 1 - Типи протоколів

Протоколи з посередником

Посередником називають незацікавлену третю сторону, якій довірено довести до кінця виконання протоколу.

«Незацікавленість» посередника означає, що йому байдужі як результат виконання протоколу, так і будь-який учасник протоколу.

Слово «довірене» означає, що всі учасники протоколу сприймають слова посередника за істину, всі його дії визнають правильними, а крім того, впевнені, що посередник виконає свою частину протоколу. Посередники допомагають виконувати протоколи двом сторонам, що взаємно не довіряють один одному.

У реальному житті посередниками часто є адвокати. Наприклад, Аліса продає незнайомому Бобу автомобіль. Боб хоче заплатити чеком, але Аліса не має можливості перевірити платоспроможність чека. Тому перш ніж передати право власності Бобу, Аліса хоче одержати гроші по чеку. Боб вірить Алісі нітрохи не більше, ніж вона йому і не хоче передавати чек, не діставши права власності.

Участь адвоката у цій справі влаштовує обидві сторони. Його допомога дозволяє Алісі й Бобу виконати наступний протокол, що гарантує, що вони не зможуть ошукати один одного:

  1. Аліса передає право власності адвокату.

  2. Боб передає чек Алісі.

  3. Аліса депонує чек.

  4. Через точно заданий період, необхідний для оплати чека, адвокат передає право власності Бобу. Якщо протягом певного часу чек не буде оплачено, Аліса доводить цей факт адвокату, і Боб повертає право власності Алісі.

У цьому протоколі Аліса вірить, що до сплати чека адвокат не передасть право власності Бобу та поверне право власності Алісі, якщо чек не буде сплачено. Боб вірить, що поки чек не буде оплачений, право власності залишиться в адвоката, і негайно по оплаті чека він передасть право власності Бобу. Адвоката не цікавить оплата чека. У будь-якому випадку він виконає свою частину протоколу, оскільки одержить свій гонорар незалежно від результату справи.

У цьому прикладі адвокат відіграє роль посередника.

Як посередник у протоколі, що розглядається, може бути й банк. Для купівлі автомобіля у Аліси Боб може використати гарантований чек:

  1. Боб виписує чек і передає його в банк.

  2. Зарезервувавши на рахунку Боба суму грошей, достатню для погашення чека, банк підтверджує чек і повертає його Бобу.

  3. Аліса передає право власності Бобу, а Боб передає Алісі гарантований чек.

  4. Аліса депонує чек.

Цей протокол працює тому, що Аліса вірить банківським гарантіям. Аліса вірить, що банк утримає гроші Боба для неї, а не скористається ними, наприклад, для фінансування ризикованих.

Схему протоколу з посередником можна перенести і на світ комп’ютерів. Однак з комп’ютерними посередниками існує ряд проблем.

Неважко знайти нейтральну довірену третю сторону, якщо ви знаєте людину й можете особисто побачити її обличчя. Але дві сторони, що підозріло ставляться одна до одної, з однаковою підозрою віднесуться і до безликого посередника, прихованого десь у мережі.

Власники комп’ютерної мережі мають витрати на підтримку посередника. Всі ми знаємо, скільки коштують адвокати; кому ж захочеться сплачувати ще й ці витрати?

Всім протоколам з посередником властива «уроджена» затримка.

Посередник повинен брати участь у кожній транзакції. Він – вузьке місце у великомасштабних реалізаціях будь-якого протоколу. Цю проблему може пом’якшити реалізація з більшим числом посередників, але це підвищить вартість послуги.

Посередник являє собою ласий шматочок для будь-якого хакера тому, що посередникові повинен довіряти кожен користувач мережі.

Не зважаючи на усі недоліки протоколів з посередником, посередництво все ще грає свою роль.

У протоколах, що використовують довірену особу, роль посередника виконує Трент.

Протоколи з арбітром

Через високу вартість посередників, протоколи за їх участю можна розбити на два підпротоколи більш низького рівня:

  • протокол без посередника, який виконується в тих випадках, коли сторони мають намір виконувати протокол;

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

Арбітр, як і посередник, являє собою незацікавлену, довірену третю сторону протоколу. На відміну від посередника він не обов’язково бере участь у виконанні кожного протоколу. Арбітр запрошується тільки для перевірки чесності виконання протоколу.

Як приклад професійних арбітрів можна назвати суддів. На відміну від адвокатів до суддів звертаються тільки з появою розбіжностей. Аліса й Боб можуть укласти контракт і без участі судді, і якщо жодна із сторін не подасть на іншу в суд, суддя ніколи не довідається про контракт.

Протокол підписання контракту можна формалізувати в такий спосіб:

Підпротокол без посередника (виконується завжди):

  1. Аліса й Боб погоджуються з умовами контракту.

  2. Аліса підписує контракт.

  3. Боб підписує контракт.

Підпротокол з використанням арбітра (виконується тільки з появою розбіжностей):

  1. Аліса й Боб з’являються перед судом.

  2. Аліса наводить свої докази.

  3. Боб наводить свої докази.

  4. Спираючись на докази, суддя виносить вирок.

Розбіжність понять посередника й арбітра полягає в тому, що втручання арбітра не завжди обов’язково. Сторони звертаються в суд тільки з появою розбіжностей. Якщо розбіжності відсутні, суддя не потрібний.

Відомі також арбітражні комп’ютерні протоколи. Ці протоколи спираються на припущення про чесність сторін. Однак якщо хто-небудь підозрює шахрайство, третя довірча сторона може викрити обман на основі існуючого масиву даних. Крім того, надійний арбітражний протокол дозволяє арбітрові встановити й особистість шахрая. Таким чином, арбітражні протоколи не запобігають, а виявляють шахрайство. У цьому випадку невідверненість виявлення є попереджувальною мірою, що збентежує шахрая.

Самодостатні протоколи

Самодостатні протоколи (self-enforcing) - кращий тип протоколів. Чесність сторін гарантується самим протоколом. Для виконання протоколу не потрібний посередник, а для дозволу розбіжностей - арбітр. Відсутність суперечок забезпечує сама конструкція протоколу. Якщо одна зі сторін спробує схитрувати, інша сторона негайно виявить обман, і виконання протоколу припиниться. Не відбудеться нічого з того, на що міг би сподіватися ошуканець.

В ідеалі самодостатнім повинен бути будь-який протокол. Але, на жаль, такі протоколи є не для всіх ситуацій.

5 Атаки на протоколи

Криптографічні атаки можуть бути спрямовані на:

      • криптографічні алгоритми, які використовуються в протоколах;

      • криптографічні методи, що використовуються для реалізації алгоритмів і протоколів;

      • самі протоколи.

Припустимо, що криптографічні алгоритми й методи, що застосовуються в протоколах, надійні. Розглянемо атаки тільки на протоколи.

Для атаки на протокол люди можуть використовувати безліч способів. Деякі зловмисники, які особисто не беруть участь у протоколі, можуть частково або повністю «підслухати» протокол. Цей метод називається пасивною атакою, тому що зловмисник ніяк не впливає на протокол. Він може тільки стежити за протоколом і намагатися добути інформацію. Цей тип атаки відповідає атаці на основі тільки шифротексту, коли необхідно добути ключ шифру. Пасивні розкриття виявити важко, саме тому протоколи намагаються запобігати, а не виявляти їх. Роль «слухача» відіграє Єва.

В іншому випадку зловмисник може спробувати змінити протокол до власної вигоди. Із цією метою він може видавати себе за іншу людину, вводити до протоколу нові повідомлення, заміняти одне повідомлення іншим, повторно передавати старі повідомлення, розривати лінію зв’язку або модифікувати інформацію, що зберігається в комп’ютері. Такі дії називаються активною атакою, оскільки вимагають активного втручання. Форми таких атак залежать від стандарту мережі.

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

Активні атаки набагато небезпечніші пасивних. Особливо це стосується протоколів, у яких сторони не обов’язково довіряють один одному. Зловмисник не завжди стороння людина. Їм може бути зареєстрований користувач системи або системний адміністратор, або група зловмисників, що працюють спільно. Роль активного зловмисного відіграє Мелорі.

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

Якщо більшість учасників протоколу – активні шахраї, надійність протоколу підтримувати нелегко. Однак іноді законні учасники можуть виявити факти активного шахрайства. Зрозуміло, протоколи варто захищати й від пасивного шахрайства.

6 Типи організації зв’язків у криптографічних протоколах

Організація зв’язку за допомогою симетричної криптографії

Яким чином дві сторони можуть обмінюватися секретною інформацією? Звичайно ж, шифруючи інформацію. Подивимося, що відбудеться, якщо Аліса перешле Бобу шифроване повідомлення.

  1. Аліса й Боб вибирають криптосистему.

  2. Аліса й Боб вибирають ключ.

  3. Аліса створює шифротекст повідомлення, використовуючи алгоритм шифрування й ключ.

  4. Аліса посилає шифротекст Бобу.

  5. Боб, знаючи алгоритм і ключ, розшифровує шифротекст.

Розглянемо можливі варіанти атак на дану схему організації зв’язку.

У випадку пасивної атаки Єва, перебуваючи між Алісою й Бобом, може, підслухати передачу на етапі 4, отримати шифротекст і піддати його криптоаналізу. Якщо ж Єві вдасться підслухати етапи 1 й 2, а потім перехопити шифротекст, розшифрування повідомлення не викличе ніяких складнощів.

Відомо, що безпека криптосистеми повністю залежить від знання ключа і абсолютно не залежить від знання алгоритму. Саме тому в криптографії величезна увага приділяється проблемі керування ключами. Використовуючи симетричний алгоритм, Аліса й Боб можуть, не ховаючись, виконати етап 1, але етап 2 вони повинні виконати таємно. Ключ повинен зберігатися в таємниці до, після й під час роботи протоколу, доти, поки повинна зберігатися в таємниці інформація, що передається. У протилежному разі інформація буде негайно розкрита.

У разі активної атаки Мелорі, активний зловмисник, на етапі 4 може спробувати порушити лінію зв’язку, після чого Аліса взагалі не зуміє передавати інформацію Бобу. Крім того, Мелорі може перехопити повідомлення Аліси й замінити його власним. Якщо Мелорі вдасться довідатися ключ (перехопленням інформації на етапі 2 або зломом криптосистеми), Мелорі може зашифрувати своє повідомлення й відправити його Бобу замість перехопленого. У Боба немає ніякої можливості розпізнати, що повідомлення відправлене не Алісою. Якщо Меллорі не знає ключа, він може тільки створити фальшиве повідомлення, що при розшифровці перетвориться в нісенітницю. Боб, думаючи, що повідомлення відправлене Алісою, може вирішити, що в мережі або в Аліси, з’явилися серйозні проблеми.

Перелічимо недоліки симетричних криптосистем:

        1. Оскільки знання ключа дозволяє розкрити всі повідомлення, поширення ключів повинне виконуватися в таємниці. Ключі цінні настільки, наскільки цінні всі повідомлення, зашифровані ними.

        2. Якщо ключ буде скомпрометовано (вкрадено, вгадано, випитано, куплено за хабар і т. д.), Мелорі може розшифрувати всі повідомлення, зашифровані цим ключем. Більше того, вона зможе буди однією із сторін і створювати помилкові повідомлення, ошукуючи іншу сторону.

        3. Якщо допустити, що кожна пара користувачів мережі буде використовувати окремий ключ, загальне число ключів швидко зростає з ростом числа користувачів. Дійсно, у мережі з п користувачів необхідні ключів. Таким чином, для спілкування між собою 10 користувачів необхідні 45 різних ключів, для 100 користувачів - 4950 ключів. Для рішення проблеми можна зменшити число користувачів, однак це не завжди можливо.

Організація зв’язку за допомогою криптографії з відкритим ключем

Симетричний алгоритм можна уявити собі чимось на зразок сейфа. Ключем до нього є числова або буквена комбінація. Людина, що знає цю комбінацію, може відкрити сейф, покласти в нього документ і знову закрити. Інша людина за допомогою тієї самої комбінації може відкрити сейф і забрати документ. Той, хто не знає комбінацію, змушений зламувати сейфи.

При використанні криптографії з відкритим ключем, хто завгодно може зашифрувати повідомлення, але розшифрувати його – ні. Розшифрувати таке повідомлення може тільки власник закритого ключа. У нашій аналогії із сейфом це нагадує перетворення закритого сейфа в поштову скриньку. Шифрування з відкритим ключем аналогічно опусканню листа в поштову скриньку – це може зробити будь-хто, просто відкривши паз й опустивши в нього лист. Розшифрування із закритим ключем при цьому подібно діставанню пошти з поштової скриньки. Розкрити такий ящик набагато складніше – може знадобитися зварювальний апарат або пилка. Однак, якщо знати секрет (тобто мати ключ від поштової скриньки), витягти листа неважко.

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

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

  1. Аліса бере відкритий ключ Боба з бази даних.

  2. Аліса шифрує своє повідомлення, використовуючи відкритий ключ Боба, і посилає його Бобу.

  3. Боб розшифровує повідомлення Аліси, використовуючи свій закритий ключ.

У першому протоколі Боб повинен був послати Алісі її відкритий ключ, і тільки після цього Аліса могла відправити йому повідомлення. Другий протокол нагадує звичайну пошту. Боб не бере участь у протоколі доти, поки не вирішить прочитати повідомлення.

Змішані (гібридні) криптосистеми

На практиці алгоритми з відкритим ключем не замінюють симетричні алгоритми. Вони використовуються для шифрування не самих повідомлень, а ключів. Цьому є дві причини:

  1. Алгоритми з відкритим ключем виконуються повільно. Симетричні алгоритми принаймні в 1000 разів швидші алгоритмів з відкритим ключем. Завжди буде необхідність шифрувати дані швидше, ніж це може забезпечити криптографія з відкритим ключем.

  2. Криптосистеми з відкритим ключем вразливі до атак на основі підібраного відкритого тексту. Якщо , де відкритий текст із множини можливих відкритих текстів, криптоаналітику досить зашифрувати всі можливих відкритих текстів і зрівняти результати з C (ключ шифрування є відкритим). Він не зможе таким шляхом відновити ключ розшифрування, але зуміє визначити .

У більшості практичних реалізацій криптографія з відкритим ключем використовується для засекречування й поширення сеансових ключів. Сеансові ключі використовуються симетричними алгоритмами для захисту трафіка повідомлень. Іноді такі реалізації називають змішаними (гібридними) криптосистемами.

  1. Боб посилає Алісі свій відкритий ключ .

  2. Аліса генерує випадковий сеансовий ключ , шифрує його за допомогою відкритого ключа Боба й посилає його Бобу

.

  1. Використовуючи свій закритий ключ , Боб розшифровує повідомлення Аліси, відновлюючи сеансовий ключ

.

  1. Обидві сторони шифрують свої повідомлення за допомогою однакового сеансового ключа .

Використання криптографії з відкритим ключем для поширення ключів вирішує цю дуже важливу проблему. У симетричній криптографії ключ шифрування даних, навіть якщо не використовується, однаково повинен зберігатися в певному місці. Якщо Єва дістане його, вона зможе розшифрувати всі повідомлення, закриті цим ключем. При використанні протоколу, наведеного вище, за необхідності зашифрувати повідомлення створюється сеансовий ключ, що на завершення сеансу зв’язку знищується. Це різко знижує небезпеку компрометації сеансового ключа. Звичайно, закритий ключ теж уразливий до компрометації, але ризик значно менший, тому що під час сеансу цей ключ використовується одноразово - для шифрування сеансового ключа.

Контрольні запитання

  1. Дайте визначення поняття “протокол”.

  2. Назвіть головні характеристики протоколу.

  3. У чому полягає відмінність понять “протокол” та “криптографічний протокол”?

  4. Назвіть і поясніть загальне правило криптографічних протоколів.

  5. У чому полягає формалізація протоколів?

  6. Назвіть основні типи протоколів.

  7. Дайте визначення поняття “посередник у криптографічному протоколі”.

  8. Дайте визначення поняття “арбітр у криптографічному протоколі”.

  9. Поясніть, у чому полягає різниця протоколів з посередником та з арбітром?

  10. Наведіть приклади протоколів з арбітром, з посередником, самодостатніх протоколів.

  11. Поясніть, у чому полягає метод “пасивної атаки”?

  12. Що таке активна атака?

  13. Дайте визначення поняттям “пасивний” та “активний” шахрай.

  14. Поясніть як за допомогою симетричної (асиметричної) криптографії виконується організація зв’язку?

  15. Поясніть поняття “змішані криптосистеми” або “гібридні криптосистеми”.

Задачі

  1. Розробити протокол чесного поділу будь-якого предмета на дві частини.

  2. Розробити можливі варіанти розв’язання задачі запобігання зловживань доказами ідентичності з нульовим розголошенням.

  3. Розробити програмну реалізацію алгоритму підпису наосліп з використанням алгоритму RSA.

Соседние файлы в предмете Защита информации