TLS kézfogás titkai: miért sokkal fontosabb a biztonsági alapod, mint gondolnád?
TLS Handshake kibontva: Miért alapozd meg jól a biztonságot?
Amikor beírsz egy címet a böngészőbe, nem csak oldal töltődik be. Először egy gyors, titkos beszélgetés zajlik le a böngésződ és a szerver között. Ez a TLS handshake, ami milliszekundumok alatt eldönti, mennyire védett az egész kapcsolat. Ritkán gondolunk rá, pedig ez tartja biztonságban az adataidat.
Nálunk a NameOcean-nél úgy véljük, minden fejlesztőnek és rendszergazdának értenie kell ehhez. Nemcsak szakmailag okosabb leszel tőle, de egy elrontott TLS-beállítás bajba sodorhatja a felhasználóidat – és drága compliance-problémákat okozhat.
Hogyan zajlik le pontosan a handshake?
Egyszerűen: a böngésző szól a szervernek: "Biztonságosan dumáljunk, ezek a protokollok és titkosítások mennek nálam." A szerver visszaír: "Rendben, TLS 1.3-at használunk ezzel a cipher suittel, itt a certem, hogy megbízhatsz bennem."
A TLS 1.3 zseniális, mert egy körben megvan az egész. A régi TLS 1.2-nek kettő kell. Mindkettő villámgyors, de ahol minden milliszekundum számít, a 1.3 nyerő.
Emellett létrejönnek egyszeri kulcsok a sessionre, amik után eltűnnek. Ez a forward secrecy: ha holnap feltörik a privát kulcsodat, a mai beszélgetéseket nem tudják visszafejteni.
Verziócsata: TLS 1.2 már kevés, 1.3 a király
Sok helyen még mindig fut TLS 1.0 vagy 1.1 – óriási lyukak ezek, BEAST és POODLE támadásokkal. Minden böngésző kidobta őket, PCI DSS, HIPAA, SOC 2 pedig tiltja.
Régi rendszerekben mégis élnek. Ha nálad beengedik, nem csak hackert kockáztatsz, hanem auditot buksz.
Mit javaslunk? TLS 1.2 erős cipher suite-tel minimum, TLS 1.3 az ideális. A 1.3-ban nincs gyenge opcó, szinte lehetetlen elszúrni.
Cipher suite-ek: Válassz erős titkosítást!
A verzió után jön a titkosítás módja, a cipher suite. Itt sokan megbotlanak.
TLS 1.3-ban fix, mind jó – szándékosan így van.
TLS 1.2-ben figyelj:
- Key exchange: ECDHE, mert forward secrecy-t ad. RSA ne!
- Encryption: AES-GCM vagy ChaCha20. Kerüld a CBC-t (padding oracle), RC4, DES, 3DES-t.
- Hash: SHA-256 vagy 384. Gyengébbet ne.
Nginx-ben így néz ki egy jó config:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
Apache-ben SSLProtocol és SSLCipherSuite-t állítsd be hasonlóan. Legyél pontos, óvatos, modern.
Cert lánc: A csendes gyilkos
Gyakori hiba: oldal oké Chrome-ban, de mobil appokban vagy API-kban bedől. Miért? Hiányos cert chain.
A cert nem csak a te leveled – láncot kell a root CA-ig. Ha csak a leveledet küldöd, böngészők kiszedik a többit, de régebbi kliensek elbuknak.
Megoldás: Töltsd le az intermediate cert-eket a CA-tól, és küldd ki az egészet. Pár sor a configban, de élesben kötelező.
Compliance és bizalom TLS-sel
Compliance nem ellenség, csak minimum. Ha TLS 1.0 miatt megbuksz PCI DSS-en vagy HIPAA-n, bírság és hitelvesztés jön.
Forward secrecy, erős suite-ek, friss verziók – ezek alapkövetelmények.
Mikor ellenőrizd a TLS-t?
Minden változtatás után, aztán havonta. Frissítés, cert megújítás, config-változtatás – ezek visszaállíthatnak mindent. Automatizáld, ha tudod, hogy ne legyen meglepi.
Sokan egyszer beállítják és elfelejtik. Te ne tedd!
TLS felett: A teljes kép
Jó TLS az alap, de jönnek a security header-ek: HSTS, CSP, X-Frame-Options. Teljes stratégia kell: auth, API-védelem, infrastruktúra.
Weboldalad vagy API-dat? Rendszeres audit az egész stackre.
Összefoglalva
A TLS handshake sima és láthatatlan – ahogy a jó rendszereknek kell lenniük. Értsd meg, tartsd naprakészen, auditáld rendszeresen. Így felhasználóid biztonságban, compliance-osok nyugodtan alszanak.
A NameOcean-nél eszközöket építettünk TLS ellenőrzésre, hibakeresésre, monitorozásra. A biztonság ne legyen rejtély!