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:
- 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é.
- 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.
- 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.
- 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.
- 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.