SSL, TLS vagy talán STARTTLS

Jelenlegi hely

SSL, TLS vagy talán STARTTLS

Egyre több a vita az interneten történő titkosított kommunikáció körül. Miközben ezek a technológiák már évek óta jelen vannak és használjuk őket, mégis sok felhasználó nincs tisztában ezen technológiák alapjaival. A mindennapi felhasználás során a két leginkább érintett terület a levelezés és a böngészés.

Mivel a böngészés során tulajdonképpen a kiszolgáló oldalról szabályozható a titkosított csatorna használata, ezért sokkal fontosabb, hogy a levelezésünk beállításaiban ezek a titkosított kommunikációt meghatározó paraméterek megfelelően legyenek beállítva. Ezek a paraméterek a sokat emlegetett SSL, TLS és STARTTLS.

Az SSL és a TLS kriptográfiai protokollok, melyek képesek olyan titkosított csatornát kialakítani a kliens számítógép és a kiszolgáló között, mely biztosítja, hogy az ott továbbított információhoz senki ne tudjon hozzáférni. A TLS az SSL utódja. Sok helyen ezt a két kifejezést felváltva használják.

A STARTTLS azonban nem protokoll. Ez egy olyan módszert jelent, mely egy titkosítatlan csatornát képes az SSL vagy TLS protokollokkal biztonságossá tenni. Tehát miután csatlakoztunk egy titkosítatlan kommunikációt biztosító szolgáltatáshoz, a STARTTLS mechanizmussal jelezhetjük neki, hogy szeretnénk ha a kommunikáció titkosított formában folytatódna tovább. Ha a szolgáltatás ezt támogatja, akkor a kliens és a szolgáltatást biztosító daemon egymás között megbeszélik, hogy az SSL vagy TLS protokollok mely verzióját fogják használni a kommunikáció során.

Az utóbbi években sok biztonsági rést találtak az SSL/TLS protokollban. Ezért fontos ezeknek a protkolloknak a verzió számozása. Azonban az SSL és a TLS protokoll számozása különböző. Mikor a TLS megjelent mint domináns titkosítási protokoll, akkor nem folytatta az SSL verziószámozását, hanem újrakezdte. Tehát ezen protokollok verzió számozása időrendi sorrenben a következő: SSL v2, SSL v3, TLS v1.0, TLS v1.1, TLS v1.2.

Mikor egy kliens program egy kiszolgálóhoz kapcsolódik, akkor a kliens és a szerver egyeztetik, hogy mely verziójú protokoll az, melyet mind a ketten támogatnak és a kommunikációt azon a verzión fogják folytatni. Jelenleg minden eszköz és kiszolgáló támogatja az SSL v3 protokollt és a legtöbb a TLS v1.0 is. A TLS v1.1 és v1.2 támogatása még nem teljesen elterjedt, de fokozatosan növekszik.

TLS vs STARTTLS elnevezési probléma

Sajnos sok email kliens TLS-ként nevezi a STARTTLS-t. A régebbi Thunderbird kliensekben a TLS beállítás azt jelentette, hogy követelje meg a kliens a STARTTLS támogatást a kiszolgálótól és ha ezt a kiszolgáló nem támogatja, akkor ne hozza létre a kapcsolatot. A "TLS ha rendelkezésre áll" beállítás pedig azt jelentette, hogy ha a kiszolgáló hirdeti a STARTTLS támogatást, akkor annak segítségével titkosítsa a kapcsolatot, egyébként pedig kapcsolódjon titkosítás nélkül. De ugyanez az elnevezési konvenció található meg az Android alapértelmezett levelező kliensében is.

Portszámok a különböző megoldásoknak

A fenti elnevezési problémát még az is bonyolítja, hogy a különböző megoldásokhoz, különböző portszámok tartoznak. A biztonság növelése érdekében a már meglévő protokollokat (IMAP, POP3) bővítették ki egy SSL/TLS titkosított réteggel. Azért, hogy ezt a megoldást megkülönböztessék a már meglévő titkosítatlan kommunikációtól új portszámokat rendeltek a titkosított verziókhoz:
  • Az IMAP a 143-as portszámot használja, de az SSL titkosított IMAP a 993-at.
  • A POP3 a 110-es portszámot használja, de az SSL titkosított POP3 a 995-öt.
  • Az SMTP a 25-ös portszámot használja, de az SSL titkosított SMTP a 465-öt.

Egy idő után nyilvánvalóvá vált, hogy alapvetően ugyanarra a protokollra két különböző portszámot fenntartani felesleges. Így megtartották az eredeti titkosítás nélküli verziót és bevezették a STARTTLS-t. A STARTTLS használata alapvetően abban áll, hogy a kommunikáció kezdetén a titkosítatlan kapcsolaton keresztül indul a folyamat és a STARTTLS parancs használatával a kliens utasíthatja a kiszolgálót a titkosított kapcsolatra való áttérésre, amennyiben a kiszolgáló azt támogatja.

Azonban a csak a titkosított verziót támogató portszámok nem szűntek meg, mivel a STARTTLS bevezetéséig már túl sok kliens programot fejlesztettek, melyek a titkosított portokon keresztül kommunikáltak.

Emiatt a helyzet még bonyolultabbá vált. Mivel a 143-as és 110-es portokon elvileg titkosítatlan kommunikáció is elfogadott volt, ezért a kliens programok felhasználói nem fordítottak figyelmet arra, hogy megfelelő titkosítási beállításokkal használják a levelező programjaikat. Ez vezetett oda, hogy a kiszolgálók üzemeltetői nagyon sok helyen megkövetelték a STARTTLS-t, hogy az bejelentkezési művelet már titkosított csatornán keresztül történjen.

Az általánosan elfogadott eljárás az lett, hogy a titkosítatlan IMAP a 143-as porton, a titkosítatlan POP3 a 110-es porton, míg az SSL/TLS titkosított IMAP a 993-as, az SSL/TLS titkosított POP3 pedig a 995-ös porton történik.

Mi a kiszolgálóinkon mind a három verziót támogatjuk.

POP3port 110nincs biztonság
IMAPport 143nincs biztonság
POP3port 110STARTTLS
IMAPport 143STARTTLS
POP3port 995SSL/TLS
IMAPport 993SSL/TLS

Az SMTP protokollal, mely az elektronikus levelek kézbesítéséért felelős, is hasonló a helyzet. Annyiban találunk különbséget, hogy az SMTP protokollt, eredetileg a levelek kiszolgálók közti kézbesítésére fejlesztették ki. Az elektronikus levelezés elterjedésével, azonban ez a megoldás probléma lett, mivel a felhasználói számítógépeken elterjedtek a spam küldő vírusok, melyek a levelező kiszolgálók 25-ös portját használva küldözgették a káros tartalmakat. Ezért az internet szolgáltatók egy idő után arra kényszerültek, hogy tiltsák a 25-ös portot a végfelhasználói végpontokon. Ekkor került bevezetésre az 587-es port (Message Submission port, RFC2476). Az 587-es porton történő email küldés ugyan nem teszi kötelezővé a STARTTLS használatát, azonban a legtöbb rendszer támogatja ezt.

Jelenleg a levelező kliensek beállításaiban vegyesen használják a felhasználók a 465/SSL és az 587/STARTTLS beállításokat. A mi kiszolgálóink biztosítják a titkosítás nélküli kommunikációt és a STARTTLS-t az 587-es porton és az SSL/TLS titkosított kommunikációt a 465-ös porton keresztül.

Most már csak annyi a teendőd, hogy leellenőrzöd, hogy megfelelő titkosítási beállítások szerepelnek-e a levelező kliensedben.

 

Stefán Tamás képe

Stefán Tamás

Tamás 2005 óta vezeti a Numex Informatikát Kozma Róberttel. 20 éves tapasztalata van informatikai területen Unix és Linux rendszerek tervezésében, üzemeltetésében, valamint webes rendszerek, weboldalak fejlesztésében. Szabadidejében szívesen utazik, ahová mindig magával viszi az öreg Canon 50D fényképezőgépét.