TLS
Transport Layer Security (TLS) tarjoaa turvaa kahden isännän välisessä viestinnässä. Se tarjoaa eheyden, todennuksen ja luottamuksellisuuden. Sitä käytetään yleisimmin verkkoselaimissa, mutta sitä voidaan käyttää minkä tahansa protokollan kanssa, joka käyttää TCP: tä siirtokerroksena.
Secure Sockets Layer (SSL) on TLS-protokollan edeltäjä. Näitä nimiä käytetään usein vaihdellen, mikä voi aiheuttaa sekaannusta:
-
SSL-protokollaa (SSLv2 / SSLv3) käyttävä kokoonpano on epävarma. Sen sijaan tulisi käyttää TLS-protokollaa.
-
X. 509-varmenteita autentikointiin kutsutaan joskus myös SSL-Varmenteiksi.
-
Jotkin sovellukset (kuten sähköposti) käyttävät yhtä porttia sekä salaamattomissa että Salatuissa istunnoissa. Jos haluat vaihtaa salaamattomasta salattuun, käytetään (START)TLS: ää. Kun yksittäinen portti käyttää suoraan TLS-protokollaa, siitä käytetään usein nimitystä SSL.
- historiallisista syistä ohjelmisto (Wireshark mukaan luettuna) viittaa SSL: ään tai SSL / TLS: ään, vaikka se itse asiassa tarkoittaa TLS-protokollaa, koska sitä nykyään kaikki käyttävät.
Protokollariippuvuudet
-
TCP: Tyypillisesti TLS käyttää TCP: tä siirtoprotokollanaan.
TLS-dissektio wiresharkissa
TLS-dissektori on täysin toimiva ja tukee jopa edistyneitä ominaisuuksia, kuten TLS: n salauksen purkamista, jos sopivia salaisuuksia tarjotaan (#TLS_Decryption).
Wireshark 3.0: n jälkeen TLS-dissektori on nimetty uudelleen SSL: stä TLS: ksi. Ssl – näyttösuodattimen käyttö antaa varoituksen.
TLS-salauksen purku
Wireshark tukee TLS-salauksen purkua, kun asianmukaiset salaisuudet on toimitettu. Kaksi käytettävissä olevaa menetelmää ovat:
-
Avainlokitiedosto käyttäen istuntokohtaisia salaisuuksia (#Using_the_.28Pre.29-Master-Secret).
- salauksen purkaminen yksityisen RSA-avaimen avulla.
avainlokitiedosto on universaali mekanismi, joka mahdollistaa aina salauksen purkamisen, vaikka käytössä olisi Diffie-Hellman (DH) – avaimenvaihto. RSA: n yksityinen avain toimii vain rajatuissa tapauksissa.
avainlokitiedosto on tekstitiedosto, joka syntyy Firefoxin, Chromen ja Curlin kaltaisissa sovelluksissa, kun sslkeylogfile-ympäristömuuttuja asetetaan. Tarkkaan ottaen niiden taustalla oleva kirjasto (NSS, OpenSSL tai boringssl) kirjoittaa vaaditut istuntokohtaiset salaisuudet tiedostoon. Tämä tiedosto voidaan myöhemmin määrittää wiresharkissa (#Using_the_.28Pre.29-Master-Secret).
RSA: n yksityistä avaintiedostoa voidaan käyttää vain seuraavissa tilanteissa:
- palvelimen valitsema salakirjoituspaketti ei käytä (EC)DHE: tä.
-
protokollan versio on SSLv3, D)TLS 1.0-1.2. Se ei toimi TLS 1.3: n kanssa.
-
yksityinen avain vastaa palvelimen varmennetta. Se ei toimi asiakasvarmenteen eikä varmenneviranomaisen (CA) varmenteen kanssa.
-
istuntoa ei ole jatkettu. Kättelyssä tulee olla mukana asiakaskunnan Kättelyviesti.
avainlokitiedostoa suositellaan yleisesti, koska se toimii kaikissa tapauksissa, mutta vaatii jatkuvaa kykyä viedä salaisuudet joko asiakas-tai palvelinsovelluksesta. Yksityisen RSA-avaimen ainoa etu on se, että se on määritettävä vain kerran wiresharkissa, jotta salaus voidaan purkaa edellä mainittujen rajoitusten mukaisesti.
preferences Settings
Go to Edit -> Preferences. Avaa Protokollapuu ja valitse TLS. Vaihtoehtoisesti valitse TLS-paketti pakettiluettelosta, Napsauta TLS-tasoa hiiren kakkospainikkeella paketin tiedot-näkymässä ja avaa Protokollan asetukset-valikko.
merkittävät TLS-protokollan asetukset ovat:
- (Pre)-Master-salainen lokitiedostonimi (tls.keylog_file): polku TLS-avainlokitiedoston lukemiseen salauksen purkamista varten.
-
RSA-avainten luettelo: avaa ikkunan RSA-yksityisten avainten määrittämiseen salauksen purkamista varten. Vanhentunut preferenssien hyväksi – > RSA-Näppäinikkuna.
- Pre-Shared-Key: käytetään PSK cipher Suitesin salauksen purkuavaimen määrittämiseen. Ei yleisesti käytetty.
- TLS debug-tiedosto (tls.debug_logfile): polku salauksen purkuprosessin sisäisten yksityiskohtien kirjoittamiseen. Sisältää salauksen purkamisen tulokset ja tässä prosessissa käytetyt avaimet. Tämän avulla voidaan diagnosoida, miksi salauksen purku epäonnistuu.
TLS: n salauksen purkamiseen tarvitaan myös seuraavat TCP-protokollan asetukset:
- salli alisektorin koota TCP-virrat uudelleen. Oletusarvoisesti käytössä.
- kokoaa uudelleen out-of-order-segmentit (Wireshark 3.0: sta lähtien, oletuksena pois käytöstä).
alkaen wiresharkista 3.0, uusi RSA-näppäimet-ikkuna löytyy osoitteesta Edit – > Preferences -> RSA-näppäimet. Tässä ikkunassa, Käytä Lisää uusi avaintiedosto… Valitse tiedosto. Sinulta kysytään tarvittaessa salasanaa. Lisää uusi merkki… painiketta voidaan käyttää HSM: n avainten lisäämiseen, mikä saattaa vaatia Add new provider-palvelun käyttöä… valitse DLL/. so-tiedosto ja lisää toimittajakohtaisia asetuksia.
RSA-avaintiedosto voi olla joko PEM-muotoinen yksityinen avain tai PKCS#12-näppäin (tyypillisesti tiedosto, jossa on a .pfx tai .P12-laajennus). PKCS#12-avain on binääritiedosto, mutta PEM-muoto on tekstitiedosto, joka näyttää tältä:
-
-----BEGIN PRIVATE KEY-----MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDReQzlKVeAK8b5TRcRBhSi9IYwHX8Nqc8K4HeDRvN7HiBQQP3bhUkVekdoXpRLYVuc7A8h1BLr93Qw...KOi8FZl+jhG+p8vtpK5ZAIyp-----END PRIVATE KEY-----
vanhentuneen RSA-avainluettelon valintaikkuna voidaan poistaa jossain vaiheessa. Jos haluat määrittää avaimet, käytä sen sijaan RSA-näppäimet-ikkunaa. Jos haluat muuttaa salatun verkkotiedon protokollaa, napsauta hiiren kakkospainikkeella TLS-pakettia ja muuta TLS-portin nykyistä protokollaa käyttämällä Decode As-koodia. IP-osoite ja Porttikentät ovat käyttämättömät.
esimerkki capture file
Katso myös SampleCaptures#SSL_with_decryption_keys.
-
dump.pcapng TLSv1.2 capture 73 cipher suites, tarvitset tämän premaster.txt-tiedosto liikenteen salauksen purkamiseksi. (linkattu https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9144)
- tls12-dsb.pcapng-TLS 1.2 trace, johon on upotettu salauksen purkuavaimet.
-
https://github.com/wireshark/wireshark/blob/master/test/captures – testisarjassa on erilaisia TLS-jälkiä.
Näyttösuodatin
täydellinen luettelo TLS – näyttösuodatinkentistä löytyy näyttösuodatinviitteestä
Näytä vain TLS-pohjainen liikenne:
-
tls
Kaappaussuodatin
TLS-protokollia ei voi suoraan suodattaa talteen otettaessa. Jos kuitenkin tiedät käytetyn TCP-portin (KS.yllä), voit suodattaa sen esimerkiksi käyttämällä tcp-porttia 443.
käyttämällä (Pre)-Master-Secret
master secret mahdollistaa TLS-salauksen purkamisen wiresharkissa ja se voidaan toimittaa Avainlokitiedoston kautta. Mestarisalaisuus on avainten vaihdon tulos ja sen voi muuntaa Wiresharkin avulla mestarisalaisuudeksi. Tämä esi-master salaisuus voidaan saada, kun RSA yksityinen avain on annettu ja RSA avain vaihto on käytössä.
vaiheittaiset ohjeet Chromen tai Firefoxin TLS-liikenteen purkamiseksi wiresharkissa:
- sulje selain kokonaan (tarkista Tehtävienhallinta varmuuden vuoksi).
-
Aseta ympäristömuuttuja SSLKEYLOGFILE kirjoitettavan tiedoston absoluuttiselle polulle.
- käynnistä selain.
- varmista, että sijainti vaiheesta 2 on luotu.
- Aloita Wiresharkin valtaus.
-
avaa verkkosivusto, esimerkiksi https://www.wireshark.org/
-
Tarkista, että salattu tieto on näkyvissä. Esimerkiksi käyttämällä TLS ja (http tai http2) suodatin.
Wiresharkissa siirry kohtaan Preferences- >Protocols- >TLS, ja vaihda (Pre) Master-salaisen lokitiedostonimen etusija polulle vaiheesta 2.
Windowsille ympäristömuuttuja voidaan asettaa globaalisti tässä läpivalaisussa kuvatulla tavalla, mutta tätä ei suositella, koska se on helppo unohtaa ja se voi olla tietoturvaongelma, koska se mahdollistaa kaiken TLS-liikenteen salauksen purkamisen. Parempi tapa asettaa ympäristömuuttuja on kautta komentojonotiedosto. Luo tiedosto start-fx.cmd with:
-
@echo offset SSLKEYLOGFILE=%USERPROFILE%\Desktop\keylogfile.txtopen firefox
muuta sslkeylogitiedostopolkua tarpeen mukaan ja korvaa firefox Chromella Google Chromelle. Tämä mekanismi ei tällä hetkellä (2019) toimi safarille, Microsoft Edgelle ja muille, koska niiden TLS-kirjastot (Microsoft SChannel/Apple SecureTransport) eivät tue tätä mekanismia. Tämä mekanismi toimii myös muissa sovelluksissa kuin verkkoselaimissa, mutta se riippuu sovelluksen käyttämästä TLS-kirjastosta.
esimerkkejä muista sovelluksista:
-
OpenSSL: ää käyttävät sovellukset voivat käyttää GDB: tä tai LD_PRELOAD-temppua salaisuuksien purkamiseen. Tämä sisältää Python.
-
Apache HTTP-palvelimen läpivalaisuun käyttämällä tätä libsslkeylog.so kirjasto, katso tätä viestiä.
-
- Java-ohjelmissa salaisuudet voidaan purkaa TLS-debug-lokiasetuksista tai tulostaa suoraan Wiresharkin vaatimassa muodossa Java-agentin kautta. Kaksi samanlaista projektia:
-
jSSLKeyLog: http://jsslkeylog.sourceforge.net/
extract-tls-secrets:https://github.com/neykov/extract-tls-secrets
-
-
Python-skriptejä voidaan muokata myös avainten dumppaamiseksi.
tuettuja TLS-sovelluksia ja kirjastoja koskeva tutkimus on myös sivulla 19 Peter Wun teoksesta SSL / TLS Decryption SharkFest ” 18 EU presentation.
salauksen purkusalaisuuksien upottaminen pcapng-tiedostoon
koska Wireshark 3.0 voit upottaa TLS-avainlokitiedoston pcapng-tiedostoon. Tämä helpottaa huomattavasti kaappaustiedostojen jakamista salauksen purkusalaisuuksilla, ja tekee kaappaustiedostojen vaihtamisesta helpompaa, koska TLS-protokollan mieltymystä ei tarvitse päivittää. Voit lisätä sisällön avain lokitiedosto avaimet.txt kaapata tiedoston.pcap ja kirjoittaa tuloksen out-dsb.pcapng:
-
editcap –injection-secrets tls,keys.txt sisään.pcap out-dsb.pcapng
dsb-pääte tulee sanoista Decryption Secrets Block (DSB) ja on osa pcapng-määrittelyä.
avainlokitiedosto saattaa sisältää avaimia, jotka eivät liity kaappaustiedostoon. Varmistaaksesi, että tarpeettomat avaimet eivät vuoda, voit käyttää inject-tls-secrets.py skripti https://gist.github.com/Lekensteyn/f64ba6d6d2c6229d6ec444647979ea24 suodattaaksesi avainlokitiedoston ja lisätäksesi tarvittavat salaisuudet kaappaustiedostoon. Shell-skriptiä on testattu Linuxilla ja macOS: lla, mutta Python 3-versio on saatavilla myös kaikille alustoille Windows mukaan lukien. Esimerkiksi:
-
git clone https://gist.github.com/Lekensteyn/f64ba6d6d2c6229d6ec444647979ea24 ~/its~/its/inject-tls-secrets.py keys.txt some.pcap
Katso myös
eräät muut protokollat on johdettu TLS: stä. Näitä ovat:
-
DTLS perustuu TLS-standardiin ja toimii UDP: n päällä kuljetusprotokollana.
-
QUIC on kehitysvaiheessa oleva protokolla, joka käyttää salauksessaan TLS: ää, Wiresharkin tilaa voi seurata osoitteessa https://github.com/quicwg/base-drafts/wiki/Tools#wireshark.
https://en.wikipedia.org/wiki/Transport_Layer_SecurityWikipedia article for TLS
https://sharkfesteurope.wireshark.org/assets/presentations16eu/07.pdfSharkFest”16 EU-esitys sake Blokilta SSL: n vianmäärityksestä Wireshark/Tsharkilla (tai katso video esittelystä osoitteessahttps://youtu.be/oDaDY9QCnXk)
https://lekensteyn.nl/files/wireshark-ssl-tls-decryption-secrets-sharkfest18eu.pdf Haihurrikaani”18 Peter Wun esittämä EU: n esitys TLS decryptionista (video aiemmasta puheesta Aasiassa https://youtu.be/bwJEBwgoeBg)
https://lekensteyn.nl/files/wireshark-tls-debugging-sharkfest19us.pdfsharkfest’19 Peter Wun esittämä Yhdysvaltain esitys, jossa kuvataan TLS: n salauksen purkamista ja sulautetun salauksen käyttöä salaisuudet (https://youtu.be/Ha4SLHceF6w).
miten SSL / TLS toimii? – Information Security Stack Exchange
Keyless SSL: the Nitty Gritty Technical Details with a good introduction in TLS
Polarproxy from Netresec on läpinäkyvä SSL/TLS-välityspalvelin, joka on luotu tietoturvavastaajille ja haittaohjelmistojen tutkijoille ja joka on ensisijaisesti suunniteltu estämään ja purkamaan TLS-salattua liikennettä haittaohjelmilta. PolarProxy purkaa ja salaa TLS-liikenteen uudelleen ja tallentaa samalla salatun liikenteen PCAP-tiedostossa, joka voidaan ladata Wiresharkiin tai tunkeutumisen tunnistusjärjestelmään (IDS).
CategoryHowTo