TLS protokolo versijų analizė ir jų reikšmė
Saugus ryšys internete remiasi Transport Layer Security (TLS) protokolu, kuris bėgant metams evoliucionavo siekiant pašalinti kriptografines spragas. Šis įrankis leidžia identifikuoti pateiktame tekste esančias protokolo versijas ir įvertinti jų saugumo būseną. Atliekant TLS nuskaitymą arba analizuojant rankos paspaudimo (angl. handshake) duomenis, nustatoma, kokia protokolo versija yra naudojama ryšiui užmegzti.
Kiekviena TLS versija turi skirtingą saugumo lygį:
- TLS 1.3: Šiuolaikinis standartas, kuris iš esmės supaprastino rankos paspaudimo procesą ir pašalino pasenusius bei nesaugius kriptografinius algoritmus.
- TLS 1.2: Vis dar plačiai naudojama versija, tačiau jos saugumas priklauso nuo konkrečių sukonfigūruotų šifravimo rinkinių.
- TLS 1.1 ir TLS 1.0: Šios versijos yra pasenusios, turi žinomų saugumo spragų ir neturėtų būti naudojamos gamybinėse aplinkose.
Analizuojant tekstą, įrankis priskiria aptiktoms protokolo versijoms tam tikrus vaidmenis, kurie padeda suprasti, kaip parametrai buvo užfiksuoti. Šie vaidmenys apima:
- Deramasi: nurodo protokolą, dėl kurio klientas ir serveris sėkmingai susitarė seanso metu.
- Siūloma: nurodo versijas, kurias klientas pateikė savo pradiniame sąraše.
- Stebėtas: nurodo parametrus, kurie buvo užfiksuoti srauto analizės metu.
Jei pateiktame tekste nepavyksta rasti jokių protokolo požymių, sistema pateikia pranešimą: „Pateiktame tekste protokolo versija nerasta.“.
TLS šifravimo rinkinių struktūra ir komponentai
TLS šifravimo rinkinys (angl. cipher suite) yra algoritmu rinkinys, apibrėžiantis, kaip bus apsaugotas ryšys. Tradiciniame TLS 1.2 ir senesnių versijų šifravimo rinkinio pavadinime (pavyzdžiui, IANA standarto pavadinime) galima išskirti keturis pagrindinius komponentus:
- Raktų keitimo algoritmas: nurodo, kaip klientas ir serveris susitaria dėl bendro seanso rakto (pvz., ECDHE, RSA).
- Autentifikavimo / parašo algoritmas: nurodo, kaip patvirtinama serverio tapatybė (pvz., RSA, ECDSA).
- Simetrinio šifravimo algoritmas: naudojamas pačių duomenų perdavimo konfidencialumui užtikrinti (pvz., AES-GCM, CHACHA20-POLY1305).
- Maišos funkcija (HMAC): naudojama pranešimų vientisumui tikrinti ir pseudonatsitiktinių funkcijų generavimui (pvz., SHA256).
Įrankis atpažįsta įvairius šių rinkinių užrašymo būdus, įskaitant oficialius IANA pavadinimus, OpenSSL slapyvardžius bei šešioliktainius (hex) identifikatorius. Jei įvestame tekste nerandama jokių atpažįstamų šifrų, rodomas pranešimas: „Pateiktame tekste šifro rinkinio nerasta.“. Jei įvestas rinkinys neegzistuoja vidinėje duomenų bazėje, taikomas radinys: „Šio rinkinio nėra integruotame bendrojo komplekto žemėlapyje. Patikrinkite esamą IANA registro arba skaitytuvo dokumentaciją.“.
Raktų keitimas ir autentifikavimas TLS 1.3 protokole
TLS 1.3 versija iš esmės pakeitė šifravimo rinkinių struktūrą. Šioje versijoje raktų keitimo ir autentifikavimo mechanizmai yra visiškai atskirti nuo simetrinio šifravimo rinkinio. Todėl TLS 1.3 šifravimo rinkinių pavadinimai (pavyzdžiui, TLS_AES_256_GCM_SHA384) apibrėžia tik simetrinį šifravimą ir maišos algoritmą.
Dėl šios priežasties įrankis taiko specialią taisyklę TLS 1.3 rinkiniams:
- TLS 1.3 derasi dėl keitimosi raktais ir autentifikavimo atskirai nuo šifravimo rinkinio.
Tai reiškia, kad vien iš šifravimo rinkinio pavadinimo neįmanoma nustatyti, koks raktų keitimo metodas (pvz., x25519 ar secp256r1) buvo panaudotas rankos paspaudimo metu. Šie parametrai yra derinami atskirai, naudojant TLS plėtinius.
Pasenę ir nesaugūs kriptografiniai algoritmai
Saugumo analizės metu įrankis vertina kiekvieną šifravimo rinkinį ir priskiria jam vieną iš keturių įvertinimų: Modernus, Apžvalga, Nebenaudojama arba Nežinoma. Žemiau pateikiamoje lentelėje apibendrinami kritiniai radiniai, susiję su pasenusiais arba nesaugiais algoritmais, kuriuos įrankis gali aptikti pateiktoje santraukoje:
| Algoritmas / Rinkinio tipas | Saugumo radinys ir paaiškinimas |
|---|---|
| RC4 | RC4 yra pasenęs ir dėl jo negalima derėtis. |
| DES | DES nėra saugus bendram naudojimui TLS. |
| 3DES | 3DES blokas yra nedidelis ir nebenaudojamas TLS. |
| NULL | NULL šifravimas nesuteikia konfidencialumo. |
| EXPORT | EXPORT rinkiniai sąmoningai naudoja silpną kriptografiją ir yra nebenaudojami. |
| Anoniminiai rinkiniai | Anoniminiai rinkiniai nepatvirtina bendraamžių autentiškumo ir yra pažeidžiami perėmimui. |
| MD5 | MD5 nėra saugus bendram naudojimui TLS. |
| SHA-1 | Šiame rinkinyje naudojama SHA-1, kuri nebenaudojama bendram naudojimui TLS. |
| CBC režimas | CBC komplektai yra senieji. Pirmenybę teikite AEAD rinkiniui, pvz., AES-GCM arba ChaCha20-Poly1305. |
| Statinis RSA | Statinis RSA raktų keitimas nesuteikia išankstinio slaptumo. |
| CCM-8 | CCM-8 naudoja trumpesnę autentifikavimo žymą ir jai reikia konkretaus protokolo peržiūros. |
Šie radiniai padeda saugumo specialistams, sistemų inžinieriams (SRE) ir programuotojams greitai identifikuoti silpnąsias konfigūracijos vietas, kurias būtina pašalinti iš serverio nustatymų.
Išankstinio slaptumo svarba TLS protokole
Išankstinis slaptumas (angl. Forward Secrecy arba Perfect Forward Secrecy - PFS) užtikrina, kad net jei serverio privatus raktas bus pažeistas ateityje, praeityje užfiksuotas ir įrašytas šifruotas srautas negalės būti iššifruotas.
Naudojant statinį RSA raktų keitimą, klientas užšifruoja seanso raktą serverio viešuoju raktu. Jei užpuolikas užfiksuoja šį srautą ir vėliau gauna prieigą prie serverio privataus rakto, jis gali iššifruoti visus praeities seansus. Todėl statinis RSA raktų keitimas laikomas nesaugiu ir neatitinkančiu šiuolaikinių saugumo reikalavimų. Šiuolaikiniuose TLS protokoluose primygtinai reikalaujama naudoti trumpalaikius Diffie-Hellman raktų keitimo algoritmus (pvz., ECDHE), kurie sukuria unikalų seanso raktą kiekvienam ryšiui ir garantuoja išankstinį slaptumą.
Statinių įrodymų analizės ribojimai
Šis įrankis atlieka statinę pateikto teksto analizę. Tai reiškia, kad jis interpretuoja tik jūsų pateiktus duomenis ir neatlieka aktyvių veiksmų tinkle. Svarbu suprasti šiuos analizės ribojimus:
- Nėra tiesioginio ryšio: Įrankis neprisijungia prie jūsų serverio ar pagrindinio kompiuterio.
- Sertifikatų netikrinimas: Jis negali patikrinti, ar serverio pateiktas SSL/TLS sertifikatas yra galiojantis, pasirašytas patikimos įstaigos ar nėra atšauktas.
- Raktų dydžių nevertinimas: Įrankis neišmatuoja realių raktų dydžių (pvz., ar naudojamas 2048 bitų, ar 4096 bitų RSA raktas).
- Suderinamumo žemyn netikrinimas: Jis negali išbandyti, ar serveris yra pažeidžiamas protokolo versijos sumažinimo (angl. downgrade) atakoms.
- Pilno palaikymo nematymas: Įrankis parodo tik tuos šifrus ir protokolus, kurie yra pateikti jūsų įklijuotame tekste, bet negali nustatyti visų kitų serverio palaikomų šifravimo rinkinių.
Privatumo garantijos ir duomenų apdorojimas
Naudojantis šiuo įrankiu, jūsų pateikti duomenys yra visiškai saugūs. Visi analizės procesai vyksta lokaliai, jūsų interneto naršyklėje. Įklijuota TLS informacija, nuskaitymo rezultatai ar rankos paspaudimo santraukos nėra įkeliamos į jokius išorinius serverius ir nėra išsaugomos.
Dažniausiai užduodami klausimai (DUK)
Kokius TLS išvesties formatus galiu įklijuoti?
Įklijuokite tekstą iš įprastų TLS skaitytuvų, openssl s_client, paketų analizės santraukų arba trumpo ClientHello arba ServerHello užrašo. Tikrinimo priemonė atpažįsta įprastus IANA pavadinimus, OpenSSL slapyvardžius ir kelis įprastus šešioliktainio rinkinio ID; jis neiškoduoja neapdorotų paketų baitų.
Kodėl TLS 1.3 šifravimo rinkinys nerodo RSA arba ECDHE?
TLS 1.3 šifravimo rinkinio pavadinimai apibūdina įrašo šifravimą ir rankos paspaudimo maišą. Raktų keitimas ir autentifikavimas derinamasi atskirai, todėl jų negalima numanyti vien iš komplekto pavadinimo.
Ar šis rezultatas įrodo, kad serveris yra saugus?
Ne. Tai paaiškina tik įklijuotą tekstą. Jis neprisijungia prie pagrindinio kompiuterio, netikrina sertifikato, neišmatuoja raktų dydžių, neišbando ankstesvės versijos elgesio ir nerodo kiekvieno serverio priimamo rinkinio.
Ką daryti, jei įvestas tekstas yra per didelis?
Įrankis palaiko tekstinę įvestį, kurios ilgis neviršija 200 000 simbolių. Jei jūsų pateikta santrauka viršija šį limitą, bus parodytas klaidos pranešimas: „Ta santrauka neįprastai didelė. Laikykite jį iki 200 000 simbolių.“. Tokiu atveju rekomenduojama apkarpyti tekstą, paliekant tik svarbiausias eilutes su protokolų ir šifravimo rinkinių pavadinimais.