Articles

TLS

Transport Layer Security (TLS) biztonságot nyújt a két gazda közötti kommunikációban. Integritást, hitelesítést és titoktartást biztosít. Leggyakrabban a webböngészőkben használják, de bármilyen protokollhoz használható, amely TCP-t használ szállítási rétegként.

A Secure Sockets Layer (SSL) a TLS protokoll elődje. Ezeket a neveket gyakran szinonimaként használják, ami némi zavart okozhat:

  • az SSL protokollt használó konfiguráció (SSLv2/SSLv3) bizonytalan. Ehelyett a TLS protokollt kell használni.

  • X. 509 a hitelesítéshez használt tanúsítványokat néha SSL-tanúsítványoknak is nevezik.

  • egyes alkalmazások (például e-mail) egyetlen portot használnak mind titkosítatlan, mind titkosított munkamenetekhez. A titkosítatlanról titkosításra történő váltáshoz (START) TLS-t használnak. Ha egyetlen port közvetlenül használja a TLS protokollt, gyakran SSL-nek nevezik.

  • történelmi okokból a szoftver (Wireshark is) SSL-re vagy SSL / TLS-re utal, miközben valójában a TLS protokollt jelenti, mivel manapság mindenki ezt használja.

Protokollfüggőség

  • TCP: A TLS általában a TCP-t használja szállítási protokollként.

TLS disszekció Wireshark

a TLS disszektor teljesen működőképes, sőt támogatja a fejlett funkciók, mint például a dekódolás TLS, ha megfelelő titkok állnak rendelkezésre (#TLS_Decryption).

a Wireshark 3.0 óta a TLS disszektort SSL-ről TLS-re nevezték át. Az ssl kijelző szűrő használata figyelmeztetést bocsát ki.

TLS dekódolás

Wireshark támogatja a TLS dekódolást, ha megfelelő titkok vannak megadva. A két elérhető módszer a következő:

  • kulcs naplófájl munkamenet-titkok használatával (#Using_the_.28Pre.29-Mester-Titok).

  • dekódolás RSA privát kulcs segítségével.

a kulcsnapló fájl egy univerzális mechanizmus, amely mindig lehetővé teszi a dekódolást, még akkor is, ha Diffie-Hellman (DH) KULCSCSERE van használatban. Az RSA privát kulcs csak korlátozott számú esetben működik.

a kulcsnapló fájl olyan alkalmazások által generált szöveges fájl, mint a Firefox, a Chrome és a curl, amikor az SSLKEYLOGFILE környezeti változó be van állítva. Pontosabban, a mögöttes könyvtár (NSS, OpenSSL vagy boringssl) írja a szükséges munkamenetenkénti titkokat egy fájlba. Ez a fájl később konfigurálható Wireshark (#Using_the_.28Pre.29-Mester-Titok).

az RSA privát kulcsfájl csak a következő körülmények között használható:

  • a kiszolgáló által kiválasztott titkosítási csomag nem használ (EC)DHE-t.
  • a protokoll verziója SSLv3, (D) TLS 1.0-1.2. Nem működik a TLS 1.3.

  • a privát kulcs megegyezik a kiszolgáló tanúsítványával. Nem működik az ügyfél tanúsítvánnyal, sem a tanúsítványkiadó hatóság (CA) tanúsítvánnyal.

  • a munkamenet nem folytatódott. A kézfogásnak tartalmaznia kell az Ügyféltkeyexchange kézfogás üzenet.

a kulcsnapló fájl általában ajánlott, mivel minden esetben működik, de folyamatos képességet igényel a titkok exportálására az ügyfél vagy a szerver alkalmazásból. Az RSA privát kulcs egyetlen előnye, hogy csak egyszer kell konfigurálni a Wireshark-ban a dekódolás engedélyezéséhez, a fenti korlátozások mellett.

Beállítások

ugrás a Szerkesztés- > Beállítások menüpontra. Nyissa meg a protokoll fát, majd válassza a TLS lehetőséget. Alternatív megoldásként válasszon ki egy TLS csomagot a csomaglistában, kattintson a jobb gombbal a TLS rétegre a csomag részletei nézetben, majd nyissa meg a Protokollbeállítások menüt.

a figyelemre méltó TLS Protokollbeállítások a következők:

  • (Pre)-Master-Secret log fájlnév (tls.keylog_file): elérési út a TLS kulcs naplófájljának dekódolásához.
  • RSA kulcsok listája: megnyit egy párbeszédpanelt az RSA privát kulcsok dekódolásához. Elavult a beállítások mellett – > RSA Keys párbeszédablak.

  • Pre-Shared-Key: a PSK cipher suites dekódolási kulcsának konfigurálására szolgál. Nem általánosan használt.
  • TLS hibakeresési fájl (tls.debug_logfile): útvonal a dekódolási folyamat belső részleteinek írásához. Tartalmazza a dekódolás eredményeit, valamint az ebben a folyamatban használt kulcsokat. Ezt fel lehet használni annak diagnosztizálására, hogy miért nem sikerül a dekódolás.

a TLS dekódolásának engedélyezéséhez a következő TCP protokollbeállításokra is szükség van:

  • engedélyezze az aldissector számára a TCP streamek összeszerelését. Alapértelmezés szerint engedélyezve.
  • szerelje vissza a rendelésen kívüli szegmenseket (mivel a Wireshark 3.0 alapértelmezés szerint le van tiltva).

kezdve Wireshark 3.0, egy új RSA kulcsok párbeszédablak található Edit – >preferenciák -> RSA kulcsok. Ebben a párbeszédpanelen használja az új kulcsfájl hozzáadása lehetőséget… gomb egy fájl kiválasztásához. Szükség esetén jelszót fog kérni. Az új token hozzáadása… gomb lehet használni, hogy adjunk kulcsokat egy HSM, amely szükség lehet az új szolgáltató hozzáadása… válasszon ki egy DLL/. so fájlt, valamint további gyártóspecifikus konfigurációt.

az RSA kulcsfájl lehet PEM formátumú privát kulcs vagy PKCS#12 keystore (általában egy fájl a-Val .pfx vagy .P12 kiterjesztés). A PKCS#12 kulcs egy bináris fájl, de a PEM formátum egy szöveges fájl, amely így néz ki:

  • -----BEGIN PRIVATE KEY-----MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDReQzlKVeAK8b5TRcRBhSi9IYwHX8Nqc8K4HeDRvN7HiBQQP3bhUkVekdoXpRLYVuc7A8h1BLr93Qw...KOi8FZl+jhG+p8vtpK5ZAIyp-----END PRIVATE KEY-----

az elavult RSA kulcsok listája párbeszédablak egy bizonyos ponton eltávolítható. A kulcsok konfigurálásához használja az RSA gombok párbeszédpanelt. A dekódolt hálózati adatok protokolljának módosításához kattintson a jobb gombbal egy TLS csomagra, majd használja a dekódolást a TLS port aktuális protokolljának megváltoztatásához. Az IP-cím és a Port mezők nem használatosak.

példa rögzítési fájl

Lásd még SampleCaptures#SSL_with_decryption_keys.

  • dump.pcapng TLSv1.2 capture 73 rejtjel lakosztályok, szüksége van erre premaster.txt fájl a forgalom visszafejtéséhez. (linked from https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9144)

  • tls12-dsb.pcapng-TLS 1.2 nyomkövetés beágyazott dekódoló kulcsokkal.
  • https://github.com/wireshark/wireshark/blob/master/test/captures – a tesztcsomag különböző TLS nyomokat tartalmaz.

display Filter

a TLS display filter mezők teljes listája megtalálható a Display filter reference

csak a TLS alapú forgalom megjelenítése:

  • tls

Capture Filter

nem lehet közvetlenül szűrni a TLS protokollokat rögzítés közben. Ha azonban ismeri a használt TCP portot (lásd fent), szűrheti azt, például a 443 tcp port használatával.

A (Pre)-Master-Secret

használatával a master secret lehetővé teszi a TLS dekódolását Wireshark-ban, és a Kulcsnaplófájlon keresztül is szállítható. A mester előtti titok a kulcscsere eredménye, amelyet a Wireshark mester titokká alakíthat át. Ez a mester előtti titok akkor szerezhető be, ha egy RSA privát kulcsot biztosítanak, és egy RSA kulcscserét használnak.

lépésről lépésre a TLS forgalom visszafejtéséhez a Chrome-ból vagy a Firefoxból a Wireshark-ban:

  1. zárja be teljesen a böngészőt (ellenőrizze a Feladatkezelőt, hogy biztos legyen benne).
  2. állítsa be az sslkeylogfile környezeti változót egy írható fájl abszolút elérési útjára.

  3. indítsa el a böngészőt.
  4. ellenőrizze, hogy a hely a 2.lépés jön létre.
  5. a Wireshark alkalmazásban lépjen a Beállítások – >protokollok- > TLS elemre, majd módosítsa a (Pre)-Master-Secret log fájlnév beállítást a 2.lépés elérési útvonalára.

  6. indítsa el a Wireshark rögzítést.
  7. nyisson meg egy weboldalt, például https://www.wireshark.org/

  8. ellenőrizze, hogy a visszafejtett adatok láthatóak-e. Például a TLS és (http vagy http2) szűrő használatával.

Windows esetén a környezeti változó globálisan beállítható az áttekintésben leírtak szerint, de ez nem ajánlott, mivel könnyű elfelejteni, és biztonsági probléma lehet, mivel lehetővé teszi az összes TLS-forgalom dekódolását. A környezeti változó beállításának jobb módja egy kötegelt fájl. Hozzon létre egy fájl start-fx.cmd:

  • @echo offset SSLKEYLOGFILE=%USERPROFILE%\Desktop\keylogfile.txtopen firefox

szükség szerint módosítsa az SSLKEYLOGFILE elérési utat, majd cserélje ki a Firefoxot a chrome-ra a Google Chrome-hoz. Ez a mechanizmus jelenleg (2019) nem működik a Safari, a Microsoft Edge és mások számára, mivel TLS könyvtáraik (Microsoft SChannel/Apple SecureTransport) nem támogatják ezt a mechanizmust. Ez a mechanizmus a webböngészőkön kívül más alkalmazásokban is működik, de az az alkalmazás által használt TLS könyvtártól függ.

példák más alkalmazásokra:

  • Az OpenSSL-t használó alkalmazások GDB vagy LD_PRELOAD trükköt használhatnak a titkok kibontásához. Ez magában foglalja a Python.

    • egy walkthrough Apache HTTP szerver segítségével ezt libsslkeylog.so könyvtár, lásd ezt a bejegyzést.

  • Java programok esetén a titkok kibonthatók a TLS hibakeresési naplóbejegyzésből, vagy közvetlenül a Wireshark formátumban történő kimenethez Java ügynök segítségével. Két hasonló projekt:
    • jSSLKeyLog:http://jsslkeylog.sourceforge.net/

    • kivonat-tls-titkok:https://github.com/neykov/extract-tls-secrets

  • p > a Python szkriptek szerkeszthetők a billentyűk kiírásához is.

a támogatott TLS alkalmazások és könyvtárak felméréséhez lásd Peter Wu SSL / TLS Decryption SharkFest ‘ 18 EU bemutatójának 19. oldalát is.

dekódolási titkok Beágyazása egy pcapng fájlba

a Wireshark 3.0 óta beágyazhatja a TLS kulcsnapló fájlt egy pcapng fájlba. Így sokkal könnyebb, terjeszteni elfog fájlok dekódoló titkai, így a váltás elfog fájlok könnyebb, mivel a TLS protokoll preferencia nem kell aktualizálni. A kulcs naplófájl-kulcsok tartalmának hozzáadásához.txt a fájl rögzítéséhez.pcap, majd írja az eredményt, hogy out-dsb.pcapng:

  • editcap –inject-secrets tls,keys.txt be.pcap out-dsb.pcapng

a dsb utótag a Decryption Secrets Block (DSB) kifejezést jelenti, amely a pcapng specifikáció része.

egy kulcsnaplófájl tartalmazhat olyan kulcsokat, amelyek nem kapcsolódnak a rögzítési fájlhoz. Annak érdekében, hogy a felesleges kulcsok ne szivárogjanak ki, használhatja az inject-tls-secrets.py https://gist.github.com/Lekensteyn/f64ba6d6d2c6229d6ec444647979ea24 parancsfájl a kulcsnapló fájl szűréséhez, valamint a szükséges titkok rögzítéséhez. A shell scriptet már tesztelték Linuxon és macOS-on, de a Python 3 verzió is elérhető minden platformon, beleértve a Windows. Példa:

  • git clone https://gist.github.com/Lekensteyn/f64ba6d6d2c6229d6ec444647979ea24 ~/its~/its/inject-tls-secrets.py keys.txt some.pcap

Lásd még:

néhány más protokoll TLS-ből származik. Ez magában foglalja:

  • a DTLS a TLS szabványon alapul, és az UDP tetején fut, mint szállítási protokoll.

  • A QUIC egy fejlesztési protokoll, amely TLS-t használ a titkosításhoz, a Wireshark állapota a https://github.com/quicwg/base-drafts/wiki/Tools#wiresharkcímen követhető.

  • https://en.wikipedia.org/wiki/Transport_Layer_Security Wikipedia cikk a TLS

  • https://sharkfesteurope.wireshark.org/assets/presentations16eu/07.pdf SharkFest’16 EU előadás Kedvéért Blok a hibaelhárítás SSL a Wireshark/Tshark (vagy nézze meg a videót az előadás a https://youtu.be/oDaDY9QCnXk)

  • https://lekensteyn.nl/files/wireshark-ssl-tls-decryption-secrets-sharkfest18eu.pdf SharkFest’18 EU prezentációja Peter Wu TLS titkosító (videó egy korábbi beszélni Ázsiában a https://youtu.be/bwJEBwgoeBg)

  • https://lekensteyn.nl/files/wireshark-tls-debugging-sharkfest19us.pdf SharkFest’19 MINKET prezentációja Peter Wu leíró TLS titkosító használja a beépített titkosító titkok (https://youtu.be/Ha4SLHceF6w).

  • hogyan működik az SSL/TLS? – Information Security Stack Exchange

  • Keyless SSL: a tetves kavicsos technikai részletek egy jó bevezetés TLS

  • PolarProxy a Netresec egy átlátszó SSL/TLS proxy létre incident responders and malware kutatók, hogy elsősorban célja, hogy elfogják és visszafejteni TLS titkosított forgalom malware. A PolarProxy visszafejti és újra titkosítja a TLS forgalmat, miközben a visszafejtett forgalmat egy PCAP fájlba menti, amely a Wireshark-ba vagy egy behatolásérzékelő rendszerbe (IDS) tölthető be.

  • CategoryHowTo

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük