Nazwa taka jak AES-256-CFB1 niesie dwie liczby i odpowiadają one na różne pytania. 256 to długość klucza AES. 1 to sprzężenie zwrotne CFB, czyli rozmiar segmentu, właściwość sposobu, w jaki tryb przesuwa swój stan. Gdy odczytać 1 jako długość klucza, nazwa wygląda na katastrofalną błędną konfigurację i dlatego to pytanie wciąż powraca.

Zanim ocenisz nazwę, ustal, którą z trzech wielkości widzisz: rozmiar klucza, rozmiar bloku czy rozmiar segmentu. Tylko pierwsza jest parametrem bezpieczeństwa w zwykłym sensie.

Trzy liczby, trzy wielkości

AES przyjmuje klucze 128, 192 lub 256 bitów i ma blok 128 bitów, niezależnie od wyboru. Rozmiar bloku należy do AES, nie do trybu. Przyrostek CFB to trzecia wielkość: ile danych tryb zużywa i zwraca w każdym kroku. Dokumentacja AES OpenSSL wymienia te rozmiary przesunięcia wprost dla wariantów CFB.

CFB1 zwraca po jednym bicie, CFB8 jeden bajt, CFB128 cały blok. Wszystkie trzy używają wewnętrznie tego samego szyfru blokowego o 128 bitach; zmienia się to, ile bitów każdego obliczonego bloku jest używane na operację. Dlatego przyrostek zmienia koszt i zachowanie buforowania, a nie siłę klucza.

NameKeyAES blockFeedback
AES-256-CFB1256 bits128 bits1 bit
AES-256-CFB8256 bits128 bits8 bits
AES-256-CFB128256 bits128 bits128 bits

Dlaczego rozmiar bloku nigdy się nie zmienia

AES to szyfr blokowy o stałym bloku 128 bitów, a tryby to konstrukcje zbudowane wokół niego. Żaden z nich nie zmniejsza bloku, by dopasować go do rozmiaru segmentu. Implementacja CFB1 nadal oblicza pełny blok AES i bierze jeden bit wyniku. Pozostałe bity są dla tego kroku odrzucane i właśnie tam leży koszt wydajności.

Zatem jednobitowe sprzężenie zwrotne nie oznacza jednobitowego klucza, a nazwy nie można szeregować według przyrostka. CFB128 nie jest czterokrotnie silniejszy od CFB32; przetwarza większe segmenty.

Co naprawdę zmienia rozmiar segmentu

Rozmiar segmentu zmienia to, ile szyfrogramu jest zwracane w każdym kroku i ile tekstu jawnego może przenieść każdy krok. Zmienia też propagację błędów i zachowanie buforowania, co ma znaczenie przy użyciu strumieniowym. Segmenty bajtowe pasują do buforów, bitowe nie.

W praktyce tryb wybiera protokół, a nie operator. Kanał danych VPN używa konstrukcji wskazanej przez swój protokół, z własną ochroną integralności, a lista biblioteki mówi tylko, jakie nazwy istnieją.

Jak czytać niekwalifikowaną etykietę CFB

Niekwalifikowana etykieta CFB wymaga kontekstu implementacji. W nagłówkach OpenSSL 1.0.2 EVP_aes_128_cfb jest makrem dla EVP_aes_128_cfb128, z pasującymi aliasami dla kluczy 192 i 256 bitów. To konwencja nazewnictwa API z jednej gałęzi, a nie twierdzenie, że każda biblioteka, format pliku czy GUI rozwija ten skrót tak samo. Sprawdź nagłówek lub dokumentację wersji, którą masz przed sobą.

Jeśli stary profil mówi CFB, a druga strona to akceptuje, wynegocjowane parametry są gdzieś zapisane: w logu, zrzucie konfiguracji, odpowiedzi API. Czytaj je, zamiast wnioskować rozmiar segmentu z ciągu wyświetlanego na ekranie.

Czego nazwa trybu ci nie mówi

Nazwa opisuje zachowanie szyfrowania i nic więcej. VPN nadal potrzebuje ochrony integralności, wyprowadzania klucza i uwierzytelniania drugiej strony, a CFB nie daje żadnego z nich. Zamiana CFB8 na CFB1 też nie jest zmianą kosmetyczną: zachowanie w sieci się różni i obie strony muszą obsługiwać tę samą konstrukcję. Nazwa w bibliotece nie dowodzi również, że wdrożona brama akceptuje ją dla swojego kanału danych.

Dla wszystkiego, co jest utrzymywane, używaj pełnego układu ochrony protokołu i polityki operatora, oraz zapisuj wersje biblioteki i bramy, dokładną opcję i wynegocjowany wynik. Stara nazwa wyjaśnia, co czytasz; nie uzasadnia przywracania tej konfiguracji.

Powiązane artykuły