1. Протокол безпеки pgp
Перший протокол, який ми обговоримо в цій лекції, називається надійна конфіденційність (PGP - Pretty Good Privacy). PGP був винайдений Філом Цимерманном (Phil Zimmermann), для забезпечення таємності, цілісності і встановлення дійсності електронної пошти. PGP може використовуватися, щоб створити безпечне поштове повідомлення або надійно зберегти файл для майбутнього перегляду.
Сценарії
Спочатку обговоримо загальну ідею PGP, просуваючись від простого сценарію до складного. Ми використаємо термін "Дані", для повідомлення або файла що обробляється.
Відкритий текст
(Слайд 4) Найпростіший сценарій - це передача поштового повідомлення (або файлу) у вихідному тексті, як це показано на рис. 2. У цьому сценарії немає збереження цілісності повідомлення або конфіденційності. Абонент 1 (передавач) створює повідомлення і передає його Абоненту 2 (приймачу). Повідомлення зберігається у поштовій скриньці Абонента 2, поки не буде переглянутий ним.
Рис.2. Повідомлення зі звичайним текстом
Цілісність повідомлення
Для того щоб захистити дані, мабуть, наступне вдосконалення такої системи має забезпечити Абоненту 1 підписувати повідомлення. Абонент 1 створює дайджест повідомлення (У криптографії хеш-суму іноді також називають дайджестом повідомлення. Значення хеш-суми може використовуватися для перевірки цілісності даних, їх ідентифікації і пошуку, а також замінювати собою дані, які небезпечно зберігати в явному вигляді (наприклад, паролі, відповіді на питання тестів і т. д.) і підписує його своїм секретним ключем. Коли Абонент 2 одержує повідомлення, він перевіряє його, використовуючи відкритий ключ Абонента 1. (Слайд 5) Для цього сценарію необхідні два ключі. Абонент 1 має знати свій секретний ключ; Абонент 2 має знати відкритий ключ Абонента 1 на рис. 3 зображена така ситуація.
Рис. 3. Повідомлення з підтвердженням дійсності передавача
Стиснення
(Слайд 6) Подальше вдосконалення дозволяє стиснути повідомлення і дайджест, щоб зробити пакет більше компактним. Це вдосконалення не має відношення до безпеки, але істотно зменшує трафік. рис. 4 показує новий сценарій.
Рис. 4. Повідомлення зі стиснутим текстом
Конфіденційність із одноразовим ключем сеансу
Як ми вже говорили раніше, конфіденційність у поштовій системі може бути досягнута за рахунок застосування звичайного шифрування одноразовим ключем сеансу. Абонент 1 може створити ключ сеансу, використати його для шифрування повідомлення і дайджесту та передати ключ безпосередньо з повідомленням. Однак для захисту ключа сеансу Абонент 1 зашифрував його відкритим ключем Абонента 2. (Слайд 7) рис. 5 показує ситуацію, коли Абонент 2 одержує пакет, потім розшифровує ключ, використовуючи свій секретний ключ. Потім він використає ключ сеансу, щоб розшифрувати іншу частину повідомлення. Після розширення (декомпресії) інших частин повідомлення Абонент 2 створює дайджест повідомлення і перевіряє, чи відповідає він дайджесту, переданому Абонентом 1. Якщо дайджести збігаються, то повідомлення справжні.
Рис. 5. Конфіденційне повідомлення
Перетворення коду
Інша послуга, що надається PGP, - перетворення коду. Більшість поштових систем дозволяють передати повідомлення, що складається тільки із символів ASCII. Щоб перевести символи, що не входять до ASCII, PGP використовує перетворення Radix-64. Кожен символ, що посилається (після того як буде зашифрований) перетвориться в код Radix-64.
Сегментація
PGP дозволяє сегментацію повідомлення після того, як воно було перетворено у Radix-64, щоб зробити кожний переданий модуль однаковим за розміром, відповідно до основного поштового протоколу.
Кільця ключів
У всіх попередніх сценаріях ми припускали, що Абонент 1 має передати повідомлення тільки Абоненту 2. Але це не єдиний варіант передачі. Можливо, у Абонент 1 виникне необхідність передати повідомлення багатьом абонентам; йому будуть потрібні так звані кільця ключів. У цьому випадку Абоненту 1 будуть потрібні кільця відкритих ключів, що включають ключі, що належить кожному абоненту, яким Абонент 1 має передати або від якого може отримати повідомлення. PGP - розроблювачі визначили кільце приватних/відкритих ключів. У Абонента 1 може виникнути необхідність періодично змінювати пари ключів.
Інший випадок: Абонент 1, можливо, захоче, щоб його ключі відповідали різним групам людей (друзі, колеги і таке інше). Тому кожний користувач повинний мати дві низки кілець: кільце приватних/загальнодоступних ключів і кільця загальнодоступних ключів інших людей. (Слайд 8) рис. 6 показує співтовариство чотирьох абонентів, де кожний має кільце пари приватних/відкритих ключів і, у той самий час, зображені кільця відкритих ключів, що належать іншим абонентам у цій сукупності.
Рис. 6. Кільця ключів в PGP
Абонент 1, наприклад, має декілька пар приватних/відкритих ключів, що належать йому, і відкриті ключі, що належать іншим абонентам. Зверніть увагу, що кожний може мати більше чим один відкритий ключ. Можуть виникнути два випадки.
Абонент 1 має передати повідомлення іншому абоненту в співтоваристві у цьому випадку:
- він використає свій секретний ключ, щоб підписати дайджест;
- він використає відкритий ключ приймача, щоб зашифрувати недавно створений ключ сеансу.
- він зашифрує повідомлення і підписаний дайджест зі створеним ключем сеансу.
Абонент 1 одержує повідомлення від іншого абонента, що знаходиться у цьому співтоваристві тоді:
- він використає свій секретний ключ, щоб розшифрувати ключ сеансу.
- він використає свій ключ сеансу, щоб розшифрувати повідомлення й дайджест.
- він використає свій відкритий ключ, щоб перевірити дайджест.
(Слайд 9) PGP -алгоритми
В PGP використаються нижченаведені алгоритми.
Алгоритми відкритого ключа, які застосовуються, щоб підписати дайджести або зашифрувати повідомлення.
Алгоритми симетричного ключа, які використаються для зручного шифрування.
Хэш-алгоритмы, які використаються для створення хэша в PGP.
Алгоритми стиску, які використаються для стиску тексту.
PGP-сертифікати
PGP, подібно іншим протоколам, використовується сертифікати, щоб підтвердити дійсність відкритих ключів.
PGP-сертифікати
Кожної в кільці може підписати сертифікат для будь-кого іншого в кільці. В PGP немає ієрархії довіри; немає дерева. Відсутність ієрархічної структури може привести до того, що любий абонент може мати один сертифікат від Абонента 2 і інший сертифікат - від Абонента 3. Якщо Абонент 1 хоче дослідити лінію одержання сертифікатів для Абонента 4, у нього є два шляхи: починати від Абонента 2 або починати від Абонента 4. Цікаво, що Абонент 1 може повністю довіряти Абоненту 2, але тільки частково довіряє Абоненту 4. Може бути багато шляхів довіри, що приводять до сертифіката від адміністрації, який довіряють повністю або частково. В PGP випускаючий сертифікат звичайно називають поручителем.
Анулювання ключів
Анулювання ключів може стати необхідним для об'єкта, якщо необхідно скасувати його або його загальнодоступний ключ у кільці. Це може трапитися, якщо власник ключа відчуває, що ключ скомпрометований (наприклад, украдений) або занадто старий, щоб бути безпечним. Щоб скасовувати ключ, власник може передати сертифікат анулювання, підписаний ним самим. Сертифікат анулювання повинен бути підписаний старим ключем і розповсюджений всім абонентам у кільці, які використали загальнодоступний ключ.
(Слайд 10) PGP-повідомлення
Повідомлення в PGP - комбінація впорядкованих і/або вкладених пакетів. Навіть зважаючи на те, що не всі комбінації пакетів можуть становити повідомлення, список комбінацій пакетів досить довгий.
Зашифроване повідомлення
Зашифроване повідомлення може бути послідовністю двох пакетів: пакета ключа сеансу і симетрично зашифрованого пакета. Останній як правило це вкладений пакет.
Підписане повідомлення
Підписане повідомлення може бути комбінацією пакета підпису і літерального пакета.
Повідомлення сертифікації
Хоча повідомлення сертифікації, може приймати безліч форм, один простий приклад - комбінація користувальницького ID пакета і пакета відкритого ключа. Підпис тут обчислений для послідовного з'єднання ключового й користувальницького ID.
