Databaskryptering

Databaskryptering  - användningen av krypteringsteknik för att omvandla information lagrad i en databas (DB) till chiffertext , vilket gör den omöjlig att läsa av personer som inte har krypteringsnycklar [1] .

De viktigaste tillvägagångssätten kan klassificeras enligt den nivå på vilken kryptering sker [1] [2] :

  1. Kryptering på lagringsnivå,
  2. Kryptering på databasnivå,
  3. Kryptering på applikationsnivå.

Lagringsnivåkryptering

Kallas även "transparent" ( engelska  Transparent Database Encryption , TDE). Denna teknik används till exempel i Microsoft- och Oracle- produkter för att kryptera och dekryptera in-/utdata från databasfiler . Data krypteras innan de skrivs till disk och dekrypteras samtidigt som de läses in i minnet, vilket löser problemet med att skydda "inaktiva" data, men säkerställer inte informationens säkerhet under överföring via kommunikationskanaler eller under användning. Fördelen med TDE är att kryptering och dekryptering är transparenta för applikationer, vilket innebär att de inte behöver modifieras [3] [4] [5] .

Microsoft implementering

TDE tillämpas på databasfiler och transaktionslogg på sidnivå. Sidor krypteras med en speciell symmetrisk databaskrypteringsnyckel ( Database  Encryption Key ), skyddad av ett certifikat som lagras i huvuddatabasen och krypterat med dess huvudnyckel, eller en asymmetrisk nyckel, skyddad av Extensible Key Manager ( EKM  ) . Användningen av TDE ökar inte storleken på den krypterade databasen, och prestandapåverkan är försumbar [3] .

Implementering av Oracle

TDE tillämpas på databasfiler på kolumnnivå. För tabellen som innehåller de kolumner som valts ut för kryptering skapas en symmetrisk krypteringsnyckel, skyddad av huvudnyckeln, som lagras på en säker plats utanför databasen, kallad plånbok ( English  Wallet ). De krypterade nycklarna till tabellerna finns i Data Dictionary [ 4 ] . 

Filsystemskryptering

Det är viktigt att notera att traditionella databaskrypteringsmetoder vanligtvis krypterar och dekrypterar innehållet i databasen, som administreras av ett databashanteringssystem som körs ovanpå operativsystemet [6] . Detta minskar informationssäkerheten, eftersom den krypterade databasen kan köras på ett öppet eller potentiellt sårbart operativsystem . Till exempel använder Microsoft Encrypting File System-teknik (EFS) för att tillhandahålla kryptering på filnivå .  Varje objekt krypteras med en unik filkrypteringsnyckel , skyddad av användarens certifikat. Detta certifikat kan vara sammansatt, vilket tillåter mer än en användare att komma åt filen. På grund av utvidgningen av omfånget för kryptering kan användningen av EFS minska prestandan och komplicera administrationen, eftersom systemadministratören behöver tillgång till operativsystemet för att använda EFS [7] [8] .  

Kryptering på databasnivå

Ett exempel på kryptering på databasnivå är kryptering på kolumnnivå ( Eng.  Column-Level Encryption ), som skriver redan krypterad data till databasen, och själva databasen - utan ytterligare kryptering - i lagring. En egenskap hos kryptering på kolumnnivå är användningen av en enda nyckel vid bearbetning av data i en kolumn. Nycklar kan tilldelas användare och skyddas med ett lösenord för att förhindra automatisk dekryptering, men detta komplicerar databasadministrationen. När du använder kryptering på kolumnnivå måste ändringar göras i klientapplikationer. Dessutom reduceras prestandan för databasen [4] [7] .

Programnivåkryptering

I kryptering på applikationsnivå utförs krypteringsprocessen av applikationen som skapar eller modifierar data, det vill säga den sker innan den skrivs till databasen. Detta tillvägagångssätt är mer flexibelt eftersom applikationen känner till användarnas roller eller behörigheter, samt information om vilken data som är privat [8] [9] .

Fördelar

En av de främsta fördelarna med kryptering inbyggd i applikationen är att det inte finns något behov av att använda en extra lösning för att skydda data under överföring över kommunikationskanaler, eftersom den skickas redan krypterad. Ett annat plus med denna metod är att det blir svårare att stjäla konfidentiell information, eftersom en angripare måste ha tillgång till applikationen för att dekryptera data som lagras i databasen [8] [9] .

Nackdelar

För att implementera kryptering på applikationsnivå är det nödvändigt att göra ändringar inte bara i själva applikationen utan också i databasen. Det kan även uppstå problem med databasens prestanda, som till exempel förlorar möjligheten att indexera och söka. En annan nackdel är nyckelhantering i ett system med sådan kryptering. Eftersom flera applikationer kan använda databasen, lagras nycklarna på många ställen, så felaktig hantering av dem kan leda till stöld av information eller oförmåga att använda den. Utöver detta, om det finns ett behov av att ändra nyckeln, måste du först dekryptera all data med den gamla nyckeln och sedan kryptera om den med den nya nyckeln [8] [9] .

CryptoDB


Det är ett exempel på kryptering på applikationsnivå. I arkitekturen kan man peka ut [10] : en proxyserver , till vilken det finns säker åtkomst från applikationen, en server med en SQL - databas där kolumnerna är krypterade. Förfrågningar från proxyservern går till denna databasserver (eng. DBMS-server) över en kanal som ska vara osäker. Skillnaden från ovanstående kolumnnivåkryptering är att servern inte dekrypterar kolumndata, dessutom skickar proxyservern inte nycklar eller annan information som gör att servern kan dekryptera kolumnerna. Ur serverns synvinkel med databasen ser förfrågningar från proxyservern ut som vanliga kommandon för att arbeta med SQL-databasen. Därför kan servern ha en färdig lösning, till exempel i form av CryptDB MySQL som används av författarna . Eftersom DBMS-servern endast kan utföra funktioner på krypterad data, är proxyserverns uppgift att översätta användarförfrågningar till likvärdiga förfrågningar och operationer som fungerar på krypterad data. Detta problem löses med hjälp av olika klasser av chiffer, vars gemensamma drag är bevarandet av en viss egenskap hos klartexter. Några av dem är listade nedan. [tio]

DET-klass

Deterministiska chiffer, från engelska deterministisk kryptering. Den består av alla chiffer som har följande egenskap: med samma nyckel krypteras även samma klartexter på samma sätt.

Därför, om all data i en kolumn är krypterad med ett sådant chiffer, är operationer på den vanliga datakolumnen som kräver jämförelse av två värden likvärdiga med de i den krypterade datakolumnen. Till exempel, om användaren vill räkna antalet rader med värdet i kolumnen Namn lika med "Alice", så ersätter proxyn bara parametrarna i användarens begäran, inte operatörerna. "Alice" - till motsvarande chiffertext. Denna chifferklass låter dig köra frågor som innehåller bland annat: COUNT, GROUP BY, DISTINCT och SELECT med ett likhets- eller olikhetspredikat. Ett exempel på ett deterministiskt chiffer är ett blockchiffer med en fast initialiseringsvektor (engelska IV, initialiseringsvektor) [11] .

HOM klass

Homomorphic chiffer, från engelska homomorphic encryption. Denna klass består av chiffer som [12] transformerar värdena i kolumner så att en operation på dem unikt motsvarar, möjligen en annan operation på chiffertexter. Arkitekturen för CryptDB använder Peye-krypteringssystemet , som låter dig beräkna chiffertexten för summan av värden om chiffertexten för var och en av dem är känd, nämligen:

Därför, om kolumnen är krypterad med homomorf kryptering, kan summan av de valda värdena beräknas genom att dekryptera produkten av motsvarande chiffertexter. Därför översätter proxyservern användarens SUM-begäran till en produkt (uttryckt via EXP, LOG), och sedan, med ett svar från databasservern, dekrypterar den och skickar den till användaren.

OPE-klassen

Ordningsbevarande chiffer, från engelska orderskyddande kryptering. Ett chiffer från denna klass agerar på data i kolumnen så att .

Därför, om en kolumn är krypterad med ett OPE-klasschiffer, då är ett ORDER BY-anrop som utförs på kolumnens klartext likvärdigt med det på den krypterade kolumnen. För sådana data finns operationer tillgängliga på värdeintervallet, BETWEEN, såväl som MIN, MAX, RANK. Ett exempel på en sådan kryptering skulle vara mappningen av ett heltal p till ett tal c, vilket är summan av p pseudoslumpmässiga positiva tal [13] .

Kryptoattackmotstånd

Nackdelarna med de ovan beskrivna klasserna av chiffer och arkitektur i synnerhet inkluderar sårbarhet för vissa kända typer av attacker. Naveed , 2015 betraktar en angripare som har tillgång till chiffertexter och viss a priori kunskap om distributionen av klartext. Antagandet stämmer överens i verkligheten, till exempel kan databasen innehålla information av medicinsk karaktär och angriparen kan, förutom att direkt komma åt den krypterade databasen, ha information från folkräkningen eller från liknande institutioner. Det vill säga att veta fördelningen av till exempel blodgrupper. Baserat på antagandet om exakt vad som är tillgängligt för angriparen, föreslår författarna flera metoder för att återställa data i kolumner krypterade med både DET-chifferet och OPE-chifferet. Eftersom ett deterministiskt chiffer mappar samma chiffertext till samma värde i en kolumn, kommer frekvensfördelningen av data i den krypterade kolumnen att matcha den för klartexten. Klassisk frekvensanalys har komplexitet , där N är storleken på hela uppsättningen klartexter. Det betyder att en sådan attack är effektiv om N är liten. En attack som liknar frekvensanalys appliceras på en kolumn med ordningsbevarande kryptering, men istället för specifika frekvensvärden jämförs rangen i kolumnens chiffertextuppsättning med rangordningen för ordet i klartextuppsättningen. Attacken, som noterat, är mest effektiv för kolumner där uppsättningen av möjliga klartexter representeras mest fullständigt [14] .

En empirisk distributionsfunktion (ECDF) attackmetod har också utvecklats, som är mer lämpad för att attackera en kolumn med ojämnt presenterade chiffertexter, och en metod som tar hänsyn till information från flera kolumner, samt deras korrelation [15] . Dessutom presenterar arbetet av Minaud, 2019 ett schema för partiell dataåterställning i OPE-kolumnen, om det bara finns information om alla förfrågningar. Algoritmen, till skillnad från de tidigare, är skalbar, eftersom N [14] inte ingår i dess komplexitetsuppskattning .

Dessutom har varken DET- eller OPE-chiffer, som alla deterministiska chiffer, egenskapen omöjlig att särskilja. För att förstå om en given chiffertext är ett krypterat meddelande eller om en angripare behöver begära chiffertexter för båda meddelandena, vilket är möjligt om öppen kryptering används, och jämföra med den givna chiffertexten H [14] .

Symmetrisk och asymmetrisk databaskryptering

Det finns två huvudsakliga sätt att kryptera information: symmetrisk och asymmetrisk. Huvudprincipen i dem är att sändaren och mottagaren i förväg känner till krypteringsalgoritmen och nyckeln till meddelandet, utan att veta vilken information som är en meningslös uppsättning tecken [8] [16] .

Symmetrisk kryptering

Symmetrisk kryptering (privat nyckelkryptering) är den äldsta och mest kända metoden. I samband med databaser inkluderar den den privata nyckel som används för att kryptera och dekryptera information som lagras i och hämtas från databasen. Denna nyckel ändrar data på ett sådant sätt att det blir omöjligt att läsa det utan dekryptering. Den uppenbara nackdelen med denna metod är att konfidentiell information kan läcka ut om nyckeln är i händerna på personer som inte borde ha tillgång till uppgifterna. Användningen av endast en nyckel i krypteringsprocessen har dock fördelen av snabbhet och enkel användning av denna teknik [8] [16] [17] .

Asymmetrisk kryptering

Problemet med att få en hemlig nyckel i fel händer under överföring över kommunikationskanaler, vilket privat nyckelkryptering har, löses i asymmetrisk kryptering (public key-kryptering), där det finns två nycklar relaterade till varandra - detta är ett nyckelpar . Den publika nyckeln är känd för alla och kan överföras via en osäker kommunikationskanal. Medan den andra, den privata nyckeln, hålls hemlig och är unik för varje användare. Den offentliga nyckeln används för att kryptera data, och den privata nyckeln används för att dekryptera den. Asymmetrisk kryptering är säkrare än symmetrisk kryptering, men samtidigt är den betydligt långsammare [8] [16] . Andra nackdelar inkluderar det faktum att deterministisk asymmetrisk kryptering, som används i databaser där kryptering sker i applikationslagret (se CryptDB ), är sårbar för attack baserat på vald klartext [18] .

Se även

Anteckningar

  1. ↑ 1 2 Luc Bouganim, Yanli Guo. Databaskryptering  // Encyclopedia of Cryptography and Security  / Ed. av Henk C. A. van Tilborg och Sushil Jajodia. - Springer, 2011. - S. 307-312. - ISBN 978-1-4419-5906-5 .
  2. ↑ Typer av databaskrypteringsmetoder  . Solarwinds MSP (10 maj 2019). Hämtad: 25 december 2019.
  3. 1 2 Transparent Data Encryption (TDE) . microsoft.com .
  4. 1 2 3 Transparent datakryptering . oracle.com .
  5. Postgres och Transparent Data Encryption (TDE) . enterprisedb.com .
  6. Datum, 2005 .
  7. 1 2 Databaskryptering i SQL Server 2008 Enterprise Edition . microsoft.com .
  8. 1 2 3 4 5 6 7 Baccam, Tanya Transparent datakryptering: Ny teknik och bästa praxis för databaskryptering . sans.org . SANS Institute (april 2010). Hämtad: 25 oktober 2015.
  9. 1 2 3 Kryptering på applikationsnivå (död länk) . thales-esecurity.com . Tillträdesdatum: 14 december 2016. Arkiverad från originalet 3 augusti 2016. 
  10. ↑ 1 2 Raluca Ada Popa, Catherine MS Redfield, Nickolai Zeldovich, Hari Balakrishnan. CryptDB: bearbetning av frågor i en krypterad databas  //  ACM:s kommunikation. — 2012-09-01. — Vol. 55 , iss. 9 . — S. 103 . - doi : 10.1145/2330667.2330691 .
  11. Linda A. Bertram, Gunther van Dooble. Nomenclatura - Encyclopedia of modern Cryptography and Internet Security: Från autokryptering och exponentiell kryptering till noll-kunskapssäkra nycklar. — ISBN 3749461686 .
  12. Yi, Xun (högskolelärare), . Kapitel 2 // Homomorf kryptering och tillämpningar . — Cham. — 1 onlineresurs (xii, 126 sidor) sid. - ISBN 978-3-319-12229-8 , 3-319-12229-0.
  13. Rakesh Agrawal, Jerry Kiernan, Ramakrishnan Srikant, Yirong Xu. Beställ krypteringsskydd för numeriska data  //  Proceedings of the 2004 ACM SIGMOD international conference on Management of data - SIGMOD '04. - Paris, Frankrike: ACM Press, 2004. - S. 563 . — ISBN 978-1-58113-859-7 . - doi : 10.1145/1007568.1007632 .
  14. ↑ 1 2 3 Veckans attack: sökbar kryptering och den ständigt växande läckagefunktionen .
  15. F. Betül Durak, Thomas M. DuBuisson, David Cash. Vad mer avslöjas av orderavslöjande kryptering?  (eng.)  // Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security - CCS'16. - Wien, Österrike: ACM Press, 2016. - P. 1155-1166 . - ISBN 978-1-4503-4139-4 . doi : 10.1145 / 2976749.2978379 .
  16. 1 2 3 Beskrivning av symmetrisk och asymmetrisk kryptering . microsoft.com .
  17. Korobeinikov, 2004 , sid. 56.
  18. Alexandra Boldyreva, Nathan Chenette, Younho Lee, Adam O'Neill. Ordningsbevarande symmetrisk kryptering  // Framsteg inom kryptologi - 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 .

Litteratur

  • Datum CJ Introduktion till databassystem = Introduktion till databassystem. - 8:e uppl. - M. : Williams, 2005. - 1328 sid. - ISBN 5-8459-0788-8 (ryska) 0-321-19784-4 (engelska).
  • Korobeinikov A. G., Gatchin Yu. A. Matematiska grunder för kryptografi. Handledning. - St Petersburg. : SPb GU ITMO, 2004. - 106 sid.


Länkar