МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Піскозуб А. З., Совин Я. Р.
МЕТОДИЧНІ ВКАЗІВКИ
до виконання лабораторних робіт із курсу
“Захист інформації в комп’ютерних мережах”
для студентів спеціальностей
7.160102 - "Захист інформації з обмеженим доступом та автоматизація її обробки"
7.160103 - "Системи захисту від несанкціонованого доступу"
7.160104 - "Адміністративний менеджмент у сфері захисту інформації з обмеженим доступом"
7.160105 - "Захист інформації в комп'ютерних системах і мережах"
Затверджено
на засiданнi кафедри
"Захист інформації"
протокол № 14 вiд 15.06.2008 p.
Львів 2008
УДК 681.3.07
Методичні вказівки до виконання лабораторних робіт із курсу ”Захист інформації в комп’ютерних мережах” для студентів спеціальностей 7.160102 - "Захист інформації з обмеженим доступом та автоматизація її обробки"; 7.160103 - "Системи захисту від несанкціонованого доступу"; 7.160104 - "Адміністративний менеджмент у сфері захисту інформації з обмеженим доступом"; 7.160105 - "Захист інформації в комп'ютерних системах і мережах" / Укл. А. З. Піскозуб, Я. Р. Совин - Львiв: Національний університет "Львівська політехніка", 2008. – 60 с.
Укладачі Піскозуб А. З., канд. техн. наук, доц.
Совин Я. Р., канд. техн. наук, доц.
Вiдповiдальний за випуск Дудикевич В. Б.,
д-р техн. наук, проф.
Рецензенти: Хома В. В., д-р техн. наук, проф.
Максимович В. М., д-р техн. наук, доц.
Лабораторна робота № 1
СИСТЕМА КРИПТОЛОГІЧНОГО ЗАХИСТУ PGP
Мета роботи – ознайомитись з базовими операціями криптологічного захисту, такими як шифрування і дешифрування з відкритим ключем, шифрування і дешифрування з секретним ключем, створення електронного цифрового підпису, управління ключами на прикладі програми PGP. Вивчити можливості та порядок роботи з програмою PGP.
ТЕОРЕТИЧНІ ВІДОМОСТІ
Симетричні алгоритми
В симетричних криптологічних алгоритмах або криптографії з секретним ключем (СК) для шифрування і розшифрування повідомлення використовується один і той самий ключ (рис. 1). Це означає, що ключ повинен бути спочатку переданий по надійному каналу зв’язку, щоб обидві сторони знали його до того, як передавати повідомлення по ненадійному каналі. Проте переважно такий канал відсутній у вашому розпорядженні.
Рис. 1. Криптографія з СК
Крім того, бажано для кожного повідомлення використати новий ключ. Якщо виробляти ключі кожний раз випадково, то виникає проблема як сповістити про це свого кореспондента ?
До переваг алгоритмів симетричного шифрування відноситься висока швидкість та криптологічна стійкість. У таблиці 1 наведено головні базові параметри найпоширеніших симетричних алгоритмів.
Таблиця 1
Базові параметри симетричних алгоритмів
Назва шифру
DES
FEAL
IDEA
RC5
RC6
Blowfish
AES
Довжина ключа, біти
56
64, 128, 256, 1024
128
2040
2040
448
128, 192, 256
Довжина блоку, біти
64
64, 128, 256, 1024
64
32, 64, 128
32, 64, 128
64
128, 192, 256
Кількість циклів
16
4…32
8
255
255
16
10…14
Асиметричні алгоритми
В асиметричних криптологічних алгоритмах або криптографії з відкритим ключем (ВК) кожний користувач має пару відкритий (публічний) і закритий (секретний) ключ (ЗК). Кожен з ключів підходить для розшифрування повідомлення зашифрованого іншим ключем з пари. Знаючи відкритий ключ вичислити ЗК неможливо. ВК може бути опублікований і розповсюджений через комунікаційні мережі. Такий протокол забезпечує приватність без необхідності володіти надійним каналом зв’язку.
Хто завгодно може скористатися ВК адресата, щоб зашифрувати повідомлення йому. Одержувач використовує потім ЗК для розшифрування повідомлення. Ніхто крім одержувача не може розшифрувати повідомлення, оскільки ЗК володіє він один (рис. 2).
Рис. 2. Криптографія з ВК
Математичною основою асиметричних алгоритмів є використання односторонніх функцій. Функцію називають односторонньою, якщо обчислення y по x має малу трудомісткість, а обчислення x по у – дуже високу. Приклади односторонніх функцій – піднесення в степінь (обернена функція – логарифмування) в скінченому полі, множення (обернена функція – розклад чисел на множники), задачі кодування-декодування лінійних кодів (типу кодів Ріда-Малера або Ріда-Соломона).
Саме такий метод, запропонований Діффі і Хелманом у 1976 р., отримав назву "відкритий розподіл ключів" (ВРК). Даний метод описує лише протокол вироблення ключей для довільного алгоритму шифрування. Для того, щоб відправник повідомлення міг лише зашифрувати його, а розшифрувати міг тільки одержувач необхідне наступне:
відправник і одержувач повідомлення повинні користуватися різними ключами або різними алгоритмами;
ключі відправника і одержувача повинні бути зв’язані однозначним співвідношенням;
по одному з ключів було б вкрай важко визначити другий ключ.
Щоб побудувати таку схему шифрування необхідно використати однонаправлені алгоритми.
Система RSA. Структура електронного цифрового підпису
Система шифрування з ВК RSA запропонована 1977 р. Назва системи утворена з початкових букв прізвищ її авторів (R. Rivest, A. Shamir, L. Adleman). Безпечність алгоритму RSA грунтується на трудомісткості розкладу на множники (факторизації) великих чисел. ВК і ЗК є функціями двох великих простих чисел, розрядністю 100-200 десяткових цифр. Вважається, що відновлення початкового тексту з шифрованого при відомому відкритому ключі рівносильне розкладу числа на два великих простих множника.
Уважно розглянувши описану вище систему шифрування, можна помітити ще одну її цінну якість – вона забезпечує аутентичність інформації, що передається при умові знання секретної частини ключа тільки відправником повідомлення і шифрування повідомлення секретним ключем. При цьому будемо вважати, що для перевірки аутентичності використовується відкрита частина ключа. Дійсно, автором такого повідомлення може бути тільки власник секретної частини ключа.
Розглядаючи систему RSA, відзначимо, що зашифрувати відкритим ключем може будь-хто, а розшифрувати секретним – тільки одержувач повідомлення. На практиці дуже часто виникає необхідність в оберненому – зашифрувати певну інформацію (наприклад своє ім’я) секретним ключем так, щоб певний набір осіб міг розшифрувати це ім’я (використовуючи розісланий раніше відкритий ключ).
Дуже важливо те, що в системі RSA не потрібно нічого міняти – треба просто використати для шифрування свій секретний ключ, тоді внаслідок симетричності ключів процес розшифрування у одержувачів буде аналогічний. Крім того, зашифровану секретним ключем інформацію практично неможливо осмислено змінити, адже для цього потрібно спочатку її знайти (тобто дешифрувати систему RSA), а вже потім виправити. Таким чином одержувачі повідомлення можуть аутентифікувати відправника, тобто бути впевнені, що операцію зашифрування провів він (відправник), а ніхто інший.
Криптографія з відкритим ключем дозволяє забезпечити не тільки секретність, але і проконтролювати цілісність даних, що передаються та зберігаються. Контроль цілісності проводиться шляхом розрахунку певної "контрольної суми" даних.
Проблема простих алгоритмів обчислення контрольної суми в тому, що достатньо легко підібрати декілька масивів даних з однаковою контрольною сумою. Криптографічно стійкі контрольні суми обчислюються як результат застосування до вихідного тексту хеш-функції.
Хешувальною (вкорочувальною) функцією (hash-function) називають процедуру перетворення інформації, що відображає початкову послідовність бітів довільної довжини, в послідовність бітів фіксованої довжини. Хешувальні функції h повинні задовільняти три головні вимоги:
за відомим значенням функції h(X) повинно бути неможливо знайти її аргумент X. Таку функцію називають стійкою в сенсі обернення;
для заданого аргументу X повинно бути неможливим знайти такий інший аргумент X1, що h(X)=h(X1). Таку функцію називають стійкою в сенсі обчислення колізій;
з погляду практичного застосування алгоритми обчислення хешувальних функцій повинні бути швидкими.
Найширше сьогодні використовують алгоритми обчислення хешувальної функції MD2, MD4, MD5, SHA-1.
Електронні цифрові підписи (ЕЦП) є відповідниками традиційних підписів. Властивості, що їх повинні задовільняти ЕЦП, такі:
лише особа А може створити підпис особи А (підробка підпису неможлива);
можливість однозначно ствердити, що цифровий підпис зроблений саме під конкретним документом (копіювання підпису з одного документа на інший неможливе).
Ідеєю, яка дає змогу генерувати короткі підписи, є підписування замість самого документа М деякого значеня Н(М), де Н є односторонньою хешувальною функцією. У цьому разі досягається додатковий ефект: підпис можна наводити, не оприлюднюючи самого змісту документа.
Одним з найпопулярніших методів генерування коротких підписів є підписування за допомогою алгоритму RSA. Для документа М обчислюють значення Н(М), де Н є фіксованою хешувальною функцією. Сторона А шифрує Н(М) за допомогою свого ЗК, використовуючи алгоритм RSA. Отримана криптограма - це ЕЦП сторони А під документом М. Перевірка підпису сторони А потребує дешифрування цього підпису ВК сторони А. Після дешифрування перевіряють, чи в результаті отримано Н(М).
Існують також цифрові підписи побудовані за алгоритмами Ель-Гамаля, Шнорра, Рабіна і математичного апарату еліптичних кривих.
Альтернативою RSA може бути відносно новий алгоритм шифрування з ВК DSS/DН. В алгоритмі DSS/DН створюються дві окремі пари ключів одна з яких використовується для шифрування/розшифрування (DH), а друга для накладання/верифікації ЕЦП (DSS), при цьому пари ключів можуть мати різну довжину, а також допускати зміну однієї з пар. Даний алгоритм у порівнянні з RSA забезпечує більшу швидкість та безпеку.
Характеристики PGP
Pretty Good™ Privacy (PGP) випущено фірмою Phil's Pretty Good Software і є криптографічною системою (КС) з високою степеню секретності для операційних систем MS-DOS, Windows, Unix, VAX/VMS та ін. PGP дозволяє користувачам обмінюватись файлами або повідомленнями з використанням функцій секретності та встановленням справжності. Немає необхідності використовувати секретні канали зв’язку, що робить PGP простим у використанні програмним забезпеченням.
PGP об’єднує в собі зручність використання КС з відкритим ключем і швидкість звичайної КС, алгоритм "дайджесту повідомлень" для реалізації ЕЦП, стиснення даних перед шифруванням, ергономічний дизайн і розвинуту систему управління ключами. Популярність, безкоштовність розповсюдження та відкритість коду зробили PGP стандартом де-факто для таємної електронної переписки в світі.
В PGP починаючи з версії 5 інтегрована підтримка популярних пакетів електронної пошти, розповсюдження і пошуку відкритих ключів на серверах ключів, а також підтримка різних алгоритмів шифрування з ВК (RSA, DSS/DН) з довжиною ключа до 4096 біт для DSS/DН та 2048 біт для RSA.
В зв’язку з тим, що алгоритм шифрування з ВК значно повільніший, ніж стандартне шифрування з одним ключем, шифрування повідомлення краще виконувати з використанням високоякісного швидкого стандартного алгоритму шифрування з одним ключем. В PGP реалізований механізм пришвидшення операцій шифрування/розшифрування (рис. 3).
а) б)
Рис. 3. Швидке шифрування інформації (а) та процедура розшифрування (б)
Початкове незашифроване повідомлення називається "відкритим текстом" (або просто текст). В процесі невидимому для користувача, тимчасовий довільний ключ, створений тільки для одного сеансу, використовується для традиційного шифрування файлу відкритого тексту. Тоді відкритий ключ відправника використовується тільки для шифрування цього тимчасового довільного стандартного ключа. Цей зашифрований ключ сеансу посилається поряд з зашифрованим текстом (який називається "ciphertext" – "зашифрований") одержувачу (рис.3, а). Одержувач використовує свій власний секретний ключ, щоб відновити цей тимчасовий ключ сеансу, і потім застосувати його для виконання швидкого стандартного алгоритму декодування з одним ключем, щоб декодувати все зашифроване повідомлення (рис. 3, б).
PGP надає широкий вибір симеричних алгоритмів для шифрування тіла повідомлення: потрійний DES (168 біт), CAST (ключ 128 біт), IDEA (128 біт).
Відкриті ключі зберігаються у вигляді "сертифікатів ключів", які включають в себе ідентифікатор користувача власника ключа (переважно це ім’я користувача), часову мітку, яка вказує час генерації пари ключів, і власне ключі. Сертифікати відкритих ключів містять відкриті ключі, а сертифікати секретних ключів – секретні. Кожний секретний ключ шифрується з окремим паролем. Файл ключів, або каталог ключів ("кільце з ключами" – "keyring") містить один або декілька таких сертифікатів. В каталогах відкритих ключів зберігаються сертифікати відкритих ключів, а в каталогах секретних – сертифікати секретних ключів.
На ключі також внутрішньо посилаються "ідентифікатори ключів" або так звані цифрові відбитки ключів (ЦВ), які є скороченням відкритого ключа (самі молодші 64 біта відкритого ключа). Коли цей ідентифікатор відображається, то PGP показує лише молодші 24 біти для стислості. Якщо декілька ключів можуть одночасно використовувати один і той самий ідентифікатор користувача, то ніякі два ключа не можуть використовувати один і той самий ідентифікатор ключа.
PGP дозволяє накладати ЕЦП для забезпечення аутентифікації повідомлення. PGP використовує так звані "дайджести повідомлень" (ДП) для формування підпису. ДП це 160- або 128 бітна криптологічно стійка одностороння хеш-функція від повідомлення. Вона однозначно представляє повідомлення і може використовуватись для виявлення змін в повідомленні. Дайджест не дозволяє створити два повідомлення з однаковим дайджестом. Дайджест повідомлення шифрується секретним ключем для створення ЕЦП повідомлення.
Одержувач може перевірити правильність ЕЦП використовуючи ВК відправника розшифрувавши ним дайджест повідомлення (рис. 4).
а) б)
Рис. 4. Генерація (а) та верифікація (б) ЕЦП в PGP
В PGP починаючи з п’ятої версії для отримання дайджесту використовується 160-бітний алгоритм SHA-1, в ранніх версіях - 128 бітний MD5.
Документи підписуються шляхом додавання перед ними підтверджуючого підпису, який містить ідентифікатор ключа (ІК), використаного для підпису, підписаний СК дайджест повідомлення і мітку дати та часу, коли підпис був згенерований. ІК використовується одержувачем повідомлення, щоб знайти ВК для перевірки підпису.
Шифрованим файлам передує ідентифікатор ключа, який був використаний для їх шифрування. Одержувач використовує цей ідентифікатор для автоматичного пошуку СК, необхідного для розшифрування повідомлення в каталозі секретних ключів одержувача.
Ці два типи каталогів ключів і є головний метод зберігання та роботи з відкритими і секретними ключами. Замість того, щоб зберігати індивідуальні ключі в окремих файлах ключів, вони збираються в каталогах ключів для полегшення автоматичного пошуку ключів або по ідентифікатору ключа, або по ідентифікатору користувача. Кожен користувач зберігає свою власну пару каталогів ключів.
В криптосистемах з ВК не треба захищати ВК від несанкціонованого доступу, але треба захищати від підміни, щоб бути впевненим що ключ справді належить тому, чиє ім’я він несе.
Найбільш вразливе місце КС з ВК - це атака зловмисника типу активна ретрансляція (a man-in-the-middle attack). Ця атака передбачає підміну чийогось ВК ключем, згенерованим зловмисником. Потім зловмисник може перехвачувати всю шифровану почту, що йде жертві, розшифровувати її відповідним ЗК, далі знову зашифровувати її справжнім ВК жертви і переправляти їй. Фактично це все може виконувати комп’ютерна програма.
Найкращий спосіб переконатись, що ВК справді належить певній особі - отримати його з її рук. Але здебільшого це відбувається через електронну почту і сервери відкритих ключів.
Простий, але не дуже надійний метод - перевірка цифрового відбитку Порівнявши ЦВ наявної у вас копії чийогось ключа з ЦВ оригінала можна впевнитись в його справжності. Найпростіше - подзвонити по телефону власнику і попросити його продиктувати ЦВ.
Більш гнучкий механізм захисту ключів від підробок, реалізований в PGP, це сертифікація ключів. Після того як ви повністю впевнені в тому, що володієте справжньою копією ВК ви можете сертифікувати (підписати) цей ключ. Сертифікуючи ключ ви повідомляєте всьому світу, що ви впевнені в його належності номінальному власнику. В PGP використовується поняття дійсності (Validity) ключа, щоб відобразити рівень впевненості в тому, що даний ключ належить номінальному власнику. Дійсність ключа обчислюється на основі того, хто сертифікував ключ і наскільки ви довіряєте цим особам. Відкритий ключ, який ви сертифікували самі, має найбільший рівень дійсності. Якщо ключ не сертифікований ніякими підписами він розглядається як ненадійний (Invalid). Дійсність не підписаних особисто вами ключів визначається з рівня довіри (Trust), присвоєного вами третім особам, які їх сертифікували. PGP встановлює такі рівні довіри до підпису особи, чий ВК є у вашій зв’язці ключів: 1 - Ненадійний (Untrusted), 2 - Частково надійний (Marginal), 3 - Надійний (Complete).
Коли ви генеруєте пару ключів то автоматично вони сертифікуються вашим підписом і їм присвоюється найбільший рівень довіри - Сomplete. PGP дозволяє встановлювати, скільки підписів осіб з рівнем довіри Marginal потрібно для того, щоб ключ вважався дійсним (Valid), наприклад 2, тоді при менших кількостях підписів з рівнем довіри Marginal ключ вважається частково дійсним (Marginal).
Користувачі PGP, які знаходяться в довірчих відносинах часто підписують, а потім обмінюються ВК один одного. Якщо тепер хтось третій отримує копію вашого ключа він може покластися на підпис інших підписавших осіб, якщо він їм довіряє.
Порядок роботи з PGP
Генерація відкритого і секретного ключа.
Запустіть програму pgp с опцією –kg:
pgp –kg
Ви побачите на екрані наступні повідомлення:
Pretty Good Privacy (tm) 2.6.3i - Public-key encryption for the masses.
(c) 1990-96 Philip Zimmermann, Phil's Pretty Good Software. 1996-01-14
International version - not for use in the USA. Does not use RSAREF.
Current time: 2005/09/16 09:06 GMT
Pick your RSA key size:
1) 512 bits - Low commercial grade, fast but less secure
2) 768 bits - High commercial grade, medium speed, good security
3) 1024 bits - "Military" grade, slow, highest security
Choose 1, 2, or 3, or enter desired number of bits: 2048
Введіть довжину ключа RSA в бітах (до 2048).
Generating an RSA key with a 2048-bit modulus...
You need a user ID for your public key. The desired form for this user ID is your name, followed by your E-mail address enclosed in <angle brackets>, if you have an E-mail address. For example: John Q. Smith <12345.6789@compuserve.com>
Enter a user ID for your public key: user_1
Введіть своє ім’я, повідомлення будуть підписані ним.
You need a pass phrase to protect your RSA secret key.
Enter pass phrase:
Enter same pass phrase again:
Захистіть паролем свій секретний ключ
Note that key generation is a lengthy process.
We need to generate 792 random bits. This is done by measuring the time intervals between your keystrokes. Please enter some random text on your keyboard until you hear the beep:
Система попросить вас ввести згенерувати декілька випадкових чисел шляхом натискання на клавіші. Після цього ваші ключі з ідентифікаторами користувача user_1 готові і система включила ваші ключі в файли pubring.pgp і secring.pgp (так звані "зв’язки", або каталоги ключів): програма при роботі з ключами в першу чергу шукає введений ідентифікатор користувача в цих файлах і, якщо не знаходить, попросить вас явно ввести ім’я файлу. Корисно також включати в зв’язки отримані ключі:
pgp –ka keyfile
Переглянути окремі файли ключів і їх зв’язки ви можете, запустивши pgp з відповідним ім’ям файлу, наприклад, для перегляду зв’язки публічних ключів запустіть:
pgp pubring.pgp або pgp -kv
Завірена переписка.
Для підписання файлу вашим секретним ключем наберіть:
pgp –s textfile [-u your_userid]
Душки [] позначають необов’язкове поле.
В результаті виконання цієї команди сформується підписаний файл textfile.pgp. Приклад:
pgp –s letter.txt –u User
По цій команді PGP буде шукати в файлі каталогу секретних ключів "secring.pgp" сертифікати секретного ключа, в яких міститься рядок "User" в полі ідентифікатора користувача. Пошук ведеться без врахування регістра. Якщо відповідний секретний ключ буде знайдено, він буде використаний для підпису текстового файлу "letter.txt", в результаті буде отриманий підписаний файл "letter.pgp". Якщо ви не вказуєте поле ідентифікатора користувача, то ім’я буде запрошене в процесі підписування.
Перевірка підпису
Для дешифрування зашифрованого файлу або перевірки цілісності підпису підписаного файлу використовується команда:
pgp ciphertextfile [-o plaintextfile]
За замовчуванням для шифрованого файлу приймається розширення ".pgp". Необов’язкове ім’я вихідного файлу визначає, де розміщувати вихідний оброблений файл. Якщо не задається ніяке ім’я, то використовується ім’я шифрованого файлу без розширення. Якщо підпис знаходиться всередині шифрованого файлу, то здійснюється дешифрування і перевірка цілісності підпису. На екран буде виведено повний ідентифікатор користувача, підписавшого текст.
Зверніть увагу, що розшифрування файлу ведеться повністю автоматично, незалежно від того, чи він тільки підписаний, тільки зашифрований, або і те і інше. PGP використовує префікс ідентифікатора ключа з зашифрованого файлу для автоматичного пошуку відповідного секретного ключа для розшифрування в каталозі секретних ключів. Якщо в файлі є вкладений підпис, PGP буде використовувати потім префікс ідентифікатора з вкладеного підпису для автоматичного знаходження відповідного спільного ключа в вашому каталозі відкритих ключів, щоб перевірити підпис. Якщо файл шифрувався симетричним алгоритмом, PGP визначить це і запросить у вас фразу пароля для дешифрування.
Шифрування повідомлення
Для шифрування файлу відкритим ключем одержувача, введіть:
pgp –e textfile [her_userid]
Якщо ви не введете в командному рядку ім’я кореспондента, то воно буде запрошене в процесі шифрування. В результаті буде отриманий зашифрований файл textfile.pgp. Приклад:
pgp –e letter.txt User або: pgp –e letter.txt "User 1"
В першому прикладі PGP буде шукати в каталозі ваших відкритих ключів сертифікати відкритих ключів, які містять рядок "User" в полі ідентифікатора користувача. В другому прикладі PGP буде шукати ідентифікатори користувача, які містять рядок "User 1". Не можна використовувати пробіли в командному рядку, якщо ви не берете цілий рядок в лапки. Пошук ведеться без врахування регістра. Якщо відповідний ВК знайдено, то він використовується для шифрування файлу "letter.txt", створюється зашифрований файл "letter.pgp".
PGP буде намагатися стиснути текст перед шифруванням, таким чином значно збільшуючи його стійкість до криптоаналізу. Це означає, що зашифрований файл скоріше за все буде меншим, ніж вихідний текстовий файл.
Якщо ви хочете перетворити шифроване повідомлення в друкований ASCII-формат Radix-64 додайте опцію –a.
Якщо ви хочете послати одне і те ж повідомлення більше ніж одній людині, ви можете задати шифрування для декількох адресатів, будь-який з яких може його розшифрувати. Для задання декількох адресатів просто додайте декілька ідентифікаторів користувачів в командний рядок, наприклад так:
pgp –e letter.txt user_1 user_2 user_3
Підпис і шифрування
Для підпису текстового файлу вашим секретним ключем (your_userid) і подальшим його шифруванням відкритим ключем адресата (her_userid), наберіть:
pgp –es textfile her_userid [-u your_userid]
В результаті буде отриманий вкладений зашифрований файл textfile.pgp.
використання стандартного шифрування
Іноді вам необхідно зашифрувати файл традиційним способом, з допомогою шифрування з одним ключем. Це може бути корисно для захисту файлів в архіві, які будуть зберігатися, але не будуть посилатися кому-небудь. Так як розшифровувати файл буде та сама людина, яка і шифрувала його, шифрування з відкритим ключем дійсно в цьому випадку не є необхідним.
Щоб зашифрувати текстовий файл традиційним способом, наберіть:
pgp –c textfile
В цьому випадку PGP зашифрує текстовий файл і отримає вихідний файл textfile.pgp без використання методу відкритого ключа, каталогів ключів, ідентифікаторів і т. д. PGP запросить у вас фразу пароля для шифрування файлу. Ця фраза не повинна бути однаковою з фразою пароля, яку ви використовуєте для захисту вашого секретного ключа.
Повний список команд PGP наведено в додатку.
ЗАВДАННЯ
2.1 Домашня підготовка до роботи
Вивчити теоретичний матеріал.
Вивчити основні властивості і характеристики PGP.
Ознайомитись та засвоїти порядок роботи з PGP.
2.2 Виконати в лабораторії
Створити декілька каталогів, що будуть представляти різних користувачів віддалених хостів та скопіювати в кожен з них програму PGP.
Для кожного користувача згенерувати пару ключів, та обмінятися публічними ключами з рештою.
Добавити отримані публічні ключі в каталоги відкритих ключів та сертифікувати їх з різними рівнями довіри.
Здійснити обмін підписаними ключами та додати сертифіковані ключі в каталоги відкритих ключів.
Вивести на екран повну інформацію про ключі, включно з ЦВ.
Для однієї пари користувачів здійснити обмін зашифрованими симетричними та несиметричними алгоритмами повідомленнями і провести їх розшифрування. Зашифровані повідомлення повинні бути в текстовому форматі ASCII.
Для однієї пари користувачів здійснити обмін зашифрованими повідомленнями з ЕЦП і провести їх розшифрування та аутентифікацію.
ЗМІСТ ЗВІТУ
Мета роботи.
Повний текст завдання.
Описати та навести відповідні командні рядки для виконання пунктів 2-6.
Навести повну інформацію про створені та отримані ключі.
Висновок.
КОНТРОЛЬНІ ЗАПИТАННЯ
Поясніть схему ВРК ?
Поясніть схему шифрування RSA ?
Що таке хеш-функція і для чого вона використовується ?
Які алгоритми шифрування підтримує PGP ?
Що таке ЕЦП ? Як реалізується ЕЦП в PGP ?
Для чого використовується секретний і для чого – відкритий ключ ?
Поясніть механізм сертифікації ключів в PGP ?
СПИСОК ЛІТЕРАТУРИ
Ємець В., Мельник А., Попович Р. Сучасна криптографія. Основні поняття. - Львів: БаК, 2003. - 114 с.
Гундарь К. Ю., Гундарь А. Ю., Янишевский Д. А. Защита информации в компьютерных системах. К., 2000.
Столлингс В. Основы защиты сетей. Приложения и стандарты: Пер. с англ. – М: Вильямс, 2002. – 432 с.
PGP. Руководство пользователя.
ДОДАТОК
Набір команд PGP
Зашифрувати текстовий файл с ВК одержувача:
pgp -e textfile her_userid
Для підпису текстового файлу вашим СК:
pgp -s textfile [-u your_userid]
Для підпису текстового файлу вашим СК і, потім, зашифрування його з ВК одержувача:
pgp -es textfile her_userid [-u your_userid]
Для шифрування текстового файлу стандартним криптографічним методом:
pgp -c textfile
Для розшифрування зашифрованого файлу або для перевірки підпису підписаного файлу:
pgp ciphertextfile [-o plaintextfile]
Для шифрування повідомлення, призначеного для декількох адресатів:
pgp -e textfile userid1 userid2 userid3
Згенерувати вашу власну унікальну пару секретний/відкритий ключі:
pgp -kg
Для того, щоб добавити вміст файлу ВК або СК в ваш каталог відкритих або секретних ключів:
pgp -ka keyfile [keyring]
Для добування ключа із каталогу ключів:
pgp -kx userid keyfile [keyring] або: pgp -kxa userid keyfile [keyring]
Для перегляду інформації каталогу ВК:
pgp -kv[v] [userid] [keyring]
Для перегляду "відбитка пальця" ВК:
pgp -kvc [userid] [keyring]
Для перегляду інформації і перевірки підтверджуючих підписів в вашому каталозі ВК:
pgp -kc [userid] [keyring]
Для редактування ідентифікатора користувача або фрази пароля для вашого СК:
pgp -ke userid [keyring]
Для редактування параметрів довіри для ВК:
pgp -ke userid [keyring]
Видалити ключ або тільки ідентифікатор користувача з вашого каталогу ВК:
pgp -kr userid [keyring]
Для підпису і підтвердження чийогось ВК в вашому каталозі ВК:
pgp -ks her_userid [-u your_userid] [keyring]
Для видалення вибраних підписів із ідентифікатора користувача каталогу ключів:
pgp -krs userid [keyring]
Для постійної відміни вашого власного ключа з допомогою випуску посвідчення відміни:
pgp -kd your_userid
Для відміни або відновлення ВК в вашому каталозі ВК:
pgp -kd userid
Для дешифрування повідомлення, залишаючи підпис на ньому недоторканим:
pgp -d ciphertextfile
Для створення підтверджуючого підпису окремо від документа:
pgp -sb textfile [-u your_userid]
Для відокремлення підтверджуючого підпису від підписаного повідомлення:
pgp -b ciphertextfile
Для отримання зашифрованого файлу в форматі ASCII radix-64 добавте опцію -a при шифруванні або підписуванні повідомлення чи добуванні ключа:
pgp -sea textfile her_userid або: pgp -kxa userid keyfile [keyring]
Для повного видалення оригінального текстового файлу після створення зашифрованого файлу додайте опцію -w (wipe) при шифруванні або підписуванні повідомлення:
pgp -sew her_userid message.txt
Для вказання того, що текстовий файл містить текст ASCII, а не двійковий, і повинен бути перетворений в локальний текстовий файл одержувача, додайте опцію -t (text) до інших:
pgp -seat message.txt her_userid
Для відновлення оригінального імені файлу в процесі дешифрування, додайте опцію -p:
pgp -p ciphertextfile
Лабораторна робота № 2
ДОСЛІДЖЕННЯ РОБОТИ СТЕКУ ТСР/ІР. СНІФФІНГ
Мета роботи – вивчити стек протоколів та формати одиниць даних ТСР/ІР. Дослідити способи здійснення атаки типу сніффінг та шляхи захисту від неї. Вивчити можливості та порядок роботи з програмою аналізатором-мережі Network Monitor.
1. ТЕОРЕТИЧНІ ВІДОМОСТІ
1.1. Багаторівнева структура стеку ТСР/ІР
Набір протоколів TCP/IP (Transmission Control Protocol/Internet Protocol) – це стандартний промисловий набір протоколів, розроблений для глобальних мереж (WAN) з комутацією пакетів. TCP/IP є найбільш широковживаним сімейством мережевих протоколів, оскільки: по-перше, є єдиним незалежним від платформ набором протоколів; по-друге, це єдиний набір протоколів з відкритим процесом визначення стандартів та відсутністю власника.
В наш час стек ТСР/ІР є самим популярним засобом реалізації складних мереж. Так як стек ТСР/ІР був розроблений до появи моделі взаємодії відкритих систем ISO/OSI (Open Systems Interconnection), то хоча він також має багаторівневу структуру, відповідність рівнів стеку ТСР/ІР рівням моделі OSI достатньо умовна (рис. 1).
Рис. 1. Багаторівнева архітектура стеку ТСР/ІР
В стеку ТСР/ІР визначені 4 рівня. Кожен з них вирішує певну частину основної задачі - організації надійної і продуктивної роботи складної мережі, частини якої побудовані на основі різних мережевих технологій.
1.1.1. Прикладний рівень
Прикладний рівень стеку ТСР/ІР відповідає трьом верхнім рівням моделі OSI: прикладному, представницькому і сеансовому. Він об’єднує служби, які надаються системою користувацьким програмам і не залежать ні від середовища передачі даних, ні від способу передачі даних. До них відносяться протокол копіювання файлів (File Transfer Protocol, FTP), протокол емуляції терміналу (Telnet), простий протокол передачі електронної почти (Simple Mail Transfer Protocol, SMTP), протокол передачі гіпертекстової інформації (Hypertext Transfer Protocol, HTTP), служба мережевих імен (Domain Name System, DNS), (Рost Оffice Рrotocol, POP), мережева файлова система (Network File System, NFS), система X Windows (графічне віконне середовище), r-сервіси і багато ін.
Протоколи прикладного рівня встановлюються на хостах (кінцевих вузлах). Прикладний рівень реалізується програмними системами, побудованими на архітектурі клієнт-сервер.
1.1.2. Транспортний рівень
Транспортний рівень стеку ТСР/ІР, який також називають основним рівнем, може надавати вищому рівню два типи сервісу:
гарантована доставка – протокол управління передачою (Transmission Control Protocol, TCP);
доставка “по можливості” – протокол користувацьких дейтаграм (User Datagram Protocol, UDP);
Щоб забезпечити надійну доставку даних, протокол ТСР передбачає встановлення логічного з’єднання, це дозволяє йому нумерувати пакети, підтверджувати їх прийом квитанціями, у випадку втрати організовувати повторні передачі, розпізнавати і знищувати дублікати, доставляти прикладному рівню пакети в тому порядку, в якому вони були відправлені. ТСР дозволяє без помилок доставити сформований комп’ютером потік байтів в будь-який інший комп’ютер, що входить в складну мережу. ТСР ділить потік байтів на частини - сегменти і передає їх нижньому рівню міжмережевої взаємодії. Після того як ці сегменти будуть доставлені в пункт призначення, протокол ТСР знову збере їх в неперервний потік байтів.
Другий протокол цього рівня – UDP є найпростішим дейтаграмним протоколом, який використовується у тому випадку, коли задача надійного обміну даними або взагалі не ставиться, або вирішується засобами більш високого рівня – системними прикладними службами або програмами користувача.
Протоколи ТСР і UDP, також як і протоколи прикладного рівня, встановлюються на хостах.
1.1.3. Рівень міжмережевої взаємодії
Рівень міжмережевої взаємодії (internet), який також називають мережевим рівнем, є основою всієї архітектури ТСР/ІР. Саме він забезпечує переміщення пакетів в межах всієї складної мережі, отримуючи від транспортного рівня запити на передачу даних.
Основним протоколом міжмережевого рівня є міжмережевий протокол (Internet Protocol, IP). В його задачу входить просування пакету між підмережами – від одного маршрутизатора до іншого, поки пакет не попаде в мережу призначення. Протокол ІР встановлюється не тільки на хостах, але і на всіх шлюзах (маршрутизаторах).
Протокол ІР – це дейтаграмний протокол, який працює без встановлення з’єднання і не бере на себе відповідальність за доставку пакету до вузла призначення. Якщо пакет втрачається протокол ІР не намагається повторити його передачу. Максимум на що він здатний - послати повідомлення про втрату пакету вузлу-відправнику.
Враховуючи, що між двома вузлами мережі може пролягати декілька можливих шляхів, задача переміщення даних включає задачу прокладання і вибору маршрутів. Протоколи зв’язані з складанням і модифікацією таблиць маршрутизації, такі як протоколи збору маршрутної інформації RIP (Routing Internet Protocol) і OSPF (Open Shortest Рath First), також відносяться до рівня міжмережевої взаємодії.
На цьому ж рівні працює протокол міжмережевих керуючих повідомлень (Internet Control Message Protocol, ICMP), призначений для обміну інформацією про помилки між маршрутизатором мережі і вузлом-джерелом пакету. З допомогою спеціальних пакетів ІСМР повідомляє про неможливість доставки пакету, про перевищення часу життя або тривалості збирання пакету з фрагментів