Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пояснювальна записка_ред.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1.06 Mб
Скачать
    1. Принципи роботи Криптосистеми

Типовий приклад зображення ситуації, в якій виникає завдання криптографії (шифрування) зображений на рисунку-2:

Рисунок.2

На рис.2. законні користувачі захищеної інформації, вони хочуть обмінюватися інформацією по загальнодоступному каналу зв'язку, незаконний користувач (супротивник, хакер), який хоче перехоплювати надіслані через з'єднання повідомлення і спробувати витягнути з них цікаву для нього інформацію. Цю просту схему можна вважати моделлю типової ситуації, в якій застосовуються криптографічні методи захисту інформації або просто шифрування. Історично в криптографії закріпилися деякі військові слова (супротивник, атака на шифр і ін.) Вони найбільш точно відображають сенс відповідних криптографічних понять. Разом з тим широко відома військова термінологія, заснована на понятті коду (військово-морські коди, коди Генерального штабу, кодові книги, кодобозначенія і т. п.), вже не застосовується в теоретичній криптографії. Справа в тому, що за останні десятиліття сформувалася теорія кодування - великий науковий напрям, який розробляє і вивчає методи захисту інформації від випадкових спотворень в каналах зв'язку. Криптографія займається методами перетворення інформації, які б не дозволили противнику витягти її з перехоплюваних повідомлень. При цьому по каналу зв'язку передається вже не сама захищається інформація, а результат її перетворення за допомогою шифру, і для супротивника виникає складне завдання розкриття шифру. Розтин (злом) шифру - процес отримання інформації, що захищається з шифрованого повідомлення без знання застосованого шифру. Противник може намагатися не отримати, а знищити або модифікувати захищається інформацію в процесі її передачі. Це - зовсім інший тип загроз для інформація, відмінний від перехоплення і розтину шифру. Для захисту від таких загроз розробляються свої специфічні методи. Отже, на шляху від одного законного користувача до іншого інформація повинна захищатися різними способами, що протистоять різним загрозам. Виникає ситуація ланцюга з різнотипних ланок, яка захищає інформацію. Природно, супротивник буде прагнути знайти найслабша ланка, щоб з найменшими витратами дістатися до інформації. А значить, і законні користувачі повинні враховувати цю обставину в своїй стратегії захисту: безглуздо робити якусь ланку дуже міцним, якщо є свідомо більш слабкі ланки ("принцип рівноміцності захисту"). Вигадування хорошого шифру справа трудомістке. Тому бажано збільшити час життя хорошого шифру і використовувати його для шифрування як можна більшої кількості повідомлень. Але при цьому виникає небезпека, що супротивник вже розгадав (розкрив) шифр і читає захищається інформацію. Якщо ж в шифрі мережа змінний ключ те, замінивши ключ, можна зробити так, що розроблені супротивником методи вже не дають ефекту.

    1. Характеристика протоколу https

Протокол HTTP (HyperText Transfer Protocol - протокол передачі гіпертексту) - це протокол рівня додатка, що здійснює зв'язок прикладений в межах розподілених, спільних або різнорідних інформаційних систем. Протокол дозволяє додаткам обмінюватися даними, представленими в зрозумілому для сприйняття людиною виді.

Як випливає з його назви, спочатку HTTP призначався для передачі між додатками так званого гіпертексту (hypertext), що є особливим видом даних, створений відповідно до стандарту HTML (HyperText Markup Language - мова розмітки гіпертексту). Гіпертекстовий документ складається з даних,

розмічених за допомогою тегів (tag) мови HTML, і є комбінацією тексту, зображень, гіперпосилань і інших засобів представлення даних. Гіперпосилання - одна з найважливіших складових HTML - документу - є інтерактивні області, дія на які призводить до отримання пов'язаних з гіперпосиланням даних. Це дозволяє користувачеві, працюючому з гіпертекстовою інформацією, здійснювати навігацію в межах набору документів або навіть усій сети Інтернет, отримуючи інформацію, що цікавить його, за допомогою контекстних гіперпосилань.

Протокол HTTP є надбудовою над протоколом TCP і є засобом контролю змісту передаваних даних. У відмінність ось TCP, який не враховував структуру передаваних пакетів, HTTP впроваджує в дані метаінформацію, що дозволяє одержувачеві коректно інтерпретувати отримані дані. На основі HTTP функціонує глобальна мережа Інтернет (що називається також World Wide Web або WWW). Перша версія протоколу - HTTP/0.9 - мала досить обмежені можливості, але з активним розвитком всесвітньої сети з'явилися нові версії: HTTP/1.0 і HTTP/1.1, що дозволяють контролювати передачу по обчислювальних мережах не лише гіпертекстової інформації, але і довільні бінарні файли: звукові, графічні, архівні і ін.

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

Клієнт є ініціатором з'єднання і просить у сервера деякі дані або послуги. Клієнтом, як правило, являється програма, що називається браузером (browser), дозволяє як відображати гіпертекстову інформацію, так і приймати файли інших форматів. Щоб отримати деяку інформацію, що цікавить, клієнт посилає серверу запит(request), що містить опис прошеної інформації.

Рисунок № 3 Схема кліент-сервер в Internet

Сервер при передачі даних через HTTP називають сервером (web - server) веб. Ця програма здійснює обробку запитів ось клієнтів, передаючи запрошені дані у вигляді відповідей (response), що містять окрім шуканих даних метаінформацію, що їх, що описує.

Отримання користувачем його даних, що цікавить, складається з наступних етапів:

  1. Користувач вводить в рядку браузеру адрес його ресурсу, що цікавить.

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

  3. Браузер підключається до сервера, розташованому, можливо, на видаленому комп'ютері, і передає йому запит.

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

  5. Сервер передає відповідь браузеру.

  6. Браузер аналізує відповідь і зберігає отримані дані у файл, або, у разі гіпертекстового документу, аналізує теги HTML і відображає документ на екрані.

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

  1. Проксі- сервери (proxy - server) - програма-посередник, що виконує функції як клієнта, так і сервера з метою створення запитів від імені других клієнтів. Запити обслуговуються проксі-сервером, або пересилаються їм з внесенням в них змін (в цьому випадку проксі-сервер називається непрозорим) або без змін (в цьому випадку проксі-сервер називається прозорим). Проксі-сервер дозволяє групі комп'ютерів виступати одним клієнтом, що часто застосовується при підключенні до Інтернету локальних мереж.

  2. Шлюз (gateway) - як і проксі-сервер, здійснює трансляцію запитів, проте, не піддаю їх зміні. Шлюз отримує ось клієнта запит, як до сервера, що містить шуканий ресурс. Таким чином, клієнт не може визначити, підключається чи геть через шлюз або безпосередньо до того, що містить ресурс серверу.

  3. Тунель (tunnel) - програма-посередник, що підтримує з'єднання. Хоча після установки з'єднання тунель не розглядається в якості елементу передачі через протокол HTTP, з'єднання, як правило, ініціюється саме HTTP - запитом. Тунель перериває свою роботу, якщо хоч би один з учасників обміну даними закриває з'єднання. Для збереження функціональності передачі даних при підключенні через проміжні точки не потрібно внесення змін до запитів і відповідей, за винятком випадку проксі-сервера в цьому випадку в клієнтському запиті повинні міститися додаткові поля. Проте, з точки зору сервера, обмін данними здійснюється безпосередньо з клієнтом, отже, ніяких змін в запатах не відбувається. Тому при розробці програми можливість підключення через проміжні точки не враховувалися.

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

По своїй структурі запит складається з трьох частин:

  • Рядок запиту

  • Блок заголовків

  • Об'єкт

Рядок запиту складається з трьох полів, розділених символами пропуску(ASCII - код 20h, далі SP), і закінчується комбінацією з двох символів: повернення каретки(ASCII - код 0Dh, далі CR) і переклад терміни(ASCII - код 0Ah, далі LF). Елементи терміни запиту представлені наступними полями:

  • Метод (method) - визначає метод обробки, що застосовується до прошеного ресурсу. У залежності ось вказаного методу формат запиту може бути різним. Допустимі методи :

    • OPTIONS

    • GET

    • HEAD

    • POST

    • PUT

    • DELETE

    • TRACE

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

  • URI (Universal Resource Identifier) ресурсу (resource URI) - вказує місце розташування прошеного ресурсу в стандартизованім форматі, тобто є адресою ресурсу. При використанні методу GET цей рядок може включать набір параметрів, що передаються серверу у виді термін формату «ім'я _параметра = значення_ параметра», розділених символами амперсанда '&'. Блок параметрів знаходиться у кінці терміни URI і відділяється від адреса символом знаку ' питання? '.

  • Версія протоколу HTTP - при розробці програми була реалізована підтримка прийому запитів, що відповідають версіям 1.0 і 1.1, яким відповідають терміни «HTTP/1.0» і «HTTP/1.1» відповідно.

Блок заголовків, що слідує за рядка запиту, може складатися з одного або більше за заголовки :

  • Заголовок запиту - містить поля, що служать модифікаторами запиту і містять інформацію про запит і про конфігурацію клієнтської машини.

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

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

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

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

По своїй структурі відповідь складається з наступних частин:

  • Рядок стану

  • Блок заголовків

  • Об'єкт

Рядок стану складається з трьох полів, розділених символами SP, і містить у кінці послідовність символів CR, LF. Елементи терміни стану :

  • Версія протоколу HTTP - розроблена програма завжди використовує терміну «HTTP/1.1».

  • Код стану (status code) - трьохсимвольний цифровий код, який ідентифікує результат виконання запиту. Хоча стандартом визначений досить великий набір кодів стану, в програмі використовуються наступні коди:

    • 200 – успішне виконання;

    • 400 – некоректний запит;

    • 401 – несанкціонований доступ;

    • 404 – ресурс не знайдений;

    • 405 – непридатний метод;

    • 505 – не підтримувана версія HTTP.

  • Фраза стану (reason phrase) - коротка фраза, що пояснює код стану виконання запиту. Стандартом запропонований стандартний набір фраз, проте в програмі цей набір був дещо модифікований.

Блок заголовків, що слідує за рядка стану, може складатися з одного або більше за заголовки :

  • Заголовок запиту

  • Заголовок об'єкту

  • Загальний заголовок

Розділ заголовків закінчується двома парами символів CR і LF, після чого слідує довільний набір символів - об'єкт. При роботі програми такими об'єктами можуть являться тільки гіпертекстові документи у форматі HTML, динамічно генеровані модулями, що підключаються.