Sigurnost više nije opcija, već obavezni tečaj za svakog stručnjaka za internetsku tehnologiju. HTTP, HTTPS, SSL, TLS - Razumijete li stvarno što se događa iza kulisa? U ovom ćemo članku objasniti temeljnu logiku modernih šifriranih komunikacijskih protokola na laički i profesionalan način te vam vizualnim dijagramom toka pomoći da shvatite tajne "iza brava".
Zašto je HTTP "nesiguran"? --- Uvod
Sjećate li se onog poznatog upozorenja preglednika?
"Vaša veza nije privatna."
Nakon što web stranica ne implementira HTTPS, svi korisnički podaci prenose se mrežom u običnom tekstu. Vaše lozinke za prijavu, brojevi bankovnih kartica, pa čak i privatni razgovori mogu biti ukradeni od strane dobro pozicioniranog hakera. Glavni uzrok tome je nedostatak enkripcije u HTTP-u.
Kako HTTPS i "čuvar vrata" iza njega, TLS, omogućuju sigurno putovanje podataka preko interneta? Razložimo to sloj po sloj.
HTTPS = HTTP + TLS/SSL --- Struktura i osnovni koncepti
1. Što je HTTPS u biti?
HTTPS (HyperText Transfer Protocol Secure) = HTTP + sloj šifriranja (TLS/SSL)
○ HTTP: Ovo je odgovorno za prijenos podataka, ali sadržaj je vidljiv u običnom tekstu
○ TLS/SSL: Pruža "zaključavanje enkripcije" za HTTP komunikaciju, pretvarajući podatke u zagonetku koju mogu riješiti samo legitimni pošiljatelj i primatelj.
Slika 1: HTTP u odnosu na HTTPS tok podataka.
"Lock" u adresnoj traci preglednika je sigurnosna zastavica TLS/SSL-a.
2. Kakav je odnos između TLS-a i SSL-a?
○ SSL (Secure Sockets Layer): Najraniji kriptografski protokol za koji je utvrđeno da ima ozbiljne ranjivosti.
○ TLS (Transport Layer Security): Nasljednik SSL-a, TLS 1.2 i naprednijeg TLS 1.3, koji nude značajna poboljšanja u sigurnosti i performansama.
Danas su "SSL certifikati" jednostavno implementacije TLS protokola, samo imenovane ekstenzije.
Duboko u TLS: Kriptografska magija iza HTTPS-a
1. Tijek rukovanja je potpuno riješen
Temelj sigurne TLS komunikacije je ples rukovanja prilikom postavljanja. Analizirajmo standardni TLS tijek rukovanja:
Slika 2: Tipičan tok TLS rukovanja.
1️⃣ Postavljanje TCP veze
Klijent (npr. preglednik) inicira TCP vezu s poslužiteljem (standardni port 443).
2️⃣ TLS faza rukovanja
○ Pozdrav klijenta: Preglednik šalje podržanu TLS verziju, šifru i slučajni broj zajedno s indikacijom naziva poslužitelja (SNI), koja poslužitelju govori kojem nazivu hosta želi pristupiti (omogućujući dijeljenje IP adrese na više web-mjesta).
○ Pozdrav poslužitelja i problem s certifikatom: Poslužitelj odabire odgovarajuću TLS verziju i šifru te šalje natrag svoj certifikat (s javnim ključem) i slučajne brojeve.
○ Provjera valjanosti certifikata: Preglednik provjerava lanac certifikata poslužitelja sve do pouzdanog korijenskog CA kako bi se uvjerio da nije krivotvoren.
○ Generiranje premasternog ključa: Preglednik generira premasterni ključ, šifrira ga javnim ključem poslužitelja i šalje ga poslužitelju. Dvije strane dogovaraju ključ sesije: Koristeći slučajne brojeve obje strane i premasterni ključ, klijent i poslužitelj izračunavaju isti simetrični ključ sesije za šifriranje.
○ Završetak rukovanja: Obje strane šalju jedna drugoj poruke "Završeno" i ulaze u fazu prijenosa šifriranih podataka.
3️⃣ Siguran prijenos podataka
Svi servisni podaci su simetrično šifrirani s dogovorenim ključem sesije, učinkovito, čak i ako se presretnu u sredini, to je samo hrpa "iskrivljenog koda".
4️⃣ Ponovna upotreba sesije
TLS ponovno podržava Sesiju, što može uvelike poboljšati performanse omogućujući istom klijentu da preskoči zamorno rukovanje.
Asimetrično šifriranje (kao što je RSA) je sigurno, ali sporo. Simetrično šifriranje je brzo, ali je distribucija ključeva nezgrapna. TLS koristi strategiju "u dva koraka" - prvo asimetrična sigurna razmjena ključeva, a zatim simetrična shemu za učinkovito šifriranje podataka.
2. Razvoj algoritma i poboljšanje sigurnosti
RSA i Diffie-Hellman
○ RSA
Prvi put se široko koristio tijekom TLS rukovanja za sigurnu distribuciju sesijskih ključeva. Klijent generira sesijski ključ, šifrira ga javnim ključem poslužitelja i šalje ga tako da ga samo poslužitelj može dešifrirati.
○ Diffie-Hellman (DH/ECDH)
Od verzije TLS 1.3, RSA se više ne koristi za razmjenu ključeva u korist sigurnijih DH/ECDH algoritama koji podržavaju tajnost unaprijed (PFS). Čak i ako se privatni ključ otkrije, povijesni podaci i dalje se ne mogu otključati.
TLS verzija | Algoritam razmjene ključeva | Sigurnost |
TLS 1.2 | RSA/DH/ECDH | Viši |
TLS 1.3 | samo za DH/ECDH | Više više |
Praktični savjeti koje mrežni praktičari moraju savladati
○ Prioritetna nadogradnja na TLS 1.3 za brže i sigurnije šifriranje.
○ Omogućite jake šifre (AES-GCM, ChaCha20, itd.) i onemogućite slabe algoritme i nesigurne protokole (SSLv3, TLS 1.0);
○ Konfigurirajte HSTS, OCSP Stapling itd. za poboljšanje ukupne HTTPS zaštite;
○ Redovito ažurirajte i pregledavajte lanac certifikata kako biste osigurali valjanost i integritet lanca povjerenja.
Zaključak i misli: Je li vaše poslovanje zaista sigurno?
Od običnog HTTP-a do potpuno šifriranog HTTPS-a, sigurnosni zahtjevi su se razvijali nakon svake nadogradnje protokola. Kao temelj šifrirane komunikacije u modernim mrežama, TLS se neprestano poboljšava kako bi se nosio sa sve složenijim okruženjem napada.
Koristi li vaša tvrtka već HTTPS? Je li vaša kripto konfiguracija u skladu s najboljim praksama u industriji?
Vrijeme objave: 22. srpnja 2025.