TLS Cipher Suites
Svaka TLS veza dogovara skup šifri — specifičnu kombinaciju algoritama koji se koriste za razmjenu ključeva, autentifikaciju, enkripciju i cjelovitost. Imena izgledaju kao abecedna juha (TLS_AES_256_GCM_SHA384, ECDHE-ECDSA-CHACHA20-POLY1305), ali kodiraju sigurnosna svojstva veze. Čitajući ih, pojašnjavate što se zapravo događa kada vaš preglednik pokaže lokot.
Cjeloviti članak nalazi se u nastavku na engleskom jeziku.
A TLS skup šifri je imenovana kombinacija kriptografskih algoritama koji se koriste za zaštitu TLS veze. Tijekom TLS rukovanja, klijent i poslužitelj pregovaraju koji će paket šifri koristiti na temelju onoga što svaki podržava. Odabir određuje razmjenu ključeva, autentifikaciju, enkripciju i integritet ostatka veze.
Čitanje naziva paketa šifri TLS 1.2
Format je: TLS_KEXAUTH_WITH_CIPHER_MAC ili u OpenSSL konvenciji KEX-AUTH-CIPHER-MAC.
Primjer: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 rastavlja se kao:
- ECDHE — upotreba razmjene ključeva elliptic-curve Diffie-Hellman efemerno (pruža tajnost prema naprijed)
- RSA — poslužitelj autentificira korištenjem RSA certifikata
- AES_256_GCM — skupna enkripcija koristi AES s 256-bitnim ključevima u GCM načinu (provjerena enkripcija)
- SHA384 — rukovanje MAC i KDF koriste SHA-384
TLS 1.3 pojednostavljenje
TLS 1.3 značajno je pročistio imenovanje paketa šifri. Paketi šifri sada određuju samo simetričnu šifru i hash. Razmjena ključeva i autentifikacija se dogovaraju zasebno. Imena izgledaju ovako:
TLS_AES_256_GCM_SHA384— AES-256-GCM sa SHA-384TLS_AES_128_GCM_SHA256— AES-128-GCM sa SHA-256TLS_CHACHA20_POLY1305_SHA256— ChaCha20-Poly1305 sa SHA-256TLS_AES_128_CCM_SHA256— AES-128 u CCM načinu rada sa SHA-256TLS_AES_128_CCM_8_SHA256— isto s 8-bajtnim MAC-om, uglavnom za ograničene uređaje
TLS 1.3 ima ukupno samo pet standardnih paketa šifri. TLS 1.2 je imao stotine mogućih kombinacija.
Što svaki dio znači
Razmjena ključeva:
- RSA — RSA ključ poslužitelja provjerava autentičnost i razmjenjuje ključ. Nema tajnosti unaprijed. Uklonjeno u TLS 1.3.
- DHE — efemerni Diffie-Hellman. Tajnost prema naprijed da. Koristi se u TLS 1.2; integrirano u rukovanje u TLS 1.3.
- ECDHE — efemerna eliptična krivulja Diffie-Hellman. Tajnost prema naprijed da. Brzo. Moderna zadana vrijednost.
Autentifikacija (TLS 1.2):
- RSA — poslužitelj ima RSA certifikat
- ECDSA — poslužitelj ima certifikat eliptičke krivulje
- DSS — DSA certifikat (uglavnom povijesni)
- PSK — unaprijed dijeljeni ključ (rijedak; za IoT i neke VPN scenarije)
Bulk šifra:
- AES_128_GCM, AES_256_GCM — AES-GCM sa 128 ili 256-bitni ključ, autentificirana enkripcija
- CHACHA20_POLY1305 — ChaCha20 šifra toka s Poly1305 MAC-om, moderna alternativa AES
- AES_128_CBC, AES_256_CBC — AES-CBC s odvojenim HMAC-om, stariji uzorak (polako se razvija out)
- 3DES_EDE_CBC — Trostruki DES, zastario
- RC4 — neispravna šifra toka, nema više ni u jednom modernom paketu
Hash za rukovanje:
- SHA256, SHA384 — obitelj SHA-2, moderni standard
- SHA — SHA-1, zastarjelo
- MD5 — odavno zastarjelo
Preporučeno paketi u 2026
Mozillin vodič za konfiguraciju TLS-a referenca je industrijskog standarda. Trenutačni moderni profil predlaže:
- TLS samo 1.3. Ako vaša baza klijenata to podržava (u suštini sve moderno podržava), nema TLS 1.2 zamjene.
- Cipher paketi: TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256.
- Iako mora biti podržan TLS 1.2: ECDHE+AES-GCM i ECDHE+ChaCha20 paketi samo.
Za kompatibilnost sa starijim klijentima potrebno je više paketa, uključujući neke bez prosljeđivanja tajnosti. Mozilla "srednji" profil pokriva ~95% klijenata uz održavanje razumne sigurnosti.
Što se uklanja i zašto
Moderna TLS konfiguracija uklanja:
- Neefemerna razmjena ključeva (obični RSA, statički DH). Bez tajnosti prema naprijed.
- CBC-šifre (u TLS 1.2 s ponovnim pregovaranjem). Povijest napada (BEAST, Lucky 13).
- 3DES, RC4. Kriptografski pokvaren ili presporo.
- MD5, SHA-1 za rukovanje. Napadi sudara.
- Anonimni paketi. Nema provjere autentičnosti poslužitelja, ranjiv na MITM.
- EXPORT-grade suites. Povijesni artefakt kontrola kripto izvoza; slab po dizajnu.
Napadi FREAK i Logjam u 2015. iskorištavali su preglednike koji još uvijek pregovaraju o paketima EXPORT-grade za kompatibilnost. Glavni poslužitelji su ih nakon toga uklonili; neke stranice s dugim repom još su ih imale godinama kasnije.
Provjera podrške šifre poslužitelja
Alati:
- SSL Labs Test SSL poslužitelja (ssllabs.com) — sveobuhvatna analiza TLS-a javne stranice konfiguracija.
- testssl.sh — skener naredbenog retka.
- nmap --script ssl-enum-ciphers — brzo nabrajanje.
- OpenSSL s_client s različitim oznakama za ručni testiranje.
Za vaš vlastiti poslužitelj, pokrenite ih povremeno; konfiguracije se mijenjaju tijekom vremena kako se paketi ažuriraju.
Često postavljana pitanja
- Trebam li kao korisnik brinuti o paketima šifri?
- Moderni preglednici vode pregovore. Odabrani paket šifri prikazuje se kada kliknete lokot i pregledate certifikat. Za većinu korisnika to je iza kulisa.
- Zašto TLS 1.3 ima tako malo skupova šifri?
- Stotine kombinacija TLS-a 1.2 olakšale su ranjive pogrešne konfiguracije. TLS 1.3 namjerno je smanjen na mali skup dobro razumljivih kombinacija, sve s tajnošću unaprijed i provjerenom enkripcijom.
- Koja je razlika između AES-128-GCM i AES-256-GCM?
- Duljina ključa. 128-bitni AES je brz i smatra se sigurnim na neodređeno vrijeme protiv klasičnih protivnika; 256-bitni pruža marginu protiv budućih kriptografskih napretka i protiv kvantno svjesnih protivnika. Oba su dobra za trenutnu upotrebu.
- Kada trebam koristiti ChaCha20-Poly1305 naspram AES-GCM?
- ChaCha20 je brži na hardveru bez AES-NI akceleracije (stariji mobitel, IoT). AES-GCM je brži na modernom hardveru s AES-NI. Preglednici pregovaraju što najbolje odgovara; poslužitelji bi trebali nuditi oboje.
- Utječe li paket šifri na performanse?
- Skromno. Hardverski ubrzani AES-GCM je u biti besplatan na modernim procesorima. Rukovanje (razmjena ključeva) dominira u odnosu na skupnu enkripciju za kratke veze. Za dugotrajne veze velikog volumena, skupni izbor šifre malo je važan.