Mi a TLS (Transport Layer Security)?

Az internet kezdeti időszakában az olyan szempontok, mint az adatbiztonság, közel sem voltak olyan fontosak, mint manapság. Ezekben az időkben a legtöbb kommunikációt titkosítatlanul továbbították a szerverek között. A levelezőlapokhoz hasonlóan bármelyik postás képes volt elolvasni a tartalmukat.

A TLS protokoll - más néven SSL/TLS - bevezette a továbbított tartalmak titkosítását. A fenti példát folytatva ez egy lezárt borítékhoz hasonlítható, amelyet csak a címzett tud kinyitni és elolvasni.

Mi a TLS?

A TLS rövidítés a Transport Layer Security (szállítási réteg biztonság) rövidítése. Eredetileg a TCP/IP-modellekhez hasonló szállítási protokollok tetején történő futtatásra szánták. A TLS protokoll lényegében titkosítja az online vagy az eszközök közötti adatátvitelt, hogy biztosítsa, hogy azokhoz csak az engedélyezett címzettek férjenek hozzá. A protokoll elődje a jól ismert SSL (Secure Socket Layer) volt, ezért a TLS-t a félreértések elkerülése érdekében gyakran SSL/TLS néven emlegetik.

Hogyan működik a TLS?

A TLS titkosítja az interneten keresztül küldött adatokat, és általában a TCP tetején valósul meg szimmetrikus kriptográfiával.

Ami elméletben egyszerűnek hangzik, a valóságban meglehetősen bonyolult. A biztonságos átviteli folyamat részeként a kiszolgálónak meg kell osztania a hozzáférési kulcsot az ügyféllel - mielőtt bármilyen kommunikáció TLS-en keresztül biztosítva lenne. Jól ismerheti a problémát, ha rendszeresen küld titkosított e-mail mellékleteket: a melléklet titkosításával meg kell osztania a jelszót a címzettel, például telefonon keresztül.

A TLS protokoll a következő intézkedésekkel oldja meg ezt a problémát:

  1. Ha egy ügyfél, például egy webböngésző kapcsolatba lép a webkiszolgálóval, akkor kap egy tanúsítványt. Ez az SSL-tanúsítvány igazolja, hogy a feladó hiteles, és nem rejtőzik például hamis személyazonosság mögé.
  2. Az ügyfél ellenőrzi a tanúsítványt, és egy véletlenszerűen titkosított számot küld a kiszolgálónak egy nyilvános kulccsal a kiszolgálónak.
  3. A kiszolgáló ebből a nyilvános kulcsból egy munkamenetkulcsot állít elő a kommunikáció titkosításához. Mivel a nyilvános kulcs az ügyféltől származik, a kiszolgáló biztos lehet abban, hogy a munkamenetkulcs a megfelelő feladótól származik.
  4. A kiszolgáló ezután elküldi a titkosított munkamenetkulcsot az ügyfélnek. A titkosítás a Diffie Hellman kulcscsere-módszeren alapul.
  5. Most már mindkét fél képes titkosítani az adatait a munkamenetkulcs segítségével.

Az ok, amiért az aszimmetrikus titkosítást csak a munkamenetkulcshoz használják (de maguknak az adatfolyamoknak a titkosításához nem), a sebesség: az aszimmetrikus titkosítás viszonylag lassú, és késleltetné az adatkommunikációt.

A TLS előnyei és hátrányai

A TLS viszonylag elegáns megoldás a biztonságos internetes adatátvitelre, mivel nem követeli meg a felektől, hogy titkosítják a kicserélt tartalmat. Ehelyett elegendő, ha a szállítás csak a TLS protokollon keresztül történik, függetlenül az érintett felek által használt operációs rendszertől vagy szoftveralkalmazásoktól. Ezután az összes adatfolyam automatikusan titkosításra kerül az átvitel során.

A hozzáadott biztonsági réteg azonban a sebesség rovására megy, mivel az olyan folyamatok, mint a hitelesítés, valamint a nyilvános és munkamenetkulcsok generálása számításigényes.

A TLS alkalmazási területei

A TLS univerzálisan alkalmazható, mivel nem támaszkodik konkrét operációs rendszerekre vagy alkalmazásokra. Ennek megfelelően a különböző felhasználói protokollokhoz számos TLS-biztos verzió áll rendelkezésre. Az elnevezési séma egyszerű: a protokoll neve az “s” betűvel zárul, ha a protokoll TLS-en keresztül kommunikál.

A TLS legfontosabb alkalmazási területe a világháló, pontosabban a HTTP protokoll. A titkosított változatot HTTPS-nek nevezik.

További gyakori alkalmazási területek a következők:

  • POP3S: e-mailek gyűjtése a POP3 protokollt használó kiszolgálóról
  • IMAPS: szinkronizálja a postafiókot a kiszolgálóval az IMAP protokoll segítségével.
  • SMTPS: e-mailek küldése
  • FTPS: fájlátvitel FTP protokollon keresztül
  • SIPS: Voice-over-IP hívások a SIP protokollon keresztül
  • IRCS: titkosított csevegések

A TLS a gyakorlatban

A TLS legfontosabb megvalósításai alkalmazásokban a következők:

  • OpenSSL - a legtöbb HTTPS weboldal által használt legelterjedtebb implementáció.
  • GnuTLS (Free Software Foundation)
  • LibreSSL (OpenBSD)
  • NSS (hálózati biztonsági szolgáltatások)
  • BoringSSL (Google)
  • Cryptlib (Peter Gutmann)
  • Botan (BSD licenc, Jack Lloyd)
  • JSSE (Java Secure Socket Extension, Oracle)
  • S2n (Amazon)

A lista nem teljes. A TLS megvalósításával kapcsolatos további információkért a Wikipedia kiváló forrás.

Ismert TLS-támadások

A TLS azonban nem mentes a támadásoktól és az adatszivárgástól. Néhány jól ismert támadási pont és gyenge pont a következő:

  • Programozási hibák: A Heartbleed Bug az OpenSSL néhány korábbi verziójának súlyos programozási hibájáról vált híressé. Ezt 2014-ben javították ki.
  • Gyenge titkosítás: Az Egyesült Államokban a kriptográfiára vonatkozó exportkorlátozások következményeként exportálható verziókat fejlesztettek ki. Ezeket azonban könnyebb volt feltörni, mint a korábbi verziókat.
  • Tömörítési támadások: Ha a TLS tömörítés helyett HTTP tömörítést használnak, a hackerek képesek a TLS-titkosított tartalmak kitalálására speciális technikákkal.
  • A BEAST támadás a TLS 1.0-s verzióját érintette, és 2014-ben került nyilvánosságra. A jelenlegi TLS-verziók biztonságosak.
  • A Padding Oracle támadást 2002-ben fedezték fel, és az SSL 3.0 verziójáig fenyegetést jelentett. A jelenlegi TLS 1.3-as verzióját nem érinti.

Ugyanakkor voltak olyan kísérletek, amelyek a teljesen biztonságos TLS-titkosítás elkerülésére irányultak, hogy a hatóságok hozzáférhessenek a titkosított kommunikációhoz, például a pénzügyi tranzakciók csalárd tevékenységének nyomon követése érdekében. Az Európai Távközlési Szabványügyi Intézet az egyik olyan szervezet volt, amely élen járt a protokoll meghatározott töréspontjainak kialakításában.