Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка_WireShark.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.7 Mб
Скачать
  1. Аутентифікація http

Нарешті, давайте спробуємо зайти на web сайт, який використовує аутентифікацію за допомогою пароля, та глянемо на HTTP повідомлення, що передаються. URL сайту: http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html . Логін «wireshark-students», пароль «network». Отже, давайте зайдемо на сайт, захищений паролем . Зробіть наступне:

  • Запустіть ваш web-браузер та переконайтеся, що кеш в ньому очищений. Перезапустіть браузер.

  • Запустіть перехоплення пакетів у Wireshark.

  • Введіть наступний URL у ваш браузер:

http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html

Введіть ім’я користувача та пароль.

  • Зупиніть перехоплення пакетів та введіть “http” в поле фільтру з метою відображення лише перехоплених повідомлень HTTP.

Дайте відповіді на наступні питання:

  1. Яку відповідь дає сервер (код статусу та кодова фраза) на початкове повідомлення HTTP GET вашого браузера?

  2. Коли ваш браузер відправив HTTP GET повідомлення вдруге, яке нове поле було додано?

Тепер поглянемо на результат роботи Wireshark. Логін (wirehsark-students) та пароль (network), які ви вводили, закодовані в рядок символів (d2lyZXNoYXJrLXN0dWRlbnRzOm5ldHdvcms=), що слідує після “Authorization: Basic” заголовоку у вихідному повідомлені HTTP GET. На перший погляд може здатися, що ваш логін та пароль зашифровані, але насправді вони перекодовані в Base64 формат. Логін та пароль не зашифровані! Для того щоб переконатися в цьому просто перекодуйте кодований рядок з Base64 назад у ASCII кодування і ви побачите ваш логін та пароль. Оскільки кожен може завантажити та встановити таку програму як Wireshark та перехоплювати пакети, що проходять через деякий мережний адаптер, а також перекодовувати інформацію з Base64 в ASCII, то стає очевидним, що використання не захищених паролів для аутентифікації на сайтах замало і тому потрібно вживати додаткових заходів для їх захисту.

Протокол ssl

В цій лабораторній роботі ми будемо досліджувати протокол SSL (Secure Sockets Layer), акцентуючи увагу на SSL повідомленнях, що посилаються через TCP з’єднання. Це буде робитися шляхом аналізу SSL пакетів, які пересилаються між вашим комп’ютером та сервером “електронної комерції”. Ми дослідимо різноманітні типи SSL повідомлень, а також поля в них.

Мал.

  1. Перехоплення пакетів ssl сесії

Першим кроком буде перехоплення пакетів сесії SSL. Для цього вам потрібно зайти на ваш улюблений сайт електронної комерції (або будь який інший сайти по https) і розпочати процес оплати якоїсь послуги (але розірвавши з’єднання до закінчення оплати). Після перехоплення пакетів ви маєте налаштувати в Wireshark фільтр повідомлень так, щоб відображалися лише Ethernet фрейми, які містять SSL записи, відіслані чи прийняті вашим хостом. Ви маєте отримати щось на кшталт миттєвого знімку екрану, наведеного на Мал.

  1. Аналіз перехоплених пакетів

Графічний інтерфейс Wireshark має відображати лише Ethernet фрейми, що містять SSL записи. Важливо розуміти, що Ethernet фрейм може містити не один SSL запис (на відміну від HTTP повідомлень, для яких кожен фрейм містить або одне повне повідомлення або його частину). Також, SSL запис може не повністю вміщатися в Ethernet фрейм, і тоді він розбивається на декілька частин.

  1. Для кожного з перших 8-ми Ethernet фреймів визначте джерело повідомлення (сервер чи клієнт), визначте номер SSL запису, що вставлений у фрейм, і складіть список типів SSL повідомлень. Складіть часову діаграму передавання SSL пакетів між клієнтом та сервером.

  2. Кожен SSL запис починається з однакових трьох полів (можливо, з різними значеннями). Одне з цих полів - це “content type”, яке має розмір в один байт. Випишіть всі три поля та їхній розмір.

ClientHello запис:

  1. Розгорніть ClientHello запис (якщо ви маєте декілька ClientHello повідомлень, розгорніть перший з них). Яке значення поля “content type” ?

  2. Чи запис ClientHello містить нісенітницю? Якщо так, то яке значення цієї «нісенітниці» у шістнадцятковому представлені?

  3. ClientHello повідомлення показує, які «набори алгоритмів» він підтримує? Якщо так, то виберіть перший набір та знайдіть, які алгоритми використовуються для отримання публічного ключа, симетричного ключа та знаходження хешу.

ServerHello запис:

  1. Знайдіть SSL повідомлення ServerHello. Чи в пакеті визначається який «набір алгоритмів» був вибраний?

  2. Цей пакет містить читабельний текст? Якщо ні, то якої довжини цей текст? Яке призначення «нісенітниці» в SSL повідомленнях клієнта та сервера?

  3. Цей пакет містить ID сесії? Яке призначення цього ID?

  4. Цей пакет містить сертифікат або сертифікат міститься в окремому пакеті? Цей сертифікат вставляється безпосередньо в Ethernet кадр?

Запис обміну ключем клієнта (Client Key Exchange повідомлення)

  1. Знайдіть повідомлення обміну ключем клієнта. Чи це повідомлення містить якийсь «секрет»? Для чого цей «секрет» використовується? Чи «секрет» зашифрований? Якщо так, то яким чином? Яка довжина зашифрованого «секрету»?

Запис зміни шифру (The Change Cipher Spec Record), відправлений клієнтом та зашифрований запис рукостискання (Encrypted Handshake Record):

  1. Яке призначення запису Change Cipher Spec? Скільки байтів займає це повідомлення у вас?

  2. Що зашифровано у записі Encrypted Handshake та яким чином?

  3. Чи сервер відправляє записи Change Cipher Spec та Encrypted Handshake клієнту? Як ці записи відрізняються від тих, що були надіслані клієнтом?

Дані прикладного рівня:

  1. Як шифруються дані прикладного рівня? Чи записи, які містять дані прикладного рівня, містять ще й значення секрету MAC (message authentication code)? Чи Wireshark розмежовує дані прикладного рівня та секрет MAC?