- •Безпека даних
- •Вступ. Основні поняття безпеки. Конфіденційність, цілісність та доступність даних. Класифікація загроз. Сервіси та механізми захисту.
- •Основні поняття і визначення криптографічного захисту даних.
- •Порушення, механізми і служби захисту.
- •Традиційне шифрування. Модель традиційного шифрування. Криптографія і криптоаналіз. Класична техніка шифрування: підстановки і перестановки.
- •Потокові і блокові шифри. Дифузія і конфузія. Шифр Файстеля. Диференційний та лінійний крипто аналіз. Принципи побудови блокових шифрів
- •Стандарт шифрування даних (des). Критерії, що лежать в основі конструкції des. Алгоритми "Подвійний" та "Потрійний" des.
- •Режими роботи блочних шифрів. Проблема та схеми розподілу ключів симетричного шифрування.
- •1. Режим електронної шифрувальної книги
- •2. Режим зчеплення шифрованих блоків
- •3. Режим шифрованого зворотного зв'язку
- •Генерування випадкових чисел. Використання та джерела випадкових чисел. Генератори псевдовипадкових чисел.
- •Криптографія з відкритим ключем. Принципи побудови криптосистем з відкритим ключем.
- •Алгоритм rsa
- •Порівняння основних характеристик симетричних та асиметричних алгориммів
- •Управління ключами і схема Діффі–Хеллмана.
- •1. Публічне оголошення
- •2. Публічно доступний каталог
- •3. Авторитетне джерело відкритих ключів
- •4. Сертифікати відкритих ключів
- •1. Простий розподіл секретних ключів
- •2. Розподіл секретних ключів із забезпеченням конфіденційності і аутентифікації
- •3. Гібридна схема
- •Аутентифікація повідомлень і функції хешування. Вимоги та функції аутентифікації.
- •1.1. Шифрування повідомлення
- •1.1.1. Традиційне шифрування
- •Коди автентичності повідомлень та функції хешування.
- •1. Коди автентичності повідомлень
- •1.1. Необхідні властивості кодів автентичності повідомлень
- •1.2. Коди автентичності повідомлень на основі des
- •2. Функції хешування
- •2.1. Вимоги, що пред'являються до функції хешування
- •2.2. Прості функції хешування
- •2.3. Атаки, в основі яких лежить парадокс задачі про дні народження
- •3. Захист функцій хешування і кодів автентичності повідомлень
- •3.1. Атаки з перебором всіх варіантів
- •3.2. Функції хешування
- •Алгоритми хешування. Алгоритм hmac.
- •1.1. Цілі розробки нмас
- •1.2. Алгоритм нмас
- •1.3. Захищеність нмас
- •Цифрові підписи та протоколи аутентифікації. Вимоги до цифрового підпису. Стандарт цифрового підпису dss.
- •1. Цифрові підписи
- •1.1. Вимоги
- •1.2. Безпосередній цифровий підпис
- •1.3. Арбітражний цифровий підпис
- •Протоколи аутентифікації. Взаємна та одностороння аутентифікація. (прочитати уважно номери малюнків і т.Д.)
- •2. Підходи на основі традиційного шифрування
- •3. Підходи на основі шифрування з відкритим ключем
- •4. Одностороння аутентифікація
- •5. Підхід на основі традиційного шифрування
- •6. Підходи на основі шифрування з відкритим ключем
- •Програмна реалізація криптографічних алгоритмів. Використання криптографічних функцій Microsoft CryptoApi в прикладному пз. Поняття про безпечний цикл розробки пз (sdl).
- •1. Будова і можливості Crypto api
- •2. Криптопровайдери
- •3. Контейнери ключів
- •4. Алгоритми
- •5. Сертифікати
- •6. Базові функції
- •6.1. Шифрування
- •6.2. Експорт сесійних ключів
- •6.3. Імпорт сесійних ключів
- •6.4. Розшифрування
- •6.5. Хешування
- •6.6. Цифровий підпис
- •6.7. Перевірка цифрового підпису
- •Методи і засоби створення захищеного програмного забезпечення.
- •3. Класифікація вразливостей захисту
- •4. Огляд існуючих аналізаторів
- •Відношення Історія експонатів
- •Список літератури
Протоколи аутентифікації. Взаємна та одностороння аутентифікація. (прочитати уважно номери малюнків і т.Д.)
Базові схеми, описані в главі 8, застосовуються в безлічі додатків, включаючи додатки цифрового підпису, описані в попередньому розділі. Є й інші застосування цих схем, причому число таких застосувань зростає. У цьому розділі ми розглянемо два загальних випадки (взаємна аутентифікація та одностороння аутентифікація) і розберемося з деякими питаннями аутентифікації, що виникають в кожному з цих випадків.
1. Взаємна аутентифікація
Важливою сферою додатків є протоколи взаємної аутентифікації. Такі протоколи дають можливість обом сторонам, що приймають участь в обміні даними переконатися у справжності один одного і обмінятися сеансовими ключами. Ця тема вже обговорювалася в розділах 5.3 (традиційні методи; див. розділ 5) та 6.3 (схеми з відкритим ключем; див. розділ 6). Там в центрі уваги був розподіл ключів. Ми повертаємося до цієї теми, щоб розглянути тут можливості аутентифікації в більш широкому контексті.
У задачі авторизованого розподілу ключів головними виявляються дві проблеми: конфіденційність і своєчасність. Щоб запобігти можливості імітації і не допустити компрометації сеансових ключів, значна частина інформації по аутентифікації і сеансовим ключам повинна передаватися в зашифрованому вигляді. Це передбачає наявність секретних або відкритих ключів, які використовуються з цією метою і вже існуючих до початку обміну даними. Друга проблема, своєчасність, важлива зважаючи на загрозу можливості відтворення повідомлення. Таке відтворення в найгіршому випадку може дозволити противнику скомпрометувати сеансовий ключ або виступати від імені іншої сторони. Як мінімум успішне відтворення повідомлення може зруйнувати взаємодію сторін за допомогою представлення сторін повідомленнями, які здаються справжніми, але насправді такими не є.
В [GONG93] наводиться список наступних прикладів атак з використанням відтворення повідомлень.
Просте відтворення. Противник просто копіює повідомлення і пізніше відтворює його.
Відтворення, яке можна зареєструвати. Противник може відтворити повідомлення з міткою дати / часу усередині реального вікна часу.
Відтворення, яке не можна виявити. Ця ситуація може мати місце з огляду на те, що оригінальне повідомлення можна примусово затримати, щоб воно не досягло адресата, тоді адресат отримає лише відтворене повідомлення.
Зворотнє відтворення без модифікації. Це відтворення повідомлення, що повертається назад відправнику. Такий вид атаки виявляється можливим, коли використовується традиційне шифрування і для відправника не занадто просто відрізнити по вмісту повідомлення, яке надсилається від отримуваних.
Одним із способів протидії атакам з відтворенням повідомлень є приєднання до кожного повідомлення порядкового номера, використовуваного в процесі аутентифікації. Нове повідомлення приймається тільки тоді, коли воно має відповідний порядковий номер. Труднощі тут в тому, що при цьому кожній із сторін необхідно відстежувати порядкові номери для кожного з відправників, з якими доводиться мати справу. Через таке додаткове навантаження порядкові номери в процесах аутентифікації і обміну ключами зазвичай не використовуються. Замість цього застосовується один з наступних загальних підходів.
Мітки дати / часу. Сторона А приймає повідомлення як нове, тільки якщо повідомлення містить мітку дати / часу, значення якої, на думку А, досить близько до значення поточного часу в системі А. При цьому підході необхідно, щоб годинники сторін, які беруть участь в обміні даними, були синхронізовані.
Запит / відповідь. Сторона А, яка очікує нового повідомлення від В, спочатку посилає B оказію (запит) і вимагає, що наступне повідомлення, отримане від В (відповідь), містило відповідне коректне значення оказії.
Тут можна заперечити (див., наприклад, [LAM92a]), що мітки дати / часу не можна використовувати для додатків, заснованих на застосуванні протоколу з встановленням логічних з'єднань, через внутрішні властивості цієї технології. По-перше, потрібно який-небудь протокол, що забезпечує синхронізацію годин процесорів різних систем. Цей протокол має бути, з одного боку, толерантним до відмов, щоб розпізнавати мережні помилки, а з іншого - захищеним, щоб протистояти атакам ворожої сторони. По-друге, шанси успішного завершення атак зростають, коли виникають тимчасові порушення синхронізації через відмови годинного пристрою однієї зі сторін. Нарешті, через спонтанні і непередбачувані затримки в мережах, що для мереж цілком природно, не можна очікувати, що розподілені години можуть підтримувати точну синхронізацію. Тому будь-яка процедура, яка використовує мітки дати / часу, повинна допускати для вікна часу достатньо широкі рамки, щоб враховувати можливість затримок в мережі, але в той же час ці рамки повинні бути досить вузькими, щоб мінімізувати можливості для атак.
Водночас підхід з використанням запитів / відповідей не годиться для додатків, що працюють з протоколами без встановлення з'єднань, оскільки в таких додатках буде потрібно дуже велике число додаткових підтверджень перед передачею будь-якої порції даних, що зводить нанівець головні переваги моделі обміну даними без встановлення з'єднань. Для таких додатків кращим підходом є застосування деякого надійного сервера часу і узгоджені спроби кожної зі сторін утримувати свої годинники в синхронізації з годинником такого сервера (див., наприклад, [LAM92b]).
