Warstwa rekordów TLS i zestawy szyfrów
Zrozumieć fragmentację rekordów, szyfrowanie AEAD i wybór szyfru
Warstwa rekordów TLS i zestawy szyfrów to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cryptology Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cryptology Academy zawiera 4 lekcji w sumie.
Przegląd warstwy rekordów
Warstwa rekordów TLS to podwarstwa transportowa TLS. Dzieli dane na rekordy o rozmiarze do 16 KB, opcjonalnie je kompresuje (tylko TLS 1.2), szyfruje za pomocą AEAD i dodaje 5-bajtowy nagłówek.
Pola nagłówka rekordu
Bajt 0: ContentType (20=ChangeCipherSpec, 21=Alert, 22=Handshake, 23=ApplicationData). Bajty 1–2: starsza wersja (0x0303 dla zgodności z TLS 1.2). Bajty 3–4: długość następującego ładunku.
Szyfrowanie AEAD w rekordach
W TLS 1.3 każdy rekord jest szyfrowany za pomocą AEAD (np. AES-GCM). Nonce jest wyprowadzany przez wykonanie XOR niejawnego numeru sekwencyjnego z IV ruchu. AAD stanowi 5-bajtowy nagłówek rekordu. Na końcu dołączany jest znacznik uwierzytelniający.
Nazewnictwo zestawów szyfrów
TLS_AES_128_GCM_SHA256 = wymiana kluczy (niejawne ECDHE w TLS 1.3) + AES-128-GCM (AEAD) + SHA-256 (dla HKDF). W TLS 1.2: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 jawnie określa wszystkie komponenty.
Przestarzałe zestawy szyfrów
TLS 1.3 nie dopuszcza: RC4 (strumień klucza z obciążeniem), 3DES (atak meet-in-the-middle, Sweet32), trybu CBC (BEAST, Lucky13, POODLE), szyfrowania NULL, szyfrów klasy eksportowej (40-bitowych) ani MD5/SHA-1 w PRF. Pozostały wyłącznie zestawy AEAD.
Fragmentacja rekordów
Duże rekordy TLS są dzielone na fragmenty o rozmiarze ≤16 KB. Każdy fragment jest szyfrowany niezależnie. Odbiorca składa rekordy ponownie, zanim przekaże je do warstwy aplikacji. Granice fragmentów nie mają znaczenia semantycznego.
Protokół alertów
Alerty są wysyłane jako rekordy TLS z ContentType=21. Dwa bajty: level (1=warning, 2=fatal) + description (0=close_notify, 40=handshake_failure, 42=bad_certificate, 70=protocol_version). Alerty typu fatal kończą połączenie.
Nonce oparty na numerze sekwencyjnym
Numer sekwencyjny dla każdego rekordu zaczyna się od 0 i zwiększa o 1. Jest dopełniany do długości IV (12 bajtów dla GCM), a następnie poddawany operacji XOR z IV ruchu. Zapobiega to ponownemu użyciu nonce między rekordami bez konieczności jawnego przesyłania nonce.
Wybór zestawu szyfrów
Należy preferować TLS_AES_256_GCM_SHA384 dla bezpieczeństwa 256-bitowego. TLS_CHACHA20_POLY1305_SHA256 należy stosować na urządzeniach mobilnych lub wbudowanych bez AES-NI. W przypadku wysoce wrażliwych danych przechowywanych przez długi czas należy unikać zestawów szyfrów 128-bitowych.
DTLS: TLS przez UDP
DTLS (RFC 6347) dostosowuje TLS do UDP. Dodaje numery sekwencyjne do nagłówków rekordów, obsługuje zmianę kolejności i używa uzgadniania opartego na cookie, aby zapobiegać atakom DoS. Jest używany w WebRTC, sieciach VPN i protokołach IoT.
Inspekcja rekordów za pomocą języka Python
Do przechwytywania rekordów TLS należy użyć modułu ssl lub scapy. Po ustawieniu SSLKEYLOGFILE Wireshark automatycznie odszyfruje rekordy. Pythonowe ssl.SSLSocket.read() przezroczyście odszyfrowuje dane na warstwie aplikacji.
Szybkie sprawdzenie
Przed czym chroni numer sekwencyjny podczas szyfrowania rekordów TLS 1.3?
Podsumowanie
Rozumieją Państwo już strukturę rekordów TLS, szyfrowanie AEAD, wyprowadzanie nonce oraz wybór zestawu szyfrów. Następnie: sposób, w jaki TLS weryfikuje certyfikaty serwera podczas uzgadniania.
Często zadawane pytania
Czy lekcja „Warstwa rekordów TLS i zestawy szyfrów” jest bezpłatna?
Tak — pełny tekst „Warstwa rekordów TLS i zestawy szyfrów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cryptology Academy, przejdź na CoddyKit PRO. Kurs Cryptology Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Warstwa rekordów TLS i zestawy szyfrów”?
Zrozumieć fragmentację rekordów, szyfrowanie AEAD i wybór szyfru Ćwiczysz Cryptology Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Cryptology Academy?
Nie wymagamy żadnego doświadczenia. Cryptology Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Warstwa rekordów TLS i zestawy szyfrów”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Cryptology Academy?
Tak. Każda lekcja Cryptology Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Uzgadnianie TLS 1.3 krok po kroku
- Warstwa rekordów TLS i zestawy szyfrów
- Weryfikacja certyfikatu w TLS
- Ataki na TLS: BEAST, POODLE i downgrade