CFB1 versus CFB8 versus CFB128: jde o velikost zpětné vazby, ne o velikost klíče
Číslo za CFB je krok zpětné vazby, nikoli délka klíče: CFB1, CFB8 a CFB128 používají blok o 128 bitech. Čtěte stará označení, aniž byste si vymýšleli slabé klíče.
Označení jako AES-256-CFB1 nese dvě čísla a ta odpovídají na různé otázky. 256 je délka klíče AES. A 1 je zpětná vazba, tedy velikost segmentu, u CFB: vlastnost toho, jak režim posouvá svůj stav. Čte-li se 1 jako délka klíče, vypadá označení jako katastrofální chybná konfigurace, a proto se otázka pořád vrací.
Než označení posoudíte, rozhodněte, na kterou ze tří veličin se díváte: velikost klíče, velikost bloku, nebo velikost segmentu. Jen první je bezpečnostní parametr v obvyklém smyslu.
Tři čísla, tři veličiny
AES přijímá klíče o 128, 192 nebo 256 bitech a má blok o 128 bitech, ať zvolíte cokoli. Velikost bloku patří AES, ne režimu. Přípona CFB je třetí veličina: kolik dat režim spotřebuje a vrátí při každém kroku. Dokumentace OpenSSL k AES tyto velikosti posunu pro varianty CFB výslovně uvádí.
CFB1 vrací jeden bit najednou, CFB8 jeden bajt, CFB128 celý blok. Všechny tři uvnitř používají stejnou blokovou šifru o 128 bitech; mění se, kolik bitů každého vypočteného bloku se při operaci použije. Proto přípona mění cenu a chování ukládání do vyrovnávací paměti, nikoli sílu klíče.
| 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 |
Proč se velikost bloku nikdy nemění
AES je bloková šifra s pevným blokem o 128 bitech a režimy jsou konstrukce kolem ní. Žádný z nich blok nezmenšuje, aby odpovídal velikosti segmentu. Implementace CFB1 stále počítá celý blok AES a vezme jeden bit výsledku. Ostatní bity se pro tento krok zahodí, a právě tam je cena za efektivitu.
Jednobitová zpětná vazba tedy neznamená jednobitový klíč a označení nelze řadit podle přípony. CFB128 není čtyřikrát silnější než CFB32; zpracovává větší segmenty.
Co velikost segmentu skutečně mění
Velikost segmentu mění, kolik šifrovaného textu se při kroku vrátí a kolik otevřeného textu každý krok unese. Mění také šíření chyb a chování vyrovnávací paměti, což je důležité pro použití podobné proudu. Segmenty orientované na bajty se srovnávají s buffery, ty orientované na bity ne.
V praxi volí režim protokol, ne operátor. Datový kanál VPN používá konstrukci, kterou určuje jeho protokol, s vlastní ochranou integrity, a seznam v knihovně vám jen řekne, která jména existují.
Čtení neupřesněného označení CFB
Neupřesněné označení CFB potřebuje kontext své implementace. V hlavičkách OpenSSL 1.0.2 je EVP_aes_128_cfb makrem pro EVP_aes_128_cfb128, s odpovídajícími aliasy pro klíče o 192 a 256 bitech. To je konvence pojmenování API z jedné větve, nikoli tvrzení, že každá knihovna, formát souboru nebo GUI zkratku rozvádí stejně. Zkontrolujte hlavičku nebo dokumentaci verze, kterou máte před sebou.
Pokud starý profil říká CFB a protějšek to přijme, vyjednané parametry se někde zaznamenávají: v logu, výpisu konfigurace, odpovědi API. Čtěte je, místo abyste velikost segmentu odvozovali z textu na displeji.
Co vám jméno režimu neřekne
Označení popisuje chování šifrování a nic jiného. VPN stále potřebuje ochranu integrity, odvození klíčů a autentizaci protějšku a CFB neposkytuje žádné z toho. Ani výměna CFB8 za CFB1 není kosmetická: chování v síti se liší a obě strany musí podporovat stejnou konstrukci. A jméno v knihovně nedokazuje, že nasazená brána je pro její datový kanál přijímá.
U všeho udržovaného používejte úplné zabezpečení protokolu a politiku operátora a zaznamenejte verze knihovny a brány, přesnou volbu a vyjednaný výsledek. Staré označení vysvětluje, co čtete; neospravedlňuje oživení konfigurace.