Teorie šifrování disku - Disk encryption theory

Šifrování disku je zvláštním případem ochrany dat v klidovém stavu, když je paměťovým médiem sektorově adresovatelné zařízení (např. Pevný disk). Tento článek představuje kryptografické aspekty problému. Přehled najdete v tématu šifrování disku. Diskuse o různých softwarových balíčcích a hardwarových zařízeních věnovaných tomuto problému najdete v části software pro šifrování disku a hardware pro šifrování disku.

Definice problému

Cílem metod šifrování disku je poskytnout tři odlišné vlastnosti:

  1. Data na disku by měla zůstat důvěrná .
  2. Načítání a ukládání dat by měly být rychlé operace, bez ohledu na to, kde na disku jsou data uložena.
  3. Metoda šifrování by neměla plýtvat diskovým prostorem (tj. Velikost úložiště použitá pro šifrovaná data by neměla být výrazně větší než velikost prostého textu ).

První vlastnost vyžaduje definování protivníka, od kterého jsou data utajována. Nejsilnější protivníci studovaní v oblasti šifrování disků mají tyto schopnosti:

  1. mohou číst surový obsah disku kdykoli;
  2. mohou požádat disk o šifrování a uložení libovolných souborů podle svého výběru;
  3. a mohou upravit nevyužité sektory na disku a poté požádat o jejich dešifrování.

Metoda poskytuje dobrou důvěrnost, pokud jedinou informací, kterou může protivník v průběhu času určit, je, zda se údaje v sektoru od posledního pohledu změnily nebo nezměnily.

Druhá vlastnost vyžaduje rozdělení disku na několik sektorů , obvykle 512 bajtů (4096 bitů), které jsou šifrovány a dešifrovány nezávisle na sobě. Pokud mají data zůstat důvěrná, musí být metoda šifrování vyladitelná ; žádné dva sektory by neměly být zpracovávány přesně stejným způsobem. Jinak by protivník mohl dešifrovat libovolný sektor disku tak, že jej zkopíroval do nepoužívaného sektoru disku a požádal o jeho dešifrování.

Třetí vlastnost je obecně nekontroverzní. Nepřímo však zakazuje použití proudových šifer , protože proudové šifry pro svou bezpečnost vyžadují, aby nebyl dvakrát použit stejný počáteční stav (což by byl případ, kdyby byl sektor aktualizován jinými daty); to by tedy vyžadovalo metodu šifrování pro uložení samostatných počátečních stavů pro každý sektor na disku - zdánlivě ztráta místa. Alternativa, bloková šifra , je omezena na určitou velikost bloku (obvykle 128 nebo 256 bitů). Z tohoto důvodu šifrování disku hlavně studuje režimy řetězení , které rozšiřují délku šifrovacího bloku tak, aby pokryl celý sektor disku . Již uvedené úvahy způsobují, že několik dobře známých režimů zřetězení je nevhodných: režim ECB , který nelze vylepšit, a režimy, které mění blokové šifry na šifry proudu, jako je režim CTR .

Tyto tři vlastnosti neposkytují žádnou záruku integrity disku; to znamená, že ti neřeknou, zda tvůj šifrovací text změnil protivník. Částečně je to proto, že absolutní jistota integrity disku je nemožná: bez ohledu na to mohl protivník vždy vrátit celý disk do předchozího stavu a obejít jakékoli takové kontroly. Je-li požadována nějaká neabsolutní úroveň integrity disku, lze toho dosáhnout v rámci šifrovaného disku na základě jednotlivých souborů pomocí ověřovacích kódů zpráv .

Blokovat režimy založené na šifře

Stejně jako většina šifrovacích schémat využívá šifrování disku založené na blokové šifře provozní režimy , které umožňují šifrování většího množství dat, než je velikost bloku šifry (obvykle 128 bitů). Režimy jsou tedy pravidly, jak opakovaně používat jednoblokové operace šifer.

Šifrování bloků (CBC)

Chaining block blocking (CBC) is a common chaining mode in which the previous block's ciphertext is xored with the current block's plaintext before encryption:

Protože pro první blok neexistuje „šifrovací text předchozího bloku“, je třeba použít inicializační vektor (IV) jako . Díky tomu je CBC v některých ohledech použitelný.

CBC trpí určitými problémy. Například pokud jsou předpovědní hodnoty předvídatelné, může protivník na disku zanechat „vodoznak“, tj. Uložit speciálně vytvořený soubor nebo kombinaci souborů identifikovatelných i po šifrování. Přesná metoda konstrukce vodoznaku závisí na přesné funkci poskytující IV, ale obecným receptem je vytvoření dvou šifrovaných sektorů se stejnými prvními bloky a ; tito dva jsou pak navzájem příbuzní . Šifrování je tedy totožné se šifrováním a zanechává na disku vodoznak. Přesný vzor „stejný-jiný-stejný-odlišný“ na disku lze poté změnit, aby byl vodoznak jedinečný pro daný soubor.

K ochraně před útokem vodoznaku se používá šifrovací nebo hashovací funkce ke generování IV z klíče a aktuálního čísla sektoru, takže protivník nemůže IV předpovědět. Přístup ESSIV zejména používá blokovou šifru v režimu CTR ke generování IV.

Šifrovaný vektor inicializace solného sektoru (ESSIV)

ESSIV je metoda pro generování inicializačních vektorů pro šifrování bloků pro použití při šifrování disku. Obvyklé metody pro generování IV jsou předvídatelné sekvence čísel založené například na časovém razítku nebo čísle sektoru a zabraňují určitým útokům, jako je útok vodoznakem . ESSIV předchází takovým útokům generováním IV z kombinace sektoru číslo SN s hash klíče. Díky kombinaci s klíčem ve formě hash je IV nepředvídatelný.

ESSIV navrhl Clemens Fruhwirth a je integrován do linuxového jádra od verze 2.6.10, ačkoli podobné schéma se používá ke generování IV pro swapové šifrování OpenBSD od roku 2000.

ESSIV je volitelně podporován systémy šifrování disků dm-crypt a FreeOTFE .

Útok na tvárnost

Zatímco CBC (s nebo bez ESSIV) zajišťuje důvěrnost, nezaručuje integritu šifrovaných dat. Pokud protivník zná prostý text, je možné změnit každý druhý blok prostého textu na hodnotu vybranou útočníkem, zatímco bloky mezi nimi se změní na náhodné hodnoty. To lze použít pro praktické útoky na šifrování disku v režimu CBC nebo CBC-ESSIV.

Liskov, Rivest a Wagner (LRW)

Aby se zabránilo tak komplikovaným útokům, byly zavedeny různé režimy provozu: vyladitelné šifrování úzkého bloku (LRW a XEX) a šifrování širokého bloku (CMC a EME).

Zatímco účelem obvyklé blokové šifry je napodobit náhodnou permutaci pro jakýkoli tajný klíč , účelem vyladitelného šifrování je napodobit náhodnou permutaci pro jakýkoli tajný klíč a jakékoli známé vyladění . Vyladitelné šifrování úzkého bloku (LRW) je instancí režimu operací zavedeného Liskovem, Rivestem a Wagnerem (viz věta 2). Tento režim používá dva klíče: je klíč pro blokovou šifru a je dalším klíčem stejné velikosti jako blok. Například pro AES s 256bitovým klíčem je 256bitové číslo a 128bitové číslo. Šifrovací blok s logickým indexem (vyladit) používá následující vzorec:

Zde se násobení a sčítání provádí v konečném poli ( pro AES). U některých předpočítání je vyžadována pouze jediná násobení na sektor (všimněte si, že přidání v binárním konečném poli je jednoduché bitové přidání, známé také jako xor) :, kde jsou předpočítány pro všechny možné hodnoty . Tento režim provozu potřebuje pouze jedno šifrování na blok a chrání před všemi výše uvedenými útoky s výjimkou drobného úniku: pokud uživatel změní jeden blok prostého textu v sektoru, změní se pouze jeden blok šifry. (Všimněte si, že se nejedná o stejný únik, jaký má režim ECB: s režimem LRW jsou stejné holé texty v různých pozicích zašifrovány do různých ciphertexts.)

U LRW existují určité bezpečnostní problémy a tento provozní režim byl nyní nahrazen XTS.

LRW využívá společnost BestCrypt a je podporována jako volba pro systémy šifrování disků dm-crypt a FreeOTFE .

Xor – encrypt – xor (XEX)

Další vyladitelný šifrovací režim, XEX ( xor – encrypt – xor ), byl navržen společností Rogaway, aby umožňoval efektivní zpracování po sobě jdoucích bloků (s ohledem na použitou šifru) v rámci jedné datové jednotky (např. Sektoru disku). Vyladění je reprezentováno jako kombinace adresy sektoru a indexu bloku v sektoru (původní režim XEX navržený Rogawayem umožňuje několik indexů). Ciphertext,, je získán pomocí:

kde:

je prostý text,
je číslo sektoru,
je primitivní prvek definovaný polynomem ; tj. číslo 2 ,
je číslo bloku v sektoru.

Základní operace v režimu LRW (šifra AES a multiplikace pole Galois ) jsou stejné jako operace používané v režimu Galois / Counter (GCM), což umožňuje kompaktní implementaci univerzálního hardwaru LRW / XEX / GCM.

Šifrování v režimu XEX.svg

XEX má slabost.

Režim vyladěného číselníku založený na XEX s krádežemi šifrovacích textů (XTS)

Ciphertext stealing poskytuje podporu pro sektory, jejichž velikost není dělitelná velikostí bloku, například 520bajtové sektory a 16bajtové bloky. XTS-AES byl standardizován 19. 12. 2007 jako IEEE P1619 . Standard podporuje použití jiného klíče pro šifrování IV než pro blokové šifrování; to je v rozporu se záměrem XEX a zdá se, že má kořeny v nesprávné interpretaci původního dokumentu XEX, ale nepoškozuje bezpečnost. Výsledkem je, že uživatelé, kteří chtějí šifrování AES-256 a AES-128, musí zadat 512 bitů, respektive 256 bitů klíče.

Šifrování v režimu XTS.svg

27. ledna 2010 společnost NIST vydala speciální publikaci (SP) 800-38E v konečné podobě. SP 800-38E je doporučení pro provozní režim XTS-AES, jak je standardizováno IEEE Std 1619-2007, pro kryptografické moduly. Publikace schvaluje režim XTS-AES algoritmu AES s odkazem na IEEE Std 1619-2007, s výhradou jednoho dalšího požadavku, který omezuje maximální velikost každé šifrované datové jednotky (obvykle sektoru nebo bloku disku ) na 2 20 AES bloky. Podle SP 800-38E: „Při absenci autentizace nebo kontroly přístupu poskytuje XTS-AES větší ochranu než ostatní schválené režimy zachování důvěrnosti proti neoprávněné manipulaci se šifrovanými daty.“

XTS je podporován programy BestCrypt , Botan , NetBSD cgd, dm-crypt , FreeOTFE , TrueCrypt , VeraCrypt , DiskCryptor , FreeBSD 's geli , OpenBSD softraid disk encryption software, OpenSSL , Mac OS X Lion 's FileVault 2, Windows 10 ' s BitLocker a wolfCrypt .

Slabiny XTS

Režim XTS je citlivý na manipulaci s daty a neoprávněnou manipulaci a aplikace musí použít opatření k detekci modifikací dat, pokud je manipulace a neoprávněná manipulace znepokojující: „... protože neexistují žádné ověřovací značky, bude jakýkoli šifrovací text (původní nebo upravený útočníkem) dešifrován jako nějaký prostý text a neexistuje žádný vestavěný mechanismus pro detekci změn. Nejlepší je udělat, je zajistit, aby jakákoli změna ciphertextu zcela náhodně prostý text náhodila, a spoléhat se na aplikaci, která používá tuto transformaci, aby zahrnovala dostatečnou redundanci ve svém holém textu detekovat a zahodit takové náhodné holé texty. “ To by vyžadovalo udržování kontrolních součtů pro všechna data a metadata na disku, jak je tomu v ZFS nebo Btrfs . V běžně používaných souborových systémech, jako jsou ext4 a NTFS, jsou však proti neoprávněné manipulaci chráněna pouze metadata, zatímco detekce neoprávněné manipulace s daty neexistuje.

Režim je citlivý na analýzu provozu, přehrávání a náhodné útoky na sektory a 16bajtové bloky. Protože je daný sektor přepsán, mohou útočníci sbírat jemnozrnné (16 bajtů) šifrovací texty, které lze použít k analýze nebo přehrávání útoků (při 16bajtové granularitě). Bylo by možné definovat celoplošné blokové šifry, bohužel se sníženým výkonem (viz níže).

CBC – mask – CBC (CMC) a ECB – mask – ECB (EME)

CMC a EME chrání i před malým únikem zmíněným výše pro LRW. Cena bohužel představuje dvojnásobné zhoršení výkonu: každý blok musí být dvakrát šifrován; mnozí to považují za příliš vysoké náklady, protože stejnému úniku na úrovni sektoru je stejně nevyhnutelný.

CMC, představený Halevi a Rogaway, je zkratka pro CBC – mask – CBC: celý sektor šifrovaný v CBC režimu (s ), ciphertext je maskovaný xoringem a znovu šifrovaný v CBC režimu počínaje od posledního bloku. Když je základní blokovou šifrou silná pseudonáhodná permutace (PRP), pak je na úrovni sektoru schéma vylepšitelnou PRP. Jedním problémem je, že k dešifrování je nutné postupně předat všechna data dvakrát.

Za účelem vyřešení tohoto problému představili Halevi a Rogaway paralelizovatelnou variantu zvanou EME (ECB – mask – ECB). Funguje to následujícím způsobem:

  • jsou holé texty jsou XORed s , posunut o jinou výši doleva, a jsou šifrovány: ;
  • maska ​​se vypočítá:, kde a ;
  • mezifázové šifry jsou maskované: pro a ;
  • jsou vypočteny konečné šifrové texty: pro .

Všimněte si, že na rozdíl od LRW a CMC existuje pouze jeden klíč .

CMW a EME byly považovány za standardizaci podle SISWG . EME je patentován, a proto není upřednostňován jako primární podporovaný režim.

Patenty

Zatímco ověřené šifrovací schéma IAPM poskytuje šifrování i ověřovací značku, šifrovací komponenta v režimu IAPM zcela popisuje výše uvedená schémata LRW a XEX, a tedy XTS bez aspektu krádeže šifrovacího textu . To je podrobně popsáno na obrázcích 8 a 5 amerického patentu 6 963 976.

Viz také

Reference

Další čtení

externí odkazy