Рисунок 8 – Аутентифікація й конфіденційність повідомлень із використанням MAC (код зв’язується з відкритим текстом)
Варто звернути увагу, що використання функції MAC приводить до автентичності повідомлення, але не забезпечує цифрового підпису, оскільки ключ K знають
обидва учасника.
2.3 Функції хешування
Однією з варіацій кодів автентичності повідомлень є однобічна функція хешування.
Як у випадку кодів автентичності повідомлень, функція хешування одержує на вхід повідомлення М довільної довжини, а на вихід видає хеш-код H(M) фіксованого розміру, що називають профілем або дайджестом. Дайджест є функцією всіх бітів повідомлення та забезпечує можливість контролю помилок: зміна будь-якого числа бітів у повідомленні приводить до зміни дайджесту.
Рисунок 9 - Аутентифікація та конфіденційність повідомлень із використанням MAC (код зв’язується з шифротекстом)
Способи застосування дайджесту для аутентифікації повідомлень:
1 Повідомлення разом із приєднаним до нього дайджестом шифрується методами традиційного шифрування (рис. 10).
Рисунок 10
66
Аргументація автентичності полягає в такому: тільки джерелу А і адресату B відомий ключ K, отже повідомлення напевно прийшло від А і не могло бути змінено за шляхом проходження. Дайджест H (M ) забезпечує структуризацію і
надмірність, необхідну для аутентифікації. Оскільки, шифрування забезпечується стосовно всього повідомлення разом з дайджестом, забезпечується й конфіденційність.
2 Шифрується тільки дайджест засобами традиційного шифрування (рис. 11). Це дозволяє знизити обчислювальне навантаження на систему. Хоча таке застосування дайджестів виправдане в системах, які не вимагають конфіденційності.
Рисунок 11
Варто звернути увагу на той факт, що хешування та шифрування в комбінації фактично дають код автентичності повідомлення, тобто EK[H(M)] являє собою функцію повідомлення М довільної довжини й таємного ключа K, що дає на виході значення фіксованого розміру, захищене від зловмисника, який не знає таємного ключа.
3 Шифрується тільки дайджест засобами шифрування з відкритим ключем з використанням особистого ключа відправника (рис. 12). При цьому забезпечується не тільки автентичність повідомлення, але й цифровий підпис, тому що тільки відправник може зробити відповідним чином зашифрований дайджест. Фактично в цьому й полягає суть цифрового підпису.
Рисунок 12
Необхідно зазаначити, що дане застосування хеш-функції не забезпечує конфіденційності, оскільки відкритий (публічний) ключ K A A доступний усім.
4 Якщо необхідно забезпечити не тільки цифровий підпис, але й конфіденційність, можна зашифрувати повідомлення разом з дайджестом, що шифровано особистим ключем відправника. Для цього використовуються методи традиційного шифрування (рис. 13).
67
Рисунок 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. Таку властивість називають однобічністю;
68
5)для будь-якого блоку x практично неможливо обчислити y x, для якого
H(x)=H(y). Таку властивість називають слабкою опірністю колізіям;
6)практично неможливо обчислити будь-яку пару різних x та y, для яких H (x) H ( y) . Таку властивість називають сильною опірністю колізіям.
Необхідно зазаначити, що властивості 1-3 описують вимоги, що забезпечують можливість практичного застосування функції хешування для аутентифікації повідомлень. Властивість 4 забезпечує однобічність: легко одержати код на основі наявного повідомлення, але практично неможливо відтворити повідомлення. Це важливо, коли алгоритм аутентифікації припускає використання таємного значення S. Саме значення S не посилається, але якщо хеш-функція не є однобічною, зловмисник може легко визначити таємне значення, досить спостерігати або перехоплювати потік даних, щоб одержати повідомлення М та дайджест h H (M S ) . Потім зловмисник розгляне функцію,
зворотну функції хешування та одержить M S H 1 (h) . Тепер, коли зловмисник
має M та M S легко відновити таємне значення S.
Властивість 5 гарантує, що не вдасться знайти інше повідомлення, що дає в результаті хешування те саме значення, що й дане повідомлення. Це запобігає можливості фальсифікації повідомлень у тому випадку, коли виконується шифрування хеш-кода (у способах застосування хеш-кода 2 і 3. У такій ситуації зловмисник може прочитати повідомлення та обчислити відповідний хеш-код. Однак, він не має таємного ключа, а тому не може змінити повідомлення так, щоб цього не було виявлено. Якщо ця властивість не виконана, зловмисник може діяти в такий спосіб: спочатку перехоплюється повідомлення разом із приєднаним до нього дайджестом, потім обчислюється нешифрований хеш-код повідомлення і нарешті створюється альтернативне повідомлення з тим самим хеш-кодом.
Властивість 6 гарантує захист від атак на основі парадокса задачі про дні народження [2].
Всі функції хешування побудовані на загальних принципах. Значення, що вводиться (повідомлення, файл тощо), розглядається як послідовність n- бітових потоків. Дані, що вводять, оброблюються послідовно блок за блоком, щоб у результаті одержати n-бітове значення функції хешування. Найпростішою функцією хешування є функція, що зв’язує всі блоки операцією
XOR.
H (M ) C1C2 Cn ,
де
M – повідомлення, що продано у вигляді бітового потоку;
C j – j-біт дайджесту H (M ), 1 j n , який обчислюється за формулою
С j b1 j b2 j bmj ,
де
m – число n-бітових блоків,
bij – j-й біт в i-му блоці, 1 i m, 1 j n ,– операція XOR.
Роботу хеш-функції проілюстровано на рис. 16
69
Рисунок 16
3 Застосування пароля для підтвердження істинності користувача
Традиційно кожен законний користувач комп’ютерної системи одержує ідентифікаційний номер і/або пароль. На початку сеансу роботи з терміналом користувач називає системі свій ідентифікаційний номер (логін) після чого система запитує пароль користувача.
Найпростіший метод підтвердження істинності з використанням пароля заснований на порівнянні пароля PA , що зазначається користувачем, з вихідним
значенням P , що зберігається в комп’ютерному центрі (рис. 17). Оскільки пароль
A
повинен зберігатися в таємниці, його варто шифрувати перед пересиланням по
незахищеному каналу. Якщо значення P |
й P |
збігаються, то пароль |
P |
A |
A |
|
A |
вважається дійсним, а користувач - законним. Якщо зловмисник, довідається пароль та ідентифікаційний номер законного користувача, він одержить доступ у систему з повноваженнями законного користувача.
Рисунок 17 – Схема аутентифікації за допомогою пароля
70