ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 04.05.2024
Просмотров: 19
Скачиваний: 0
Рисунок 13
5 Для забезпечення автентичності можна використовувати дайджест без шифрування. У такому випадку передбачається, що учасники обміну використовують тільки їм відоме деяке значення S (рис. 14).
Джерело А обчислює хеш-функцію для результату конкатенації повідомлення М і таємного значення S і приєднує отриманий дайджест до повідомлення М. Адресатові В значення S відомо, тому він може теж обчислити дайджест, щоб зрівняти останній з дайджестом, що прийшов разом з повідомленням. У цьому випадку зловмисник не може модифікувати перехоплене повідомлення або згенерувати помилкове повідомлення, оскільки таємне значення S не пересилається.
Рисунок 14
6 Для забезпечення таємності в попередньому випадку можна додати шифрування повідомлення разом з дайджестом, що був отриманий від конкатенації повідомлення M і таємного значення S (рис. 15).
Рисунок 15
Проаналізувавши методи 1-6 стає ясно, що у випадку, коли конфіденційність не потрібна, застосування методів 2 і 3 більш доцільне через менші обчислювальні витрати. Але останнім часом спостерігається підвищений інтерес до методів без кодування 5. Це пов’язане з тим, що:
-
програмне забезпечення, що використовує шифрування, працює повільно;
-
ціни на апаратні засоби шифрування досить високі;
-
апаратні засоби орієнтовані на великі обсяги даних;
-
алгоритми шифрування можуть бути захищені патентами, які вимагають додаткових матеріальних витрат.
Вимоги, що ставляться до функції хешування
Мета функції хешування полягає в тому, щоб одержати «дактилоскопічну» характеристику відкритого тексту М. Для цього функція хешування повинна мати такі властивості:
-
бути прийнятною до блоку будь-якої довжини;
-
на виході давати значення фіксованої довжини;
-
дайджест h=Н(x) повинен обчислюватися легко для будь-якого заданого значення x, а алгоритм обчислення повинен бути практичним з погляду як апаратної, так і програмної реалізації;
-
для будь-якого даного дайджесту h практично неможливо обчислити x, для якого H(x)=h. Таку властивість називають однобічністю;
-
для будь-якого блоку x практично неможливо обчислити yx, для якого H(x)=H(y). Таку властивість називають слабкою опірністю колізіям;
-
практично неможливо обчислити будь-яку пару різних 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 повинен виконати над цим елементом певну операцію, наприклад, обчислити деяку функцію . Це неможливо здійснити заздалегідь, тому що користувачу невідомо, яке випадкове число Х прийде в запиті. Одержавши відповідь із результатом дій В, користувач А може бути впевнений, що В – справжній. Недоліком цього методу є можливість встановлення закономірності між запитом і відповіддю.
Механізм оцінки часу реалізується через реєстрацію часу для кожного повідомлення. У цьому випадку кожен користувач мережі може визначити, наскільки "застаріло" повідомлення, що прийшло, і вирішити не приймати його, оскільки воно може бути помилковим.
В обох випадках для захисту механізму контролю варто застосовувати шифрування, щоб бути впевненим, що відповідь послана не зловмисником.
При використанні оцінок часу виникає проблема припустимого тимчасового інтервалу затримки для підтвердження істинності сеансу. Адже повідомлення з "тимчасовою печаткою" у принципі не може бути передане миттєво. Крім того, комп’ютерні годинники одержувача й відправника не можуть бути абсолютно синхронізовані. Тому важко визначити, яке запізнювання "печатки" є підозрілим.