Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Posibnik_1_0.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
8 Мб
Скачать
☆

1.1. Шифрування повідомлення

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

1.1.1. Традиційне шифрування

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

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

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

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

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

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

Рис. 11.1. Основні можливості шифрування повідомлень.

Однією з можливостей рішення цієї проблеми є структурування відкритих текстів таким чином, щоб відповідна структура легко розпізнавалася, але не могла бути відтворена без звертання до функції шифрування. Наприклад, до кожного повідомлення перед шифруванням можна додати код розпізнавання помилок, який називається також контрольною послідовністю кадру (Frame check sequence – FCS), або контрольною сумою, як показано на рис. 11.2 (а). Відправник А бере відкритий текст повідомлення й подає його на вхід функції , яка обчислює контрольну суму. Значення контрольної суми приєднується до , і отриманий у такий спосіб новий блок шифрується. У пункті призначення одержувач В дешифрує блок, що надійшов, розглядаючи результат дешифрування як повідомлення із приєднаною контрольною сумою. Тому одержувач В спочатку застосовує ту ж саму функцію , щоб відтворити контрольну суму. Якщо підрахована ним контрольна сума дорівнює поступившій з повідомленням, повідомлення вважається справжнім. Малоймовірно, щоб випадкова послідовність бітів задовольняла необхідному співвідношенню.

(б) Зовнішній контроль помилок

Рис. 11.2. Внутрішній і зовнішній контроль помилок

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

Коди контролю помилок є тільки одним прикладом - насправді будь-яка структуризація переданих повідомлень розширює можливості аутентифікації. Така структуризація забезпечується архітектурою комунікацій, формованої з набору використовуваних при цьому протоколів передачі даних (наприклад TCP/IP).

Шифрування з відкритим ключем.

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

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

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

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

Щоб забезпечити й конфіденційність, і аутентифікацію, відправник А може зашифрувати повідомлення двічі – спочатку з використанням свого особистого ключа, що забезпечить цифровий підпис, а потім з використанням відкритого ключа одержувача В, що забезпечить конфіденційність (див. рис. 11.1 (г)).

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

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

Таблиця 11.1. Конфіденційність й аутентифікація повідомлень при шифруванні

(а) Традиційне (симетричне) шифрування

• Забезпечує конфіденційність

  • Тільки сторони А і В знають

• Забезпечує певний рівень аутентифікації

  • Джерелом може бути тільки сторона А

  • Зміни на шляху проходження неможливі

  • Потрібне форматування/надлишковість

• Не забезпечує підпис

  • Одержувач має можливість фальсифікувати одержання повідомлення

  • Відправник має можливість заперечувати відправлення повідомлення

(б) Шифрування з відкритим ключем (асиметричне шифрування)

• Забезпечує конфіденційність

  • Тільки сторона В має , щоб дешифрувати повідомлення

• Не забезпечує аутентифікацію

  • Хто завгодно може використати для шифрування повідомлення, щоб оголосити себе відправником А

• Забезпечує аутентифікацію й підпис

  • Тільки сторона А має , щоб зашифрувати повідомлення

  • Зміни на шляху проходження неможливі

  • Потрібне форматування/ надлишковість

  • Хто завгодно може використати , щоб перевірити підпис

• Забезпечує конфіденційність, оскільки використається

• Забезпечує аутентифікацію й підпис, оскільки використається

Код автентичності повідомлення

Альтернативна техніка аутентифікації припускає приєднання до повідомлення створеного з використанням секретного ключа невеликого блоку даних фіксованого розміру, звичайно званого криптографічною контрольною сумою, або кодом автентичності повідомлення (MAC – Message Authentication Code). При цьому передбачається, що дві дані сторони, що беруть участь в обміні, скажемо А і В, використають загальний секретний ключ. Щоб послати повідомлення адресатові В, відправник А обчислює код автентичності повідомлення як функцію повідомлення й ключа: . Повідомлення з доданим до нього значенням MAC пересилається адресатові. Одержувач виконує аналогічні обчислення з отриманим повідомленням, використовуючи той же секретний ключ, щоб обчислити нове значення MAC. Обчислене значення MAC рівняється з отриманим разом з повідомленням (рис. 11.4(а)). Якщо припустити, що секретний ключ знають тільки одержувач і відправник й якщо отримане значення MAC збігається з підрахованим, то можна затверджувати наступне.

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

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

  3. Якщо повідомлення включає привласнений йому порядковий номер (як це, наприклад, передбачається у випадку використання протоколів HDLC, X.25 або TCP), те одержувач може бути впевнений у тім, що повідомлення приходять у правильній послідовності, оскільки супротивник не має можливості змінити порядковий номер повідомлення.

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

Тільки що описаний процес забезпечує аутентифікацію, але не конфіденційність, оскільки повідомлення в цілому передається відкритим. Конфіденційність може бути забезпечена шляхом шифрування повідомлення або після (рис. 11.4(б)), або перед (рис. 11.4(в)) застосуванням алгоритму обчислення MAC. У кожному із цих випадків буде потрібно два ключі, відомі й відправникові, і одержувачеві. У першому випадку значення MAC обчислюється для повідомлення, що подається на вхід, і результат приєднується до повідомлення шляхом конкатенації. Потім весь блок шифрується. У другому випадку спочатку шифрується повідомлення, потім обчислюється значення MAC для шифрованого тексту й результат приєднується шляхом конкатенації до шифрованого повідомлення, щоб сформувати переданий блок. Звичайно переважніше зв'язувати код автентичності безпосередньо з відкритим текстом, тому частіше застосовується метод, схема якого представлена на рис. 11.4(б).

Рис. 11.4. Основні способи використання кодів автентичності повідомлень (MAC).

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

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

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

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

До цих варіантів можна додати три наступних.

  1. Для деяких додатків не потрібно зберігати таємність, але важливо перевірити автентичність повідомлень. Прикладом може служити протокол SNMP версії 3 (SNMPv3 - Simple Network Management Protocol Version 3), де функції конфіденційності й аутентифікації розділяються. У цьому додатку для керованої системи важливо гарантувати автентичність вступників SNMP-повідомлень, особливо, якщо повідомлення містить команди, що змінюють параметри керованої системи. У той же час необхідність приховувати потік обміну даними SNMP може не вимагатися.

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

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

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

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

Таблиця 11.2. Використання кодів автентичності повідомлень

(а)

  • Забезпечує аутентифікацію

    • Тільки сторони А и В знають

(б)

  • Забезпечує аутентифікацію

    • Тільки сторони А и В знають

  • Забезпечує конфіденційність

    • Тільки сторони А и В знають

(в)

  • Забезпечує аутентифікацію

    • При використання

  • Забезпечує конфіденційність

    • При використання

Функція хешування.

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

Способи використання хеш-коду для аутентифікації повідомлень показані на рис. 11.5 і перераховані нижче.

  1. Повідомлення разом із приєднаним до нього шляхом конкатенації хеш-кодом шифрується методами традиційного шифрування. З погляду загальної схеми це аналогічно стратегії контролю помилок, показаної на рис. 11.2 (а). Аргументація при цьому теж аналогічна: тому що тільки користувачам А и В стає відомий секретний ключ, повідомлення напевно прийшло від А и не могло бути змінене по шляху проходження. Хеш-код забезпечує структуризацію або надмірність, необхідну для аутентифікації. Оскільки шифрування виконується стосовно всього повідомлення разом з доданим хеш-кодом, при цьому забезпечується й конфіденційність.

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

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

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

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

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

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

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

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

  • Апаратні засоби шифрування оптимизируются для роботи з більшими обсягами даних. При малих блоках даних значна частина часу витрачається непродуктивно на ініціалізацію/виклик.

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

  • Алгоритми шифрування є одним з питань експортного державного регулювання США.

Рис. 11.5. Основні способи використання функції хешування

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

Таблиця 11.3. Основні можливості використання функції хешування

(а)

  • Забезпечує конфіденційність

      • Тільки сторони А и В знають

  • Забезпечує аутентифікацію

      • криптографічно захищено

(г)

  • Забезпечує аутентифікацію й цифровий підпис

  • Забезпечує конфіденційність

      • Тільки сторони А и В знають

(б)

  • Забезпечує аутентифікацію

      • криптографічно захищено

(д)

  • Забезпечує аутентифікацію

      • Тільки А и В знають

(в)

  • Забезпечує аутентифікацію й цифровий підпис

      • криптографічно захищено

      • Тільки сторона А може створити

(е)

  • Забезпечує аутентифікацію

      • Тільки А и В знають

  • Забезпечує конфіденційність

      • Тільки сторони А и В знають

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]