МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Національний університет “Львівська політехніка”
Кафедра “Телекомунікації”
СИСТЕМА ОБМІНУ КОНФІДЕНЦІЙНИМИ ЕЛЕКТРОННИМИ ПОВІДОМЛЕННЯМИ
Методичні вказівки до циклу лабораторних робіт № 11 та 12
з курсу «Захист інформації в телекомунікаційних системах»
для студентів спеціальності «Інформаційні мережі зв'язку»
Львів 2001
“Система обміну конфіденційними електронними повідомленнями”. Методичні вказівки до циклу лабораторних робіт № 11 та 12 з курсу “Захист інформації в телекомунікаційних системах” для студентів спеціальності 7.092402 - “Інформаційні мережі зв'язку”. - Львів 2001. – 14 с.
Автор: доцент Коваль Б.В.
Рецензенти: доцент, д.т.н. Тимченко О.В.
доцент, к.т.н. Оборжицький В.І.
У цикл лабораторних робіт “Система обміну конфіденційними електронними повідомленнями” увійшли 2 роботи:
№ 11. Ознайомлення з макетом системи обміну конфіденційними електронними повідомленнями
№ 12. Дослідження комплексної системи захисту інформації для системи клієнт-сервер на основі протоколу HTTP
Методичні вказівки затверджено на засіданні кафедри “Телекомунікації” Національного університету “Львівська політехніка” 04.04.2001 р., протокол № 8.
Лабораторна робота № 11.
Ознайомлення з макетом системи обміну конфіденційними електронними повідомленнями
В наш час великою популярністю користуються відкриті системи з доступом із глобальної мережі Internet. Прикладом таких систем може бути корпоративна база даних з web-доступом до неї, чи портал електронної комерції. Але враховуючи те, що інформаційна система є відкритою, виникають підвищені вимоги до захисту інформації від несанкціонованого доступу.
Розроблений лабораторний макет є застосуванням такого типу і містить вбудовані методи захисту інформації. Програмний продукт представляє собою аналог поштового клієнта з підтримкою таких стандартних функцій як відповідь (Reply), перенаправлення (Forward) і адресної книжки (Address Book). Система реалізована з використанням сервлетів, написаних на мові Java. Взаємодія з користувачем відбувається за допомогою web-сторінок в форматі HTML. Програмний продукт створений на базі web-сервера (Resin-2.0.2) здатного працювати з сервлетами, СУБД (Postgres-7.1) з підтримкою запитів на мові SQL і UNIX-подібної операційної системи (Red Hat Linux 7.0). Шифрування інформації забезпечує пакет SSL алгоритмів.
Розроблена система обміну повідомленнями є прикладом захищеної системи, яка включає комплекс організаційних і реалізованих на програмному рівні заходів безпеки. По аналогічній структурі будуються системи електронної комерції і бази даних з глобальним доступом.
Вся інформація, яку зберігає розроблене застосування, міститься в таблицях бази даних. Такий підхід підвищує безпеку системи. Програмний продукт включає три таблиці: користувачів, повідомлень і системний журнал. Таблиця користувачів системи містить такі поля:
ідентифікаційний код користувача;
системне ім’я користувача;
пароль;
повне ім’я користувача;
додаткові відомості;
поле аутентифікації.
Вхід користувача в систему відбувається лише після співпадіння введених ним імені і пароля з існуючими в базі даних. Поле аутентифікації містить випадкову послідовність, яка використовується для автоматичної ідентифікації клієнта після входу в систему.
Таблиця повідомлень зберігає інформацію процесу обміну даними між користувачами. Поля таблиці:
ідентифікаційний код повідомлення;
відправник;
адресат;
дата;
текст повідомлення.
Після того як сервлет отримує запит від клієнта про збереження повідомлення, він автоматично генерує дату і записує дані в таблицю.
Наступна таблиця представляє собою системний журнал адмінінстратора системи, де записуються усі спроби невдалого входу в систему. Поля таблиці:
ім’я, під яким здійснювалася спроба входу;
дата і час;
ІР-адреса.
Після трьох невдалих спроб підряд логування в системі з певної машини, при наступних запитах її ІР-адреса блокується.
Структурна схема системи обміну повідомленнями приведена на рис. 1.
SHAPE \* MERGEFORMAT Login Page
Вхід в систему
Ch. Password
Зміна пароля адмінінстр.
Log Out
Безпечний вихід з системи
Add User
Додавання но-вого користув.
Кл. модуль
Клієнт системи
Адм. модуль
Адмінінстра-тор системи
Users
Знищ. корист.
Знищ. повідом.
System Log
Системний журнал
Read Mail
Читання нових повідомлень
New Message
Відіслати повідомлення
Options
Адрес. книжка
Зміна пароля
Reply,
Forward
Рис. 1. Структурна схема розробленої системи обміну повідомленнями
Вхід користувача в систему відбувається після правильного вводу імені і пароля на сторінці Login Page (рис. 2). До адмінінстративного модуля має право доступу тільки користувач з системним ім’ям admin.
Рис. 2. Сторінка входу в систему
Рис. 3. Адмінінстративний модуль
Розглянемо функції адмінінстратора системи. Сторінка Users (рис. 3) відображає список користувачів. При цьому існує можливість знищення користувача і знищення повідомлень, які зберігаються в таблиці бази даних певний період часу.
Рис. 4. Сторінка додавання нового користувача системи
Наступний модуль – Add User (рис. 4) дозволяє додати нового клієнта системи. Для цього потрібно заповнити такі поля:
системне ім’я користувача;
його пароль;
підтвердити пароль, ввівши його ще раз;
повне ім’я користувача;
додаткові відомості, наприклад його професію;
адресу електронної пошти.
Всі поля є обов’язковими, крім електронної пошти, якої користувач може не мати.
Системний журнал містить список невдалих спроб входу в систему. При цьому фіксується ім’я, дата і ІР-адреса. Існує можливість очищення журналу, але тоді заборонені ІР-адреси будуть розблоковані.
Для зміни пароля адмінінстратора потрібно перейти на сторінку Change Password, ввести новий пароль і підтвердити його.
Після натислення на кнопку Log Out відбувається безпечний вихід з системи. При цьому повідомляється серверу про завершення сеансу і він формує запити про знищення усієї тимчасової інформації, яка була пов’язана з аутентифікацією. Безпечний вихід з клієнтського модуля відбувається аналогічно.
Рис. 5. Форма для вводу повідомлення
Розглянемо функціональні можливості клієнтського модуля. Сторінка New Message (рис. 5) призначена для вводу нового повідомлення, заповнивши поля адресата, змісту і самого повідомлення. Модуль Read Mail (рис. 6) містить список повідомлень адресованих користувачу. Після натиснення на стрічку повідомлення відкривається його зміст. Існує можливість знищення прочитаних повідомлень. Після натислення на кнопку відповіді (Reply) або перенаправлення (Forward) відбувається перехід на сторінку New Message, аналогічно як і в звичайній електронній пошті.
Рис. 6. Сторінка читання повідомлень
Модуль Options (рис. 7) містить адресну книжку і можливість зміни пароля. Адресна книжка включає список користувачів системи. Після натиснення на зсилку на системне ім’я користувача відбувається перехід на сторінку New Message для відправки йому повідомлення. Щоб змінити пароль, потрібно ввести його і підтвердити. Ідентифікація системного імені користувача відбувається автоматично.
Рис. 7. Опції доступні користувачу системи
Хід роботи
Перед виконанням лабораторної роботи призначте одного із студентів адмінінстратором, якому потрібно буде додати нових користувачів системи.
Запустіть броузер (сторінки мають дещо кращий вигляд в броузерах Netscape Navigator або Mozilla), в стрічці Location введіть https://host.domain:port/ias/, де https – захищена версія http з використанням SSL, host – ім’я сервера, domain – домен сервера, port – порт протоколу https, ias – каталог сервера який зберігає програму.
Після встановлення з’єднання броузер повідомляє про отримання сертифікату відкритого ключа. Перепишіть значення полів сертифікату в звіт.
Введіть ім’я і пароль, натисніть Submit, увійдіть в систему. Ознайомтеся з роботою в системі, її функціональними можливостями. Скористайтесь функціями відповіді (Reply), перенаправлення (Forward) і знищення (Delete) повідомлень.
Дослідіть, чи може два користувача одночасно працювати в системі під одним паролем на різних машинах. Для цього потрібно залогуватися в системі, виконати певні дії. Далі увійдіть в систему на іншій машині. Поверніться на першу машину і спробуйте, наприклад, відправити повідомлення.
Дослідіть, чи може два користувача залогуватися на одній машині. Увійдіть в систему. Дайте іншому користувачу залогуватися на вашій машині. Результат запишіть в звіт.
Дослідження безпечного виходу з системи натисненням на кнопку Log Out. Увійдіть в систему. Відкрийте нове вікно броузера і в стрічці Location введіть https://host.domain:port/ias.Mailto. Виконайте ті самі дії після натиснення на кнопку Log Out. Спробуйте увійти в систему, потім закрити всі вікна броузера. Відкрийте нове вікно броузера, в стрічці Location введіть той самий шлях. Результати запишіть в звіт.
Лабораторна робота № 12
Дослідження комплексної системи захисту інформації для системи клієнт-сервер на основі протоколу HTTP
Для забезпечення надійного захисту системи розроблено комплекс заходів безпеки, реалізованих на програмному рівні, які призначені для усунення вразливих місць системи:
безпечний вхід в систему;
безпечний вихід з системи;
запобігання несанкціонованому доступу.
Розглянемо реалізацію безпечного входу в систему. Кожен користувач програми Secure Mail має своє ім’я і пароль. Тільки після їх вводу він отримує доступ до інформації, в іншому випадку система повідомляє про відмову в доступі. Ім’я і пароль користувача зберігаються в таблиці бази даних. Дані користувача поступають на обробку сервлету, який звіряє їх з запитаними із бази даних, і на основі такої перевірки приймає рішення про надання чи не надання доступу.
Протокол НТТР, за яким відбувається взаємодія, є асинхронним. Сесія НТТР складається з запиту клієнта і відповіді сервера, після чого з’єднання розривається. При наступному запиті клієнта сервер не має інформації про його попередній запит. Якщо би по такій схемі відбувалася взаємодія, то клієнту доводилося би для доступу до кожної сторінки набирати свій пароль. Для запобігання такій систуації в специфікацію НТТР були введені коди зв’язку, або cookies. Це дає можливість серверу зберігати на клієнтській машині інформацію про попередній запит. При цьому сервер додає до своєї відповіді заголовок про встановлення cookie. Це означає, що сервер пропонує клієнту зберегти певне значення, яке може представляти собою текстову стрічку, або іншу послідовність символів. Після отримання такого повідомлення, клієнт зберігає отримане значення на своїй машині. Під час наступного запиту до того самого сервера, клієнт повертає йому значення cookie. Заголовок протоколу НТТР про встановлення cookie містить такі поля:
ім’я і значення. Кожен код зв’язку має своє ім’я. Значення представляє собою інформацію, яку сервер хоче зберегти у клієнта.
шлях. Цей параметр вказує клієнту по якому шляху на сервері потрібно повернути cookie.
період дійсності. Сервер вказує дату, коли код зв’язку стає недійсним.
домен. Вказує серверам якого домену клієнт поверне cookie.
захищенісь. При встановленні цього параметру cookie повертається тільки по захищеному з’єднанню з використанням SSL.
Для забезпечення такої взаємодії, броузер повинен підтримувати коди зв’язку, або мати відповідні налаштування.
В розробленій програмі механізм подальшої аутентифікації клієнта здійснюється за допомогою кодів зв’язку. Отже, після правильного вводу імені і пароля, сервер генерує випадкову послідовність символів, передає її клієнту і записує в базу даних. При наступному запиті до сервера, клієнт повертає значення коду зв’язку. Сервер здійснює пошук отриманого значення в базі даних. Після знаходження від ідентифікує клієнта і його права доступу. Якщо сервер не знаходить отриманої стрічки в базі даних, то вважає запит спробою несанкціонованого доступу.
Отже, безпечний вхід в систему відбувається за допомогою імені і пароля, після чого сервер генерує випадкову послідовність і передає її клієнту як значення cookie. Клієнт повертає значення при наступному запиті і за цим значенням відбувається його аутентифікація. Для підвищення безпеки клієнт зберігає значення коду зв’язку тільки під час однієї сесії.
Перейдемо до розгляду безпечного виходу з системи. Для забезпечення цієї умови потрібно знищити всю інформацію, яка призначалася для аутентифікації, тобто значення коду зв’язку у клієнта і в базі даних на сервері. Для цього і призначена кнопка Log Out головного меню програми. Після натиснення на неї клієнт дає зрозуміти серверу, що він хоче завершити сесію. При цьому сервер генерує нову випадкову послідовність і записує її замість тої, що використовувалася для аутентифікації. Далі сервер дає запит клієнту про знищення значення cookie і закриття вікна програми.
Лабораторний макет включає комплекс програмно реалізованих заходів, які призначені для запобігання несанкціонованого доступа в систему. При зверненні до будь-якого сервлета, сервер вимагає отримання випадкової послідовності, яка співпадає з тою, яка збережена в базі даних. В іншому випадку сервер повідомляє про не надання доступу.
До адмінінстративного модуля системи має доступ тільки користувач admin. Сервер не надає ресурсів іншим користувачам при отриманні запиту. Також передбачено можливість неправомірних дій одного з клієнтів системи.
Протокол SSL, використання якого передбачено в лабораторному макеті, найбільш часто використовується, як криптографічний засіб в Internet. SSL використовує комбінацію криптографічних процесів для безпечного зв’язку по мережі. Розглянемо SSL і криптографічні процеси, які він використовує.
SSL забезпечує криптографічне розширення стандартного TCP/IP протоколу, який використовується для зв’язку в Internet. Як показано в таблиці 4.1, між транспортним рівнем і рівнем застосувань стандартного протокольного стеку TCP/IP додається захищений рівень. Часто разом з SSL використовується протокол HTTP (Hypertext Transfer Protocol), який являє собою протокол передачі web-сторінок. Застосування, такі як Telnet, FTP та інші, також можуть використовувати SSL.
Зв’язок з використанням SSL починається обміном інформацією між клієнтом і сервером. Цей обмін інформацією називається рукостисканням SSL.
Є три основні цілі рукостискання SSL:
Домовленість про набір шифрів
Аутентифікація особи (необов’язкова)
Визначення безпеки інформації погодженням механізмів шифрування
Сесія SSL починається з домовленості між клієнтом і сервером про те, який набір шифрів будуть вони використовувати. Набір шифрів представляє собою ряд криптографічних алгоритмів і розмірів ключів, які комп’ютер може використовувати для шифрування даних. Набір шифрів включає інформацію про наявні алгоритми з відкритим ключем, алгоритми з секретним ключем і криптографічні хеш-функції. Клієнт говорить серверу який набір шифрів наявний, і сервер вибирає найкращий взаємно прийнятний набір шифрів.
В SSL крок аутентифікації є необов’язковим, але, наприклад в транзакції електронної комерції по Web, клієнт найчастіше бажає аутентифікувати сервер. Аутентифікація сервера дозволяє клієнту бути впевненим, що сервер представляє собою об’єкт, якого клієнт і вважає тим самим сервером.
Для визначення чи сервер належить до організації, яку він повинен представляти, сервер пропонує сертифікат відкритого ключа клієнту. Якщо сертифікат дійсний, клієнт може бути впевнений в ідентифікації сервера.
Клієнт і сервер обмінюються інформацією, яка дозволяє їм узгодити однаковий секретний ключ. Наприклад, з використанням RSA, клієнт використовує відкритий ключ сервера, отриманий з сертифіката відкритого ключа, для шифрування цього самого секретного ключа. Клієнт пересилає зашифрований секретний ключ серверу. Тільки сервер може розшифрувати дане повідомлення, тому що для цього потрібен приватний ключ сервера.
Як клієнт, так і сервер, тепер знають як отримати доступ до однакового секретного ключа. З кожним повідомленням, вони використовують криптографічні хеш-функції, вибрані на першому кроці цього процесу, і спільну секретну інформацію для обчислення значення НМАС, яке вони додають до повідомлення. Далі вони використовують секретний ключ і алгоритм з секретним ключем визначені на першому кроці цього процесу для шифрування секретних даних і значення НМАС. Клієнт і сервер тепер можуть безпечно зв’язуватися використовуючи шифровані і хешовані дані.
Сертифікат відкритого ключа представляє собою цифровий еквівалент паспорта. Він створюється довіреною організацією і забезпечує ідентифікацію пред’являючої особи. Довірена організація називається авторитетним джерелом сертивікатів (CA – certificate authority). СА дещо подібна на нотаріальну організацію. Для отримання сертифікату від СА необхідно підтвердити свою особу. Після того, як СА підтвердить що претендент представляє організацію, яку він вказав, сертифікат підтверджує законність інформації, яку містить сертифікат.
Сертифікат відкритого ключа містить такі поля:
Ким виданий (Issued) – назва СА, якою видано сертифікат. Якщо користувач довіряє СА, якою видано сертифікат, і сертифікат дійсний, користувач може довіряти сертифікату.
Період дійсності (Period of validity) – сертифікат має дату закінчення терміну, і ця дата є інформацією, яка перевіряється під час контролю дійсності сертифіката.
Об’єкт (Subject) – включає інформацію про об’єкт, який представляє сертифікат.
Відкритий ключ об’єкта (Subject’s public key) – головною частиною інформації, яка подається сертифікатом, є відкритий ключ об’єкта. Всі інші поля подаються для впевненості в законності даного ключа.
Цифровий підпис (Signature) – сертифікат включає цифровий підпис організації СА, яка його видала. Підпис створюється з використанням приватного ключа СА для гарантування законності сертифікату. По причині того, що підписано тільки сертифікат, а не дані які передаються з використанням SSL, не забезпечується заперечення їх пересилки.
Таблиця 2 містить список алгоритмів, які використовуються в пакеті SSL.
Таблиця 2
Хід роботи
Залогуйтеся як користувач системи. Спробуйте отримати доступ до одного з сервлетів адмінінстративного модуля (див. табл. 2). Для цього відкрийте нове вікно броузера, в полі Location введіть: https://host.domain:port/servlet/ім’я. Ім’я сервлета візьміть з таблиці.
Відкрийте вікно броузера https://host.domain:port/ias/Adduser.html і спробуйте несанкціоновано додати нового користувача системи.
В клієнтському модулі відкрийте сторінку Read Mail. Клікніть по фреймі, на якому розміщена кнопка знищення повідомлення правою клавішою миші і виберіть опцію контекстного меню View Frame Source (Проглянути вихідний код фрейма). Знайдіть стрічку
<td><a href='/servlet/ias.Maillist?no=160'><img src='/ img src='/ias/images/delete.gif' border='0'></a></td>,
яка відповідає за знищення повідомлення. Виникає думка, що можна знищити будь-яке повідомлення, задавши лише його номер (в даному випадку 160). Отже, спробуйте знищити будь-яке своє повідомлення. Для цього відкрийте нове вікно броузера і в полі Location введіть:
https://host.domain:port/servlet/ias.Maillist?no=номер'
Перевірте, чи ви знищили своє повідомлення. Тепер спробуйте знищити повідомлення адресоване іншому користувачу, дізнавшись у нього номер. Вдалося?
Спробуйте отримати несанкціонований доступ до файлів лабораторного макету приведених в таблиці 4.
Над іншими методами взлому системи думайте самі, тільки випадково не поміняйте свій пароль.
Таблиця 3
Контрольні запитання
З якою метою здійснюється аутентифікаці за допомогою кодів зв’язку (cookie)?
Яким чином відбувається аутентифікація користувачів лабораторного макету?
Узагальнена структура протоколу HTTPS.
Які відомі вам алгоритми входять в пакет SSL? Дайте їх коротку характеристику.
Призначення сертифікатів.
Узагальнена структура роботи SSL.
Важливість організаційних методів захисту на прикладі використання кнопки Log Out лабораторного макету.
Література
Столлингс Вильям. Криптография и защита сетей: принципы и практика, 2-е изд.: Пер. с англ. – М. : Издательский дом “Вильямс”, 2001. – 672 с.
Анин Б. Ю. Защита компьютерной информации. – СПб.: БХВ-Петербург, 2000. – 384 с.
Гундарь К.Ю., Гундарь А.Ю., Янишевский Д.А. Защита информации в компьютерных системах. – К. : Издательство «Корнійчук», 2000. – 152 с.
Домарев В.В. Защита информации и безопасность компьютерных систем. – К. Издательство «Диасофт», 1999. – 480 с.
Підписано до друку 14.05.2001. Папір офсетний. Друк офсетний.
Умов.-друк. арк. 0,88. Формат 60х84 1/16. Наклад 100 прим. Зам. 1022.
Віддруковано в НВМ Поліграфічного технікуму УАД
79008, м. Львів, пл. Митна, 1