Šifrování databáze

Šifrování databáze  – použití šifrovací technologie pro převod informací uložených v databázi (DB) na šifrovaný text , který znemožňuje čtení osobám, které nemají šifrovací klíče [1] .

Hlavní přístupy lze klasifikovat podle úrovně, na které dochází k šifrování [1] [2] :

  1. šifrování na úrovni úložiště,
  2. šifrování na úrovni databáze,
  3. Šifrování na úrovni aplikace.

Šifrování na úrovni úložiště

Také se nazývá „transparentní“ ( anglicky  Transparent Database Encryption , TDE). Tato technologie se používá například v produktech Microsoft a Oracle pro šifrování a dešifrování vstupu/výstupu databázových souborů . Data jsou šifrována před zápisem na disk a dešifrována při načítání do paměti, což řeší problém ochrany "neaktivních" dat, ale nezajišťuje bezpečnost informací během přenosu komunikačními kanály nebo během používání. Výhodou TDE je, že šifrování a dešifrování jsou pro aplikace transparentní, to znamená, že je není třeba upravovat [3] [4] [5] .

Implementace Microsoftu

TDE se aplikuje na databázové soubory a transakční protokol na úrovni stránky. Stránky jsou šifrovány pomocí speciálního šifrovacího klíče symetrické databáze (  Database Encryption Key ), chráněného certifikátem, který je uložen v hlavní databázi a zašifrován svým hlavním klíčem, nebo asymetrickým klíčem, chráněným pomocí Extensible Key Manager ( EKM  ). Použití TDE nezvětšuje velikost šifrované databáze a dopad na výkon je zanedbatelný [3] .

Implementace Oracle

TDE se aplikuje na databázové soubory na úrovni sloupců. Pro tabulku obsahující sloupce vybrané k šifrování je vytvořen symetrický šifrovací klíč chráněný hlavním klíčem, který je uložen na bezpečném místě mimo databázi, tzv. peněženka ( anglicky  Wallet ). Zašifrované klíče tabulek jsou obsaženy v Data Dictionary [ 4 ] . 

Šifrování systému souborů

Je důležité si uvědomit, že tradiční metody šifrování databáze obvykle šifrují a dešifrují obsah databáze, která je spravována systémem správy databáze, který běží nad operačním systémem [6] . To snižuje zabezpečení informací, protože šifrovanou databázi lze provozovat na otevřeném nebo potenciálně zranitelném operačním systému . Microsoft například používá technologii Encrypting File System (EFS) k zajištění šifrování na úrovni souborů .  Každý objekt je zašifrován jedinečným šifrovacím klíčem souboru , chráněným certifikátem uživatele. Tento certifikát může být složený, což umožňuje přístup k souboru více uživatelům. Vzhledem k rozšíření rozsahu šifrování může použití EFS snížit výkon a zkomplikovat správu, protože správce systému potřebuje přístup k operačnímu systému, aby mohl používat EFS [7] [8] .  

Šifrování na úrovni databáze

Jedním z příkladů šifrování na úrovni databáze je šifrování na úrovni sloupců ( Eng.  Column-Level Encryption ), které zapisuje již zašifrovaná data do databáze a samotné databáze – bez dalšího šifrování – do úložiště. Rysem šifrování na úrovni sloupců je použití jediného klíče při zpracování dat jednoho sloupce. Klíče mohou být přiřazeny uživatelům a chráněny heslem, aby se zabránilo automatickému dešifrování, ale to komplikuje správu databáze. Při použití šifrování na úrovni sloupců je třeba provést změny v klientských aplikacích. Navíc se snižuje výkon databáze [4] [7] .

Šifrování na úrovni aplikace

Při šifrování na úrovni aplikace je proces šifrování prováděn aplikací, která vytváří nebo upravuje data, to znamená, že k němu dochází před zapsáním do databáze. Tento přístup je flexibilnější, protože aplikace zná role nebo oprávnění uživatelů a také informace o tom, která data jsou soukromá [8] [9] .

Výhody

Jednou z hlavních výhod šifrování zabudovaného do aplikace je, že není potřeba používat další řešení k ochraně dat při přenosu přes komunikační kanály, protože jsou odesílána již zašifrovaná. Další výhodou této metody je, že krádež důvěrných informací se stává obtížnější, protože útočník musí mít přístup k aplikaci, aby mohl dešifrovat data uložená v databázi [8] [9] .

Nevýhody

Pro implementaci šifrování na aplikační úrovni je nutné provést změny nejen v samotné aplikaci, ale také v databázi. Problémy mohou být i s výkonem databáze, která například ztrácí schopnost indexovat a vyhledávat. Další nevýhodou je správa klíčů v systému s takovýmto šifrováním. Vzhledem k tomu, že databázi může používat více aplikací, jsou klíče uloženy na mnoha místech, takže jejich špatná správa může vést ke krádeži informací nebo nemožnosti je použít. Kromě toho, pokud je potřeba změnit klíč, musíte nejprve dešifrovat všechna data pomocí starého klíče a poté je znovu zašifrovat pomocí nového klíče [8] [9] .

CryptoDB


Je to jeden příklad šifrování na úrovni aplikace. V architektuře lze vyčlenit [10] : proxy server , ke kterému je zabezpečený přístup z aplikace, server s SQL databází, ve které jsou šifrovány sloupce. Požadavky z proxy serveru jdou na tento databázový server (eng. DBMS server) přes kanál, který má být nezabezpečený. Rozdíl oproti výše uvedenému šifrování na úrovni sloupců je v tom, že server nedešifruje data sloupce, navíc proxy server neposílá klíče ani jiné informace, které serveru umožňují sloupce dešifrovat. Požadavky z proxy serveru vypadají z pohledu serveru s databází jako běžné příkazy pro práci s SQL databází. Server proto může mít hotové řešení např. v podobě CryptDB MySQL používané autory . Protože server DBMS může provádět funkce pouze na šifrovaných datech, úkolem serveru proxy je převádět požadavky uživatelů na ekvivalentní požadavky a operace, které pracují se šifrovanými daty. Tento problém se řeší pomocí různých tříd šifer, jejichž společným znakem je zachování určité vlastnosti prostých textů. Některé z nich jsou uvedeny níže. [deset]

Třída DET

Deterministické šifry, z anglického deterministic encryption. Skládá se ze všech šifer, které mají následující vlastnost: se stejným klíčem jsou stejným způsobem zašifrovány i stejné otevřené texty.

Pokud jsou tedy všechna data ve sloupci zašifrována takovouto šifrou, pak operace na sloupci prostých dat, které vyžadují porovnání dvou hodnot, jsou ekvivalentní operacím na sloupci zašifrovaných dat. Například, pokud chce uživatel spočítat počet řádků s hodnotou ve sloupci Name rovnou „Alice“, pak proxy nahradí pouze parametry v požadavku uživatele, nikoli operátory. "Alice" - na odpovídající šifrový text. Tato třída šifry vám umožňuje spouštět dotazy obsahující mimo jiné: COUNT, GROUP BY, DISTINCT a SELECT s predikátem rovnosti nebo nerovnosti. Příkladem deterministické šifry je bloková šifra s pevným inicializačním vektorem (anglicky IV, inicializační vektor) [11] .

Třída HOM

Homomorfní šifry, z anglického homomorphic encryption. Tato třída se skládá ze šifer, které [12] transformují hodnoty ve sloupcích tak, aby operace na nich jednoznačně odpovídala, případně jiné, operaci se šifrovými texty. Architektura CryptDB používá kryptografický systém Peye , který vám umožňuje vypočítat šifrový text součtu hodnot, pokud je znám šifrový text každé z nich, konkrétně:

Pokud je tedy sloupec zašifrován homomorfním šifrováním, lze součet zvolených hodnot vypočítat dešifrováním součinu odpovídajících šifrovaných textů. Proto proxy server přeloží uživatelův požadavek SUM na produkt (vyjádřený pomocí EXP, LOG) a poté s odpovědí z databázového serveru jej dešifruje a vydá uživateli.

Třída OPE

Šifry pro zachování pořádku, z angličtiny kódování chránící řád. Šifra z této třídy působí na data ve sloupci tak, že .

Pokud je tedy sloupec zašifrován šifrou třídy OPE, pak volání ORDER BY provedené na prostém textu sloupce je ekvivalentní volání na zašifrovaném sloupci. Pro taková data jsou k dispozici operace s rozsahem hodnot BETWEEN a také MIN, MAX, RANK. Příkladem takového šifrování by bylo zobrazení celého čísla p na číslo c, které je součtem p pseudonáhodných kladných čísel [13] .

Odolnost proti kryptoútokům

Mezi nevýhody výše popsaných tříd šifer a architektury patří zejména zranitelnost vůči některým známým typům útoků. Naveed , 2015 uvažuje útočníka, který má přístup k šifrovaným textům a má určité apriorní znalosti o distribuci otevřeného textu. Předpoklad se shoduje v reálném životě, například databáze může obsahovat informace lékařského charakteru a útočník kromě přímého přístupu do šifrované databáze může mít informace ze sčítání lidu nebo z podobných institucí. Tedy znát rozložení např. krevních skupin. Na základě předpokladu, co přesně má útočník k dispozici, navrhují autoři několik metod pro obnovu dat ve sloupcích zašifrovaných jak šifrou DET, tak šifrou OPE. Vzhledem k tomu, že deterministická šifra mapuje stejný šifrovaný text na stejnou hodnotu ve sloupci, bude rozložení četnosti dat v šifrovaném sloupci odpovídat distribuci prostého textu. Klasická frekvenční analýza má složitost , kde N je velikost celé sady otevřených textů. To znamená, že takový útok je účinný, pokud je N malé. Útok podobný frekvenční analýze je aplikován na sloupec se šifrováním zachovávajícím pořadí, ale místo konkrétních hodnot frekvence se porovnává pořadí v sadě šifrovaného textu sloupce s hodností slova v sadě prostého textu. Jak již bylo uvedeno, útok je nejúčinnější pro sloupce, kde je soubor možných otevřených textů zastoupen nejúplněji [14] .

Byla také vyvinuta metoda útoku pomocí empirické distribuční funkce (ECDF), která je vhodnější pro napadení sloupce s nerovnoměrně prezentovanými šifrovými texty, a metoda, která bere v úvahu informace z více sloupců a také jejich korelaci [15] . Kromě toho práce Minaud, 2019 uvádí schéma pro částečnou obnovu dat ve sloupci OPŽP, pokud jsou pouze informace o všech dotazech. Algoritmus je na rozdíl od předchozích škálovatelný, protože N [14] není zahrnuto v jeho odhadu složitosti .

Navíc ani šifry DET ani OPE, stejně jako všechny deterministické šifry, nemají vlastnost nerozlišitelnosti. Abychom pochopili, zda je daný šifrovaný text zašifrovanou zprávou, nebo zda si útočník potřebuje vyžádat šifrové texty pro obě zprávy, což je při použití otevřeného šifrování proveditelné, a porovnat je s daným šifrovým textem H [14] .

Symetrické a asymetrické šifrování databáze

Existují dva hlavní způsoby šifrování informací: symetrické a asymetrické. Hlavním principem v nich je, že vysílač a přijímač zná předem šifrovací algoritmus a klíč ke zprávě, aniž by věděl, která informace je nesmyslná sada znaků [8] [16] .

Symetrické šifrování

Symetrické šifrování (šifrování soukromým klíčem) je nejstarší a nejznámější metoda. V kontextu databází zahrnuje soukromý klíč používaný k šifrování a dešifrování informací uložených v databázi a načtených z databáze. Tento klíč změní data takovým způsobem, že je nelze přečíst bez dešifrování. Zjevnou nevýhodou této metody je, že může dojít k úniku důvěrných informací, pokud je klíč v rukou osob, které by k datům neměly mít přístup. Použití pouze jednoho klíče v procesu šifrování má však výhodu v rychlosti a snadném použití této technologie [8] [16] [17] .

Asymetrické šifrování

Problém dostat tajný klíč do nesprávných rukou při přenosu komunikačními kanály, které má šifrování privátního klíče, je vyřešen v asymetrickém šifrování (šifrování veřejného klíče), ve kterém jsou dva klíče navzájem příbuzné - jedná se o pár klíčů . Veřejný klíč zná každý a může být přenášen přes nezabezpečený komunikační kanál. Zatímco druhý, soukromý klíč, je uchováván v tajnosti a je jedinečný pro každého uživatele. Veřejný klíč se používá k šifrování dat a soukromý klíč k jejich dešifrování. Asymetrické šifrování je bezpečnější než symetrické šifrování, ale zároveň je výrazně pomalejší [8] [16] . Mezi další nevýhody patří skutečnost, že deterministické asymetrické šifrování, které se používá v databázích, ve kterých probíhá šifrování na aplikační vrstvě (viz CryptDB ), je zranitelné vůči útoku na základě zvoleného otevřeného textu [18] .

Viz také

Poznámky

  1. ↑ 1 2 Luc Bouganim, Yanli Guo. Šifrování databáze  // Encyklopedie kryptografie a bezpečnosti  / Ed. od Henka C. A. van Tilborga a Sushila Jajodia. - Springer, 2011. - S. 307-312. - ISBN 978-1-4419-5906-5 .
  2. ↑ Typy metod šifrování databáze  . Solarwinds MSP (10. května 2019). Staženo: 25. prosince 2019.
  3. 1 2 Transparentní šifrování dat (TDE) . microsoft.com .
  4. 1 2 3 Transparentní šifrování dat . oracle.com .
  5. Postgres a transparentní šifrování dat (TDE) . enterprisedb.com .
  6. Datum, 2005 .
  7. 1 2 Šifrování databáze v SQL Server 2008 Enterprise Edition . microsoft.com .
  8. 1 2 3 4 5 6 7 Baccam, Tanya Transparentní šifrování dat: Nové technologie a nejlepší postupy pro šifrování databází . sans.org . Institut SANS (duben 2010). Staženo: 25. října 2015.
  9. 1 2 3 Šifrování na úrovni aplikace (mrtvý odkaz) . thales-esecurity.com . Datum přístupu: 14. prosince 2016. Archivováno z originálu 3. srpna 2016. 
  10. ↑ 1 2 Raluca Ada Popa, Catherine MS Redfield, Nickolai Zeldovich, Hari Balakrishnan. CryptDB: zpracování dotazů na šifrovanou databázi  //  Komunikace ACM. — 2012-09-01. — Sv. 55 , iss. 9 . — S. 103 . - doi : 10.1145/2330667.2330691 .
  11. Linda A. Bertram, Gunther van Dooble. Nomenclatura - Encyklopedie moderní kryptografie a internetové bezpečnosti: Od automatického šifrování a exponenciálního šifrování ke klíčům s nulovými znalostmi. — ISBN 3749461686 .
  12. Yi, Xun (vysokoškolský učitel), . Kapitola 2 // Homomorfní šifrování a aplikace . — Cham. — 1 online zdroj (xii, 126 stran) str. - ISBN 978-3-319-12229-8 , 3-319-12229-0.
  13. Rakesh Agrawal, Jerry Kiernan, Ramakrishnan Srikant, Yirong Xu. Ochrana číselných dat šifrováním objednávek  //  Sborník příspěvků z mezinárodní konference ACM SIGMOD 2004 o správě dat - SIGMOD '04. - Paříž, Francie: ACM Press, 2004. - S. 563 . — ISBN 978-1-58113-859-7 . - doi : 10.1145/1007568.1007632 .
  14. ↑ 1 2 3 Útok týdne: prohledávatelné šifrování a stále se rozšiřující funkce úniku .
  15. F. Betül Durak, Thomas M. DuBuisson, David Cash. Co dalšího odhalí šifrování s odhalením objednávky?  (eng.)  // Sborník z konference ACM SIGSAC o bezpečnosti počítačů a komunikací 2016 - CCS'16. - Vídeň, Rakousko: ACM Press, 2016. - S. 1155-1166 . - ISBN 978-1-4503-4139-4 . doi : 10.1145 / 2976749.2978379 .
  16. 1 2 3 Popis symetrického a asymetrického šifrování . microsoft.com .
  17. Korobeinikov, 2004 , s. 56.
  18. Alexandra Boldyreva, Nathan Chenette, Younho Lee, Adam O'Neill. Symetrické šifrování pro zachování pořádku  // Pokroky v kryptologii - EUROCRYPT 2009 / Antoine Joux. - Berlín, Heidelberg: Springer Berlin Heidelberg, 2009. - T. 5479 . — S. 224–241 . - ISBN 978-3-642-01000-2 , 978-3-642-01001-9 . - doi : 10.1007/978-3-642-01001-9_13 .

Literatura

  • Datum CJ Úvod do databázových systémů = Úvod do databázových systémů. - 8. vyd. - M. : Williams, 2005. - 1328 s. - ISBN 5-8459-0788-8 (ruština) 0-321-19784-4 (anglicky).
  • Korobeinikov A. G., Gatchin Yu. A. Matematické základy kryptografie. Tutorial. - Petrohrad. : SPb GU ITMO, 2004. - 106 s.


Odkazy