Zestawy szyfrów TLS
Każde połączenie TLS negocjuje zestaw szyfrów — specyficzną kombinację algorytmów używanych do wymiany kluczy, uwierzytelniania, szyfrowania i integralności. Nazwy wyglądają jak zupa alfabetyczna (TLS_AES_256_GCM_SHA384, ECDHE-ECDSA-CHACHA20-POLY1305), ale kodują właściwości bezpieczeństwa połączenia. Ich przeczytanie wyjaśnia, co właściwie dzieje się, gdy w przeglądarce wyświetla się kłódka.
Poniżej znajduje się pełna treść artykułu w języku angielskim.
A TLS zestaw szyfrów to nazwana kombinacja algorytmów kryptograficznych używanych do ochrony połączenia TLS. Podczas uzgadniania TLS klient i serwer negocjują, którego zestawu szyfrów użyć w zależności od tego, co obsługuje każdy z nich. Wybór określa wymianę kluczy, uwierzytelnianie, szyfrowanie i integralność pozostałej części połączenia.
Odczytywanie nazw zestawu szyfrów TLS 1.2
Format to: TLS_KEXAUTH_WITH_CIPHER_MAC lub w konwencji OpenSSL KEX-AUTH-CIPHER-MAC.
Przykład: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 rozkłada się jako:
- ECDHE — wymiana kluczy wykorzystuje efemeryczną krzywą eliptyczną Diffiego-Hellmana (zapewnia tajemnicę przekazywania)
- RSA — serwer uwierzytelnia się przy użyciu certyfikatu RSA
- AES_256_GCM — szyfrowanie zbiorcze wykorzystuje AES z 256-bitowymi kluczami w trybie GCM (szyfrowanie uwierzytelnione)
- SHA384 — uzgadnianie MAC i KDF korzystają z uproszczenia SHA-384
TLS 1.3
TLS 1.3 znacząco uprościły nazewnictwo zestawu szyfrów. Zestawy szyfrów określają teraz tylko szyfr symetryczny i skrót. Wymiana kluczy i uwierzytelnianie są negocjowane osobno. Nazwy wyglądają następująco:
TLS_AES_256_GCM_SHA384— AES-256-GCM z SHA-384TLS_AES_128_GCM_SHA256— AES-128-GCM z SHA-256TLS_CHACHA20_POLY1305_SHA256— ChaCha20-Poly1305 z SHA-256TLS_AES_128_CCM_SHA256— AES-128 w trybie CCM z SHA-256TLS_AES_128_CCM_8_SHA256— to samo z 8-bajtowym MAC, głównie dla urządzeń z ograniczeniami
TLS 1.3 ma łącznie tylko pięć standardowych zestawów szyfrów. TLS 1.2 ma setki możliwych kombinacji.
Co oznacza każdy element
Wymiana klucza:
- RSA — klucz RSA serwera zarówno uwierzytelnia, jak i wymienia klucz. Brak tajemnicy przekazania. Usunięto w TLS 1.3.
- DHE — efemeryczny Diffie-Hellman. Tajemnica przekazywania tak. Używany w TLS 1.2; zintegrowane z uściskiem dłoni w TLS 1.3.
- ECDHE — efemeryczna krzywa eliptyczna Diffie-Hellmana. Tajemnica przekazywania tak. Szybko. Nowoczesne ustawienie domyślne.
Uwierzytelnianie (TLS 1.2):
- RSA — serwer ma certyfikat RSA
- ECDSA — serwer ma certyfikat krzywej eliptycznej
- DSS — certyfikat DSA (głównie historyczne)
- PSK — klucz wstępny (rzadko; dla IoT i niektórych scenariuszy VPN)
Szyfr zbiorczy:
- AES_128_GCM, AES_256_GCM — AES-GCM z 128 lub 256-bitowy klucz, uwierzytelnione szyfrowanie
- CHACHA20_POLY1305 — szyfr strumieniowy ChaCha20 z Poly1305 MAC, nowoczesna alternatywa dla AES
- AES_128_CBC, AES_256_CBC — AES-CBC z oddzielnym HMAC, starszy wzorzec (powoli wprowadzany stopniowo) out)
- 3DES_EDE_CBC — Triple DES, przestarzałe
- RC4 — zepsuty szyfr strumieniowy, nie występuje już w żadnym nowoczesnym pakiecie
Hash for uścisk dłoni:
- SHA256, SHA384 — rodzina SHA-2, nowoczesny standard
- SHA — SHA-1, przestarzałe
- MD5 — długi przestarzałe
Polecane pakiety w 2026
Przewodnik konfiguracji TLS Mozilli jest standardem branżowym. Obecny nowoczesny profil sugeruje:
- TLS tylko 1.3. Jeśli Twoja baza klientów to obsługuje (w zasadzie wszystko, co robi nowoczesny), nie ma zastępczego TLS 1.2.
- Zestawy szyfrów: TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256.
- Jeśli musi być obsługiwany protokół TLS 1.2: ECDHE+AES-GCM i ECDHE+ChaCha20 tylko pakiety.
W celu zapewnienia zgodności ze starszymi klientami wymagane jest więcej pakietów, w tym niektóre bez tajemnicy przekazywania. „Pośredni” profil Mozilli obejmuje ~95% klientów przy zachowaniu rozsądnego poziomu bezpieczeństwa.
Co i dlaczego zostaje usunięte
Nowoczesna konfiguracja TLS usuwa:
- Nieefemeryczna wymiana kluczy (zwykły RSA, statyczny DH). Brak tajemnicy przekazywania.
- Szyfry w trybie CBC (w TLS 1.2 z renegocjacją). Historia ataków (BEAST, Lucky 13).
- 3DES, RC4. Uszkodzenie kryptograficzne lub zdecydowanie za wolne.
- MD5, SHA-1 do uzgadniania. Ataki kolizyjne.
- Anonimowe pakiety. Brak uwierzytelniania serwera, podatny na ataki Zestawy klasy MITM.
- EXPORT. Historyczny artefakt kontroli eksportu kryptowalut; słaby z założenia.
Ataki FREAK i Logjam w 2015 r. wykorzystywały przeglądarki, które nadal negocjowały pakiety klasy EXPORT w celu zapewnienia kompatybilności. Serwery głównego nurtu usunęły je potem; w niektórych witrynach typu long-tail nadal je znajdowały po latach.
Sprawdzanie obsługi szyfrów serwera
Tols:
- SSL Labs SSL Server Test (ssllabs.com) — kompleksowa analiza TLS witryny publicznej konfiguracja.
- testssl.sh — skaner wiersza poleceń.
- nmap --script ssl-enum-ciphers — szybkie wyliczenie.
- OpenSSL s_client z różnymi flagi do ręcznego testowania.
W przypadku własnego serwera uruchamiaj je okresowo; konfiguracje zmieniają się wraz z upływem czasu w miarę aktualizacji pakietów.
Często zadawane pytania
- Czy jako użytkownik powinienem martwić się zestawami szyfrów?
- Nowoczesne przeglądarki radzą sobie z negocjacjami. Wybrany zestaw szyfrów zostanie wyświetlony po kliknięciu kłódki i sprawdzeniu certyfikatu. Dla większości użytkowników jest to zakulisowe.
- Dlaczego TLS 1.3 ma tak mało zestawów szyfrów?
- Setki kombinacji protokołu TLS 1.2 ułatwiły podatne na błędy konfiguracje. TLS 1.3 celowo przycięto do niewielkiego zestawu dobrze zrozumiałych kombinacji, wszystkie z zachowaniem tajemnicy przekazywania i uwierzytelnionego szyfrowania.
- Jaka jest różnica między AES-128-GCM i AES-256-GCM?
- Długość klucza. 128-bitowy AES jest szybki i uważany za bezpieczny w nieskończoność przed klasycznymi przeciwnikami; 256-bitowy zapewnia margines na wypadek przyszłego postępu kryptograficznego i przeciwników świadomych kwantowo. Obydwa nadają się do bieżącego użytku.
- Kiedy powinienem używać ChaCha20-Poly1305 vs AES-GCM?
- ChaCha20 jest szybszy na sprzęcie bez akceleracji AES-NI (starsze urządzenia mobilne, IoT). AES-GCM jest szybszy na nowoczesnym sprzęcie dzięki AES-NI. Przeglądarki negocjują najlepsze dopasowanie; serwery powinny oferować jedno i drugie.
- Czy pakiet szyfrów wpływa na wydajność?
- Nieokazale. Przyspieszany sprzętowo AES-GCM jest zasadniczo darmowy na nowoczesnych procesorach. Narzut związany z uzgadnianiem (wymiana kluczy) dominuje nad szyfrowaniem zbiorczym w przypadku krótkich połączeń. W przypadku długotrwałych połączeń o dużej objętości wybór szyfru masowego ma niewielkie znaczenie.