SSL-liikluse dekrüpteerimine Wiresharki ja tcpdumpi abil

Vaata kategooriaid

SSL-liikluse dekrüpteerimine Wiresharki ja tcpdumpi abil

9 min lugeda

Kaasaegses võrgunduses on andmeedastuse turvamine esmatähtis ning Secure Sockets Layer (SSL) ja Transport Layer Security (TLS) on andmete privaatsuse ja turvalisuse tagamiseks laialdaselt kasutatavad protokollid. Siiski on juhtumeid, kus peate võib-olla analüüsima krüptitud liiklust tõrkeotsingu, kohtuekspertiisi või võrgu jälgimise jaoks. See tehniline artikkel juhendab teid SSL/TLS-liikluse dekrüpteerimisel, kasutades kahte võimsat võrguanalüüsi tööriista Wireshark ja tcpdump. Räägime sellest, mis on Wireshark ja tcpdump, selgitame SSL-i ja TLS-i krüptimist ning näitame, kuidas dekrüpteerida SSL-liiklust, kasutades peamise-eelset salavõtit või RSA privaatvõtit.

Mis on Wireshark ja tcpdump? #

Wireshark #

Wireshark on avatud lähtekoodiga võrguprotokolli analüsaator, mis võimaldab kasutajatel arvutivõrgus toimuvat liiklust jäädvustada ja interaktiivselt sirvida. See võimaldab teil andmeid üksikasjalikult kontrollida, pakkudes edastatavate protokollide ja andmepakettide nähtavust. Wiresharki kasutatakse laialdaselt võrgu tõrkeotsinguks, protokolli arendamiseks ja turbeanalüüsiks.

tcpdump #

tcpdump on käsurea paketianalüsaatori tööriist, mis salvestab võrguliikluse ja kuvab selle reaalajas. See on väga tõhus andmete hõivamiseks reaalajas võrkudest, võimaldades teil salvestada paketid faili (tuntud kui püüdmisfail) hilisemaks analüüsiks. Kuigi tcpdumpil puudub Wiresharki graafiline liides, on see võimas kiireks analüüsiks, pakettide filtreerimiseks ja kaugsüsteemides andmete kogumiseks.

Mis on SSL-krüptimine? #

SSL (Secure Sockets Layer) on Netscape'i poolt välja töötatud protokoll privaatsete dokumentide edastamiseks Interneti kaudu. SSL kasutab krüpteerimisalgoritme tagamaks, et kliendi (nt veebibrauseri) ja serveri vahel saadetavad andmed on loetamatud kõigile, kes edastuse pealt kinni peavad.

TLS (Transport Layer Security) on SSL-i järglane ja turvalisem. Kuigi TLS erineb tehniliselt SSL-ist, kasutatakse terminit SSL sageli mõlema protokolli viitamiseks.

SSL/TLS toimib, luues kahe süsteemi vahel turvalise sidekanali. SSL/TLS-krüptimise põhimõisted hõlmavad järgmist:

  • Sümmeetriline krüptimine: andmete krüptimiseks ja dekrüpteerimiseks kasutatakse ühte võtit.
  • Asümmeetriline krüptimine: kasutatakse kahte võtit (avalikku ja privaatset); avaliku võtmega krüpteeritud andmeid saab dekrüpteerida ainult vastava privaatvõtmega.
  • Sertifikaadid: SSL/TLS kasutab sertifikaate serveri ja mõnikord ka kliendi identiteedi kontrollimiseks.
  • Käepigistus: protsess, mille käigus klient ja server loovad turvalise ühenduse, vahetavad võtmeid ja lepivad kokku krüpteerimismeetodites.

SSL-i dekrüptimine eelsalajase võtmega #

Peasalaja-eelne võti on SSL/TLS-i käepigistuse protsessis ülioluline komponent. Seda võtit kasutatakse seansivõtmete genereerimiseks, mida seejärel kasutatakse võrgu kaudu edastatavate tegelike andmete krüptimiseks. Peasalaja-eelse võtme hankimisel saate seansi andmed dekrüpteerida.

SSL-i dekrüpteerimine tcpdumpi ja wiresharki abil

Põhilised sammud SSL-i dekrüpteerimiseks peasalajase võtmega #

SSL-liikluse dekrüpteerimiseks eelsalajase võtmega toimige järgmiselt.

1. Määrake logifaili keskkonnamuutuja
2. Jäädvustage tcpdumpiga ja kontrollige logifaili
3. Konfigureerige Wireshark SSL-i dekrüpteerimiseks

Määrake logifaili keskkonnamuutuja #

Kehtestamine SSLKEYLOGFILE Windowsis #

Windowsi süsteemides peate määrama keskkonnamuutuja, et salvestada peamise-eelsed salajased võtmed logifaili. See muutuja nimega SSLKEYLOGFILE, määrab tee, kuhu need võtmed salvestatakse.

1. Alustage paremklõpsuga My Computer ja valides Kinnisvara menüüst, et avada menüü Süsteem.
2. Klõpsake Täpsem süsteemi seaded vasakpoolses loendis, et avada aken System Properties.
3. aasta edasijõudnud vahekaardil klõpsake nuppu "Keskkonnamuutujad".
4. alla Kasutaja muutujadKlõpsake Uus… nuppu. Selle muutuja saate luua ka all Süsteemi muutujad kui soovite logida SSL-võtmed kõigi süsteemi kasutajate jaoks. Siiski on tavaliselt parem hoida see oma profiiliga piiratud.
5. aasta Muutuja nimi väljal sisestage SSLKEYLOGFILE.
aasta Muutuv väärtus väljale sisestage tee, kuhu soovite logifaili salvestada. Teise võimalusena võite klõpsata Sirvi faili… tee valimiseks failivalija abil.
Kui määrate selle kogu süsteemi hõlmavaks muutujaks, veenduge, et fail oleks kõigile kasutajatele juurdepääsetav, või kasutage metamärke. Näiteks võite kasutada %USERPROFILE%\AppData\ssl-keys.log or C:\ssl-keys.log .
6. Kui olete valmis, klõpsake OK muudatuste rakendamiseks ja jätkake järgmiste sammudega.

Kehtestamine SSLKEYLOGFILE Linuxis või Macis #

Linuxis ja Macis peate määrama SSLKEYLOGFILE keskkonnamuutuja kasutamine eksport. Samas terminalis saate käivitada tcpdump ja SSL-ühenduse tuvastamisel genereerib see näidatud võtmelogifaili.

root@noid-01:~# eksport SSLKEYLOGFILE=~/.ssl-key.log root@noid-01:~# tcpdump ...

Püsiva keskkonnamuutuja konfiguratsiooni säilitamiseks muutke kasutajaprofiili tekstiredaktoriga nagu nano. Linuxi puhul on see muutuja salvestatud ~ / .bashrcja Macis on see loodud aastal ~ / .bash_profiil. Seejärel lisage eksport käsu eest SSLKEYLOGFILE muutuja faili lõpus ja salvestage muudatused.

Jäädvustage tcpdumpiga ja kontrollige logifaili #

Logifaili genereerimise testimiseks proovige avada brauser, tcpdump või käivitage HTTPS-serverisse curl käsk, et kontrollida, kas fail on õigesti loodud.

Näiteks samas terminalis, kus keskkonnamuutuja loodi, on the tcpdump liikluse hõivamiseks ja dekrüpteerimiseks käivitatakse HTTPS-teenuse lokk:

root@noid-01:~# eksport SSLKEYLOGFILE=~/.ssl-key.log root@noid-01:~# tcpdump -i mis tahes port 443 -w ~/capture.pcap & root@noid-01:~# curl https://
(Seejärel sulgege käsk tcpdump)

Veenduge, et logifail ~/.ssl-key.log ja liikluse püüdmine kl ~/capture.pcap tekivad. Lõpuks vaadake viimast sammu, et näha Wiresharkiga krüptitud liiklust.

Kui avate ssl-key.log faili, näete midagi sellist:

root@noid-01:~# cat ~/.ssl-key.log
CLIENT_HANDSHAKE_TRAFFIC_SECRET 83ac6b24496f208daee39dfdfcbd36b7c428245af5e3775e42099dbd48741d4a db6f3d27b40b7c8e10ed415281b39e45ca6ef2b59468f943dbe6e81e1f82e0f0
SERVER_HANDSHAKE_TRAFFIC_SECRET 83ac6b24496f208daee39dfdfcbd36b7c428245af5e3775e42099dbd48741d4a d819660e194d9439e7152ceac2a439b41584afbeb5d719663cecb3c63b5c2eb1
CLIENT_TRAFFIC_SECRET_0 83ac6b24496f208daee39dfdfcbd36b7c428245af5e3775e42099dbd48741d4a 71d4806141cb1b247c1d1f3f7747a804fcc5e06c4192d8f53fc763a27b92316c
SERVER_TRAFFIC_SECRET_0 83ac6b24496f208daee39dfdfcbd36b7c428245af5e3775e42099dbd48741d4a 2ca17b0f7ff708fb3001be17a1c85163219221a4595462415e9e9e6653daf1fa
EXPORTER_SECRET 83ac6b24496f208daee39dfdfcbd36b7c428245af5e3775e42099dbd48741d4a 3f74b0cbe802d3e3dd3b5f6dee4114f928ec936a0cd388643d146cfb606f62a4

Konfigureerige Wireshark SSL-i dekrüpteerimiseks #

Kui püüdmissüsteem logib eelpõhivõtmeid, saate kasutada võtme logifaili koos hõivatud pakettidega SSL-liikluse dekrüpteerimiseks Wiresharkis.

1. Laadige võtmelogi üles ja jäädvustage failid süsteemi, kuhu Wireshark on installitud.
2. Avage Wiresharkiga liiklushõivefail.
3. Konfigureerige SSL-protokoll. Klõpsake edasi Edit, Seejärel valige eelistused. Avaneb eelistuste dialoog, mis näitab vasakul olevate üksuste loendit. Laiendage protokollid kerige alla ja klõpsake nuppu SSL. Aasta SSL protokolli suvandid, leidke sildiga väli (Eel)-Master-Secret logi failinimi. Sirvige varem seadistatud logifaili või kleepige tee otse sellele väljale.
4. Rakendage konfiguratsioon. Pärast seadistamist (Eel)-Master-Secret logi failinimiklõps OK muudatuste salvestamiseks ja Wiresharki naasmiseks. Nüüd olete valmis salvestatud liiklust dekrüpteerima. Kui valite krüptitud andmeraami, kontrollige pakettbaitide vaadet. Vaate all peaksite nägema vahekaarti Dekrüpteeritud SSL-andmed teiste hulgas.

Kui seansi andmed näivad endiselt loetamatud ja te ei näe HTML-i, võib selle põhjuseks olla GZIP-i tihendamine, mida tavaliselt kasutavad veebiserverid, nagu Apache. Sel juhul klõpsake nuppu Tihendamata olemi keha vahekaart, mis on saadaval ainult siis, kui SSL-i dekrüpteerimine on lubatud. Siin saate vaadata saidi tihendamata lähtekoodi, näiteks vaikimisi Apache lehe pealkirja elementi lihttekstina.

RSA-võtme kasutamine SSL-i dekrüpteerimiseks #

Wireshark pakub funktsiooni, mis võimaldab SSL-liikluse dekrüpteerimiseks oma RSA võtmeid üles laadida, kuid praktikas on RSA võtme dekrüpteerimine aegunud.

See kasutuse vähenemine on tingitud Perfect Forward Secrecy (PFS) kasutuselevõtust, mis on muutnud traditsioonilise RSA võtme dekrüpteerimise aegunuks. PFS-i puhul ei sõltu Diffie-Hellmani abil kokku lepitud seansid otseselt RSA-võtmest. Selle asemel genereerivad nad ühekordse võtme, mis salvestatakse ainult RAM-i ja krüpteeritakse kettal oleva võtmega.

Kui kasutasite varem liikluse dekrüpteerimiseks RSA-võtit ja avastasite, et see enam ei tööta, kasutab sihtmasin tõenäoliselt Diffie-Hellmani võtmevahetusi. Saate seda kinnitada, lubades Wiresharkis SSL-i logimise.

Logimise lubamiseks tehke järgmist.

1. Klõpsake Edit tööriistariba menüüs ja valige eelistused.
2. Laienda protokollid vasakul asuvat jaotist, kerige alla ja klõpsake nuppu SSL.
3. Määrake oma SSL-logifaili asukoht, klõpsates nuppu Sirvi nuppu.

Kui logimine on lubatud, jäädvustage seanss oma SSL-toega hostiga ja kontrollige logisid. Otsige üles TLS-i käepigistuse läbirääkimisraam; tõenäoliselt näete šifri stringis DHE (eliptilise kõvera võtmete puhul ECDHE) kirjet, mis näitab, et kasutusel on Diffie-Hellmani võtmevahetused.

Kui näete teadet, mis näitab, et põhisaladust ei leitud, ja RSA-võtme dekrüpteerimine ebaõnnestub, peate dekrüpteerimiseks lülituma põhisaladuse-eelsele meetodile.

Kuna PFS muutub laiemaks, eriti TLS 1.3 tulekuga, on traditsiooniline RSA võtme dekrüptimine aegunud ja sellele ei tohiks enam loota.

Teadke rohkem #

SSLKEYLOGFILE-vorming TLS-i jaoks #

. SSLKEYLOGFILE vorming on tekstifail, mida kasutatakse eelsalajaste võtmete salvestamiseks TLS-ühenduste dekrüpteerimiseks. Fail on kodeeritud UTF-8-ga, kusjuures iga rida sisaldab sildiga identifitseeritud saladust, kliendi juhuslikku väärtust ja saladust ennast, mis on kõik tühikutega eraldatud. Vorming aktsepteerib erinevaid realõpusid (CRLF, CR, LF) ja ridu, mis algavad tähega # käsitletakse kommentaaridena.

TLS 1.3 puhul vastavad mitmed sildid võtmegraafiku erinevatele etappidele, nt CLIENT_HANDSHAKE_TRAFFIC_SECRET ja SERVER_TRAFFIC_SECRET_0. TLS 1.2 ja varasemate versioonide puhul CLIENT_RANDOM silt identifitseerib meister saladus.

Turvakaalutlused:
Ligipääs SSLKEYLOGFILE võimaldab TLS-liikluse dekrüpteerimist, mis kujutab endast olulist turvariski. Korralikud juurdepääsukontrollid on olulised, et vältida volitamata juurdepääsu või õiguste eskaleerumist. Logimist peaksid lubama ainult volitatud kasutajad ja failidele tuleks rakendada rangeid õigusi. Logitud saladused ei võimalda mitte ainult dekrüpteerimist, vaid võimaldavad ka ründajatel muuta või aktiivsetesse ühendustesse andmeid sisestada ning mõnel juhul esineda lõpp-punktina või võltsida sõnumeid.

Kuidas kahesuunaline SSL-käepigistus töötab? #

Kahesuunaline SSL-käepigistus autentib nii serveri kui ka kliendi. Protsess toimub järgmiselt:

1. Klient Tere: klient algatab käepigistuse, saates serverile sõnumi „Klient Tere”. See teade sisaldab kliendi toetatud šifrikomplekte ja TLS-i versiooni ühilduvust.
2. Server Tere: Server vastab sõnumiga "Server Tere", mis sisaldab serveri avalikku sertifikaati ja kliendi sertifikaadi taotlust.
3. Kliendi sertifikaadi kinnitamine: klient kontrollib serveri sertifikaati. Kui see on kehtiv, saadab klient oma sertifikaadi serverisse tagasi.
4. Serveri sertifikaadi kinnitamine: server kontrollib kliendi sertifikaati. Kui kliendi sertifikaat on kehtiv, jätkub seansi loomine, võimaldades mõlema poole vahel turvalist suhtlust.

Kas passiivselt nuusutatud SSL/TLS-liiklust on võimalik dekrüpteerida? #

Jah, passiivselt nuuskitud SSL/TLS-liiklust on võimalik dekrüpteerida, kuid selleks on vaja RSA-võtit. Seda võtit saab hankida legitiimsete vahenditega ja nõuetekohase volitusega või, vähem eetiliselt, püüdes see kinni, kasutades rünnakut "mees keskel".

📄 Laadige see dokument alla PDF-vormingus #

    EMAIL: *

    Linuxi poolt BetterDocs