A TLS (Transport Layer Security) egy titkosítási protokoll, amely biztosítja az adatok biztonságos továbbítását az interneten. Ez az elavult SSL utódja, és ma már szinte kizárólag a TLS 1.3 verzióban használják.

Mi az a TLS?

Az internet kezdeti időszakában az adatbiztonság nem volt olyan fontos, mint manapság. Az összes kommunikáció nyíltan és titkosítás nélkül történt egyik számítógépről a másikra. Ez olyan volt, mint egy képeslap: minden postás elolvashatta.

A TLS protokoll – más néven SSL/TLS – bevezette az átvitt tartalom titkosítását. Az analógiát folytatva, ez a titkosítás olyan, mint egy lezárt boríték, amelyet csak a jogos címzett nyithat meg.

A TLS rövidítés a Transport Layer Security (transzportréteg-biztonság) kifejezést jelenti. Ez a kifejezés a TCP/IP modell transzportrétegére utal. A TLS egy olyan módszer, amely titkosítja az internetes adatfolyamokat, így csak az arra jogosult címzettek olvashatják el azokat.

Megjegyzés

A titkosítási protokoll korábbi neve SSL (Secure Socket Layer) volt. Mivel ez a rövidítés még mindig ismertebb, mint a TLS, a TLS-t gyakran „SSL/TLS” kettős névvel jelölik.

Hogyan működik a TLS?

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

Ami elméletben egyszerűnek tűnik, a gyakorlatban bonyolultabb. Az alapvető probléma az, hogy a szervernek meg kell adnia a kulcsot az ügyfélnek,mielőtt a kommunikáció TLS-sel biztonságossá válik. Bárki, aki titkosított e-mail mellékleteket küld, ismeri ezt a problémát: titkosít egy fájlt, és meg kell osztania a titkos jelszót a címzettel, például telefonon.

A TLS protokoll, amelynek jelenlegi szabványa 2018 óta a 1.3-as verzió, a következő eljárással oldja meg ezt a problémát:

  1. ClientHello: Az ügyfél (pl. egy böngésző) kezdeti üzenetet küld a szervernek a támogatott titkosításokkal kapcsolatos információkkal. Ez magában foglalja a titkosítási csomagokat, a protokoll verziókat, egy véletlenszerű értéket és a saját Elliptic-Curve-Diffie-Hellman kulcscsere értékét (ECDHE érték). Opcionálisan már az első titkosított adatblokk is elküldhető.
  2. ServerHello: A szerver kiválasztja a megfelelő paramétereket, és elküldi a válaszát, beleértve az ECDHE-értéket és a digitális tanúsítványt. Ez az SSL-tanúsítvány bizonyítja, hogy a szerver hiteles, és nem adja ki magát másnak. Ezzel egyidejűleg megkezdődik a munkamenet kulcsának kiszámítása.
  3. Kulcs kiszámítása: Mindkét fél most függetlenül kiszámítja ugyanazt a munkamenet kulcsot a közösen megállapodott kulcs alapján.
  4. A szerver befejezi a kézfogást és megkezdi a titkosított kommunikációt. Az ügyfél ugyanezt teszi; a kapcsolat most már teljesen biztonságos.
Megjegyzés

A korábbi verziókhoz képest a TLS 1.3-ban a TLS kézfogás jelentősen egyszerűbb és biztonságosabb. Az itt leírt teljes folyamat most már csak egy körutat (1 RTT) igényel, ami észrevehetően felgyorsítja a kapcsolatot.

Az ok, amiért a Diffie-Hellman aszimmetrikus titkosítást csak a munkamenet kulcsának továbbítására használják (de nem maguknak az adatfolyamoknak a titkosítására), a sebesség előnye; az aszimmetrikus titkosítás viszonylag lassú, és késleltetné az adatátvitelt.

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

A TLS egy elegáns megoldás a webes forgalom biztonságosabbá tételére. Nem szükséges, hogy a két fél maga titkosítsa a tartalmat, például az űrlapadatokat. Ehelyett elegendő, ha a forgalom a TLS protokollon keresztül halad, függetlenül a résztvevők operációs rendszerétől és szoftveralkalmazásaitól. Ezután az összes adatfolyam automatikusan titkosítva lesz az átvitel során.

A biztonság ára egy kissé lassabb kapcsolatfelvétel, mivel a fent említett folyamatlépések – tanúsítvány, véletlenszerű szám, kulcscsere – számításigényesek.

A TLS felhasználási területei

Mint már említettük, a TLS univerzálisan használható, mivel független az alkalmazásoktól és az operációs rendszerektől. Ennek megfelelően számos alkalmazási protokollhoz létezik TLS-biztonságos változat. A névadási rendszer a legtöbb esetben meglehetősen egyszerű: a protokoll nevéhez az „S” betű kerül hozzáadásra, ha a protokoll TLS-en keresztül kommunikál.

A TLS legfontosabb alkalmazási területe a világháló, konkrétan a HTTP protokoll. Titkosított változata HTTPS néven ismert.

Ezek mellett a következő gyakori felhasználási eseteket érdemes megemlíteni:

  • POP3S: E-mailek letöltése a szerverről a POP3 protokoll használatával
  • IMAPS: A beérkező levelek szinkronizálása a szerverrel az IMAP protokoll segítségével
  • SMTPS: E-mailek küldése
  • FTPS: Fájlátvitel FTP protokoll segítségével
  • SIPS: Voice-over-IP telefonálás a SIP protokollon keresztül
  • IRCS: Titkosított csevegések
  • QUIC: A Google TLS 1.3-at közvetlenül integráló átviteli protokollja; a TCP alternatívája a gyorsabb és biztonságosabb webkapcsolatokhoz (pl. HTTP/3-mal)

Az OpenVPN, egy ingyenes szoftver virtuális magánhálózat (VPN) létrehozásához, szintén a TLS protokollt használja.

Főbb TLS-implementációk

A TLS legszélesebb körben használt implementációi között szerepelnek a következők:

  • OpenSSL – messze a leggyakrabban használt implementáció a legtöbb HTTPS webhelyen
  • GnuTLS (Free Software Foundation)
  • LibreSSL (OpenBSD)
  • NSS (Network Security Services)
  • BoringSSL (Google)
  • Rustls (Joe Birr-Pixton, Dirkjan Ochtman, Daniel McCarney, Josh Aas és az Open-Source közösség)
  • Botan (BSD licenc, Jack Lloyd)
  • JSSE (Java Secure Socket Extension, Oracle)
  • S2n (Amazon)

Ez a lista nem teljes. A TLS implementációkról részletes információk a Wikipédián találhatók.

Jól ismert TLS-támadások

Bár a TLS-t biztonságos kommunikációra tervezték, mégis vannak ismert gyenge pontjai. Ezek a következők:

  • Programozási hibák: A Heartbleed Bug az OpenSSL korábbi verzióiban előforduló kritikus programozási hibaként vált híressé. 2014-ben javították ki.
  • Gyenge titkosítások: Az amerikai kriptográfiai exportkorlátozások eredményeként olyan „exportminőségű” verziók kerültek kifejlesztésre, amelyek könnyebben feltörhetők voltak, mint az eredeti verziók.
  • Tömörítési támadások: Ha TLS-tömörítés helyett HTTP-tömörítést használnak, a hackerek bizonyos módszerekkel kitalálhatják a TLS-titkosítású tartalmat.
  • A BEAST támadás a TLS 1.0 verziót érintette, és már 2014-ben leírták. A jelenlegi TLS verziók biztonságosak ellene.
  • A Padding Oracle támadást 2002-ben fedezték fel, és az SSL 3.0 verzióig volt lehetséges. A jelenlegi TLS 1.3 verzió nem érintett.
  • A 2021-es ALPACA támadás megmutatja, hogyan lehet kihasználni a rosszul konfigurált szervereken található TLS-tanúsítványokat a felhasználók más szolgáltatásokra történő átirányítására, az adatok lehallgatására vagy manipulálására.

Voltak olyan kezdeményezések is, amelyek célja a teljesen biztonságos TLS titkosítás megakadályozása volt, hogy a hatóságok hozzáférhessenek a titkosított kommunikációhoz – például pénzügyi tranzakciók és bűncselekmények kapcsán. Az egyik szervezet, amely ilyen „szándékos sebezhetőséget” szorgalmazott a TLS-ben, az ETSI (Európai Távközlési Szabványügyi Intézet) volt.

Ugrás a főmenübe