CFB1 verzus CFB8 verzus CFB128: je to veľkosť spätnej väzby, nie kľúča
Číslo za CFB je krok spätnej väzby, nie dĺžka kľúča: CFB1, CFB8 a CFB128 používajú blok 128 bitov. Čítajte staré názvy bez vymýšľania slabých kľúčov.
Názov ako AES-256-CFB1 nesie dve čísla a tie odpovedajú na rôzne otázky. 256 je dĺžka kľúča AES. 1 je spätná väzba CFB, teda veľkosť segmentu, vlastnosť toho, ako režim posúva svoj stav. Ak sa 1 prečíta ako dĺžka kľúča, názov vyzerá ako katastrofálna nesprávna konfigurácia, a preto sa táto otázka stále vracia.
Pred hodnotením názvu určite, ktorú z troch veličín vidíte: veľkosť kľúča, veľkosť bloku alebo veľkosť segmentu. Iba prvá je bezpečnostný parameter v obvyklom zmysle.
Tri čísla, tri veličiny
AES prijíma kľúče 128, 192 alebo 256 bitov a má blok 128 bitov, čokoľvek si vyberiete. Veľkosť bloku patrí AES, nie režimu. Prípona CFB je tretia veličina: koľko dát režim spotrebuje a vráti za krok. Dokumentácia AES OpenSSL uvádza tieto veľkosti posunu explicitne pre varianty CFB.
CFB1 vracia po jednom bite, CFB8 jeden bajt, CFB128 celý blok. Všetky tri interne používajú ten istý blokový šifrovač so 128 bitmi; mení sa to, koľko bitov každého vypočítaného bloku sa použije na operáciu. Preto prípona mení náklady a správanie bufferovania, nie silu kľúča.
| Name | Key | AES block | Feedback |
|---|---|---|---|
| AES-256-CFB1 | 256 bits | 128 bits | 1 bit |
| AES-256-CFB8 | 256 bits | 128 bits | 8 bits |
| AES-256-CFB128 | 256 bits | 128 bits | 128 bits |
Prečo sa veľkosť bloku nikdy nemení
AES je blokový šifrovač s pevným blokom 128 bitov a režimy sú konštrukcie postavené okolo neho. Žiadna z nich nezmenšuje blok, aby zodpovedal veľkosti segmentu. Implementácia CFB1 stále počíta celý blok AES a berie jeden bit výsledku. Ostatné bity sa pre ten krok zahodia, a práve tam leží náklad na efektivitu.
Takže jednobitová spätná väzba neznamená jednobitový kľúč a názov nemožno zoradiť podľa prípony. CFB128 nie je štyrikrát silnejší ako CFB32; spracúva väčšie segmenty.
Čo veľkosť segmentu skutočne mení
Veľkosť segmentu mení, koľko šifrovaného textu sa vráti za krok a koľko otvoreného textu každý krok unesie. Mení aj šírenie chýb a správanie bufferovania, čo je dôležité pri používaní podobnom toku. Segmenty orientované na bajty lícujú s buffermi, tie orientované na bity nie.
V praxi režim volí protokol, nie operátor. Dátový kanál VPN používa konštrukciu, ktorú predpisuje jeho protokol, s vlastnou ochranou integrity, a zoznam knižnice len hovorí, aké názvy existujú.
Ako čítať nekvalifikovanú značku CFB
Nekvalifikovaná značka CFB potrebuje kontext svojej implementácie. V hlavičkách OpenSSL 1.0.2 je EVP_aes_128_cfb makro pre EVP_aes_128_cfb128, s prislúchajúcimi aliasmi pre kľúče 192 a 256 bitov. To je konvencia pomenovania API z jednej vetvy, nie tvrdenie, že každá knižnica, formát súboru alebo GUI rozširuje skratku rovnako. Skontrolujte hlavičku alebo dokumentáciu verzie, ktorú máte pred sebou.
Ak starý profil hovorí CFB a druhá strana to prijme, dohodnuté parametre sa niekde zaznamenajú: v logu, výpise konfigurácie, odpovedi API. Čítajte ich, namiesto toho, aby ste veľkosť segmentu odvodzovali z reťazca zobrazenia.
Čo vám názov režimu nepovie
Názov opisuje správanie šifrovania a nič iné. VPN stále potrebuje ochranu integrity, odvodenie kľúča a autentifikáciu partnera, a CFB neposkytuje ani jedno. Ani výmena CFB8 za CFB1 nie je kozmetická zmena: správanie na linke sa líši a obe strany musia podporovať tú istú konštrukciu. Ani názov v knižnici nedokazuje, že nasadená brána ho prijíma pre svoj dátový kanál.
Pre všetko, čo sa udržiava, používajte úplné usporiadanie ochrany protokolu a politiku operátora, a zaznamenávajte verzie knižnice a brány, presnú možnosť a dohodnutý výsledok. Starý názov vysvetľuje, čo čítate; neospravedlňuje oživenie konfigurácie.