Ръководство за декриптиране на SSL: Как да декриптираме SSL с Wireshark

Дешифрирайте SSL с Wireshark

Ако някога сте опитвали да използвате Wireshark за наблюдение на трафика в мрежата, вероятно сте се сблъскали с проблем - голяма част от него е криптирана. Всъщност повечето сайтове използват SSL или TLS криптиране, за да запазят потребителите си. Повсеместното криптиране е добро нещо, ако пазарувате в Amazon, но е истинска болка, когато се опитвате да администрирате мрежа. Ето как дешифрирам SSL с Wireshark.

Какво представляват Wireshark и SSL?

Wireshark е a анализатор на мрежовия трафик; това е основна полезна програма, която много администратори използват за отстраняване на проблеми в своите мрежи. По-конкретно, той улавя рамки - градивните блокове на пакетите - и ви позволява да ги сортирате и анализирате. Използвайки Wireshark, можете да разгледате трафика, преминаващ през вашата мрежа, и да го разсечете, като надникнете в рамките на кадрите към необработените данни.

SSL е протокол за криптиране, който работи на транспортния слой на OSI модела. Той използва различни методи за криптиране, за да защити данните, докато се движи по мрежи. Забележка: В това ръководство най-вече ще имам предвид SSL като термин „catchall“ за SSL и TLS, негов приемник.

SSL криптирането прави използването на Wireshark по-предизвикателно, защото не позволява на администраторите да виждат данните, които всеки пакет носи. Когато Wireshark е настроен правилно, той може да дешифрира SSL и да възстанови способността ви да преглеждате необработените данни.

Използване на секретен ключ за предварително овладяване за декриптиране на SSL и TLS

Използването на секретен ключ за предварително овладяване за декриптиране на SSL в Wireshark е препоръчителният метод. А предварителен секретен ключ се генерира от клиента и се използва от сървъра за извличане на главен ключ, който криптира трафика на сесията. Това е настоящият стандарт в криптографията и обикновено се прилага чрез Diffie-Hellman.

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

Ето стъпките за дешифриране на SSL и TLS с секретен ключ от пред-мастър:

  • Задайте променлива среда
  • Стартирайте браузъра си
  • Конфигурирайте Wireshark
  • Заснемете и декриптирайте сесията

Когато приключите, ще можете да декриптирате SSL и TLS сесиите в Wireshark, без да се нуждаете от достъп до целевия сървър.

Задаване на променлива среда на Windows

в Windows, ще трябва да зададете променлива на средата с помощта на Разширени настройки на системата полезност. Тази променлива, наречена SSLKEYLOGFILE, съдържа път, в който се съхраняват секретните ключове на предмайстора.

Ръководство за декриптиране на SSL: Как да декриптираме SSL с Wireshark

Започнете с десния бутон на мишката върху Моя компютър, и избор Имоти от менюто. Най- Система менюто ще се отвори.

Ръководство за декриптиране на SSL: Как да декриптираме SSL с Wireshark

След това щракнете Разширени настройки на системата в списъка вляво. Най- Свойства на системата ще се отвори прозорец.

Ръководство за декриптиране на SSL: Как да декриптираме SSL с Wireshark

На напреднал щракнете върху раздела Променливи на околната среда бутон.

Ръководство за декриптиране на SSL: Как да декриптираме SSL с Wireshark

Щракнете върху New ... бутон под Потребителски променливи. Можете също да създадете променливата под Системни променливи ако искате да регистрирате SSL ключове за всеки потребител в системата, но предпочитам да го държа в профила си.

Ръководство за декриптиране на SSL: Как да декриптираме SSL с Wireshark

при Име на променлива, въведете следното:

SSLKEYLOGFILE

В Променлива стойност поле, въведете път до лог файла. Можете също да щракнете върху Преглед на файла ... бутон и посочете пътя с помощта на инструмента за избор на файлове.

Като забележка, ако създавате това като променлива среда за цялата система, ще трябва да използвате подходящи заместващи символи или да съхранявате файла на място, достъпно за всички потребители. Например, можете да изберете % USERPROFILE% \ Данни за приложения \ ssl-keys.log или C: \ SSL-keys.log.

След като приключите, щракнете Добре и преминете към следващия набор от стъпки.

Задайте променлива среда на Linux или Mac

в Linux и Mac, ще трябва да зададете SSLKEYLOGFILE използване на променлива среда нано. в Linux, променливата се съхранява в ~ / .Bashrc. На Mac, ще създадете променливата във файла  ~ / .MacOSX / среда.

Отворете терминал и използвайте тази команда в Linux:

nano ~ / .bashrc

отворено Launchpad, кликване друг, и стартира терминал до изпълнете тази команда в Mac OSX:

nano ~ / .bash_profile

Следващите стъпки са еднакви и за двете операционни системи.

В края на файла добавете този ред:

Ръководство за декриптиране на SSL: Как да декриптираме SSL с Wireshark

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

Натиснете Ctrl + X, Y за да запазите промените си.

Ръководство за декриптиране на SSL: Как да декриптираме SSL с Wireshark

Затворете прозореца на терминала и отворете друг, за да зададете променливата, след което въведете следното, за да потвърдите, че е зададена успешно:

ехо $ SSLKEYLOGFILE

Ръководство за декриптиране на SSL: Как да декриптираме SSL с Wireshark

След като изпълните командата, трябва да видите изход, подобен на изображението по-горе. /Users/comparitech/.ssl-key.log е пълният път към моя SSL журнал за предварително мастър ключ. Забележка: Ще искате да направите своя бележка, която ще бъде различна, за да въведете в Wireshark.

Сега, когато променливата е зададена, можете да преминете към следващия набор от стъпки.

Стартирайте браузъра си и проверете за лог файла

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

Ръководство за декриптиране на SSL: Как да декриптираме SSL с Wireshark

За да попълните дневника, важно е да посетите сайт с активиран SSL. Използвам моя собствен Apache сървър за тестване, но всеки сайт ще работи. Едно от най-големите предимства на използването на споделен ключ с предварително управление е нямате нужда от достъп до сървъра за декриптиране на SSL.

Ръководство за декриптиране на SSL: Как да декриптираме SSL с Wireshark

След като посетите уебсайт с активиран SSL, проверете файла за данни. в Windows, можеш да използваш Notepad. в Linux или Mac, използвайте следната команда:

cat ~ / .ssl-log.key

Във всяка операционна система файлът ви трябва да изглежда като моя по-горе. След като потвърдите, че браузърът ви регистрира пред-главни ключове в избраното от вас местоположение, можете да конфигурирате Wireshark да използва тези ключове за декриптиране на SSL.

Конфигурирайте Wireshark за декриптиране на SSL

След като браузърът ви регистрира пред-главни ключове, време е да конфигурирате Wireshark да използва тези регистрационни файлове за декриптиране на SSL.
Ръководство за декриптиране на SSL: Как да декриптираме SSL с Wireshark

Отворете Wireshark и щракнете редактиране, тогава Предпочитания. Най- Предпочитания ще се отвори диалогов прозорец, а отляво ще видите списък с елементи. Разширете протоколи, превъртете надолу, след което щракнете SSL.

Ръководство за декриптиране на SSL: Как да декриптираме SSL с Wireshark

В списъка с опции за SSL протокола ще видите запис за (Предварително) -Master-Secret лог име на файл. Прегледайте лог файла, който сте задали в предишната стъпка, или просто поставете пътя.

Когато приключите с настройката на (Предварително) -Master-Secret лог име на файл, кликване Добре и се върнете в Wireshark. Готови сте да продължите напред.

Заснемете сесията и декриптирайте SSL

Последната стъпка е да заснемете тестова сесия и да се уверите, че Wireshark дешифрира SSL успешно.

  • Започнете нефилтрирана сесия за заснемане, сведете до минимум и отворете браузъра си.
  • Посетете защитен сайт, за да генерирате данни и по желание задайте филтър за показване на „ssl“, за да сведете до минимум шума от сесията..
  • Кликнете върху всеки кадър, съдържащ криптирани данни.

В моя случай ще избера такъв, който съдържа HTTP трафик с текстово / HTML кодиране, тъй като бих искал да видя изходния код, който уеб сървърът изпраща на моя браузър. Но всеки криптиран трафик, който използва секретен ключ с предварително управление, ще работи с този метод. Това включва всички данни, използващи Perfect Forward Encryption (PFE) чрез Diffie-Hellman или сравними обмени на ключове.

Ръководство за декриптиране на SSL: Как да декриптираме SSL с Wireshark

След като изберете шифрована рамка, погледнете Пакет байт изглед, и по-специално раздели под изгледа. Трябва да видите запис за Дешифриран SSL данни, наред с други.

Ръководство за декриптиране на SSL: Как да декриптираме SSL с Wireshark

Ще забележите, че сесията ми все още изглежда, че е пълна с боклук и не се вижда HTML. Това е така, защото моят уеб сървър (и повечето Apache сървъри) използват GZIP компресия по подразбиране.

Ръководство за декриптиране на SSL: Как да декриптираме SSL с Wireshark

Когато щракнете върху Некомпресирано тяло на субекта раздела, който се показва само в този случай с активирано SSL декриптиране, можете да видите изходния код на сайта. Например, тук е заглавният елемент на страницата Apache по подразбиране в открит текст.

Използване на RSA ключ за декриптиране на SSL

Може би сте забелязали по-рано, че Wireshark има поле, което ви позволява да качите вашите RSA ключове и да ги използвате за декриптиране на SSL. На практика, Декриптирането на RSA ключ е оттеглено.

Ръководство за декриптиране на SSL: Как да декриптираме SSL с Wireshark

Причината дешифрирането на SSL с RSA ключ вече не се използва често е, че Perfect Forward Encryption (PFE) го направи остарял. Сесиите, договорени с Diffie-Hellman, не използват ключа RSA директно; вместо това те генерират еднократен ключ, съхраняван само в RAM, който е криптиран с помощта на ключа на диска.

Ако преди това сте използвали RSA ключ за декодиране на трафика и той спря да работи, можете да потвърдите, че целевата машина използва размени Diffie-Hellman, като активирате SSL регистрация.

Ръководство за декриптиране на SSL: Как да декриптираме SSL с Wireshark

За да включите регистрацията, щракнете редактиране от менюто на лентата с инструменти и изберете Предпочитания. Разширете протоколи елемент от менюто отляво и превъртете надолу към SSL. От тук можете да щракнете върху Преглед бутон и задайте местоположението на вашия SSL дневник.

След като местоположението е зададено, всички SSL взаимодействия ще бъдат регистрирани в указания файл.

Ръководство за декриптиране на SSL: Как да декриптираме SSL с Wireshark

Заснемете сесия с вашия SSL-активиран хост, след което проверете регистрационните файлове. По-конкретно, трябва да превъртате, докато намерите рамката, по която е договорено ръкостискането с TLS. Има вероятност да видите контролен DHE запис в цифровия низ.

Това означава, че е разрешен обменът на ключове Diffie-Hellman. В моя случай Apache използва специално Diffie-Hellman с елиптично-криви клавиши, което се обозначава с низа ECDHE.

Превъртете още малко и най-вероятно ще видите, че основната тайна не може да бъде намерена.

Ръководство за декриптиране на SSL: Как да декриптираме SSL с Wireshark

Ако вашите дневници изглеждат така и не можете да декриптирате трафика с помощта на RSA ключ, нямате друг избор, освен да преминете към метода за предварително магистър по-горе.

Тъй като PFE се превръща в стандартна практика и TLSv1.3 вероятно принуждава проблема, простото декриптиране на RSA ключ е оттеглено и не трябва да се използва.

Wireshark прави дешифрирането на SSL трафик лесно

Много ми харесва начинът, по който Wireshark борави с дешифрирането на SSL. Криптографията е сложна и стандартите постоянно се променят, за да бъдат по-сигурни. Но след като Wireshark и вашата среда са настроени правилно, всичко, което трябва да направите, е да промените раздели, за да видите декриптирани данни. Не става по-лесно от това.

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me

About the author

Leave a Reply

Your email address will not be published. Required fields are marked *

+ 51 = 54

Adblock
detector