Adatbázis titkosítás

Adatbázistitkosítás  - titkosítási technológia alkalmazása az adatbázisban (DB) tárolt információk titkosított szöveggé alakítására , amely lehetetlenné teszi az olvasását olyan személyek számára, akik nem rendelkeznek titkosítási kulccsal [1] .

A fő megközelítések osztályozhatók a titkosítás szintje szerint [1] [2] :

  1. Tárhely szintű titkosítás,
  2. Adatbázis szintű titkosítás,
  3. Alkalmazás szintű titkosítás.

Tárhely szintű titkosítás

Más néven "átlátszó" ( angol  Transparent Database Encryption , TDE). Ezt a technológiát például a Microsoft és az Oracle termékek használják adatbázisfájlok be- és kimenetének titkosítására és visszafejtésére . Az adatokat a lemezre írás előtt titkosítják, és a memóriába olvasás közben visszafejtik, ami megoldja az "inaktív" adatok védelmének problémáját, de nem biztosítja az információ biztonságát a kommunikációs csatornákon történő átvitel vagy a használat során. A TDE előnye, hogy a titkosítás és a visszafejtés átlátható az alkalmazások számára, vagyis nem kell módosítani [3] [4] [5] .

Microsoft implementáció

A TDE oldalszinten kerül alkalmazásra az adatbázisfájlokra és a tranzakciós naplóra. Az oldalak titkosítása speciális szimmetrikus adatbázis - titkosítási kulccsal ( Database Encryption Key ) történik, amelyet a fő adatbázisban tárolt és a főkulccsal titkosított tanúsítvány véd, vagy egy aszimmetrikus kulccsal, amelyet az Extensible Key Manager ( EKM ) véd. A TDE használata nem növeli a titkosított adatbázis méretét, és a teljesítményre gyakorolt ​​hatás elhanyagolható [3] .   

Az Oracle megvalósítása

A TDE oszlop szinten kerül alkalmazásra az adatbázisfájlokra. A titkosításra kiválasztott oszlopokat tartalmazó táblázathoz egy, a mesterkulccsal védett szimmetrikus titkosítási kulcs jön létre, amelyet az adatbázison kívül egy biztonságos helyen, úgynevezett pénztárcán tárolnak ( angol  Wallet ). A táblák titkosított kulcsait a Data Dictionary [ 4 ] tartalmazza . 

Fájlrendszer titkosítása

Fontos megjegyezni, hogy a hagyományos adatbázis-titkosítási módszerek általában titkosítják és visszafejtik az adatbázis tartalmát, amelyet az operációs rendszer tetején futó adatbázis-kezelő rendszer adminisztrál [6] . Ez csökkenti az információk biztonságát, mivel a titkosított adatbázis nyílt vagy potenciálisan sebezhető operációs rendszeren is futtatható . A Microsoft például az Encrypting File System (EFS) technológiát használja a fájlszintű titkosítás biztosítására .  Minden objektum egyedi fájltitkosítási kulccsal van titkosítva , amelyet a felhasználó tanúsítványa véd. Ez a tanúsítvány összetett lehet, amely lehetővé teszi, hogy egynél több felhasználó hozzáférjen a fájlhoz. A titkosítás körének bővülése miatt az EFS használata csökkentheti a teljesítményt és bonyolíthatja az adminisztrációt, mivel az EFS használatához a rendszergazdának hozzáférésre van szüksége az operációs rendszerhez [7] [8] .  

Titkosítás az adatbázis szintjén

Az adatbázis-szintű titkosítás egyik példája az oszlop szintű titkosítás ( Eng.  Column-Level Encryption ), amely a már titkosított adatokat írja az adatbázisba, és magát az adatbázist - további titkosítás nélkül - a tárhelyen. Az oszlopszintű titkosítás egyik jellemzője, hogy egyetlen kulcsot használnak egy oszlop adatainak feldolgozásakor. A kulcsok hozzárendelhetők a felhasználókhoz, és jelszóval védhetők az automatikus visszafejtés elkerülése érdekében, de ez megnehezíti az adatbázis-adminisztrációt. Oszlopszintű titkosítás használatakor módosítani kell az ügyfélalkalmazásokon. Emellett az adatbázis teljesítménye is csökken [4] [7] .

Alkalmazás szintű titkosítás

Az alkalmazásszintű titkosításnál a titkosítási folyamatot az adatokat létrehozó vagy módosító alkalmazás végzi, vagyis az adatbázisba írás előtt megtörténik. Ez a megközelítés rugalmasabb, mivel az alkalmazás ismeri a felhasználók szerepét vagy jogosultságait, valamint információkat arról, hogy mely adatok titkosak [8] [9] .

Előnyök

Az alkalmazásba épített titkosítás egyik fő előnye, hogy nincs szükség további megoldásra a kommunikációs csatornákon áthaladó adatok védelmére, mivel azokat már titkosítva küldik el. A módszer további előnye, hogy a bizalmas információk ellopása nehezebbé válik, mivel a támadónak hozzáféréssel kell rendelkeznie az alkalmazáshoz, hogy visszafejtse az adatbázisban tárolt adatokat [8] [9] .

Hátrányok

A titkosítás alkalmazásszintű megvalósításához nemcsak magát az alkalmazást, hanem az adatbázist is módosítani kell. Problémák adódhatnak az adatbázis teljesítményével is, amely például elveszíti az indexelési és keresési képességet. Egy másik hátrány a kulcskezelés egy ilyen titkosítással rendelkező rendszerben. Mivel több alkalmazás is használhatja az adatbázist, a kulcsok sok helyen vannak tárolva, így a helytelen kezelésük információlopáshoz vagy azok használatának képtelenségéhez vezethet. Ezen túlmenően, ha szükség van a kulcs megváltoztatására, akkor először vissza kell fejteni az összes adatot a régi kulccsal, majd újra titkosítani kell az új kulccsal [8] [9] .

CryptoDB


Ez egy példa az alkalmazás szintű titkosításra. Az architektúrában kiemelhető [10] : egy proxy szerver , amelyhez az alkalmazásból biztonságos hozzáférés van, egy szerver SQL adatbázissal, amelyben az oszlopok titkosítva vannak. A proxyszervertől érkező kérések ehhez az adatbázis-kiszolgálóhoz (az angol DBMS-kiszolgálóhoz) érkeznek egy feltételezetten nem biztonságos csatornán keresztül. A különbség a fenti oszlopszintű titkosítástól, hogy a szerver nem fejti vissza az oszlopadatokat, sőt, a proxy szerver nem küld kulcsokat vagy egyéb olyan információkat, amelyek lehetővé teszik a szerver számára az oszlopok visszafejtését. Az adatbázissal rendelkező kiszolgáló szempontjából a proxyszervertől érkező kérések az SQL-adatbázissal való munkavégzéshez szükséges szokásos parancsoknak tűnnek. Ezért a szervernek lehet kész megoldása, például a szerzők által használt CryptDB MySQL formájában . Mivel a DBMS-kiszolgáló csak titkosított adatokon tud funkciókat végrehajtani, a proxyszerver feladata, hogy a felhasználói kéréseket egyenértékű kérésekké és műveletekké alakítsa, amelyek titkosított adatokon működnek. Ezt a problémát különféle titkosítási osztályok segítségével oldják meg, amelyek közös jellemzője az egyszerű szövegek egy bizonyos tulajdonságának megőrzése. Néhányat az alábbiakban sorolunk fel. [tíz]

DET osztály

Determinisztikus titkosítások, az angol determinisztikus titkosításból. Minden olyan titkosításból áll, amelyek a következő tulajdonsággal rendelkeznek: ugyanazzal a kulccsal ugyanazok a nyílt szövegek is ugyanúgy titkosítva vannak.

Ezért, ha egy oszlopban minden adat ilyen titkosítással van titkosítva, akkor az egyszerű adatoszlopon végzett műveletek, amelyek két érték összehasonlítását igénylik, egyenértékűek a titkosított adatoszlop műveleteivel. Például, ha a felhasználó meg akarja számolni azoknak a soroknak a számát, amelyeknél a Név oszlopban az "Alice" értéke egyenlő, akkor a proxy csak a felhasználó kérésében szereplő paramétereket cseréli le, az operátorokat nem. "Alice" - a megfelelő rejtjelezett szöveghez. Ez a titkosítási osztály lehetővé teszi olyan lekérdezések végrehajtását, amelyek többek között a következőket tartalmazzák: COUNT, GROUP BY, DISTINCT és SELECT egyenlőség vagy egyenlőtlenség predikátummal. A determinisztikus rejtjelre példa a fix inicializálási vektorral rendelkező blokk titkosítás (angolul IV, inicializációs vektor) [11] .

HOM osztály

Homomorf titkosítások, az angol homomorf titkosításból. Ez az osztály rejtjelekből áll, amelyek [12] az oszlopokban lévő értékeket úgy alakítják át, hogy a rajtuk lévő műveletek egyedileg megfeleljenek a titkosított szövegeken végzett műveleteknek, esetleg egy másiknak. A CryptDB architektúrája a Peye kriptográfiai rendszert használja , amely lehetővé teszi az értékek összegének titkosított szövegének kiszámítását, ha mindegyik rejtjelezett szövege ismert, nevezetesen:

Ezért, ha az oszlop homomorf titkosítással van titkosítva, a kiválasztott értékek összege kiszámítható a megfelelő rejtjelezett szövegek szorzatának dekódolásával. Ezért a proxyszerver lefordítja a felhasználó SUM-kérelmét termékké (EXP-n, LOG-on keresztül), majd az adatbázis-kiszolgáló válasza után visszafejti és kiadja a felhasználónak.

Az OPE osztály

Rendőrző titkosítások, az angol rendvédő titkosításból. Az ebből az osztályból származó titkosítás úgy hat az oszlopban lévő adatokra, hogy .

Ezért, ha egy oszlop egy OPE osztályú titkosítással van titkosítva, akkor az oszlop egyszerű szövegén végrehajtott ORDER BY hívás megegyezik a titkosított oszlopon végrehajtott ORDER BY hívással. Az ilyen adatokhoz a BETWEEN, valamint a MIN, MAX, RANK értéktartományon érhetők el a műveletek. Ilyen titkosításra példa lehet egy p egész szám c számba való leképezése, amely p pszeudo-véletlen pozitív szám összege [13] .

Kriptotámadás-ellenállás

A fent leírt titkosítási osztályok és architektúra hátrányai közé tartozik különösen a bizonyos ismert támadástípusokkal szembeni sebezhetőség. A Naveed , 2015 olyan támadónak tekinti, aki hozzáfér a rejtjelezett szövegekhez, és némi előzetes tudással rendelkezik a nyílt szöveg terjesztéséről. A feltételezésnek van egyezése a való életben is, például az adatbázis tartalmazhat orvosi jellegű információkat, és a támadó amellett, hogy közvetlenül hozzáfér a titkosított adatbázishoz, rendelkezhet népszámlálási vagy hasonló intézmények információival. Vagyis ismerni például a vércsoportok megoszlását. Abból a feltételezésből kiindulva, hogy pontosan mi áll a támadó rendelkezésére, a szerzők számos módszert javasolnak a DET-rejtjellel és az OPE-rejtjellel egyaránt titkosított oszlopokban lévő adatok helyreállítására. Mivel egy determinisztikus rejtjel ugyanazt a rejtjelezett szöveget képezi le ugyanarra az értékre egy oszlopban, a titkosított oszlopban lévő adatok gyakorisági eloszlása ​​megegyezik a nyílt szövegével. A klasszikus frekvenciaelemzésnek összetettsége van , ahol N a nyílt szövegek teljes halmazának mérete. Ez azt jelenti, hogy egy ilyen támadás akkor hatékony, ha N kicsi. A gyakoriság-elemzéshez hasonló támadást alkalmaznak egy oszlopra, amely megőrzi a sorrendet, de meghatározott gyakorisági értékek helyett az oszlop titkosított szövegkészletében lévő rangot hasonlítja össze a szó rangjával a nyílt szövegkészletben. A támadás, mint már említettük, azoknál az oszlopoknál a leghatékonyabb, ahol a lehetséges nyílt szövegek halmaza a legteljesebben van ábrázolva [14] .

Kidolgoztak egy empirikus eloszlásfüggvény (ECDF) támadási módszert is, amely alkalmasabb egy egyenlőtlenül megjelenített rejtjelezett szövegű oszlop megtámadására, illetve olyan módszert, amely több oszlopból származó információkat, illetve azok összefüggését is figyelembe veszi [15] . Ezenkívül Minaudi 2019-es munkája egy sémát mutat be a részleges adat-helyreállításhoz az OPE oszlopban, ha csak az összes lekérdezésről van információ. Az algoritmus a korábbiakkal ellentétben skálázható, mivel N [14] nem szerepel a komplexitásbecslésében .

Ezenkívül sem a DET, sem az OPE titkosítások, mint minden determinisztikus rejtjel, nem rendelkeznek megkülönböztethetetlenségi tulajdonsággal. Valójában annak megértéséhez, hogy egy adott rejtjelezett szöveg titkosított üzenet- e, vagy a támadónak mindkét üzenethez titkosítást kell kérnie, ami nyílt titkosítás használata esetén lehetséges, és összehasonlítani az adott H rejtjelezett szöveggel [14] .

Szimmetrikus és aszimmetrikus adatbázis-titkosítás

Az információk titkosításának két fő módja van: szimmetrikus és aszimmetrikus. A fő elv bennük az, hogy az adó és a vevő előre ismeri a titkosítási algoritmust és az üzenet kulcsát, anélkül, hogy tudná, melyik információ értelmetlen karakterkészlet [8] [16] .

Szimmetrikus titkosítás

A szimmetrikus titkosítás (privát kulcsos titkosítás) a legrégebbi és legismertebb módszer. Az adatbázisokkal összefüggésben magában foglalja az adatbázisban tárolt és onnan visszakeresett információk titkosításához és visszafejtéséhez használt privát kulcsot. Ez a kulcs oly módon változtatja meg az adatokat, hogy azok visszafejtés nélkül olvasása lehetetlenné válik. A módszer nyilvánvaló hátránya, hogy bizalmas információk szivároghatnak ki, ha a kulcs olyan személyek kezében van, akiknek nem szabad hozzáférniük az adatokhoz. Mindazonáltal, ha csak egy kulcsot használnak a titkosítási folyamatban, ennek a technológiának az előnye a gyorsaság és a könnyű használat [8] [16] [17] .

Aszimmetrikus titkosítás

A titkos kulcs rossz kezekbe kerülésének problémáját a kommunikációs csatornákon történő átvitel során, ami a privát kulcsú titkosításnak van, az aszimmetrikus titkosítással (nyilvános kulcsú titkosítás) oldják meg, amelyben két kulcs kapcsolódik egymáshoz - ez egy kulcspár. . A nyilvános kulcsot mindenki ismeri, és nem biztonságos kommunikációs csatornán továbbítható. Míg a második, a privát kulcs titkos, és minden felhasználó számára egyedi. A nyilvános kulcs az adatok titkosítására, a privát kulcs pedig a visszafejtésre szolgál. Az aszimmetrikus titkosítás biztonságosabb, mint a szimmetrikus titkosítás, ugyanakkor lényegesen lassabb [8] [16] . További hátrányok közé tartozik az a tény, hogy a determinisztikus aszimmetrikus titkosítás, amelyet olyan adatbázisokban használnak, amelyekben a titkosítás az alkalmazási rétegben történik (lásd CryptDB ), ki van téve a választott egyszerű szövegen alapuló támadásoknak [18] .

Lásd még

Jegyzetek

  1. ↑ 1 2 Luc Bouganim, Yanli Guo. Adatbázis-titkosítás  // Encyclopedia of Cryptography and Security  / Szerk. írta Henk C. A. van Tilborg és Sushil Jajodia. - Springer, 2011. - P. 307-312. - ISBN 978-1-4419-5906-5 .
  2. Az adatbázis-titkosítási módszerek  típusai . Solarwinds MSP (2019. május 10.). Letöltve: 2019. december 25.
  3. 1 2 Transparent Data Encryption (TDE) . microsoft.com .
  4. 1 2 3 Átlátszó adattitkosítás . oracle.com .
  5. Postgres és Transparent Data Encryption (TDE) . enterprisedb.com .
  6. Dátum, 2005 .
  7. 1 2 Adatbázistitkosítás az SQL Server 2008 Enterprise Edition rendszerben . microsoft.com .
  8. 1 2 3 4 5 6 7 Baccam, Tanya Transparent Data Encryption: Új technológiák és legjobb gyakorlatok az adatbázis-titkosításhoz . sans.org . SANS Institute (2010. április). Letöltve: 2015. október 25.
  9. 1 2 3 Alkalmazásszintű titkosítás (holt link) . thales-esecurity.com . Hozzáférés időpontja: 2016. december 14. Az eredetiből archiválva : 2016. augusztus 3. 
  10. ↑ 1 2 Raluca Ada Popa, Catherine MS Redfield, Nickolai Zeldovich, Hari Balakrishnan. CryptDB: lekérdezések feldolgozása titkosított adatbázison  //  Az ACM kommunikációja. — 2012-09-01. — Vol. 55 , iss. 9 . — 103. o . - doi : 10.1145/2330667.2330691 .
  11. Linda A. Bertram, Gunther van Dooble. Nomenklatúra – A modern kriptográfia és internetes biztonság enciklopédiája: az automatikus kriptográfiai és az exponenciális titkosítástól a nulla tudásbiztos kulcsokig. — ISBN 3749461686 .
  12. Yi, Xun (főiskolai tanár), . 2. fejezet // Homomorf titkosítás és alkalmazások . – Cham. — 1 online forrás (xii, 126 oldal) p. - ISBN 978-3-319-12229-8 , 3-319-12229-0.
  13. Rakesh Agrawal, Jerry Kiernan, Ramakrishnan Srikant, Yirong Xu. Numerikus adatok titkosításának védelme  //  A 2004-es ACM SIGMOD nemzetközi adatkezelési konferencia előadása - SIGMOD '04. - Párizs, Franciaország: ACM Press, 2004. - 563. o . — ISBN 978-1-58113-859-7 . - doi : 10.1145/1007568.1007632 .
  14. ↑ 1 2 3 A hét támadása: kereshető titkosítás és az egyre bővülő leakage funkció .
  15. F. Betül Durak, Thomas M. DuBuisson, David Cash. Mi mást tár fel a parancsfeltáró titkosítás?  (eng.)  // A 2016. évi ACM SIGSAC Számítógépes és Kommunikációs Biztonsági Konferencia - CCS'16 anyaga. - Bécs, Ausztria: ACM Press, 2016. - P. 1155-1166 . - ISBN 978-1-4503-4139-4 . doi : 10.1145 / 2976749.2978379 .
  16. 1 2 3 A szimmetrikus és aszimmetrikus titkosítás leírása . microsoft.com .
  17. Korobeinikov, 2004 , p. 56.
  18. Alexandra Boldyreva, Nathan Chenette, Younho Lee, Adam O'Neill. Rendőrző szimmetrikus titkosítás  // Fejlődés a kriptológiában - EUROCRYPT 2009 / Antoine Joux. - Berlin, 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 .

Irodalom

  • Dátum CJ Introduction to Database Systems = Bevezetés az adatbázisrendszerekbe. - 8. kiadás - M. : Williams, 2005. - 1328 p. - ISBN 5-8459-0788-8 (orosz) 0-321-19784-4 (angol).
  • Korobeinikov A. G., Gatchin Yu. A. A kriptográfia matematikai alapjai. oktatóanyag. - Szentpétervár. : SPb GU ITMO, 2004. - 106 p.


Linkek