Patnubay sa SSL Decryption: Paano I-decrypt ang SSL sa Wireshark

I-decrypt ang SSL kasama ang Wireshark


Kung sinubukan mo bang gamitin ang Wireshark upang masubaybayan ang trapiko sa web, malamang na tumakbo ka sa isang problema – maraming naka-encrypt. Sa katunayan, ang karamihan sa mga site ay gumagamit ng SSL o TLS encryption upang panatilihing ligtas ang kanilang mga gumagamit. Ang makatuwirang pag-encrypt ay isang mabuting bagay kung ikaw ay namimili sa Amazon, ngunit ito ay isang tunay na sakit kapag sinusubukan mong mangasiwa ng isang network. Narito kung paano ko i-decrypt ang SSL kasama ang Wireshark.

Ano ang Wireshark at SSL?

Ang Wireshark ay isang network traffic analyzer; ito ay pangunahing utility na ginagamit ng maraming mga administrador upang malutas ang mga problema sa kanilang mga network. Partikular, nakakakuha ito ng mga frame – ang mga bloke ng gusali ng mga packet – at hinahayaan kang pag-uri-uriin at suriin ang mga ito. Gamit ang Wireshark, maaari mong tingnan ang trapiko na dumadaloy sa iyong network at i-dissect ito, pagkuha ng isang silip sa loob ng mga frame sa raw data.

Ang SSL ay isang protocol ng pag-encrypt na nagpapatakbo sa layer ng Transport ng modelo ng OSI. Gumagamit ito ng iba’t ibang mga pamamaraan ng pag-encrypt upang ma-secure ang data habang gumagalaw ito sa mga network. Tandaan: Sa gabay na ito, halos tinutukoy ko ang SSL bilang isang termino ng catchall para sa SSL at TLS, ang kahalili nito.

Ginagawa ng pag-encrypt ng SSL ang paggamit ng Wireshark na mas mapaghamong dahil pinipigilan nito ang mga administrator na tingnan ang data na dala ng bawat packet. Kapag ang Wireshark ay naka-set up nang maayos, maaari itong i-decrypt ang SSL at maibalik ang iyong kakayahang tingnan ang raw data.

Gamit ang isang pre-master secret key upang i-decrypt ang SSL at TLS

Ang paggamit ng isang pre-master secret key upang i-decrypt ang SSL sa Wireshark ay ang inirekumendang pamamaraan. A pre-master secret key ay binuo ng kliyente at ginamit ng server upang makuha ang isang master key na naka-encrypt ang trapiko ng session. Ito ang kasalukuyang pamantayan sa krograpiya at karaniwang ipinatupad sa pamamagitan ng diffie-Hellman.

Ang iyong browser ay maaaring gawin upang mag-log ang pre-master secret key, na ginagamit ng Wireshark upang i-decrypt ang SSL at TLS session.

Narito ang mga hakbang upang i-decrypting ang SSL at TLS na may isang pre-master secret key:

  • Magtakda ng variable ng kapaligiran
  • Ilunsad ang iyong browser
  • I-configure ang Wireshark
  • Kunan at i-decrypt ang session

Kapag natapos ka na, magagawa mong i-decrypt ang mga sesyon ng SSL at TLS sa Wireshark nang hindi nangangailangan ng pag-access sa target na server.

Magtakda ng variable ng kapaligiran sa Windows

Sa Windows, kakailanganin mong magtakda ng isang variable ng kapaligiran gamit ang Mga setting ng advanced na system kagamitan. Ang variable na ito, pinangalanan SSLKEYLOGFILE, naglalaman ng isang landas kung saan naka-imbak ang pre-master secret key.

Magsimula sa pamamagitan ng pag-click sa kanan Aking computer, at pagpili Ari-arian mula sa menu. Ang System buksan ang menu.

Susunod, mag-click Mga setting ng advanced na system sa listahan sa kaliwa. Ang Mga katangian ng sistema bubukas ang window.

Sa Advanced tab, i-click ang Mga variable ng Kapaligiran pindutan.

I-click ang Bago … pindutan sa ilalim Mga variable ng gumagamit. Maaari ka ring lumikha ng variable sa ilalim Mga variable ng system kung nais mong mag-log ng mga susi ng SSL para sa bawat gumagamit sa system, ngunit mas gusto kong itago ito sa aking profile.

Sa ilalim Variable na pangalan, type ang sumusunod:

SSLKEYLOGFILE

Nasa Variable na halaga patlang, mag-type ng landas sa log file. Maaari mo ring i-click ang Mag-browse ng file … pindutan at tukuyin ang landas gamit ang file picker.

Bilang isang tala, kung gagawa ka nito bilang isang variable ng kapaligiran na sistema, kakailanganin mong gumamit ng naaangkop na mga wildcards o mag-imbak ng file sa isang lugar na maa-access ng lahat ng mga gumagamit. Halimbawa, maaari kang pumili % USERPROFILE% \ Data Data \ ssl-key.log o C: \ ssl-key.log.

Kapag nakatapos ka na, mag-click OK at lumipat sa susunod na hanay ng mga hakbang.

Itakda ang isang variable sa kapaligiran ng Linux o Mac

Sa Linux at Mac, kakailanganin mong itakda ang SSLKEYLOGFILE variable ng kapaligiran gamit nano. Sa Linux, ang variable ay naka-imbak sa ~ / .bashrc. Sa Mac, gagawa ka ng variable sa file  ~ / .MacOSX / kapaligiran.

Magbukas ng isang terminal at gamitin ang utos na ito sa Linux:

nano ~ / .bashrc

Buksan Launchpad, i-click Iba pa, at ilunsad ang isang terminal sa patakbuhin ang utos na ito sa Mac OSX:

nano ~ / .bash_profile

Ang mga sumusunod na hakbang ay pareho para sa parehong mga operating system.

Sa dulo ng file, idagdag ang linyang ito:

i-export ang SSLKEYLOGFILE = ~ / .ssl-key.log

Pindutin Ctrl + X, Y upang mai-save ang iyong mga pagbabago.

Isara ang window window at buksan ang isa pa upang itakda ang variable, at pagkatapos ay i-type ang sumusunod upang kumpirmahin na ito ay matagumpay na naitakda:

echo $ SSLKEYLOGFILE

Matapos mong isagawa ang utos, dapat mong makita ang output na katulad ng imahe sa itaas. /Users/comparitech/.ssl-key.log ay ang buong landas sa aking SSL pre-master key log. Tandaan: Gusto mong gumawa ng tala ng sa iyo, na kakaiba, upang ipasok sa Wireshark.

Ngayon na ang variable ay naitakda, maaari kang magpatuloy sa susunod na hanay ng mga hakbang.

Ilunsad ang iyong browser at suriin para sa log file

Bago mo ilunsad ang Wireshark at i-configure ito upang i-decrypt ang SSL gamit ang isang pre-master key, dapat mong simulan ang iyong browser at kumpirmahin na ginagamit ang log file.

Upang mai-populate ang log, mahalaga na bisitahin mo ang isang site na pinagana ang SSL. Gumagamit ako ng aking sariling server ng Apache para sa pagsubok, ngunit gagana ang anumang site. Ang isa sa mga pinakamalaking pakinabang ng paggamit ng isang pre-master shared key ay hindi mo kailangan ng pag-access sa server upang i-decrypt ang SSL.

Matapos kang bumisita sa isang website na pinagana ng SSL, suriin ang file para sa data. Sa Windows, pwede mong gamitin Notepad. Sa Linux o Mac, gamitin ang sumusunod na utos:

pusa ~ / .ssl-log.key

Sa anumang operating system, ang iyong file ay dapat magmukhang minahan sa itaas. Matapos mong makumpirma na ang iyong browser ay nag-log ng mga pre-master key sa lokasyon na iyong napili, maaari mong i-configure ang Wireshark upang magamit ang mga key na iyon upang i-decrypt ang SSL.

I-configure ang Wireshark upang i-decrypt ang SSL

Kapag nag-log ang iyong browser ng mga pre-master key, oras na upang i-configure ang Wireshark upang magamit ang mga log na iyon upang i-decrypt ang SSL.

Buksan ang Wireshark at mag-click I-edit, pagkatapos Kagustuhan. Ang Kagustuhan bukas ang diyalogo, at sa kaliwa, makikita mo ang isang listahan ng mga item. Palawakin Mga protocol, mag-scroll pababa, pagkatapos ay mag-click SSL.

Sa listahan ng mga pagpipilian para sa SSL protocol, makakakita ka ng isang entry para sa (Pre) -Master-Lihim na filename ng log. Mag-browse sa log file na iyong itinakda sa nakaraang hakbang, o i-paste lamang ang landas.

Kapag natapos mo na ang setting (Pre) -Master-Lihim na filename ng log, i-click OK at bumalik sa Wireshark. Handa ka nang magpatuloy.

Kunin ang session at i-decrypt ang SSL

Ang pangwakas na hakbang ay upang makuha ang sesyon ng pagsubok at tiyaking matagumpay na na-decort ng Wireshark ang SSL.

  • Magsimula ng isang hindi nabuong sesyon ng pagkuha, bawasan ito, at buksan ang iyong browser.
  • Bisitahin ang isang ligtas na site upang makabuo ng data, at opsyonal na magtakda ng isang filter ng display ng ‘ssl’ upang mabawasan ang ingay ng session.
  • Mag-click sa anumang frame na naglalaman ng naka-encrypt na data.

Sa aking kaso, pipiliin ko ang isa na naglalaman ng trapiko ng HTTP na may pag-encode ng teksto / HTML, dahil nais kong makita ang source code na ipinapadala ng web server sa aking browser. Ngunit ang anumang naka-encrypt na trapiko na gumagamit ng isang pre-master secret key ay gagana sa pamamaraang ito. Kasama rito ang lahat ng data na gumagamit ng Perpektong Ipasa sa Encryption (PFE) sa pamamagitan ng diffie-Hellman o maihahambing na pangunahing palitan.

Kapag napili mo ang isang naka-encrypt na frame, tingnan ang Tingnan ang packet byte, at partikular ang mga tab sa ilalim ng view. Dapat kang makakita ng isang entry para sa Nai-decot na SSL data, bukod sa iba pa.

Mapapansin mo na ang sesyon ko ay mukhang napuno pa ito ng basura, at walang nakikita ang HTML. Iyon ay dahil ang aking web server (at karamihan sa mga Apache server) ay gumagamit ng compression ng GZIP bilang default.

Kapag nag-click ka sa Hindi naka-compress na entity body tab, na nagpapakita lamang sa kasong ito sa SSL decryption, maaari mong tingnan ang source code ng site. Halimbawa, narito ang pamagat na elemento ng default na pahina ng Apache sa plaintext.

Gamit ang isang RSA key upang i-decrypt ang SSL

Maaaring napansin mo nang mas maaga na ang Wireshark ay may patlang na nagbibigay-daan sa iyo upang mai-upload ang iyong mga pindutan ng RSA at gamitin ang mga ito upang i-decrypt ang SSL. Sa pagsasagawa, Ang RSA key decryption ay tinanggal.

Ang kadahilanan sa pag-decryption ng SSL sa isang key ng RSA ay hindi karaniwang ginagamit ngayon ay ang Perfect Forward Encryption (PFE) ay hindi na nagagawa. Ang mga sesyon ay nakipagkasundo sa diffie-Hellman na huwag gamitin nang direkta ang RSA key; sa halip ay bumubuo sila ng isang beses na key, na nakaimbak lamang sa RAM, na naka-encrypt gamit ang susi sa disk.

Kung dati ka ay gumagamit ng isang RSA key upang mabasa ang trapiko, at tumigil ito sa pagtatrabaho, maaari mong kumpirmahin na ang target na makina ay gumagamit ng mga palitan ng diffie-Hellman sa pamamagitan ng pagpapagana ng SSL logging.

Upang i-on ang pag-log, i-click I-edit mula sa toolbar menu at piliin ang Kagustuhan. Palawakin ang Mga protocol menu item sa kaliwa at mag-scroll pababa sa SSL. Mula dito, maaari mong i-click ang Mag-browse pindutan at itakda ang lokasyon ng iyong SSL log.

Kapag nakatakda ang lokasyon, ang lahat ng mga pakikipag-ugnay sa SSL ay mai-log sa tinukoy na file.

Kunin ang isang sesyon sa iyong host ng SSL na pinagana, pagkatapos suriin ang mga log. Partikular, dapat kang mag-scroll hanggang sa makita mo ang frame na napagkasunduan ng handset ng TLS. Ito ay malamang na makakakita ka ng isang kwentong pagpasok sa DHE sa cipher string.

Nangangahulugan ito ay pinagana ang mga susi ng selyo ng Hellie. Sa aking kaso, ang Apache ay partikular na gumagamit ng diffie-Hellman na may mga susi ng elliptic-curve, na kung saan ay ipinapahiwatig ng string ECDHE.

Mag-scroll nang kaunti pa at malamang na makita mong hindi matatagpuan ang master secret.

Kung ganito ang hitsura ng iyong mga log, at hindi mo mai-decrypt ang trapiko gamit ang isang RSA key, wala kang pagpipilian kundi lumipat sa pre-master secret method sa itaas.

Dahil ang PFE ay nagiging pamantayang kasanayan, na may TLSv1.3 malamang na pagpilit sa isyu, ang simpleng RSA key decryption ay tinanggal at hindi dapat gamitin.

Ginagawa ng Wireshark ang pag-decrypting ng trapiko sa SSL

Gustung-gusto ko talaga ang paraan ng paghawak ni Wireshark sa SSL decryption. Ang kriptograpiya ay kumplikado, at ang mga pamantayan ay patuloy na nagbabago upang maging mas ligtas. Ngunit sa sandaling ang Wireshark at ang iyong kapaligiran ay naka-set up nang maayos, ang kailangan mo lang gawin ay ang mga pagbabago sa mga tab upang matingnan ang mga naka-decot na data. Hindi ito makakakuha ng mas madali kaysa doon.

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