Безпека програм та даних

Лектор:Мухін Вадим Євгенович
Практик:Долголенко Олександр Миколайович

Contents


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

Розділ I. Основні поняття теорії побудови системи безпеки комп’ютерних систем та мереж.

1.1 Проблема захисту інформації в КСМ (комп’ютерні системи та мережі)

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

  1. Захищеність даних, що оброблюються
  2. Цілісність даних, що оброблюються
  3. Доступність даних, що оброблюються
Засоби захисту повинні давати доступ “своїм” і у той же час не давати доступу “чужим” і не плутати їх.
Інформація вважається захищеною (безпечною), якщо вона володіє трьома вищезазначеними властивостями.
  • Захищена (конфіденційна) інформація – така інформація, доступ до якої дозволений для легальних суб’єктів та заборонений для решти (нелегальних суб’єктів).
  • Цілісність (integrity) інформації – властивість інформації, при якій в процесі обробки або передачі інформації будь-які модифікації або заборонені, або виконуються тільки легальними суб’єктами.
  • Доступність (availability) інформації – інформація має бути доступною для усіх без виключення легальних суб’єктів.

1.2 Периметр відповідальності засобів захисту інформації (ЗЗІ) в залежності від типу КС (комп’ютерної системи)

v ^
 ш|
 в|  __
 и| /  \
 д| |Л |
 к| |К |
 і| |С ____
 с| | /|ККС\
 т| | ||___|_________
 ь| / ||   | ГКС     \
  | \_\/___/_________/
  |
  +------------------------->
                            L (діаметр)

ЛКС – локальна комп’ютерна мережа. В ЛКС к-ть комп’ютерів обмежена. Виділяється СБ (сервер безпеки). Таким чином здійснюється централізоване управління. Недолік – вразливий СБ. Як тільки впаде СБ, впаде вся безпека КС

ККС – корпоративна комп’ютерна мережа. По факту є об’єднанням декількох ЛКС в одну мережу. На рівні ЛКС можна використовувати СБ. На рівні ККС можливі варіанти:

  1. Централізований СБ, зв’язаний з іншими СБ
  2. Побудова мережоцентричної (network-oriented) системи (усі вузли між собою пов’язані)

ГКС – глобальна комп’ютерна мережа (приклад – мережа Інтернет). Централізованого керування (принаймні офіційно) немає.

1.3 Класифікація учасників КС

Всі учасники КС діляться на суб’єкти і об’єкти.

Суб’єкти – активні учасники КС(користувачі) – вони безпосередньо генерують дані та ставлять задачу на обробку даних

Об’єкти – пасивні учасники системи(hardware)

Суть захисту інформації:

  1. Розділити учасників на об’єктів і суб’єктів.
  2. Легальним суб’єктам надати доступ
  3. Нелегальним суб’єктам заборонити доступ.
 __        Legal        __
|__  <---------------> |  |
 __| <-----x-x-x-----> |__|
         Non-Legal

Суб’єкти в свою чергу поділяються на легальні та нелегальні.

Легальні – ті суб’єкти, які зареєстровані в системі(мають ім’я/пароль), мають певні права і вони діють в систмі виключно в рамках виділених прав.

Нелегальні – ті суб’єкти, які не зареєстровані в системі або зареєстровані, але перевищують свої повноваження.

1.4 Класифікація вторгнень.

Вторгнення в КС – отримання несанкціонованого доступу (НСД) зі сторони суб’єктів до об’єктів КС.

Вторгнення поділяються на

  • активні
  • пасивні

До активних вторгнень належать:

  • модифікація даних
  • перехоплення даних
  • знищення даних
  • порушення функціонування ОС
  • порушення каналів передачі даних
  • порушення функціонування апаратури.

Активні вторгнення завжди очевидні, вони легко себе проявляють. Їх легко виявити по шкідливому для КС результату: відсутності даних, порушеного функціонування ОС, тощо.

Пасивні вторгнення – вторгнення, орієнтовані на попереднй збір даних. Фактично, пасивні вторгнення – підготовка до активного вторгнення. До пасивних вторгнень належать:

  • сканування реєстраційних даних користувачів
  • скануванян каналів передачі даних
  • виконання дампів пам’яті (memory dumps)

Такі вторгнення в більшості непомітні. Існують системи, які допомагають виявити та запобігти таким вторгненням.

1.5 Канали витоку інформації

Всього виділяють 4 основних канали витоку інформації.

  1. радіотехнічний канал.
  2. організаційний
  3. системно-технічний (апаратний)
  4. програмний

Радіотехнічни канал. нелгальні суб’єкти займаються зчитуванням побічного електромагнітного випромінювання та наведень (ПЭМИН). Для цього потрібна спеціальна апаратура. Вбудовування закладок також є частою практикою атак на цей канал:

  • пасивні антени дозволяють краще налаштовуватися на перехоплення даних КС
  • активні антени дозволяють впливати на роботу КС

Організаційний канал. Є найбільш небезпечним із усіх каналів витоку інформації. Цей канал включає в себе використання так званого адміністративного фактору. Адміністративний фактр – дії адміністратора (у т.ч. адміністратора безпеки) по відношенню до системи. Тобто організаційний канал виникає, коли адміністратор системи з тих чи інших причин “грає” проти системи. Приклади: Едвар Сноуден, Юліан Ассандж.

Системно-технічний канал. Системно-тхнічний канал включає в себе використання спеціальної апаратури для реалізації НСД (несанкціонованого доступу). Як і в радіотехнічному каналі, використовуються закладки. На відміну від радіотехнічного каналу, застосовуються інший підхід – замість вбудовування закладок у мікросхеми, використоується інший пристрій, який непомітно підключається до КС та записує активність у КС. Також, можливий варіант, коли за допомогою спеціального T-конетора, під’єднаного до мережевих кабелів, перехоплюють потік даних у КС.

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

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

1.6 Основні напрямки захисту інформації в КС

Виділяють 4 основні напрями захисту інформації (ЗІ).

  1. Нормативно-правовий напрям
  2. Організаційний напрям
  3. Апаратно-технічний напрям
  4. Програмний напрям

Нормативно-правовий напрям. На державному рівні створюється нормативно-правова база в галузі ЗІ. Це відповідні закони, підзаконні акти та нормативна документація. Цим займається ДССЗЗІ (Державна служба спеціального зв’язку та захисту інформації). Ця служба також видає ліцензії на діяльність у сфері захисту інформації. В Україні н аданий момент є 3 баові закони про захист інформації:

  1. Закон України «Про інформацію»
  2. Закон України «Про державну таємницю»
  3. Закон України «Про захист інформації в інформаційно-телекомунікаційних системах»

Також введено кримінальну відповідальність за НСД до автоматизованих КС.

Вся інформація в Україні поділяється на такі категорії:

  • Відкрита інформація (більшість інформації)
  • Конфіденційна інформація (ДСК – для службового користування). Щоб отримати доступ до цієї інформації, необхідно отримати допуск.
  • Секретна інформація.
  • Цілком таємна інформація.

Організаційний напрям. Цей напрям закриває відповідний канал витоку. У КС виділяється адміністратор безпеки. При підключенні до системи адміністратор видає логін/пароль, а також службову інструкцію про правила поведінки в мережі та про санкції у випадку їх порушення. При наймі адміністратора безпеки, йому також видається посадова інструкція, де перераховані санкції за порушення.

Апаратно-технічнй. В даному напрямі ведеться розробка спеціальних апаратних засобів захисту інформації. В першу чергу – це засоби автентикації (authentication). Окрім засобів автентикації використовують системи апаратного розділення доступу та апараті системи шифрування.

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

  • Антивіруси
  • Програми шифрування
  • Програми моніторингу
  • Програми розділення доступу
  • Програмні системи автентикації
Програмне забезпечення, що використовується для захисту інформації ДСК та вище має бути сертифіковано.
Сучасні ОС беруть на себе деякі функції ЗІ

1.7 Базові моделі побудови ЗЗІ

Виділяють 3 базові моделі, які в загальному випадку дозволяють описати механізм взаємодії суб’єктів по відношенню до об’єктів в рамках КС, яку захищають.

  1. Модель Белла та ЛаПадули є найбільш універсальною моделлю: більшість ЗЗІ будуються за заданою моделлю.

      +-X-X-X-X-X-X-X-X-X+
      |                  |
      v                  v
    +---+              +---+
    |   |    +----+    |   |
    | S |<-->| ДД |<-->| O |
    |   |    +----+    |   |
    +---+      ^       +---+
               |
               v
            +-----+
            | |R| |
            +-----+
    
    ДД -- Диспечер доступу
    |R| -- Матриця доступу
    
    s\o|o1|o2|o3|
    ---+--+--+--+
     s1| 1| 0|  |
    ---+--|--+--+
     s2| 0| 1|  |
    ---+--|--+--+
     s3| 0| 1|  |
    ---+--+--+--+
    

    Початковою умовою для використання даної моделі є чіткий поділ усіх учасників КС на об’єкти та суб’єкти.

  2. Модель Денінга (Low Water Marks, LWM). Модель концентричних кілець.

         +----------------------------+
         |                            |
         |  +-------------------+-+   |
         |  |                     |   |
         |  |  +---------------+  |   |
         |  |  |               |  |   |
         |  |  |  +---------+  |  |   |
         |  |  |  |         |  |  |   |
         |  |  |  |  +---+  |  |  |   |
     |   |  |  |  |  | p |  |  |  |   |    ^
    R|   |  |  |  |  +---+  |  |  |   |    |
    E|   |  |  |  |    g    |  |  |   |    |W
    A|   |  |  |  +---------+  |  |   |    |R
    D|   |  |  |       p       |  |   |    |I
     |   |  |  +---------------+  |   |    |T
     |   |  |          g          |   |    |E
     |   |  +---------------------+   |    |
     |   |             p              |    |
     |   +----------------------------+    |
     v                 g                   |
    
    Кільце – рівень доступу
    Правила запису – в своє і усі внутрішні кільця
    Правила читання – своє та усі зовнішні кільця

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

  3. Модель Лендвіра. Лендвір запропонував розглядати КС, як певний чорний ящик з відомими входом та виходом.

           +--------------------+
    IN     |                    |   OUT
    ------>|         КС         |------>
           |                    |
           +--------------------+
    

    Дані та права доступу перевіряються тільки на вході та виході із КС, контроль за тим, що відбувається всередині системи, не здійснюється.

    Дана модель не має властивості універсальності. Тому є сенс застосовувати її тільки у тих випадках, коли увімкнений внутрішній контроль системи.

Таким чином універсальною з трьох наведених є тільки модель Белла та ЛаПадули. Дві інші моделі є сенс застосовувати у комбінації з моделлю Белла та ЛаПадули

Вцілому, можливо застосовувати усі три моделі одночасно.

1.8 Модель моніторингу безпеки КС

Моніторинг безпеки – комплексна система слідкування за станом захищеності ресурсів КС.

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

Алгоритм найбільших статистичних аномалій

Для підтримки моніторингу розроблена спеціальна модель моніторингу на основі алгоритму найбільших статичних аномалій (АНСА).

  1. \(\vec{x} = (x_1, x_2, x_3, \dots, x_n)\), де \(x_i\) – фактор, реалізація якого впливає на ймовірність НСД. Наприклад, кількість спроб входу в систему з паролем, кількість спроб зверитання до захищених областей пам’яті, \(x_3\) – к-ть спроб звертання до системних функцій.
  2. Визначення порогового вектору \(\vec{x_{\max}} = (x_{1 \max}, x_{2 \max}, \dots, x_{n \max})\), де \(x_{i \max}\) – максимальне значення i-го фактору, яке не вважається НСД.
  3. Формування вектору Бернуллі \(\vec{b} = (b_1, b_2, \dots, b_n)\), де \(b_i = \begin{cases} 1 \text{ якщо } x_i > K_d \cdot x_{i \max} \ 0 \text{ в усіх інших випадках } \end{cases}\); \(К_d\) – коефіціент небезпеки
  4. Визначення ймовірності небезпеки зі сторони суб’єкта s в сеансі. \(p_{s_i} = \displaystyle\sum_{i = 1}^{n} (b_{s_i} \cdot w_i)\), де \(w_i\) – вагові коефіціенти, причому \(\displaystyle\sum_{i = 1}^{n}(w_i) = 1\)
  5. Оцінка \(LS_s\) – рівня підозрілості (Level of suspicios) суб’єкта s: \(LS_s = \displaystyle\sum_{i = 1}^{n}(p_{s_i})\). Якщо \(LS_s > LS_{s \max}\), то користувача s вважають зловмисником.

Розділ 2. Ідентифікація, Автентикація, Права розмежування доступу в КСС

2.1 Прості паролі

login:    somelogin
password: *******

Автентикація – процес підтвердження користувачем своєї особистості.

До пароля висувається ряд вимог:

  1. Пароль повинен мати певну довжину. Наразі рекомендована довжина пароля в системах з відкритим доступом – 8 символів.
  2. Пароль не повинен мати семантики. Пароль не повинен асоціюватися із власником.
  3. Пароль не може бути простим повторенням символів або простою послідовністю символів.
  4. Пароль повинен містити цифри та бути регістрозалежним (case sensitive)
  5. При вводі пароль повинен відображатися у вигляді ехо-друку (echo-print). Тобто замість символів паролю відображається якийсь символ-заміщувач (placeholder character)
  6. Пароль не має бути представленим у явному вигляді. (записаним на папреі, наліпленим на монітор, тощо)

2.2 Оцінка стійкості пароля

Нехай

  • \(l\) – довжина пароля.
  • \(t_{поп}\) – час підбору одного пароля.
  • \(A\) – потужність алфавіту.

Тоді кількість можливих паролів – \(A^l\), а час перебору усіх паролів – \(A ^ l \cdot t_{поп}\)

Час підбору довільного пароля в середньому складає

\[t_{пп} = \frac{ A^l \cdot t_{поп} }{2}\]

Розглянемо такий випадок:

Дано:

  • \(l = 3\),
  • \(A = 40\),
  • math:t_{поп} = 10 ^ {-6} text{c}.

Тоді

\[t_{пп} = \frac{40^3 \cdot 10^{-6}}{2} = 0.032 \text{с}\]

При довжині пароля у 8 символів маємо:

  • \(l = 3\),
  • \(A = 40\),
  • \(t_{поп} = 10 ^ {-6} \text{c}\).
\[t_{пп} = \frac{40^8 \cdot 10^{-6}}{2} = 3276800.0 \text{с} \approx 38 \text{діб}\]

Звідси існує рекомендація, що змінювати пароль потрібно раз у 30 днів.

2.3 Модифікація механізму простих паролів

Список паролів

Адміністратор видає список із n паролів. При першому вході застосовується пароль №1, при другому вході в систему – другий пароль, при n-ному вході – пароль №n

На практиці незастосовно через людський фактор.

Механізм “рукостискань”

          x=0.5
  +---+<-----+---+
  | A |      |КСС|
  +---+----->+---+
    passwd = y(x)

Суб'єкт A знає функцію y = f(x),
яка залежно від параметра x
генерує новий пароль

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

2.4 Багатофакторна автентикація (Multiway authentication)

В цьому випадку для автентикації використовуються 2 незалежні між собою способи автентикації.

Біометрична автентикація

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

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

2.5 Рекомендації по вибору механізмів автентикації

Якщо в комп’ютерній системі оброблюється відкрита інформація або конфіденційна інформація, достатньо використання механізму простих паролів.

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

Важливо всі паролі в системі повинні бути унікальними, тобто жодні 2 користувача не можуть мати два однакові паролі.

2.6 Засоби розділення доступу в КСС

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

  1. Диспечер доступу
  2. Матриця доступу

Матриця доступу – по суті, це реєстраційний журнал. В системі ведеться спеціальний реєстраційний журнал. Він містить близько 5-7 основних полів, деякі з яких за допомогою спеціальних засобів конвертуються в матрицю доступу.

2.7 СРД – Системи розділення доступу

Модель Белла та ЛаПадули.

  +-X-X-X-X-X-X-X-X-X+
  |                  |
  v                  v
+---+              +---+
|   |    +----+    |   |
| S |<-->| ДД |<-->| O |
|   |    +----+    |   |
+---+      ^       +---+
           |
           v
        +-----+
        | |R| |
        +-----+

Суть полягає у створенні Диспечеру доступу. Є два варіанти його створення:

  • Програмна реалізація.

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

        /   +--------------------+
        |   |         ККД        |
    СКД <   +--------------------+
        |   |        ППЗУ        |<--тут зберігаються
        \   +--------------------+   логіни і паролі
    
    ККД -- Контролер доступу
    СКД -- Спеціальний контролер доступу
    ППЗУ -- запам'ятовуючий пристрій
    

    Також необхідно реалізувати драйвер для роботи з контролером. При запиті до даних, контролер перевіряє права доступу у ППЗУ. Якщо права доступу немає, то контролер відмовляє у доступі до даних.

Всі засоби захисту, реалізовані програмно, можуть бути зламані програмно.

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

Час реєстрації Логін Пароль Права Автентикація Нотатка
1475150079 user1 ### /usr/1/1.txt 4 = 2x + 1 ПІП, телефон, адреса, тощо
... ... ... ... ... ...
  • Дата зберігається у стандартизованому форматі – Unix Timestamp, наприклад. Unix Timestamp – це кількість секунд, що пройшли з 01.01.1970 року.
  • Логін – ім’я користувача в системі. Може не співпадати з реальним іменем
  • Пароль зберігається деінде в зашифрованому вигляді. В полі пароль – посилання на місце збереження пароля
  • Права – визначають права доступу користувача до файлів на диску
  • Інформація у полі автентикація також зберігається у зашифрованому вигляді
  • Нотатка – інформація для адміністратора. Згідно Закону “Про захист персональних даних” адміністратор повинен забезпечити безпеку цих даних.

За допомогою спеціального програмного забезпечення логін перетворюєтья у ідентифікатор, а права доступу у REWMAO

REWMAO – 6 бітів, що визначають права:

  • R – право на читання (read)
  • E – право на виконання (execute)
  • W – право на запис (write)
  • M – право на модифікацію ситемної інформації (modify)
  • A – право на адміністрування (administrate) – робота з існуючими ресурсами
  • O – право власності (ownership). Якщо є право власності, то можна змінювати конфігурацію системи.

Права R, E, W – регулярні права, права M, A. O – права на системну інформацію.

Для прав A та O існує таке поняття, як покриття прав. Якщо у користувача є право адміністрування, то в нього автоматично є і права REWM, якщо ж користувач має право власності, то він автоматично має усі права.

Реєстраційний журнал повинен зберігатися в захищених областях пам’яті. Якщо журнал зберігається у відкритому вигляді, то поля пароль, автентикація, персональні дані повинні зберігатися окремо у захищеному вигляді.

2.8 Операційний журнал

Для СМБ (Систем Моніторингу Безпеки) необхідно набрати певну статистику. Ця статистика подається на вхід системи моніторингу безпеки. Для зручності збору та обробки статистики має сенс представляти її у деякому єдиному форматі. Таким форматом є операційний журнал.

Час входу в систему Логін Дія Коментар
1475150079 vova /usr/1/1.txt -> r  
1475150879 sanek /usr/bin/python -> e  
1475152870 vova /usr/bin/su -> e !!!

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

У полі коментар адміністратор може позначати підозрілі дії, щоб потім проаналізувати їх додатково.

2.9 Мандатні списки та списки доступу

Матриці доступу на 70-80% складаються із 0, так як користувачі, в основному, мають доступ до невеликої частини ресурсів.

Для зменшення об’єму інформації, що зберігається, є сенс розбити матрицю доступу на рядки та стовпці.У випадку, якщо матрицю розбивають на рядки, отримуємо мандатні списки. При цьому, в мандатних списках відсутні нулі. Таким чином, довжина мандатного списку становить ~20% довжини запису в матриці доступу.

Мандатний список являє собою записи тих об’єктів, котрі, по-перше, зареєстровані в системі, а, по-друге, мають право доступу як мінімум до одного ресурсу. Довжина мандатного списку у кожного суб’єкта індивідуальна, але в середньому вона становить 20% – 25% від запису в матриці доступу.

При розбитті матриці на стовпці ми отримуємо список доступу. Як і мандатні списки, списки доступу не включають записи із нульовими значеннями.

В комп’ютерних системах, де кількість суб’єктів постійна, а об’єкти змінюються динамічно, є сенс використовувати мандатні списки.

Якщо в системі кількість об’єктів стабільна, а суб’єкти міняються динамічно, то є сенс використовувати списки доступу.

В решті випадків списки доступів і мандатні списки абсолютно еквівалентні.

2.10 Механізм замків та ключів

+--------+
|REWMAO:Z|
+--------+

Z = 0001 -- рядок символів
  1. Коли користувач S1 звертається до об’єкта O2, він додатково надає ключ K.
  2. Якщо ключ співпадає із замком, то розглядаються права користувача до об’єкту, інакше – права користувача відносно об’єкту – 000000

Механізм замків та ключів вимагає внесення змін у диспечер доступу, так як за замовчуванням диспечери доступу не підтримують такого механізму.

Розділ 3. Криптографічні моделі.

3.1 Основні визначення в області криптографії

Криптографія (kryptos – таємниця graphos – пишу) – наука про спеціальні перетворення інформації з метою приховання її семантики.

Криптоперетворення реалізовуються за допомогою криптоалгоритмів.

Шифрування – процес перетворення вихдного тексту з використанням спеціальних механізмів з метою приховання семантики вихідного тексту.

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

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

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

Ключ шифрування – певна послідовність символів, яка слугує у якості вхідної і змінної частини алгоритму шифрування. Ключ обов’язково має бути секретним, хоча є випадки, коли використовується пара ключів. Тоді тільки один із них є секретним.

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

Криптостійкість алгоритму – число операцій (макрооперацій), котрі мають бути здійснені в середньому при проведенні процедури дешифрування.

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

Швидкість шифрування – об’єм інформації (переважно в байтах), яку криптосистема здатна перетворити за 1 секунду. Сучасні засоби дозволяють за 1 секуднду зашифрувати і розшифрувати 10МБ за 1 секунду.

3.2 Класифікація криптографічних систем

  • Прості криптографічні системи
  • шифр Цезаря
  • шифр Шенона
  • Складні криптографічні системи
  • потокові
    • B-crypt
  • блочні
    • симетричні
    • DES
    • ГОСТ 28147-89
    • AES (RCS, MARS, TWO-FISH)
    • асиметричні
    • RSA
    • Al-Gamal

Прості критосистеми на практиці не застосовуються. Вони мають важливе теоретичне значення, оскільки деякі механізми таких систем успішно використовуються у складних криптосистемах.

Потокові криптосистеми орієнтовані на шифрування потоку даних.

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

В асиметричних системах використовується 2 ключі. За допомогою одного ключа дані шифруються, а за допомогою іншого – розшифровуються. Таким чином немає потреби у передачі секретного ключа – ключ для шифрування можна передавати відкрито – за допомогою нього не можна розшифрувати дані. Але асиметричні системи працюють помітно повільніше за симетричні.

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

3.3 Шифр Цезаря

Суть: циклічний зсув алфавіту на $ N $ позицій. В класичному варіанті \(N = 2\). Таким чином маємо такі перетворення:

Orig New
A C
B D
C E
X Z
Y A
Z B

Формально перетворення алгоритму Цезаря можна задати такою формулою:

$$ e(s) = (d(s) + 2) \mod A $$

$$ d(s) = (e(s) - 2) \mod A $$

Враховуючи, що в загальному випадку зсув може бути довільним, маємо

$$ e(s) = (k \cdot d(s) + c) \mod A $$

$$ d(s) = (\frac{e(s)}{k} - c) \mod A $$

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

Алгоритм Цезаря – це типовий алгоритм підстановки. Він може бути представлений у вигляді S-блоку (S – Substitution – перестановка)

3.4 Шифр Шенона

Використовує функцію XOR, та наступну її особливість:

\[\begin{split}A \oplus K = B \\ B \oplus K = A\end{split}\]

В загальному випадку маємо:

\[\begin{split}D = D_1 \cup D_2 \cup D_3 \cup … \cup D_n \\ K = K_1 \cup K_2 \cup K_3 \cup … \cup K_n\end{split}\]

Застосувавши XOR маємо:

\[E = E_1 \cup E_2 \cup … \cup E_n\]

Часто з цим шифром застосовується ЛКГ – генератор.

\[W_{i+1}=frac(\frac{A \cdot W_i + C}{D})\]

де \(frac(1.02) = 0.02\) – функція отримання дробової частини

Тоді \(W_i \to K_i\)

Цей генератор використовується для генерації ключів.

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

Даний метод може бути дешифрований навіть шляхом прямого перебору.

В результаті виникло таке поняття, як функція шифрування Це перетворення повинно мати комплексний нелінійний характер.

Алгоритм Шенона може бути представлений у вигляді P-блоку (P – Permutation – перестановка)

3.5 Люцифер

Детальніше: wikipedia

На 1970 рік шифр Цезаря і Шенона вже були легко зламувані. Так. шифр Шенона можна було дешифрувати за ~1 добу.

Тому виникла потреба у новій криптосистемі. Такою криптосистемою стала система «Люцифер»

     +-------+  +-----+   +-------+  +-----+   +-------+  +-----+   +-------+
1 +--|   P   |  |  S  |   |   P   |  |  S  |   |   P   |  |  S  |   |   P   |
2 +--|       |--|     |---|       |--|     |---|       |--|     |---|       |
3 +--|       |  |     |   |       |  |     |   |       |  |     |   |       |
  +--|       |  +-----+   |       |  +-----+   |       |  +-----+   |       |
  +--|       |  +-----+   |       |  +-----+   |       |  +-----+   |       |
  +--|       |  |  S  |   |       |  |  S  |   |       |  |  S  |   |       |
  +--|       |--|     |---|       |--|     |---|       |--|     |---|       |
  +--|       |  |     |   |       |  |     |   |       |  |     |   |       |
  +--|       |  +-----+   |       |  +-----+   |       |  +-----+   |       |
  +--|       |  +-----+   |       |  +-----+   |       |  +-----+   |       |
  +--|       |  |  S  |   |       |  |  S  |   |       |  |  S  |   |       |
  +--|       |--|     |---|       |--|     |---|       |--|     |---|       |  64
  +--|       |  |     |   |       |  |     |   |       |  |     |   |       |--/--
  +--|       |  +-----+   |       |  +-----+   |       |  +-----+   |       |
  +--|       |            |       |            |       |            |       |
  +--|       |  ......    |       |  ......    |       |  ......    |       |
  +--|       |            |       |            |       |            |       |
  +--|       |            |       |            |       |            |       |
  +--|       |            |       |            |       |            |       |
  +--|       |            |       |            |       |            |       |
  +--|       |            |       |            |       |            |       |
  +--|       |            |       |            |       |            |       |
  +--|       |  +-----+   |       |  +-----+   |       |  +-----+   |       |
  +--|       |  |  S  |   |       |  |  S  |   |       |  |  S  |   |       |
  +--|       |--|     |---|       |--|     |---|       |--|     |---|       |
64+--|   1   |  |     |   |   2   |  |     |   |  15   |  |     |   |  16   |
     +-------+  +-----+   +-------+  +-----+   +-------+  +-----+   +-------+
  • Схема використовує цикли шифрування. Цикл шифрування – фрагмент схеми, що регулярно повторюється.
  • Цикл шифрування може бути настроюваним, але загальна структура залишається постійною.
  • У схемі «Люцифер» було вперше введено фіксований блок шифрування.
  • Схема «Люцифер» – симетрична. Дані подаються на вхід блоку P1, а на виході з блоку P16 отримуємо зашифрований текст. Щоб розшифрувати дані – зашифрований текст подається на блок P16, а в блоці P1 – отримаємо розшифрований текст.
  • Система «Люцифер» має одмин суттєвий недолік: в цій системі відсутнє курування Тобто P-блоки задані у вигляді таблиць, S-блоки задані у вигляді таблиць. Ці таблиці не змінюються після первинного налаштування. Це означає, що всі дані шифруються по одній і тій же схемі.

Через деякий час була представлена модифікація криптосистеми, яка дозволяла управління.

     +-------+   +-----+              +-------+
1 +--|   P   |   |  S  |              |   P   |
2 +--|       |---|  1  |-            -|       |
3 +--|       | +-|     |              |       |
  +--|       | | +-----+              |       |
  +--|       | | +-----+              |       |
  +--|       | | |  S  |              |       |
  +--|       |---|     |-           --|       |
  +--|       | +-|     |              |       |
  +--|       | | +-----+              |       |
  +--|       | | +-----+              |       |
  +--|       | | |  S  |              |       |
  +--|       |---|     |-           --|       |  64
  +--|       | +-|     |              |       |--/--
  +--|       | | +-----+              |       |
  +--|       | |                      |       |
  +--|       | | ......     ......    |       |
  +--|       | |                      |       |
  +--|       | |                      |       |
  +--|       | |                      |       |
  +--|       | |                      |       |
  +--|       | |                      |       |
  +--|       | |                      |       |
  +--|       | | +-----+              |       |
  +--|       | | |  S  |              |       |
  +--|       |---|  8  |-           --|       |
64+--|   1   | +-|     |              |  16   |
     +-------+ | +-----+              +-------+
               |
 D ------------+

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

Окрм того, для адаптації довжини блоків, що шифруються, до довжини ключа, було запропоновано використовувати т.з. E-блоки (Extended-blocks) – блоки розширення. Більш того, при формуванні внутрішніх ключів (в алгоритмі DES) було введено поняття V-блок – блок вибірки.

3.6 Криптоалгоритм DES

Примітка

Детальніше читайте у статті про DES на Wikipedia та на tutorialspoint

  • Data Encryption Standard
  • Розроблений у 1977 році
  • Блочний алгоритм

Основні характеристики алгоритму DES:

  1. Алгоритм симетричний (тобто для шифрування і розшифрування використовується один і той же ключ, який є секретним)

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

  3. 16 циклів шифрування

  4. Криптостійкість алгоритму оцінюється як \(2^{55}\) макрооперацій:

    Із 64 бітів ключа використовується всього лише 56 бітів. Тому загальна к-ть варіантів ключа – \(2^{56}\). Згідно теорії ймовірності, є імовірність підібрати ключ за менше, ніж \(2^{56}\) спроб, тому криптостійкість дорівнює \(\frac{2^{56}}{2} = 2^{55}\)

  5. Введено поняття “функція шифрування”. Функція шифрування бере участь у кожному циклі шифрування, але при цьому вона є керованою. Керування здійснюється за допомогою ключа.

  6. Нелінійність процедури шифрування. За рахунок цього досягається поліноміальна складність відновлення ключа при відомих вхідних і вихідних даних.

Схема

Схема алгоритму DES

Блоки IP-1 і блок FP-2 задаються таблично

58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
62 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
\[\begin{split}1 \to 58 \\\end{split}\]
\[\begin{split}2 \to 50 \\\end{split}\]
\[\begin{split}3 \to 42 \\\end{split}\]
\[\begin{split}4 \to 34 \\\end{split}\]
\[\begin{split}5 \to 26 \\\end{split}\]
\[\begin{split}6 \to 18 \\\end{split}\]
\[\begin{split}7 \to 10 \\\end{split}\]
\[\begin{split}8 \to 2 \\\end{split}\]
\[\begin{split}9 \to 26 \\\end{split}\]
\[\begin{split}\dots \\\end{split}\]
\[64 \to 7\]

Матриці перестановок в DES (комерційній версії) є відкритими і задані стандартом.

Функція шифрування являє собою комбінацію S-блоків, E-блоків і P-блоків. При цьому всередині цієї функції використоується операція XOR із розрядами ключа. Дана функція володіє властивістю нелінійності та є настроюваною, що дозволяє суттєво підвищити криптостійкість.

Особливості шифрування по алгоритму DES

  • Вихідне повідомлення розбивається на 2 блоки по 32 біти кожен і далі окремо оброблюються і ліва, і права частини, але при цьому на кожному циклі відбувається обмін між лівою і правою частинами, ліва частина додається до функції шифрування за допомогою операції XOR.
  • Функція шифрування є ключовим елементом алгоритму DES. Вона визначає такі важливі параметри, як криптостійкість і швидкість шифрування.
Функція шифрування DES

Розглянемо функцію шифрування.

Feistel encryption function of DES

12 17 31 1 7 8 11 27
               
        1      
        7   8  

S-блоки – блоки підстановки. Вони працюють за табличним принципом.

[0][1111][0] → [00][1111] → [0][15]

0101 1101
1101 0011

Таблиці S-блоків – загальні для усіх S-блоків. Більш того, вони задаютлся стандартом алгоритму.

Розглянута функція – т.з. “класична” функція шифрування за алгоритмом DES. Можливими модифікаціями є зміна довжини блоків шифрування і довжини циклових ключів. Зокрема, в деяких модифікаціях використовується цикловий ключ довжиною у 128 біт. Зміна тільки довжини циклового ключа без зміни довжини блоку призводить до зниження криптостійкості. Таким чином, треба змінювати і довжину блоку. Втім, збільшення довжини блоку шифрування призводить до зниження швидкодії алгоритму шифрування.

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

Також, підвищенню криптостійкості сприяє заміна E-блоку на P-блок.

Важливим моментом є проблема формування циклового ключа. Існує спеціальна схема перетворень, за якою із базового ключа (довжиною 64 біти) ми отримуєм 16 циклових ключів (довжиною у 48 біт кожен).

Схема перетворення ключа з метою отримання циклових ключів

Key generation scheme

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

Схема алгоритму DES задана таким чином, що імовірність отримання двох однакових циклових ключів надзвичайно низька.

Модифікації алгоритму DES

Найпершими модифікаціями алгоритму DES були 2DES і 3DES

Нехай D – дані, K – ключ, E – зашифрований текст. Тоді для алгоритму DES матимемо:

\[\begin{split}E = Ш(D, K) \\\end{split}\]
\[D = РШ(E, K)\]

Криптостійкість схеми складає \(\approx 2^{70}\)

У алгоритмі 2DES є два ключа – K1 і K2:

\[\begin{split}E_1 = Ш(D, K_1) \\\end{split}\]
\[E = E_2 = РШ(E_1, K_2)\]

Для розшифрування:

\[\begin{split}D_1 = Ш(E, K_2) \\\end{split}\]
\[D = D_2 = РШ(D_1, K_1)\]

Криптостійкість схеми складає \(\approx 2^{70}\)

Для схеми 3DES потрібно 3 ключі: \(K_1\), \(K_2\), \(K_3\). Сама схема шифрування має вигляд:

\[E_1 = Ш(D, K_1)\]
\[E_2 = РШ(E_1, K_2)\]
\[E = E_3 = Ш(E_2, K_3)\]

При розшифруванні схема 3DES має вигляд:

\[D_1 = РШ(E_3, K_3)\]
\[D_2 = Ш(D_1, K_2)\]
\[D = D_3 = РШ(D_2¸K_3)\]

Криптостійкість схеми 3DES досягає \(\approx 2^{90}\)

3.7 Цифровий підпис (Digital signature)

   A                      B
+-----+                +-----+  3
|     |                |     | K
|     |                |     |  A
|     | ------------>  |     | +-----+
|     |       ^        |     | |     |
| 100 |       |        |10000| +-----+
+-----+       |        +-----+    |
              |                   |
+-----+       |        +-----+
|SIGN | -------------- |     | -- || ?
+-----+       |        +-----+
              Z

Цифровий підпис реалізується як згортка за наступним алгоритмом:

  1. Текст розбирається на блоки, розміром з довжину ключа.
+----------+
|          |------>|////////| Ш(K)
+----------+           (+)
|          |------>|////////|
+----------+       ----------
|          |       |\\\\\\\\| Ш(K)
+----------+
|          |           …
+----------+
|          |           |
+----------+           |
|          |           |
+----------+           |


                ЦП |////////| Ш(K)
  1. Перший блок шифрується секретним ключем K
  2. Кожен наступний блок XOR’иться з результатом попереднього етапу та результат XOR шифрується секретним ключем.

Для великих за обсягом документів існує пролема кратних помилок – коли згортки нівелюють один одного. В таких випадках документ розбивають на менші частини і окремо підписують кожну із них.

3.8 AES

Був оголошений конкурс на розробку криптоалгоритму на заміну DES. Результатом стала поява таких алгоритмів, як

Із них набув популярності лише RIJNDAEL

Ці криптосистеми зазвичай мають ключ довжиною 128/256 бітів. При цьому, якщо DES вимагав, щоб довжина блоку співпадала з довжиною ключа, то в нових алгоритмах це не є обов’язковим. Більш того, на відміну від DES, де таблиці перестановки були задані стандартом, в алгоритмах AES допускається зміна тих чи інших частин таблиць перестановок.

Криптостійкість DES становила \(2^{55}\). Криптостійкість алгоритмів AES становить \(2^{x-1}\), де x – довжина ключа шифрування.

3.9 ГОСТ 28147-89

  • Варіація алгоритму DES
  • Дозволяє налаштувати кількість циклів шифрування
  • Дозволяє міняти деякі внутрішні параметри
                            ^
                            | C_{i}
                            |
             C_{i+1}   +--------+
                |      |  SM5   |    +--------------------------------------+
                |      +--------+    |                                      |
                +--------^    ^------+                                      |
    +--------+                             +----------+                     |
N6  |   C1   |                             |     C2   | N5                  |
    +--------+                             +----------+                     |
         V                                       V                          |
    +--------+                             +----------+                     |
SM4 |C4|     | C_1 + C_4       C_2 + C_3   |       |C3| SM3                 |
    +--------+                             +----------+                     |
         V                                       V                          |
    +--------+                             +----------+                     |
N4  |        |                             |          | N3                  |
    +--------+                             +----------+                     |
         V                                       V                          |
    +--------+                             +----------+<--------------------|
N2  |        |<----------------------------|          | N1                  |
  +>+--------+                             +----------+                     |
  |  |                                            |                         |
  |  |           |-----------------------------V  V                         |
  |  |   +--------+                         +----------+                    |
  |  |   |   x0   |                         |          | SM1                |
  |  |   |   x1   |                         +----------+                    |
  |  |   |   x2   |                               |                         |
  |  |   |   x3   |                               V                         |
  |  |   |   x4   |                      +---+---+---+---+---+---+---+---+  |
  |  |   |   x5   |                      | k1| k2| k3| k4| k5| k6| k7| k8|  |
  |  |   |   x6   |                      +---+---+---+---+---+---+---+---+  |
  |  |   |   x7   |                                       V                 |
  |  |   +--------+                      +-------------------------------+  |
  |  |                                   |           <-------->          |R |
  |  |                                   +-------------------------------+  |
  |  |                                                         |            |
  |  +---------------------------------------V                 V            |
  |                                      +-------------------------------+  |
  |                                  SM2 |                               |  |
  |                                      +-------------------------------+  |
  |                                                                         |
  |                                                                         |
  +-------------------------------------------------------------------------+

Криптоалгоритм ГОСТ містить класичні суматори. Це дає можливість використовувати операнди різної довжини.

3.10 ANUBIS

Алгоритм шифрування ANUBIS має лише 1 цикл шифрування. Але сама ідея полягає у використанні еліптичних кривих.

За рахунок цього досягається криптостійкість порядку від \(2^{255}\) до \(2^{330}\). Також доволі висока є швидкість шифрування. Втім наразі цей алгоритм не є сертифікованим

3.11 Асиметричні криптосистеми

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

RSA

  • Названа по першим літерам прізвищ розробників
  • Блоковий алгоритм
  • Детальніше можна почитати у статті на Wikipedia

Необоротні функції:

\[y = a^{x} \mod N\]

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

Для необоротних функцій побудувати поліном, що відновлює функцію, неможливо.

Так як RSA – блоковий алгоритм. На відміну від DES або GOST, алгоритм RSA допускає довільну довжину блоку. Мінімальна довжина блоку – 2 символи. Рекомендована довжина блоку – 8 символів.

Нехай задано вихідне повідомлення M. Шифрований текст отримуємо як \(C = M^{e} \mod N\). Процедуру розшифрування, можна представити у вигляді – \(M = C^{d} \mod N\). Тут N – довжина блоку, e, d – ключі.

Втім, числа e, d і N не є випадковими.

  1. \(N = p \cdot q\), де p і q – прості числа
  2. \(\Phi(N) = (p - 1) \cdot (q -1)\). Тут \(\Phi\)функція Ойлера
  3. \(GCD(e, \Phi(N)) = 1\) – тобто e і \(\Phi(N)\) – взаємнопрості
  4. \((e \cdot d) \mod \Phi(N) = 1\).

Порядок чисел e і d доволі великий – більше 350 біт

Швидкодія алгоритму RSA залишає бажати кращого, тому шифрувати великі об’єми інформації алгоритмом RSA не рекомендується. Зазвичай інформацію шифрують якимось симетричним алгоритмом (DES/ AES), а ключ шифрування потім шифрується асиметричним криптоалгоритмом (напр. RSA).

Киптостійкість

У алгоритмі RSA маємо 2 ключі – e і d. Один із ключів – приватний. Якщо у злочинця є відкритий ключ e, то:

\[\begin{split}d = \frac{n \cdot \Phi(N) + 1}{e} \\\end{split}\]
\[\begin{split}\Phi(N) = (p - 1) \cdot (q - 1) = p \cdot q - (p + q) + 1 = N - (p + q) + 1 \\\end{split}\]
\[N = p \cdot q\]

Щоб знайти d потрібно факторизувати число N. Так як числа N, p, q – великі (~ 250 біт) – то факторизація займає доволі багато часу (до декількох років)

В алгоритмі RSA поняття ключ стосується (e; N) і (d; N), де N > e і N > d

Оцінка складності дешифруванн повідомлення, зашифрованого RSA залежно від довжини основи ключа N
Довжина N (біти) складність обчислень (операцій) пам’ять для алгоритму (біт) Час вирішення задачі (при 10^9 оп/c)
128 (50) \(2 \cdot 10^{12}\) \(7 \cdot 10^{6}\) ~ 2-3 хв
200 (70) \(10 ^ {16}\) \(10 ^ {8}\) ~ 2-3 місяці
256 (90) \(9 \cdot 10^{17}\) \(10^{9}\) ~ 10 років
512 (180) \(4 \cdot 10^{24}\) \(3 \cdot 10^{12}\) ~ 100 років
1024 (360) \(10^{34}\) \(10^{17}\) ~ 500 років
2000 (720) \(7 \cdot 10^{47}\) \(10^{24}\) ~ 1000 років
Підсумок

Алгоритм RSA – класична асиметричн криптосистема і фактично єдиний алгоритм, прийнятий у якості стандарту серед асиметричних криптосистем.

Даний алгоритм початково дозоляв відмовитися від секетного каналу передачі даних та використовувався в основному для передачі незначних службових повідомлень. На сьогоднішній день повідомлення лобсягом до 1 кб можна гифрувати цим алгоритмом.

Побудова цифрових підписів для алгоритму RSA

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

\[Ш_{К^{o}_{B}}(M) \to РШ_{K^{з}_{A}}(M)\]

Al-gamal

Є користувач і адміністратор. Для них є 4 ключі

  1. Закритий ключ користувача \(K^{з}_{п} = \alpha\)
  2. Відкритий ключ користувача \(K^{в}_{п} = q^{\alpha} \mod p\)
  3. Закритий ключ адміністратора \(K^{з}_{п} = \beta\)
  4. Відкритий ключ адміністратора \(K^{в}_{п} = q^{\beta} \mod p\)

Після того, як p і q передані та ключі сформовані, користувач обчислює свою маску

\[M_{п} = (K^{в}_{а}) ^ { K^{з}_{п} } = (q^{\beta} \mod p)^{\alpha} = q^{\beta \cdot \alpha} \mod p\]

Адміністратор, в свою чергу обчислює свою маску

\[M_{а} = (K^{в}_{п})^{K^{з}_{а}} = (q^{\alpha} \mod p)^{\beta} = q^{\alpha \cdot \beta} \mod p\]

Звідси \(M_{а} = M_{п}\)

Тоді шифрування має вигляд

\[S = S_1 \cup S_2 \cup … \cup S_n\]
\[S_i vs M_{а_{п}} = C_i\]
\[C_i vs M_{п_{а}} = S_i\]

Алгоритм Al-gamal розроблявся, як деяка спрощена версія RSA, що дозволяла шифрувати повідомлення в рази швидше. Втім цей алгоритм вимагав захищеного каналу (разового) для передачі p і q.

Практика сьогодення показує, що вимоги до швидкості RSA знизилися, а сучасні засоби дозволяють швидко зламати алгоритм Al-gamal. Тому наразі необхідність у цьому алгоритмі відпала.

Сьогодення

  • В асиметричній криптографії де-факто існує стандарт – алгоритм RSA
  • Для невеликих обсягів інформації (до 1МБ) бажано використовувати асиметричне шифрування.
  • На обсягах інформації 1МБ і більше асиметричне шифрування працює повільно, тому має сенс використання симетричного шифрування (DES, AES, …)

3.12 Потокові криптосистеми

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

Алгоритм B-Crypt

  • Шифрування відбувається побітно
IV   +---------------+      +---------------+  IV
---->|               |      |               |---->
K    |  Mask Former  |      |  Mask Former  |   K
---->|               |      |               |---->
     +---------------+      +---------------+
          |                          |
          /1                         |
          |                          |
          v                          V
D       +---+           CD         +---+
------->| + |>-------------------->| + |----------->D
010110  +---+                      +---+

Тут:

  • IV – Initial Vector
  • K – ключ
  • D – потік даних
  • CD – зашифрований потік даних

Розділ №4. Протоколи автентикації в КСС

          (Z)
            \
             V
         ///// ////// ///// ///// //
(A)---> ////// Комутаційне Поле ///// --->(B)
         //// /// /// /// /// /// //

4.1. Класифікація протоколів автентикації в КСС

Перед безосередньо передачею даних, суб’єкт проходить процедуру автентикації.

Протоколи автентикації поділяються на

  • Протоколи автентикації з посередником СБ (з ЦРК – центром розподілу ключів)
  • Протоколи автентикації суб’єктів
    • На основі симетричних криптосистем (AES)
    • На основі асиметричних криптосистем (RSA)
  • Протоколи автентикації повідомлень
    • На основі симетричних криптосистем (AES)
    • На основі асиметричних криптосистем (RSA)
  • Протоколи автентикації без посередника (без ЦРК)

У випадку протоколів з ЦРК відповідальність за розподіл ключів, безпеку, тощо несе ЦРК.

4.2 Протоколи автентикації суб’єктів на основі симетричних криптосистем

               +-----+    з    в    з    в
               | ЦРК |  K_а  K_а  K_б  K_б
               +-----+
                ^
     +---+      |               +---+
  з  | А |<-----+               | Б |    з
K_а  +---+<-------------------->+---+  K_б
  1. \(A \to C : I_{A_1}, I_{B_1}, r\), де r – випадкове число;
  2. \(C \to A : Ш_{K^з_A}(I_{A_1}, K^з_S); Ш_{K^з_B}(I_{B_1}, K^з_S)\);
  3. \(A \to B : Ш_{K^з_B}(I_{B_1}, K^з_S); Ш_{K^з_S}(r)\);
  4. \(B \to A : Ш_{K^з_S}(f(r), e)\);
  5. \(A \to B : Ш_{K^з_S}(f(e))\);

Даний протокол є подібним до протоколу рукостискання.

  1. Якщо злочинець підробить сеансовий ключ, то він може змінити r, і видати себе за іншого. Втім, оскільки r задеклароване на сервері, цей ризик не такий вже й високий
  2. MITM Attack. Злочинець може пропускати всі повідомлення через себе, дешифруючи або підміняючи їх. На це необхідний час \(\Delta T \approx 2 \text{год}\). Щоб запобігти даній вразливості, можна фіксувати часові мітки повідомлень.

4.3 Протоколи автентикації суб’єктів на основі асиметричних криптосистем

Використовується криптосистема RSA

          +-----+
          | ЦРК |
          +-----+
           ^
+---+      |               +---+
| А |<-----+               | Б |
+---+<-------------------->+---+
  • У ЦРК є усі ключі, як відкриті, так і закриті
  • У A і Б є всі відкриті ключі та свій закритий

В таких системах ключі повинні бути сертифіковані.

  1. \(A \to C: I_{A}, I_{B}, r\);
  2. \(C \to A: Ш_{К^з_С}(I_A,K^в_A); Ш_{К^з_С}(I_B,K^в_B)\); – сертифікати
  3. \(A \to B: Ш_{К^з_С}(I_A,K^в_A); Ш_{K^в_А}(r)\); На цьому стадія сертифікації завершена. Далі починається “рукостискання”.
  4. \(B \to A: Ш_{К^в_B}(f(r), e)\);
  5. \(A \to B: Ш_{К^в_А}(f(e))\);

4.4 Протокол автентикації повідомлень на основі симетричних криптосистем.

Загальна схема.

Є якісь дані D

Суб’єкт-відправник формує цифровий підпис для даних: \(W = ЦС(D)\)

\(A \to B: D, W\) – дані надсилаються разом із цифровим підписом.

Розглянемо випадок, коли ініціатором є суб’єкт А:

  1. \(A \to C: Ш_{K^з_A}(I_A, I_B, D, W, e)\) Суб’єкт А надсилає на ЦРК зашифровані своїм приватним ключем дані, цифровий підпис, тощо
  2. \(C \to B: Ш_{K^з_B}(I_A, I_B, D, W, e)\);

Розглянемо випадок, коли ініціатором є суб’єкт B:

  1. \(A \to B: D, W\) А передає B сертифікат і сигнатуру
  2. \(B \to C: Ш_{K^з_B}(I_A, I_B, D, W, e)\);
  3. \(C \to A: Ш_{K^з_B}(I_A, I_B, D, W, e)\);

тут e – ознака перевірики цифрового підпису.

Протоколи автентикації повідомлень можуть бути реалізовані як із протоколами автентикації користувачів, так і без них.

4.5 Пртоколи автентикації повідомлень на основі асиметричних криптосистем

  1. Ініціатор – суб’єкт A
  1. (A->C) Суб’єкт А за своєю ініціативою повинен передати суб’єкту C зашифроване відкритим ключем C інформацію \((I_A, I_B, Message, ЦифроваСигнатура, e)\)

  2. (C->B) С напряму відправляє B зашифроване закритим ключем C інформацію \((I_A, I_B, Message, ЦифроваСигнатура, e)\)

    Тут \((I_A, I_B, Message, ЦифроваСигнатура, e)\) – сертифікат сигнатури

  1. Ініціатор – суб’єкт B
  1. (A -> B) \((I_A, I_B, Message, ЦС)\) зашифроване відкритим ключем B
  2. (B -> C) \((I_A, I_B, Message, ЦС, e)\) зашифроване відкритим ключем C
  3. (C -> B) \((I_A, I_B, Message, ЦС, e)\) зашифроване закритим ключем C

4.6 Протокол відкритих угод

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

Учасники:

  • A – покупець
  • B – продавець
  • C – банк

У всіх суб’єктів є вікриті і закриті ключі

Щоб запустити протокол, необхідні наступні умови:

  1. І покупець, і продавець мають рахунки в одному банку
  2. У покупця є електронна чекова книжка ЕЧК_А

Протокол:

  1. A -> B: Message, ЦС(Message)
  2. B -> A: ОК!
  3. A -> C: \(Ш_{ЗК_А}(I_A, ЕЧ_А1)\) (суб’єкт А “заморожує” суму в банку)
  4. С -> B: \(Ш_{ЗК_С}(I_A, I_B, ЕЧ_А1*)\) (банк повідомляє B про заморозку суми по угоді. * значить, що гроші заморожені)
  5. B -> A: OK!
  6. A -> C: \(Ш_{ЗК_А}(I_A, ЕЧ_А*)\) (покупець підписує заморожений чек)
  7. C -> B: \(Ш_{ЗК_C}(I_A, I_B, ЕЧ_А)\) (продавець отримує гроші)

4.7 Оцінка пропускної здатності мереж, в яких реалізуються протоколи автентикації

\[\gamma = \frac{I}{T}\]

де, - I – об’єм інформації - T – час

При протоколах автентикації в мережі маємо таку картину:

ПА:Д,
де ПА – службова інформація протоколу, що передається за час \(T_C\)

Тоді

\[\gamma = \frac{I + I’}{T_п + T_с}\]

Час передачі службової інформації:

\[T_c = m \cdot T_ш + k \cdot T_д\]

тут \(T_ш = f(l)\), де l – довжина ключа

Таким чином

\[\gamma_{з}(l) = \frac{I + I’}{m \cdot T_ш(l) + k \cdot T_д}\]

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

Отже, щоб збільшити пропускну здатність можна

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

4.8 Структура електронної платіжної системи

ЕПС (електронна платіжна система) являє собою систему розрахунків з використанням комп’ютрних систем та мереж

                     [Банк-емітент]
                       ^        |
                       |        |
                       |        V
                  [КС (Маршрутизатор)]<--->[ПЦ]
                       ^        |
                       |        |
                       |        V
                      [Банк-еквайр]
                       ^        |
                       |        |
                       |        V
[Клієнт] ---карта--> [POS-термінал]
              квитанція|        ^
                       v        |сума
                       [Продавець]

Смарт-карта

1 - скидання
2 - синхросигнал
3 - "0" В
4 - "5" В
5 - "10" В
6 - Input/Output

Структура електронної платіжної системи

        E_1(PBN)     +----------------------+ E_2(PBN)
       +------------>| ККС (маршрутизатори) |-------+
       |external     +----------------------+       |external key
       |key                                         v
 +----------+                                +--------------+
 | Банк-    |                                | Банк-        |
 | еквайр   |                                | емітент      |
 +----------+                                +--------------+
       ^ E(PBL)                                      | internal bank
       |  internal key                               v channel
 +----------+                                +--------------+
 | Банкомат |                                | PC Клієнта   |
 +----------+                                +--------------+
   ^      ^
card      pin
  • При симетричних криптосистемах \(E_1 = E_2\)
  • При використанні асиметричних криптосистем \(E_1 \neq E_2\)

Розділ 5. Проектування і класифікація захищених комп’ютерних систем

5.1. Два підходи до проектування засобів захисту

  1. Засоби захисту реалізуються як надбудова над вже існуючим апаратно-програмним забезпеченням.
  2. Засоби захисту розроблюються одночасно з розробкою апаратно-програмного забезпечення.

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

5.2 Класифікація КС по рівню захищеності

Існує т.з. “Помаранчева книга”, в якій містяться рекомендації Міністерства Оборони США щодо класифікації КС.

Видляють 4 класи захищених систем:

  • D Системи з мінімальним захистом.

    Сюди входять системи, яких засоби захисту або відсутні, або мінімальні (наприклад, прості паролі). Windows.

  • С Контрольований захист.

    • C1 Ідентифікація.
      Обов’язкова наявність засобів ідентифікації та автентикації (наприклад, двофакторна автентикація)
    • C2 Контрольований доступ.
      Розмежування доступу
  • B Повноважний захист

    • B1 Міточний захист.
      В СРД обов’язково має бути реалізована система замків і ключів.
    • B2 Структурований захист.
      Обов’язкова наявність в мережах протоколів автентикації.
    • B3 Області безпеки.
      Правило 70/30 – не менш, як 70% засобів захисту мають бути реалізовано апаратно.
  • A Розробка, що може бути перевірена.

    Військові системи спеціального призначення.

    • Засоби захисту унікальні, секретні, та інтегруються на етапі розробки систем. В результаті, система містить усі вбдовані засоби захисту.
    • Доступ до таких систем строго регламентується.
    • Системи класу A можуть бути об’єднані в мережі тільки з системами класу A.

Системи класу B2 і B3 вимагають, щоб усі заходи захисту, що використовуються в системі, були представлені у вигляді відкритого програмного коду або у вигляді відкритих структурних функціональних та принципових схем.

Класи D, C, B можуть бути реалізовані за допомогою першого підходу.