Mi az a TLS (Transport Layer Security)? A protokoll magyarázata
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.
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:
- 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ő.
- 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.
- 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.
- 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.
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.