- •Безпека даних
- •Вступ. Основні поняття безпеки. Конфіденційність, цілісність та доступність даних. Класифікація загроз. Сервіси та механізми захисту.
- •Основні поняття і визначення криптографічного захисту даних.
- •Порушення, механізми і служби захисту.
- •Традиційне шифрування. Модель традиційного шифрування. Криптографія і криптоаналіз. Класична техніка шифрування: підстановки і перестановки.
- •Потокові і блокові шифри. Дифузія і конфузія. Шифр Файстеля. Диференційний та лінійний крипто аналіз. Принципи побудови блокових шифрів
- •Стандарт шифрування даних (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. Огляд існуючих аналізаторів
- •Відношення Історія експонатів
- •Список літератури
3. Підходи на основі шифрування з відкритим ключем
У главі 6 був представлений підхід, що дозволяє використовувати схеми шифрування з відкритим ключем для розподілу сеансових ключів (див. рис. 6.15). Відповідний протокол передбачає, що в розпорядженні кожної з двох сторін є поточний відкритий ключ іншого боку. Але на практиці вимога виконання цієї умови може виявитися незручною.
В [DENN81] пропонується наступний протокол, що використовує мітки дати / часу:
У цьому випадку центральна система виступає в якості сервера аутентифікації (AS), оскільки вона насправді не несе відповідальності за розподіл секретних ключів. Швидше, AS забезпечує сертифікацію відкритих ключів. Сеансовий ключ вибирається і шифрується стороною А, тому немає ризику його розголошення з боку системи AS. Мітки дати / часу захищають від відтворення скомпрометованих ключів.
Цей протокол компактний, але, як попередні, вимагає синхронізації годинників. Інший підхід, який запропонували By (Woo) і Лем (Lam) у [W0092a], передбачає застосування оказій. Відповідний протокол складається з наступних кроків.
На кроці 1 сторона А інформує ЦРК про свій намір встановити безпечне з'єднання зі стороною В. ЦРК повертає учаснику А примірник сертифіката відкритого ключа сторони В (крок 2). Використовуючи відкритий ключ учасника обміну інформацією В, сторона А інформує сторону В про намір встановити з'єднання і посилає оказію Na (крок 3).На кроці 4 сторона В запитує у ЦРК сертифікат відкритого ключа сторони А і сеансовий ключ. Відповідне повідомлення учасника В включає оказію учасника А, щоб ЦРК міг помітити що видається сеансовий ключ цією оказією. Оказія захищається шифруванням з використанням відкритого ключа ЦРК. На кроці 5 ЦРК повертає стороні В примірник сертифіката відкритого ключа сторони А та інформацію {Na, Ks, IDB}. Ця інформація, по суті, доводить, що Ks є секретним ключем, згенерованим ЦРК від імені сторони В і пов'язаним з Na, причому зв'язування Кs з Na покликане переконати сторону А в тому, що ключ Кs є новим. Ця трійка значень шифрується за допомогою особистого ключа ЦРК, щоб сторона В могла перевірити, що вказані значення насправді отримані від ЦРК. Потім все це шифрується за допомогою відкритого ключа В, щоб ніхто інший не міг використовувати ці значення в спробі створення незаконного з'єднання з А. На кроці 6 трійка значень {Na, Кs, IDв}, залишаючись у вигляді, зашифрованому за допомогою особистого ключа ЦРК, передається стороні А разом з оказією Nb, згенерованої стороною В. Все це разом шифрується тепер з використанням відкритого ключа А. Сторона А витягує з повідомлення сеансовий ключ Кs і використовує його для того, щоб зашифрувати Nb і повернути відповідне значення стороні В. Це переконує сторону В в тому, що сторона А дійсно отримала сеансовий ключ.
Описаний протокол здається цілком захищеним щодо атак самого різного виду, проте його автори самі виявили в ньому дефект і представили в [W0092b] наступну виправлену версію алгоритму.
Тут до безлічі елементів, шифрованих особистим ключем ЦРК на кроках 5 та 6, додається ідентифікатор IDА сторони А. Це пов'язує сеансовий ключ Ks з ідентифікаторами обох сторін, які братимуть участь у сеансі обміну даними. Включення в набір значення IDА пояснюється тим, що значення оказії Na має бути унікальним тільки для оказій, що генеруються стороною А, а не для всіх оказій, що генеруються будь-якою зі сторін. Таким чином, саме пара {IDA, Na} унікальним чином ідентифікує запит на з'єднання з боку А.
Як у випадку цього протоколу, так і у випадках протоколів, описаних вище, початкові версії протоколів надалі піддавалися ревізії і після додаткового аналізу з'являлися їх виправлені версії. Як бачите, в області аутентифікації вельми непросто домогтися прийнятного рівня надійності з першої спроби.
