Reklama mówi 256 bitów, drugi produkt mówi 128 bitów, a wniosek wydaje się oczywisty, dopóki nie zauważysz, że liczby opisują różne rzeczy. Klucz szyfru symetrycznego, klucz publiczny certyfikatu i parametr wymiany kluczy nie są mierzone jedną skalą. Żaden z nich nie obejmuje tego, czy klient w ogóle zweryfikował serwer. Liczba to realna informacja i jest znacznie węższa, niż sugeruje otaczający ją marketing.

Zapytaj, który klucz jest liczony i czego broni, zanim cokolwiek porównasz.

Trzy klucze, trzy zadania

Szyfr danych szyfruje ładunek tunelu, a jego klucz jest wyprowadzany od nowa dla każdej sesji. Klucz publiczny certyfikatu potwierdza tożsamość punktu końcowego podczas uwierzytelniania. Krok wymiany kluczy, zwykle efemeryczny wariant Diffie-Hellmana, ustanawia wspólny sekret, którego później żadna strona nie może odtworzyć. Każdy ma własne założenia co do wytrzymałości i własne konwencje rozmiaru.

Dlatego 256 obok 2048 obok 32 nie da się uszeregować według wielkości; to odpowiedzi na różne pytania.

Nawet w obrębie jednej roli liczba mówi coś tylko w odniesieniu do używanej rodziny algorytmów.

Gdzie liczba pomaga, a gdzie się zatrzymuje

W obrębie jednego algorytmu większy klucz podnosi koszt wyszukiwania siłowego, a publikowane wytyczne ustalają minima dla kluczy certyfikatów w miarę zmian mocy obliczeniowej. To porównanie uzasadnione i wąskie: AES-128 i AES-256 oba opierają się atakowi bezpośredniemu z dużym zapasem, więc różnica rzadko bywa rozstrzygająca w praktyce.

Poza tym porównaniem liczba niczego nie przewiduje w kwestii błędów konfiguracji, walidacji certyfikatów czy wersji protokołu.

Przeczytaj cały wynegocjowany zestaw

To, czego połączenie faktycznie używa, to zestaw: tryb szyfru, konstrukcja integralności lub szyfrowania uwierzytelnionego, grupa wymiany kluczy i metoda uwierzytelniania. Nowoczesny tryb AEAD z poprawnym uzgadnianiem to inna propozycja niż starszy tryb z osobnym MAC, nawet gdy podany rozmiar klucza jest identyczny.

openvpn --show-ciphers | head -20
openvpn --show-tls | head -20
openssl x509 -in server.crt -noout -text | grep -E 'Public-Key|Signature Algorithm'
wg show

Czytaj wynik negocjacji, a nie skonfigurowane maksimum. Klient oferujący silny zestaw i tak połączy się słabo, jeśli serwer wybierze słabszą opcję, a profil na to pozwala. Jeśli chodzi o wydajność, mierz ją na danym urządzeniu i ścieżce, bo rozmiar klucza słabo przewiduje przepustowość, gdy do gry wchodzą akceleracja sprzętowa i rozmiar pakietu.

Elementy, których żadna liczba nie mierzy

Utrzymanie oprogramowania to pierwsze przeoczenie. Tunel zbudowany na bibliotece, która przestała otrzymywać poprawki, jest słabszy, niż sugeruje rozmiar klucza, i żadna wartość konfiguracji tego nie naprawi. Zachowanie operatora to drugie: rejestry połączeń, dane konta i obsługa wsparcia leżą całkowicie poza kryptografią. Usługa, która przechowuje więcej, niż oczekiwano, nie staje się bezpieczniejsza przez dłuższy klucz.

Weryfikacja drugiej strony jest trzecia i najdonioślejsza. Klient, który przyjmuje dowolny certyfikat, ma silne szyfrowanie owinięte wokół nieuwierzytelnionej drugiej strony, co jest gorsze niż skromne szyfrowanie z poprawną walidacją. Sprawdź te trzy rzeczy przed liczbą, a liczba zajmie właściwe miejsce.

Powiązane artykuły