TLS protokola versiju un šifru komplektu analīze
Tīmekļa vietņu un serveru drošības konfigurācijas pārbaude bieži ietver TLS (Transport Layer Security) skenēšanas rezultātu analīzi. Izstrādātājiem, sistēmu uzticamības inženieriem (SRE) un drošības auditoriem ir svarīgi precīzi saprast, kādi protokoli un šifrēšanas algoritmi tiek izmantoti datu pārraides aizsardzībai.
Šis rīks analizē lietotāja iesniegto tekstu — piemēram, TLS skenēšanas rezultātus vai rokasspiediena kopsavilkumus —, lai identificētu sarunātos protokolus, šifru komplektus un potenciāli nedrošus vai mantotus algoritmus. Analīze tiek veikta lokāli: jūsu ielīmētā TLS informācija paliek jūsu pārlūkprogrammā, un rīks tos neaugšupielādē un nesaglabā.
Atbalstītie ievades formāti un ierobežojumi
Lai veiktu analīzi, rīkam ir nepieciešams teksta formāta kopsavilkums. Tas neatšifrē neapstrādātus pakešu baitus un neatbalsta tiešu bināro failu vai pakešu uztveršanas failu (piemēram, .pcap) ielādi.
Lietotāji var ielīmēt datus no šādiem avotiem:
- Parasto TLS skeneru teksta izvades.
- Komandrindas rīka
openssl s_clientizvades. - Pakešu analīzes rīku teksta kopsavilkumiem.
- Īsām ClientHello vai ServerHello ziņojumu piezīmēm.
Pārbaudītājs spēj atpazīt parastos IANA nosaukumus, OpenSSL aizstājvārdus un vairākus izplatītus heksadecimālo komplektu identifikatorus (ID). Maksimālais pieļaujamais ievades apjoms ir 200 000 rakstzīmju. Ja ievadītais teksts pārsniedz šo robežu, tiek attēlots paziņojums: "Šis kopsavilkums ir neparasti liels. Saglabājiet to mazāk par 200 000 rakstzīmēm.". Ja lauks tiek atstāts tukšs, tiek parādīta kļūda: "Vispirms ielīmējiet TLS skenēšanas vai rokasspiediena kopsavilkumu.". Gadījumos, kad tekstā nav atrodama neviena atpazīstama struktūra, sistēma izvada paziņojumu: "Netika atpazīta neviena TLS versija vai šifru komplekts. Ielīmējiet lasāmus skenera vai rokasspiediena laukus.".
Parametru lomas un novērtējumi
Analizējot iesniegto tekstu, rīks identificētajiem protokoliem un šifru komplektiem piešķir noteiktas lomas un drošības novērtējumus.
Identificētās lomas
Atkarībā no konteksta, kādā protokols vai šifru komplekts parādās iesniegtajos datos, tam tiek piešķirta viena no šīm lomām:
- Sarunāts (
Sarunāts): Protokols vai šifrs, par kuru klients un serveris ir vienojušies konkrētajā sesijā. - Piedāvāja (
Piedāvāja): Klienta iesniegtais atbalstīto opciju saraksts (piemēram, ClientHello ziņojumā). - Novērots (
Novērots): Parametri, kas fiksēti un reģistrēti tīkla plūsmā.
Drošības novērtējumi
Katram identificētajam šifru komplektam tiek piesaistīts viens no četriem drošības statusiem:
- Mūsdienīgs (
Mūsdienīgs): Atbilst aktuālajām drošības prasībām un nodrošina spēcīgu aizsardzību. - Pārskats (
Pārskats): Nepieciešama papildu analīze vai specifisks konfigurācijas izvērtējums. - Novecojis (
Novecojis): Algoritms vairs netiek uzskatīts par drošu un ir jāaizstāj. - Nezināms (
Nezināms): Komplekts nav atrodams iebūvētajā datubāzē.
Kriptogrāfisko algoritmu un šifru analīzes noteikumi
Rīks pārbauda šifru komplektu sastāvdaļas un sniedz detalizētus atzinumus par katru konstatēto vājo vietu vai algoritma specifiku:
| Algoritms / Konteksts | Drošības atzinums un skaidrojums |
|---|---|
| RC4 | RC4 ir novecojis, un to nedrīkst apspriest. |
| DES | DES nav drošs vispārējai TLS lietošanai. |
| 3DES | 3DES ir mazs bloka izmērs, un tas ir novecojis TLS. |
| NULL | NULL šifrēšana nenodrošina konfidencialitāti. |
| EXPORT | EXPORT komplekti apzināti izmanto vāju kriptogrāfiju, un tie ir novecojuši. |
| Anonīmie komplekti | Anonīmie komplekti neļauj autentificēt līdziniekus un ir neaizsargāti pret pārtveršanu. |
| MD5 | MD5 nav drošs vispārējai TLS lietošanai. |
| SHA-1 | Šajā komplektā tiek izmantots SHA-1, kas ir novecojis vispārējai lietošanai TLS. |
| CBC režīms | CBC komplekti ir mantoti. Dodiet priekšroku AEAD komplektam, piemēram, AES-GCM vai ChaCha20-Poly1305. |
| Statiskā RSA | Statiskā RSA atslēgu apmaiņa nenodrošina uz priekšu slepenību (forward secrecy). |
| CCM-8 | CCM-8 izmanto īsāku autentifikācijas tagu, un tam ir nepieciešama protokola pārbaude. |
| Nezināms komplekts | Šis komplekts nav iekļauts iebūvētajā kopējo komplektu kartē. Pārbaudiet pašreizējo IANA reģistra vai skenera dokumentāciju. |
Ja iesniegtajā tekstā netiek identificēti protokoli vai šifri, rīks attēlo attiecīgi paziņojumus "Iesniegtajā tekstā netika atrasta neviena protokola versija." vai "Iesniegtajā tekstā netika atrasts šifru komplekts.".
Atslēgu apmaiņa un autentifikācija TLS 1.3 protokolā
Būtiska atšķirība starp TLS 1.3 un vecākām protokola versijām (piemēram, TLS 1.2) ir šifru komplektu struktūrā. Vecākos protokolos šifra komplekta nosaukums tiešā veidā definēja atslēgu apmaiņas mehānismu (piemēram, ECDHE vai RSA), autentifikācijas veidu, simetrisko šifru un jaucējfunkciju (piemēram, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256).
Turpretī TLS 1.3 vienojas par atslēgu apmaiņu un autentifikāciju atsevišķi no šifra komplekta. TLS 1.3 šifru komplektu nosaukumi (piemēram, TLS_AES_256_GCM_SHA384) apraksta tikai simetrisko ierakstu šifrēšanu un rokasspiediena jaucējfunkciju. Tāpēc, analizējot tikai TLS 1.3 šifra komplekta nosaukumu, nav iespējams izsecināt izmantoto atslēgu apmaiņas vai parakstīšanas algoritmu.
Statiskās analīzes ierobežojumi
Šis rīks veic tikai iesniegtā teksta statisko analīzi un interpretāciju. Tam ir šādi funkcionālie ierobežojumi:
- Tas neveido savienojumu ar attālo resursdatoru un neveic aktīvu tīkla skenēšanu.
- Tas nevar pārbaudīt servera sertifikātu derīgumu vai uzticamības ķēdi.
- Tas nemēra kriptogrāfisko atslēgu izmērus reāllaikā.
- Tas nevar pārbaudīt servera aizsardzību pret protokola versijas pazemināšanas (downgrade) uzbrukumiem.
- Tas nevar parādīt pilnu sarakstu ar visiem šifru komplektiem, kurus serveris atbalsta, ja tie nav iekļauti ielīmētajā tekstā.
Biežāk uzdotie jautājumi (FAQ)
Kurus TLS izvades formātus var ielīmēt?
Ielīmējiet tekstu no parastajiem TLS skeneriem, openssl s_client, pakešu analīzes kopsavilkumiem vai īsas ClientHello vai ServerHello piezīmes. Pārbaudītājs atpazīst parastos IANA nosaukumus, OpenSSL aizstājvārdus un vairākus izplatītus heksadecimālo komplektu ID; tas neatšifrē neapstrādātus pakešu baitus.
Kāpēc TLS 1.3 šifra komplekts nerāda RSA vai ECDHE?
TLS 1.3 šifru komplektu nosaukumi apraksta ierakstu šifrēšanu un rokasspiediena jaucējfunkciju. Atslēgu apmaiņa un autentifikācija tiek apspriesta atsevišķi, tāpēc tos nevar izsecināt tikai no komplekta nosaukuma.
Vai šis rezultāts pierāda, ka serveris ir drošs?
Nē. Tas izskaidro tikai ielīmēto tekstu. Tas neizveido savienojumu ar resursdatoru, nepārbauda sertifikātu, neizmēra atslēgu izmērus, nepārbauda pazemināšanas darbību un nerāda katru komplektu, ko serveris pieņem.