Hogyan működik a HTTPS és a TLS?
Mi történik a böngésző és a szerver között, mielőtt megjelenik a lakat? Tanúsítvány, TLS handshake, kulcsegyeztetés és titkosított adatforgalom lépésről lépésre.
Röviden
A HTTPS HTTP TLS-en keresztül. A TLS a kapcsolat elején hitelesíti a szervert tanúsítvány segítségével, biztonságosan munkamenetkulcsokat hoz létre, majd ezekkel titkosítja és integritásvédi a böngésző és a szerver közti adatforgalmat.
HTTPS = HTTP egy TLS-csatornában
A HTTPS nem külön HTTP-nyelv, hanem HTTP-forgalom TLS által védett kapcsolaton. A TLS feladata, hogy a hálózati köztes szereplők ne tudják egyszerűen elolvasni vagy észrevétlenül módosítani a forgalmat, és a böngésző ellenőrizhesse a szerver identitását.
Léptesd végig a TLS 1.3 kapcsolat felépítését
ClientHello
Támogatott TLS-paraméterek és kulcsegyeztetési adat.
Mi történik a TLS handshake alatt?
A kliens elküldi a támogatott paramétereket és kulcsegyeztetéshez szükséges adatokat. A szerver kiválasztja a paramétereket, elküldi tanúsítványláncát és bizonyítja a megfelelő privát kulcs birtoklását. A felek a kulcsegyeztetés eredményéből munkamenetkulcsokat származtatnak.
TLS 1.3-ban a folyamatot úgy tervezték, hogy gyorsabb és kevesebb örökölt, kockázatos opciót tartalmazzon, mint a korábbi verziók.
Mit ellenőriz a böngésző a tanúsítványon?
Többek között azt, hogy a tanúsítvány érvényes-e, a kért domainhez tartozik-e, megfelelő megbízható láncon keresztül egy ismert gyökérhez vezet-e, és az aláírások ellenőrizhetők-e. A CA-rendszer nem azt bizonyítja, hogy az oldal „jóindulatú”, hanem azt, hogy a tanúsítványban szereplő identitáshoz a megfelelő kulcsot hitelesítették a vonatkozó szabályok szerint.
Mit rejt el és mit nem feltétlenül?
A TLS a HTTP tartalmát, URL pathokat, fejléceket és bodyt védi a kapcsolatban. Bizonyos hálózati metaadatok – például IP-címek, forgalmi minták és egyes névfeloldási információk – külön technológiák nélkül továbbra is megfigyelhetők lehetnek. Emiatt a „HTTPS mindent elrejt” állítás túlzás.
Mit kell ebből webfejlesztőként megjegyezni?
- Mindig HTTPS-t használj éles környezetben.
- Automatizáld a tanúsítvány megújítását.
- Ne engedj mixed contentet.
- Használj modern TLS-konfigurációt és biztonságos cookie attribútumokat.
- A kliensoldali alkalmazásba ne tegyél szerveroldali titkot.
A HTTPS szükséges alapréteg, de önmagában nem tesz biztonságossá egy hibás authentikációt, XSS-sebezhető frontendet vagy rosszul konfigurált jogosultságkezelést.
Gyakori kérdések
A HTTPS azt jelenti, hogy az oldal megbízható?
Nem. A HTTPS azt mutatja, hogy a kapcsolat TLS-sel védett, és a böngésző hitelesíteni tudta a szerver tanúsítványát. Egy káros oldal is használhat érvényes HTTPS-t.
A szolgáltatóm látja, milyen konkrét oldalt nyitok meg HTTPS-en?
A teljes URL path és a HTTP tartalom TLS alatt titkosított. Hálózati metaadatokból ugyanakkor következtetések lehetségesek, és a névfeloldás módja is számít.
Források és szabványok
Biztonsági témánál az elsődleges szabvány és a karbantartott szakmai útmutató fontosabb, mint egy véletlen implementációs példa. Az alábbi forrásokból érdemes továbbmenni.
Kapcsolódó ByBence