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

Лекция 9

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

Ідентифікація та перевірка істинності

План

1 Основні поняття та концепції

2 Функції аутентифікації

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

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

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

3 Застосування пароля для підтвердження істинності користувача

4 Взаємна перевірка істинності користувачів

5 Проблема аутентифікації даних і електронний цифровий підпис

Ідентифікація та перевірка істинності

1 Основні поняття та концепції

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

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

Наступний крок - аутентифікація об’єкта (перевірка істинності об’єкта). Ця процедура встановлює, чи є даний об’єкт саме тим, за кого він себе подає.

Після того, як об’єкт ідентифікований і підтверджена його істинність, можна встановити сферу його дії та доступні йому ресурси КС. Таку процедуру називають наданням повноважень (авторизацією).

Наведені процедури ініціалізації є процедурами захисту і належать до одного об’єкта КС.

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

У контексті мережних комунікацій можна виділити такі типи порушення захисту:

  1. розкриття вмісту (передача інформації особі, яка не має права на інформацію);

  2. аналіз потоку даних (встановлення логічної структури з’єднання, довжин повідомлень, їх кількості, кількості учасників і т. ін.);

  3. імітація. Впровадження в потік повідомлень від помилкового джерела. Тобто зловмисник видає свої повідомлення за повідомлення істинного учасника;

  4. модифікація вмісту. Зміна вмісту (зміна, вставка, видалення, реорганізація частини або цілого повідомлення);

  5. модифікація послідовності повідомлень;

  6. модифікація тимчасових характеристик. Затримка й наступне відтворення характеристик;

  7. зречення.

Міри, прийняті у зв’язку з пунктами (1) і (2), були розглянуті в традиційному шифруванні.

Міри, прийняті відносно пунктів (3) – (6) належать до питань аутентифікації повідомлень.

Міри, прийняті відносно пункту (7) – питання цифрового підпису.

2 Функції аутентифікації

В аутентифікації повідомлень можна виділити два рівні:

      • низький. Виконується функція що породжує аутентифікатор;

      • високий. Протокол аутентифікації, у якому адресат одержує можливість перевірити достовірність повідомлення.

Функції, які породжують аутентифікатор, можна поділити на три класи:

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

      • код автентичності повідомлення;

      • функції хешування.

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

Шифрування повідомлення саме по собі може виконувати функції аутентифікації повідомлення.

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

Рисунок 1 – Конфіденційність й аутентифікація

Так, у традиційному шифруванні (рис 1) адресат B буде впевнений у тому, що відправником повідомлення був A. Чому? Тому, що ключ повідомлення був відомий тільки їм двом. Крім того, якщо повідомлення М відновлюється, це доводить одержувачеві, що ніякий з бітів не був змінений. Це твердження справедливе тільки у тому випадку, якщо відкритим текстом був цілком осмислений текст, у протилежному випадку, адресату B необхідно мати додаткову інформацію для автоматичного встановлення істинності прийнятого повідомлення (набір символів, що зберігає частотну характеристику мови, двійковий об’єктний файл і т. ін.).

Часто звертаються за допомогою до коду розпізнавання помилок (контрольна послідовність кадру – функція F, що обчислює контрольну суму) рис. 2, 3.

Рисунок 2 – Внутрішній контроль помилок

Рисунок 3 – Зовнішній код контролю помилок

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

Асиметричне шифрування

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

Рисунок 4 – Шифрування з відкритим ключем: конфіденційність

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

Рисунок 5 – Шифрування з відкритим ключем: автентичність

Щоб забезпечити і таємність, і автентичність виконують наступну процедуру: відправник A шифрує повідомлення своїм таємним ключем (це забезпечує аутентифікацію), потім шифрує отриманий на попередньому етапі шифр відкритим ключем одержувача B (забезпечується таємність), а одержувач у свою чергу, для розшифрування повідомлення використає свій таємний ключ , а потім відкритий ключ .

Рисунок 6 – Шифрування з відкритим ключем: конфіденційність й автентичність

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

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

При цьому вважається, що користувачі A та B володіють таємним ключем K. Щоб послати повідомлення адресату B відправник A обчислює код автентичності повідомлення як функцію ключа . Повідомлення з доданим до нього значенням MAC пересилається адресату. Одержувач виконує аналогічні обчислення і одержує своє значення MAC. Отримані результати порівнюються. У випадку збігу, можна стверджувати:

      • одержувач може бути впевнений, що повідомлення не було змінено;

      • одержувач може бути впевнений, що повідомлення автентично, оскілки нікому не відомий ключ K;

      • якщо повідомленню привласнено порядковий номер, як наприклад, у протоколі TCP, то одержувач може бути впевнений у правильній послідовності одержуваних даних.

Рисунок 7 – Аутентифікація повідомлень із використанням MAC

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

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

Рисунок 8 – Аутентифікація й конфіденційність повідомлень із використанням MAC (код зв’язується з відкритим текстом)

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

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

Однією з варіацій кодів автентичності повідомлень є однобічна функція хешування. Як у випадку кодів автентичності повідомлень, функція хешування одержує на вхід повідомлення М довільної довжини, а на вихід видає хеш-код H(M) фіксованого розміру, що називають профілем або дайджестом. Дайджест є функцією всіх бітів повідомлення та забезпечує можливість контролю помилок: зміна будь-якого числа бітів у повідомленні приводить до зміни дайджесту.

Рисунок 9 - Аутентифікація та конфіденційність повідомлень із використанням MAC (код зв’язується з шифротекстом)

Способи застосування дайджесту для аутентифікації повідомлень:

1 Повідомлення разом із приєднаним до нього дайджестом шифрується методами традиційного шифрування (рис. 10).

Рисунок 10

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

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

Рисунок 11

Варто звернути увагу на той факт, що хешування та шифрування в комбінації фактично дають код автентичності повідомлення, тобто EK[H(M)] являє собою функцію повідомлення М довільної довжини й таємного ключа K, що дає на виході значення фіксованого розміру, захищене від зловмисника, який не знає таємного ключа.

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

Рисунок 12

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

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

Рисунок 13

5 Для забезпечення автентичності можна використовувати дайджест без шифрування. У такому випадку передбачається, що учасники обміну використовують тільки їм відоме деяке значення S (рис. 14).

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

Рисунок 14

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

Рисунок 15

Проаналізувавши методи 1-6 стає ясно, що у випадку, коли конфіденційність не потрібна, застосування методів 2 і 3 більш доцільне через менші обчислювальні витрати. Але останнім часом спостерігається підвищений інтерес до методів без кодування 5. Це пов’язане з тим, що:

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

      • ціни на апаратні засоби шифрування досить високі;

      • апаратні засоби орієнтовані на великі обсяги даних;

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

Вимоги, що ставляться до функції хешування

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

  1. бути прийнятною до блоку будь-якої довжини;

  2. на виході давати значення фіксованої довжини;

  3. дайджест h=Н(x) повинен обчислюватися легко для будь-якого заданого значення x, а алгоритм обчислення повинен бути практичним з погляду як апаратної, так і програмної реалізації;

  4. для будь-якого даного дайджесту h практично неможливо обчислити x, для якого H(x)=h. Таку властивість називають однобічністю;

  5. для будь-якого блоку x практично неможливо обчислити yx, для якого H(x)=H(y). Таку властивість називають слабкою опірністю колізіям;

  6. практично неможливо обчислити будь-яку пару різних x та y, для яких . Таку властивість називають сильною опірністю колізіям.

Необхідно зазаначити, що властивості 1-3 описують вимоги, що забезпечують можливість практичного застосування функції хешування для аутентифікації повідомлень. Властивість 4 забезпечує однобічність: легко одержати код на основі наявного повідомлення, але практично неможливо відтворити повідомлення. Це важливо, коли алгоритм аутентифікації припускає використання таємного значення S. Саме значення S не посилається, але якщо хеш-функція не є однобічною, зловмисник може легко визначити таємне значення, досить спостерігати або перехоплювати потік даних, щоб одержати повідомлення М та дайджест . Потім зловмисник розгляне функцію, зворотну функції хешування та одержить . Тепер, коли зловмисник має та легко відновити таємне значення S.

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

Властивість 6 гарантує захист від атак на основі парадокса задачі про дні народження [2].

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

Найпростішою функцією хешування є функція, що зв’язує всі блоки операцією XOR.

,

де

– повідомлення, що продано у вигляді бітового потоку;

j-біт дайджесту , який обчислюється за формулою

,

де

m – число n-бітових блоків,

j-й біт в i-му блоці, ,

– операція XOR.

Роботу хеш-функції проілюстровано на рис. 16

Рисунок 16

3 Застосування пароля для підтвердження істинності користувача

Традиційно кожен законний користувач комп’ютерної системи одержує ідентифікаційний номер і/або пароль. На початку сеансу роботи з терміналом користувач називає системі свій ідентифікаційний номер (логін) після чого система запитує пароль користувача.

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

Рисунок 17 – Схема аутентифікації за допомогою пароля

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

Наприклад, функція може бути визначена таким чином:

,

де

- пароль відправника;

- ідентифікатор відправника;

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

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

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

де й – відповідно ключ та ідентифікатор відправника.

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

Рисунок 18 – Схема аутентифікації за допомогою пароля з використанням ідентифікаційної таблиці

4 Взаємна перевірка істинності користувачів

Звичайно, сторони, що вступають в інформаційний обмін, мають потребу у взаємній перевірці істинності (аутентифікації) один одного. Цей процес взаємної аутентифікації виконують на початку сеансу зв’язку.

Для перевірки істинності застосовують такі способи:

      • механізм запиту-відповіді;

      • механізм оцінки часу ("часовий штемпель").

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

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

В обох випадках для захисту механізму контролю варто застосовувати шифрування, щоб бути впевненим, що відповідь послана не зловмисником.

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

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

Припустимо, що застосовується симетрична криптосистема. Користувачі А і В використовують однаковий таємний ключ. Уся процедура показана на рис. 19.

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

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

  3. Тим часом користувач генерує випадкову послідовність за допомогою псевдовипадкового генератора й відправляє її користувачеві у вигляді криптограми

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