A TLS tanúsítványokról
Szeptember végén történt egy olyan esemény a TLS tanúsítványokkal kapcsolatban, ami miatt a világ hangos volt egy rövid ideig (legalábbis a szoftverfejlesztőké 😊). Jelenlegi cikkünkben igyekszünk ezt érthetően leírni Önnek.
Mik azok a TLS tanúsítványok?
A TLS tanúsítvány segít abban, hogy a weboldalakat és webáruházakat biztonságosnak minősítsék a böngészőprogramok, ennek meglétét a címsorban egy zöld lakat ikonnal is jelzik. Amikor létrehozunk egy TLS tanúsítványt valamelyik domainhez, akkor mindig van egy külső szolgáltató, aki azt a tanúsítványt aláírja. Ezzel az aláírással azt hitelesíti, hogy a domain név tényleg oda mutat (arra a tárhelyre), mint amit a tanúsítvány kérelmezője (a weboldal tulajdonosa, bérlője) állít.
A háttérben annyi történik, hogy az aláíró ad egy kis, jelszót tartalmazó fájlt, ami a Kreatív website által kezelt weboldalaknál és webshopoknál is egy rövid időre felkerül a tárhelyre. Utána ők megnézik a világ különböző részein lévő adatközpontokból, hogy az a kis fájl tényleg letölthető-e a tárhelyről. Hasonlóan ahhoz, mint amikor a Google ad egy HTML címkét: azt is be kell illeszteni a weboldalba. Ha ez megtörtént, akkor már elhiszi a keresőóriás, hogy a weboldal azé, aki a tulajdonosnak vallja magát. Mert bizonyította, hogy tudja módosítani annak tartalmát.
A TLS tanúsítvány négy lényeges dolgot tartalmaz:
- Ki állította ki a tanúsítványt.
- Melyik domainre szól.
- Meddig érvényes.
- Valamint egy digitális aláírást, ami magában foglalja a fenti 3 dolgot.
Ezek után, ha érkezik egy látogató a weboldalra, akkor az általa használt böngészőprogram ellenőrizni fogja a tanúsítványt:
- Először is, az aláírást (4), hogy nem hamis-e; ez matematikai úton történik.
- Az érvényességi időt (3), ami magától értetődik.
- A domain (2) meg kell egyezzen azzal, mint a megnyitott weboldalé, ez is nyilvánvaló.
- Az utolsó lépésben ellenőrzi a tanúsítvány kiállítóját (1), és hogy az hitelesnek tekinthető-e. Ahogy nyilván előbb fogadható el hitelesnek el az, ami egy osztrák útlevélben szerepel, mint egy olyanban, amit a „Maffiózófölde” kormánya állított ki.
Honnan lehet tudni, hogy hiteles egy tanúsítvány?
Kérdés tehát az, hogy a böngészőprogram elfogadja-e hitelesnek azt a hitelesítésszolgáltatót, amelyik a tanúsítvány 1-es pontjában szerepel.
Erre két lehetősége van:
- A hitelesítésszolgáltatónak is van egy saját tanúsítványa, amit egy másik, hitelesnek tekintett szolgáltató írt alá. Ez a „tudtok-e egy jó vízvezetékszerelőt" esete: ha egy megbízható ismerősünk ajánl valakit, mint jó szakembert, akkor feltételezzük, hogy tényleg az. A hitelesség ellenőrzése ebben az esetben a kérdező -> ismerős -> vízvezetékszerelő úton történik. Ugyanígy működnek a TLS tanúsítvány láncok is: ha X aláír Y-nak, Y pedig aláír Z-nek, akkor Z hitelesnek tekinthető, amennyiben Y-nak vagy X-nek hiszünk.
- A szolgáltatót eleve ismerjük és hitelesnek fogadjuk el, akkor is, ha neki nem írta alá senki. A böngészőprogramok esetében ez úgy működik, hogy telepítéskor rengeteg tanúsítványt is hoznak magukkal, több százat. Ha az ezekben szereplő aláírással találkoznak, akkor már nem próbálnak fölfelé menni, nem keresik az eggyel magasabb szintű aláírót; egyszerűen csak elfogadják a tanúsítványt hitelesnek.
Utóbbiak az úgynevezett gyökértanúsítványok. Ez körülbelül az osztrák útlevél példája: tudjuk, hogy ki (mi) a kiállító, és tudjuk, hogy nem pénzért, vagy csak úgy adják ki az útlevelet.
Végső soron mindent ezekre a gyökértanúsítványokra vezetünk vissza. Vagy közvetlenül, ha ilyen tanúsítvánnyal találkozunk; vagy közvetve, keresve az eggyel magasabb szintű aláírót.
Mi is történt szeptember 30-án?
Ezzel kanyarodunk vissza ahhoz, hogy mi történt a fent említett napon. A Kreatív website weboldal- és webáruház készítő rendszer TLS tanúsítvány szolgáltatója a Let's Encrypt nevű alapítvány. A Let's Encrypt egy közismert tanúsítvány szolgáltató, melyet igen neves cégek támogatnak, mint például a Google is. Az alapítvány 260 millió(!) weboldal számára biztosít TLS tanúsítványokat. Ezen szolgáltatónak az Internet Security Research Group (ISRG) írt alá, tehát itt is egy láncról van szó: weboldal -> Let's Encrypt -> ISRG.
Ezek a szolgáltatók egymásnak aláírásokkal megoldották, hogy a tanúsítványaikat a nagyon öreg böngészők is elfogadják. Azok, amik már nem frissülnek, vagyis nem kapnak új gyökértanúsítványokat (a régebbi és előbb-utóbb lejárók helyett).
Az említett napon lejárt az egyik közismert gyökértanúsítvány, és így eltűnt az egyik láncszem. No persze kizárólag azoknál, akik már 10 éve nem frissítették a böngészőiket, tehát az azóta elfogadott, újabb gyökértanúsítványokat sem ismeri a gépük vagy a telefonjuk.
Ha valaki egy 10 éves böngészővel nyit meg egy ilyen weboldalt, hibaüzenet fog felugrani számára: a felhasználónak rá kell kattintania, hogy elfogadja a tanúsítványt, mert a böngésző már nem tud dönteni. Leginkább az Iphone 4 jöhet szóba, mint túl régi böngésző, mert más esetekben (régi Android operációs rendszerek, vagy éppen a Windows XP böngészőprogramok) nincs gond ezzel.
Akinek ilyen telefonja van, annak szeptember vége óta folyamatosan ugrálnak fel ezek az ablakok, mert ugyanilyen tanúsítvány van például a westend.hu-n, a volanbusz.hu-n vagy épp a cba.hu-n is, hogy csak pár ismertet említsünk. Tehát mindez nem a tárhelytől függ: minden más weboldalon ez látszik majd innentől kezdve számára.
Azonban meg kell jegyeznünk, hogy jelenleg az iPhone 13-as verziójánál tartunk, így az iPhone 4 már valóban nagyon-nagyon elavultnak számít, ha egyáltalán még működnek az ilyen a készülékek...