Посібник з дешифрування SSL: як розшифрувати SSL за допомогою Wireshark

Розшифруйте SSL за допомогою Wireshark


Якщо ви коли-небудь намагалися використовувати Wireshark для моніторингу веб-трафіку, ви, мабуть, зіткнулися з проблемою – багато чого зашифровано. Насправді більшість сайтів використовують шифрування SSL або TLS, щоб захистити своїх користувачів. Повсюдне шифрування – це гарна річ, якщо ви здійснюєте покупки в Amazon, але це справжній біль, коли ви намагаєтеся керувати мережею. Ось як я розшифрую SSL за допомогою Wireshark.

Що таке Wireshark та SSL?

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

SSL – протокол шифрування, який працює на транспортному шарі моделі OSI. Він використовує різні методи шифрування для захисту даних під час переміщення по мережах. Примітка. У цьому посібнику я здебільшого маю на увазі SSL як термін “catchall” для SSL та TLS, його наступника.

Шифрування SSL робить використання Wireshark складнішим, оскільки не дозволяє адміністраторам переглядати дані, що містяться в кожному пакеті. Якщо Wireshark налаштований належним чином, він може розшифрувати SSL та відновити вашу здатність переглядати необроблені дані.

Використання секретного ключа попереднього майстра для розшифрування SSL та TLS

Використання секретного ключа попереднього майстра для розшифрування SSL у Wireshark є рекомендованим методом. А попередньо засвоїти секретний ключ генерується клієнтом і використовується сервером для отримання головного ключа, який шифрує трафік сеансу. Це сучасний стандарт криптографії та зазвичай реалізується через Діффі-Хеллмана.

Ваш веб-переглядач може бути створений для реєстрації секретного ключа попереднього майстра, який Wireshark використовує для розшифрування сеансів SSL та TLS.

Ось етапи розшифрування SSL та TLS за допомогою секретного ключа, що попередньо працює:

  • Встановити змінну середовища
  • Запустіть свій браузер
  • Налаштуйте Wireshark
  • Зробіть захоплення та розшифруйте сеанс

Закінчивши, ви зможете розшифрувати сеанси SSL та TLS у Wireshark, не потребуючи доступу до цільового сервера.

Встановити змінну середовища Windows

В Windows, вам потрібно буде встановити змінну середовища за допомогою Розширені налаштування системи корисність. Ця змінна назва SSLKEYLOGFILE, містить шлях, де зберігаються секретні ключі попереднього майстра.

Почніть з клацання правою кнопкою миші на Мій комп’ютер, і вибір Властивості з меню. The Система меню відкриється.

Далі натисніть кнопку Розширені налаштування системи у списку зліва. The Властивості системи відкриється вікно.

На Розширений натисніть на Змінні середовища кнопка.

Клацніть на Нове… кнопка під Користувацькі змінні. Ви також можете створити змінну під Системні змінні якщо ви хочете реєструвати SSL-ключі для кожного користувача в системі, але я вважаю за краще, щоб він був обмежений моїм профілем.

Під Назва змінної, введіть наступне:

SSLKEYLOGFILE

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

Як зауваження, якщо ви створюєте це як змінну середовища для всієї системи, вам потрібно буде використовувати відповідні символи або зберігати файл у доступному для всіх користувачів місці. Наприклад, ви можете вибрати % USERPROFILE% \ Дані програми \ ssl-keys.log або C: \ ssl-keys.log.

Закінчивши, натисніть добре і перейти до наступного набору кроків.

Встановити змінну середовища для Linux або Mac

В Linux і Мак, вам потрібно буде встановити SSLKEYLOGFILE використання змінної середовища нано. В Linux, змінна зберігається в ~ / .bashrc. На Мак, ви створите змінну у файлі  ~ / .MacOSX / середовище.

Відкрийте термінал і використовувати цю команду в Linux:

nano ~ / .bashrc

відчинено Стартова майданчик, клацніть Інший, і запустити термінал до запустіть цю команду в Mac OSX:

nano ~ / .bash_profile

Наступні кроки однакові для обох операційних систем.

В кінці файлу додайте цей рядок:

експортувати SSLKEYLOGFILE = ~ / .ssl-key.log

Натисніть Ctrl + X, Y щоб зберегти зміни.

Закрийте вікно терміналу та відкрийте інше, щоб встановити змінну, а потім введіть наступне, щоб підтвердити, що вона встановлена ​​успішно:

echo $ SSLKEYLOGFILE

Після виконання команди ви повинні побачити вихід, подібний до зображення вище. /Users/comparitech/.ssl-key.log – це повний шлях до мого журналу попередніх майстрів SSL. Примітка. Ви хочете зробити свою примітку, яка буде різною, щоб ввести Wireshark.

Тепер, коли змінна була встановлена, ви можете перейти до наступного набору кроків.

Запустіть свій веб-переглядач і перевірте файл журналу

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

Щоб заповнити журнал, важливо відвідати сайт, на якому ввімкнено SSL. Я використовую власний сервер Apache для тестування, але будь-який сайт буде працювати. Однією з найбільших переваг використання загального ключа, що використовується за допомогою майстра вам не потрібен доступ до сервера розшифрувати SSL.

Після того, як ви відвідали веб-сайт із підтримкою SSL, перевірте файл. В Windows, ви можете використовувати Блокнот. В Linux або Мак, використовувати таку команду:

cat ~ / .ssl-log.key

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

Налаштуйте Wireshark для розшифрування SSL

Після того, як ваш браузер записує попередні головні ключі, саме час налаштувати Wireshark для використання цих журналів для розшифрування SSL.

Відкрийте Wireshark і натисніть Редагувати, тоді Вподобання. The Вподобання відкриється діалогове вікно, а зліва ви побачите список елементів. Розгорнути Протоколи, прокрутіть вниз, а потім натисніть кнопку SSL.

У списку параметрів протоколу SSL ви побачите запис для (Попередньо) – ім’я файлу журналу Master-Secret. Перейдіть до файлу журналу, який ви створили на попередньому кроці, або просто вставте шлях.

Закінчивши налаштування (Попередньо) – ім’я файлу журналу Master-Secret, клацніть добре і повернутися до Wireshark. Ви готові рухатися далі.

Захопіть сеанс і розшифруйте SSL

Останнім кроком є ​​зйомка тестового сеансу та переконання, що Wireshark розшифровує SSL успішно.

  • Почніть нефільтроване сеанс захоплення, мінімізуйте його та відкрийте веб-переглядач.
  • Відвідайте захищений сайт, щоб генерувати дані та необов’язково встановити фільтр відображення “ssl”, щоб мінімізувати шум сеансу..
  • Клацніть на будь-якому кадрі, що містить зашифровані дані.

У моєму випадку я виберу той, який містить HTTP-трафік з кодуванням тексту / HTML, оскільки я хотів би бачити вихідний код, який веб-сервер надсилає до мого браузера. Але будь-який зашифрований трафік, який використовує секретний ключ попереднього майстра, буде працювати з цим методом. Це включає всі дані, що використовують ідеальне шифрування вперед (PFE) через Diffie-Hellman або порівнянні обміни ключами.

Вибравши зашифрований кадр, подивіться на Перегляд байтів пакетів, а конкретно вкладки під вікном перегляду. Ви повинні побачити запис для Розшифровано SSL дані, серед інших.

Ви помітите, що мій сеанс все ще виглядає так, що він повний сміття, і HTML не видно. Це тому, що мій веб-сервер (і більшість серверів Apache) за замовчуванням використовують стиснення GZIP.

Коли ви натискаєте на Нестиснене тіло сутності на вкладці, яка відображається лише в цьому випадку з увімкненою розшифровкою SSL, ви можете переглянути вихідний код сайту. Наприклад, ось титульний елемент сторінки за замовчуванням Apache у відкритому тексті.

Використання ключа RSA для розшифрування SSL

Ви, можливо, раніше помічали, що у Wireshark є поле, яке дозволяє завантажувати ключі RSA та використовувати їх для розшифрування SSL. На практиці, Розшифрування ключа RSA застаріле.

Причина, дешифрування SSL за допомогою ключа RSA більше не використовується, це Perfect Forward Encryption (PFE) зробило його застарілим. Сесії, що домовляються з Діффі-Хеллманом, не використовують ключ RSA безпосередньо; натомість вони генерують одноразовий ключ, що зберігається лише в оперативній пам’яті, який шифрується за допомогою ключа на диску.

Якщо ви раніше використовували ключ RSA для декодування трафіку, і він перестав працювати, ви можете підтвердити, що цільова машина використовує обміни Diffie-Hellman, включивши протокол SSL.

Щоб увімкнути журнал, натисніть Редагувати у меню панелі інструментів і виберіть Вподобання. Розгорніть Протоколи пункт меню зліва і прокрутіть вниз до SSL. Звідси ви можете натиснути на Огляд натисніть кнопку і встановіть розташування вашого журналу SSL.

Після встановлення місця розташування всі взаємодії SSL будуть реєструватися у вказаному файлі.

Зробіть сеанс за допомогою хоста з підтримкою SSL, а потім перевірте журнали. Зокрема, слід прокручувати, доки не знайдете кадр, про який було узгоджено рукостискання TLS. Цілком імовірно, що в рядку шифру ви побачите вказівний запис DHE.

Це означає, що обмін ключами Diffie-Hellman увімкнено. У моєму випадку Apache спеціально використовує Diffie-Hellman з еліптично-кривими клавішами, що позначається рядком ECDHE.

Прокрутіть трохи далі, і, швидше за все, ви побачите, що головного секрету неможливо знайти.

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

Оскільки PFE стає стандартною практикою, і TLSv1.3, ймовірно, змушує цю проблему, просте розшифрування ключа RSA застаріле і не повинно використовуватися.

Wireshark полегшує розшифрування трафіку SSL

Мені дуже подобається, як Wireshark обробляє розшифровку SSL. Криптографія складна, і стандарти постійно змінюються, щоб бути більш безпечними. Але як тільки Wireshark та ваше оточення налаштовані належним чином, все, що вам потрібно зробити, – це змінити вкладки для перегляду розшифрованих даних. Це не стає легшим за це.

Kim Martin Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map