Database kryptering

Databasekryptering  - brugen af ​​krypteringsteknologi til at konvertere information lagret i en database (DB) til chiffertekst , hvilket gør det umuligt at læse af personer, der ikke har krypteringsnøgler [1] .

De vigtigste tilgange kan klassificeres efter det niveau, hvor kryptering finder sted [1] [2] :

  1. Kryptering på lagerniveau,
  2. Kryptering på databaseniveau,
  3. Kryptering på applikationsniveau.

Lagerniveau kryptering

Kaldes også "transparent" ( engelsk  Transparent Database Encryption , TDE). Denne teknologi bruges for eksempel i Microsoft og Oracle -produkter til kryptering og dekryptering af input/output af databasefiler . Data krypteres, før de skrives til disk og dekrypteres, mens de læses ind i hukommelsen, hvilket løser problemet med at beskytte "inaktive" data, men sikrer ikke informationssikkerheden under transmission over kommunikationskanaler eller under brug. Fordelen ved TDE er, at kryptering og dekryptering er gennemsigtige for applikationer, hvilket betyder, at de ikke behøver at blive ændret [3] [4] [5] .

Microsoft implementering

TDE anvendes på databasefiler og transaktionslog på sideniveau. Sider krypteres ved hjælp af en speciel symmetrisk databasekrypteringsnøgle ( Database Encryption Key ) , beskyttet af et certifikat, der er gemt i masterdatabasen og krypteret med dens hovednøgle, eller en asymmetrisk nøgle, beskyttet af Extensible Key Manager ( EKM ). Brugen af ​​TDE øger ikke størrelsen af ​​den krypterede database, og ydeevnepåvirkningen er ubetydelig [3] .   

Implementering af Oracle

TDE anvendes på databasefiler på kolonneniveau. Til tabellen, der indeholder de kolonner, der er valgt til kryptering, oprettes en symmetrisk krypteringsnøgle, beskyttet af hovednøglen, som opbevares et sikkert sted uden for databasen, kaldet en tegnebog ( English  Wallet ). Tabellernes krypterede nøgler er indeholdt i Data Dictionary [ 4 ] . 

Filsystemkryptering

Det er vigtigt at bemærke, at traditionelle databasekrypteringsmetoder normalt krypterer og dekrypterer indholdet af databasen, som administreres af et databasestyringssystem, der kører oven på operativsystemet [6] . Dette reducerer informationssikkerheden, da den krypterede database kan køres på et åbent eller potentielt sårbart operativsystem . Microsoft bruger f.eks. Encrypting File System-teknologi (EFS) til at levere kryptering på filniveau .  Hvert objekt er krypteret med en unik filkrypteringsnøgle , beskyttet af brugerens certifikat. Dette certifikat kan være sammensat, hvilket giver mere end én bruger adgang til filen. På grund af udvidelsen af ​​omfanget af kryptering kan brugen af ​​EFS reducere ydeevnen og komplicere administrationen, da systemadministratoren skal have adgang til operativsystemet for at bruge EFS [7] [8] .  

Kryptering på databaseniveau

Et eksempel på kryptering på databaseniveau er kryptering på kolonneniveau ( Eng.  Column-Level Encryption ), som skriver allerede krypterede data til databasen, og selve databasen - uden yderligere kryptering - på lager. En funktion ved kryptering på kolonneniveau er brugen af ​​en enkelt nøgle, når dataene i en kolonne behandles. Nøgler kan tildeles brugere og beskyttes med en adgangskode for at forhindre automatisk dekryptering, men det komplicerer databaseadministrationen. Når du bruger kryptering på kolonneniveau, skal der foretages ændringer i klientapplikationer. Derudover reduceres databasens ydeevne [4] [7] .

Programniveau kryptering

Ved kryptering på applikationsniveau udføres krypteringsprocessen af ​​den applikation, der opretter eller ændrer dataene, det vil sige, at den sker før den skrives til databasen. Denne tilgang er mere fleksibel, fordi applikationen kender brugernes roller eller tilladelser, samt information om, hvilke data der er private [8] [9] .

Fordele

En af de vigtigste fordele ved kryptering indbygget i applikationen er, at der ikke er behov for at bruge en ekstra løsning til at beskytte data i transit over kommunikationskanaler, da de allerede sendes krypteret. Et andet plus ved denne metode er, at det bliver vanskeligere at stjæle fortrolig information, da en angriber skal have adgang til applikationen for at dekryptere dataene, der er gemt i databasen [8] [9] .

Ulemper

For at implementere kryptering på applikationsniveau er det nødvendigt at foretage ændringer ikke kun i selve applikationen, men også i databasen. Der kan også være problemer med databasens ydeevne, som for eksempel mister muligheden for at indeksere og søge. En anden ulempe er nøglehåndtering i et system med en sådan kryptering. Da flere applikationer kan bruge databasen, gemmes nøglerne mange steder, så forkert håndtering af dem kan føre til tyveri af information eller manglende evne til at bruge dem. Ud over dette, hvis der er behov for at ændre nøglen, skal du først dekryptere alle data med den gamle nøgle, og derefter genkryptere dem med den nye nøgle [8] [9] .

CryptoDB


Det er et eksempel på kryptering på applikationsniveau. I arkitekturen kan man udskille [10] : en proxyserver , hvortil der er sikker adgang fra applikationen, en server med en SQL - database, hvori kolonnerne er krypteret. Forespørgsler fra proxyserveren går til denne databaseserver (eng. DBMS-server) over en kanal, der formodes at være usikker. Forskellen fra ovenstående kolonne-niveau kryptering er, at serveren ikke dekrypterer kolonne data, desuden sender proxy serveren ikke nøgler eller anden information, der gør det muligt for serveren at dekryptere kolonnerne. Fra serverens synspunkt med databasen ser anmodninger fra proxyserveren ud som almindelige kommandoer til at arbejde med SQL-databasen. Derfor kan serveren have en færdig løsning, for eksempel i form af CryptDB MySQL , som bruges af forfatterne . Da DBMS-serveren kun kan udføre funktioner på krypterede data, er proxyserverens opgave at oversætte brugeranmodninger til tilsvarende anmodninger og operationer, der opererer på krypterede data. Dette problem løses ved hjælp af forskellige klasser af cifre, hvis fælles træk er bevarelsen af ​​en bestemt egenskab ved almindelige tekster. Nogle af dem er anført nedenfor. [ti]

DET klasse

Deterministiske cifre, fra engelsk deterministisk kryptering. Den består af alle cifre, der har følgende egenskab: med den samme nøgle krypteres de samme klartekster også på samme måde.

Derfor, hvis alle data i en kolonne er krypteret med en sådan chiffer, så svarer operationer på den almindelige datakolonne, der kræver sammenligning af to værdier, til dem på den krypterede datakolonne. For eksempel, hvis brugeren ønsker at tælle antallet af rækker med værdien i kolonnen Navn lig med "Alice", så erstatter proxyen kun parametrene i brugerens anmodning, ikke operatørerne. "Alice" - til den tilsvarende chiffertekst. Denne chifferklasse giver dig mulighed for at udføre forespørgsler, der blandt andet indeholder: COUNT, GROUP BY, DISTINCT og SELECT med et ligheds- eller ulighedsprædikat. Et eksempel på en deterministisk chiffer er en blokcifre med en fast initialiseringsvektor (engelsk IV, initialiseringsvektor) [11] .

HOM klasse

Homomorphic ciphers, fra engelsk homomorphic encryption. Denne klasse består af cifre, der [12] transformerer værdierne i kolonner, så en operation på dem entydigt svarer til, muligvis en anden, operation på chiffertekster. Arkitekturen af ​​CryptDB bruger Peye kryptografiske system , som giver dig mulighed for at beregne chifferteksten af ​​summen af ​​værdier, hvis chifferteksten for hver af dem er kendt, nemlig:

Derfor, hvis kolonnen er krypteret med homomorf kryptering, kan summen af ​​de valgte værdier beregnes ved at dekryptere produktet af de tilsvarende chiffertekster. Derfor oversætter proxyserveren brugerens SUM-anmodning til et produkt (udtrykt via EXP, LOG), og dekrypterer derefter den og sender den til brugeren efter at have et svar fra databaseserveren.

OPE-klassen

Ordrebevarende cifre, fra engelsk orden, der beskytter kryptering. En chiffer fra denne klasse virker på dataene i kolonnen, så .

Derfor, hvis en kolonne er krypteret med en OPE-klassechiffer, så svarer et ORDER BY-kald udført på kolonnens almindelige tekst til det på den krypterede kolonne. For sådanne data er operationer tilgængelige på intervallet af værdier, BETWEEN, såvel som MIN, MAX, RANK. Et eksempel på en sådan kryptering ville være afbildningen af ​​et heltal p til et tal c, som er summen af ​​p pseudo-tilfældige positive tal [13] .

Modstand mod kryptoangreb

Ulemperne ved de ovenfor beskrevne klasser af chiffer og arkitektur omfatter især sårbarhed over for nogle kendte typer angreb. Naveed , 2015 betragter en angriber, der har adgang til chiffertekster og noget a priori-kendskab til distributionen af ​​klarteksten. Antagelsen har et match i det virkelige liv, for eksempel kan databasen indeholde information af medicinsk karakter, og angriberen kan udover direkte adgang til den krypterede database have oplysninger fra folketællingen eller fra lignende institutioner. Altså at kende fordelingen af ​​for eksempel blodgrupper. Baseret på antagelsen om, hvad der præcist er tilgængeligt for angriberen, foreslår forfatterne flere metoder til at gendanne data i kolonner, der er krypteret med både DET-krypteret og OPE-chifferet. Da en deterministisk krypteringskode kortlægger den samme krypteringstekst til den samme værdi i en kolonne, vil frekvensfordelingen af ​​data i den krypterede kolonne matche den almindelige tekst. Klassisk frekvensanalyse har kompleksitet , hvor N er størrelsen af ​​hele sættet af klartekster. Det betyder, at et sådant angreb er effektivt, hvis N er lille. Et angreb svarende til frekvensanalyse påføres en kolonne med ordensbevarende kryptering, men i stedet for specifikke frekvensværdier sammenlignes rangeringen i kolonnens chiffertekst med rangordenen af ​​ordet i klartekstsættet. Angrebet er som nævnt mest effektivt for kolonner, hvor sættet af mulige klartekster er repræsenteret mest fuldt ud [14] .

Der er også udviklet en empirisk distributionsfunktion (ECDF) angrebsmetode, som er mere velegnet til at angribe en kolonne med ujævnt præsenterede chiffertekster, og en metode, der tager hensyn til information fra flere kolonner, samt deres korrelation [15] . Derudover præsenterer arbejdet fra Minaud, 2019 en ordning for delvis datagendannelse i OPE-kolonnen, hvis der kun er information om alle anmodninger. Algoritmen, i modsætning til de foregående, er skalerbar, da N [14] ikke er inkluderet i dens kompleksitetsestimat .

Derudover har hverken DET- eller OPE-cifre, som alle deterministiske cipherer, egenskaben, der ikke kan skelnes. For at forstå, om en given chiffertekst er en krypteret meddelelse, eller om en angriber skal anmode om chiffertekster for begge meddelelser, hvilket er muligt, hvis åben kryptering bruges, og sammenligne med den givne chiffertekst H [14] .

Symmetrisk og asymmetrisk databasekryptering

Der er to hovedmåder at kryptere information på: symmetrisk og asymmetrisk. Hovedprincippet i dem er, at senderen og modtageren på forhånd kender krypteringsalgoritmen og nøglen til beskeden, uden at vide hvilken information der er et meningsløst sæt af tegn [8] [16] .

Symmetrisk kryptering

Symmetrisk kryptering (privat nøglekryptering) er den ældste og bedst kendte metode. I forbindelse med databaser inkluderer det den private nøgle, der bruges til at kryptere og dekryptere information, der er gemt i og hentet fra databasen. Denne nøgle ændrer dataene på en sådan måde, at det bliver umuligt at læse dem uden dekryptering. Den åbenlyse ulempe ved denne metode er, at fortrolige oplysninger kan lækkes, hvis nøglen er i hænderne på personer, som ikke burde have adgang til dataene. Brugen af ​​kun én nøgle i krypteringsprocessen har dog den fordel, at denne teknologi er hurtig og nem at bruge [8] [16] [17] .

Asymmetrisk kryptering

Problemet med at få en hemmelig nøgle i de forkerte hænder under transmission over kommunikationskanaler, som privat nøglekryptering har, er løst i asymmetrisk kryptering (public key-kryptering), hvor der er to nøgler relateret til hinanden - dette er et nøglepar . Den offentlige nøgle er kendt af alle og kan overføres via en usikker kommunikationskanal. Mens den anden, den private nøgle, holdes hemmelig og er unik for hver bruger. Den offentlige nøgle bruges til at kryptere dataene, og den private nøgle bruges til at dekryptere dem. Asymmetrisk kryptering er mere sikker end symmetrisk kryptering, men den er samtidig væsentlig langsommere [8] [16] . Andre ulemper omfatter det faktum, at deterministisk asymmetrisk kryptering, som bruges i databaser, hvor kryptering forekommer på applikationslaget (se CryptDB ), er sårbar over for angreb baseret på valgt klartekst [18] .

Se også

Noter

  1. ↑ 1 2 Luc Bouganim, Yanli Guo. Databasekryptering  // Encyclopedia of Cryptography and Security  / Ed. af Henk C. A. van Tilborg og Sushil Jajodia. - Springer, 2011. - S. 307-312. - ISBN 978-1-4419-5906-5 .
  2. ↑ Typer af databasekrypteringsmetoder  . Solarwinds MSP (10. maj 2019). Hentet: 25. december 2019.
  3. 1 2 Transparent Data Encryption (TDE) . microsoft.com .
  4. 1 2 3 Transparent datakryptering . oracle.com .
  5. Postgres og Transparent Data Encryption (TDE) . enterprisedb.com .
  6. Dato, 2005 .
  7. 1 2 Databasekryptering i SQL Server 2008 Enterprise Edition . microsoft.com .
  8. 1 2 3 4 5 6 7 Baccam, Tanya Transparent datakryptering: Nye teknologier og bedste praksis for databasekryptering . sans.org . SANS Instituttet (april 2010). Hentet: 25. oktober 2015.
  9. 1 2 3 Kryptering på applikationsniveau (dødt link) . thales-esecurity.com . Dato for adgang: 14. december 2016. Arkiveret fra originalen 3. august 2016. 
  10. ↑ 1 2 Raluca Ada Popa, Catherine MS Redfield, Nickolai Zeldovich, Hari Balakrishnan. CryptDB: behandling af forespørgsler på en krypteret database  //  Kommunikation af ACM. — 01-09-2012. — Bd. 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: Fra AutoCrypt og eksponentiel kryptering til nul-videnssikre nøgler. — ISBN 3749461686 .
  12. Yi, Xun (højskolelærer), . Kapitel 2 // Homomorf kryptering og applikationer . — Cham. — 1 onlineressource (xii, 126 sider) s. - ISBN 978-3-319-12229-8 , 3-319-12229-0.
  13. Rakesh Agrawal, Jerry Kiernan, Ramakrishnan Srikant, Yirong Xu. Bestil kryptering til beskyttelse af numeriske data  //  Proceedings of the 2004 ACM SIGMOD international conference on Management of data - SIGMOD '04. - Paris, Frankrig: ACM Press, 2004. - S. 563 . — ISBN 978-1-58113-859-7 . - doi : 10.1145/1007568.1007632 .
  14. ↑ 1 2 3 Ugens angreb: søgbar kryptering og den stadigt voksende lækagefunktion .
  15. F. Betül Durak, Thomas M. DuBuisson, David Cash. Hvad mere afsløres af ordreafslørende kryptering?  (eng.)  // Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security - CCS'16. - Wien, Østrig: ACM Press, 2016. - S. 1155-1166 . - ISBN 978-1-4503-4139-4 . doi : 10.1145 / 2976749.2978379 .
  16. 1 2 3 Beskrivelse af symmetrisk og asymmetrisk kryptering . microsoft.com .
  17. Korobeinikov, 2004 , s. 56.
  18. Alexandra Boldyreva, Nathan Chenette, Younho Lee, Adam O'Neill. Ordrebevarende symmetrisk kryptering  // Fremskridt inden for 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

  • Dato CJ Introduktion til databasesystemer = Introduktion til databasesystemer. - 8. udg. - M. : Williams, 2005. - 1328 s. - ISBN 5-8459-0788-8 (russisk) 0-321-19784-4 (engelsk).
  • Korobeinikov A. G., Gatchin Yu. A. Matematiske grundlag for kryptografi. Tutorial. - Sankt Petersborg. : SPb GU ITMO, 2004. - 106 s.


Links