sql >> Database >  >> RDS >> MariaDB

Databaseversleuteling:waarom en waar u gegevensversleuteling nodig heeft

Databaseversleuteling biedt verbeterde beveiliging voor uw gegevens in rust en onderweg. Veel organisaties zijn serieus gaan kijken naar gegevensversleuteling met recente gevallen van inbreuk op de beveiliging. In de meeste gevallen zijn databaseservers een veelvoorkomend doelwit voor aanvallers, omdat ze voor de meeste organisaties het meest waardevolle bezit bevatten. Zodra een indringer toegang heeft gekregen tot waardevolle gegevens van uw server, is de kans groot dat ze de gegevens ervan zullen stelen. Vervolgens gebruiken ze de gegevens voor losgeld, gegevensexploitatie of ander financieel gewin van de organisatie die ze hebben aangevallen.

In deze blog bespreken we waarom databaseversleuteling belangrijk is en hoe gegevensversleuteling een belangrijke rol speelt bij het beveiligen van uw database.

Waarom heb ik databasecodering nodig?

Databaseversleuteling is een proces om gegevens in de database met behulp van een algoritme om te zetten in 'vercijferde tekst' (onleesbare tekst). U moet een sleutel gebruiken die door het algoritme is gegenereerd om de tekst te decoderen. Het databasecoderingsproces is zeer aan te bevelen, vooral voor bedrijven die te maken hebben met financiën, gezondheidszorg of e-commerce. De laatste tijd zijn er veel cyberaanvallen, gegevensdiefstal of gegevensinbreuken; daarom is er een toenemende bezorgdheid over privégegevens. Mensen zijn zich zeer bewust van gegevensprivacy en -beveiliging en willen dat hun gegevens worden beschermd en alleen worden gebruikt wanneer dat nodig is. Hieronder volgen enkele goede voordelen van databaseversleuteling:

Vermijd beveiligingsaanvallen

Beveiligingsaanvallen zijn onvermijdelijk, maar met betere beveiligings- en gegevensversleutelingsmethoden kunnen indringers bij een gegevensinbreuk de gegevens mogelijk niet analyseren of ontsleutelen om de gegevens beter te begrijpen. Stel dat er een Man-in-the-middle (MITM)-aanval of afluistering plaatsvindt tijdens back-up of overdrachten tussen servers. Als dit een niet-versleutelde gegevensoverdracht is, is dit zeker voordelig voor de aanvallers; geen situatie die u in uw omgeving wilt hebben!

Als je een versleutelde database hebt, moet een aanvaller manieren vinden om de versleutelde gegevens te ontsleutelen. Hoe ver ze kunnen gaan, hangt af van de complexiteit van de encryptie en de toegepaste algoritmen om de versleutelde gegevens te genereren. Aanvallers zullen ook hun best doen om toegang te krijgen tot coderingssleutels, waardoor ze de kluis openen of de gecodeerde gegevens decoderen, vergelijkbaar met goudwinning; gegevens zijn immers tegenwoordig het nieuwe goud. Om dit soort pogingen tot datalekken te voorkomen, is het belangrijk om de infrastructuur op alle mogelijke manieren te beveiligen, inclusief het waar mogelijk beperken van de toegang tot servers.

Naleving van beveiligingsvoorschriften

Als je te maken hebt met beveiligingsvoorschriften zoals PCI-DSS, is codering een van de belangrijkste vereisten. Het is een verplichte eis. Alle kaarthoudergegevens moeten bijvoorbeeld worden versleuteld met behulp van door de industrie geaccepteerde algoritmen (bijv. AES-256, RSA 2048), ingekort, tokenized of gehasht (goedgekeurde hash-algoritmen gespecificeerd in FIPS 180-4:SHA-1, SHA-224, SHA-256, SHA-384 SHA-512, SHA-512/224 en SHA-512/256). Hoewel dat niet het enige is dat gedekt moet worden voor het hebben van gecodeerde gegevens, vereist PCI-DSS ook de dekking van het gebruik van het PCI-DSS-coderingssleutelbeheerproces.

Gevoelige gegevens beschermen

Het encryptiesleutelbeheer is ideaal voor het beschermen van gevoelige gegevens met gecentraliseerd sleutelbeheer en eenvoudige API's voor gegevensversleuteling. Voorbeelden van dit sleutelbeheer zijn het gebruik van Hashicorp Vault (open source) of als u de openbare cloud (closed source) gebruikt, zijn de meest voorkomende closed-source sleutelbeheer Amazon Web Service (AWS), Key Management Service (KMS), Google Cloud KMS, Microsoft Azure Key Vault.

Wat is gegevenscodering?

Encryptie is een van de belangrijkste beveiligingsfuncties om uw gegevens zo veilig mogelijk te houden. Afhankelijk van de gegevens die u verwerkt, is het niet altijd een must, maar u moet het op zijn minst beschouwen als een beveiligingsverbetering in uw organisatie. Het wordt zelfs aanbevolen om gegevensdiefstal of ongeautoriseerde toegang te voorkomen.

Gegevensversleuteling is een proces waarbij de gegevens worden gecodeerd. Het is voornamelijk een tweerichtingsfunctie, wat betekent dat gecodeerde gegevens moeten worden gedecodeerd met een geldige coderingssleutel. Encryptie is zo'n techniek van cryptografie. Versleuteling is een manier om informatie te verbergen door deze te wijzigen zodat het lijkt alsof het willekeurige gegevens zijn - versleutelingsmethoden kunnen uw gegevens (bijvoorbeeld berichten) vertrouwelijk maken, maar tegelijkertijd zijn andere technieken en strategieën vereist om de integriteit en authenticiteit te bieden van een bericht. Versleuteling is meer een wiskundige bewerking.

Bij databaseversleuteling zijn er twee basistypen als het gaat om het versleutelen van de gegevens. Deze coderingstypen zijn gegevens in rust en gegevens in transit. Laten we eens kijken wat ze bedoelen.

Versleuteling van gegevens in rust

Gegevens die in een systeem zijn opgeslagen, staan ​​bekend als gegevens in rust. De codering van deze gegevens bestaat uit het gebruik van een algoritme om tekst of code om te zetten zodat deze onleesbaar wordt. U moet een coderingssleutel hebben om de gecodeerde gegevens te decoderen.

Het versleutelen van een volledige database moet met de nodige voorzichtigheid gebeuren, aangezien dit ernstige gevolgen kan hebben voor de prestaties. Het is daarom verstandig om alleen individuele velden of tabellen te versleutelen. Het versleutelen van data-at-rest beschermt de data tegen fysieke diefstal van harde schijven of ongeautoriseerde toegang tot bestandsopslag. Deze codering voldoet ook aan de voorschriften voor gegevensbeveiliging, vooral als er financiële of gezondheidsgegevens zijn opgeslagen op het bestandssysteem.

Encryptie voor gegevens in rust:waar is dit van toepassing?

Dit omvat gegevens in rust, zoals uw databasegegevens die op een specifieke locatie zijn opgeslagen. Bijvoorbeeld de data_directory van uw PostgreSQL, MySQL/MariaDB data_dir of de dbPath-opslaglocaties van MongoDB. Een algemeen proces voor het verstrekken van codering is het gebruik van transparante gegevenscodering (TDE). Het concept is voornamelijk het versleutelen van alles wat persistent is.

Bovendien zijn databaseback-ups erg gevoelig voor gegevensdiefstal en ongeautoriseerde toegang. Deze worden fysiek opgeslagen in een niet-vluchtige opslag. Hoewel deze instellingen worden blootgesteld om te worden gelezen door ongeautoriseerde toegang of gegevensdiefstal, helpt het versleutelen van de gegevens ongewenste toegang te voorkomen. Natuurlijk komt het ook met het beveiligen van uw coderingssleutels ergens verborgen en niet opgeslagen op dezelfde server. Versleutel uw databasegegevens die zijn opgeslagen als binaire bestanden en uw back-ups, of het nu een logische of een binaire back-up is, houd er rekening mee dat versleutelde gegevens de prestaties beïnvloeden en de bestandsgrootte groter maken.

Versleuteling van gegevens tijdens transport

Gegevens die worden overgedragen of tussen transacties worden verplaatst, worden data-in-transit genoemd. De gegevens die tijdens het browsen op webpagina's tussen de server en de client worden verplaatst, zijn een goed voorbeeld van dit soort gegevens. Omdat het altijd onderweg is, moet het worden gecodeerd om diefstal of wijziging van de gegevens te voorkomen voordat het zijn bestemming bereikt.

De ideale situatie om data-in-transit te beschermen is om de data te versleutelen voordat ze worden verplaatst, en te ontsleutelen zodra ze de eindbestemming hebben bereikt.

Encryptie voor gegevens onderweg:waar is dit van toepassing?

Zoals hierboven aangegeven, heeft dit betrekking op het communicatiekanaal tussen de databaseclient en de databaseserver. Houd rekening met de kanalen van de applicatieserver en databaseserver die zijn gecompromitteerd, en de aanvaller of indringer afluistert of voert een MITM-aanval uit. De aanvaller kan de gegevens die via een onveilig kanaal worden verzonden, beluisteren en vastleggen. Dit kan worden vermeden als de gegevens die via de kabel worden verzonden vanaf de databaseclient en het communicatiekanaal van de databaseserver worden gecodeerd met TLS/SSL-codering.

Omgaan met database-encryptie brengt ook veel uitdagingen met zich mee. Hoewel er voordelen zijn, zijn er gevallen dat het een nadeel is. Laten we eens kijken wat dit zijn.

Voordelen van gegevenscodering

Hier zijn de lijsten met veelvoorkomende en echte gevallen waarin gegevensversleuteling als voordeel wordt gebruikt.

  • Het biedt te allen tijde beveiliging voor al uw gegevens

  • Beschermt te allen tijde privacy en gevoelige informatie

  • Beschermt uw gegevens op verschillende apparaten

  • Beveilig uw naleving van de regelgeving door de overheid

  • Het geeft je een voorsprong omdat je een concurrentievoordeel hebt

  • Aanwezigheid van onderliggende technologie voor encryptie voor gegevensbescherming kan het vertrouwen vergroten

  • Versleutelde gegevens behouden integriteit

Nadelen van gegevenscodering

Gegevensversleuteling betekent niet zakelijk succes. Het geeft je geen voorsprong als groeiende, innovatieve en geavanceerde technologie zonder de uitdagingen en best practices te kennen om dit te implementeren en aan te pakken. Het is waar voor het gezegde "All That Glitters Is Not Gold". Er zijn bepaalde nadelen als u gegevensversleuteling gebruikt als u het hoofddoel niet begrijpt.

Gegevensversleuteling en prestatiestraffen

Encryptie omvat complexe en geavanceerde wiskundige bewerkingen om de betekenis van gegevens te verbergen. Afhankelijk van welke soorten cijfers of algoritmen u kiest voor hashen of voor het ontcijferen van de gegevens. Het complexe en de hogere bits zijn, als uw database is ontworpen om tonnen verzoeken te verwerken, dan zal het uw bronnen, vooral de CPU, vastlopen. Het instellen van gegevensversleuteling zoals TLS voor uw in-transit of het gebruik van RSA 2048 bits kan te veel zijn als uw financiële capaciteit dit soort gevolgen niet heeft overzien. Het is een resource-intensief en legt extra druk op de processor van het systeem. Hoewel moderne computersystemen krachtig en betaalbaar zijn, kunnen vooral voor openbare cloud-aanbiedingen acceptabel zijn. Bereid eerst een evaluatie voor en identificeer wat voor soort prestatie-impact versleuteling zal hebben in de context waarin u het gaat gebruiken. Het is ook belangrijk om te begrijpen dat de prestaties van de verschillende coderingsoplossingen verschillend zijn. Dat betekent dat de behoefte aan snelheid en veiligheid zorgvuldig tegen elkaar moeten worden afgewogen.

De gegevenscoderingssleutels verliezen

Het wordt steeds gebruikelijker om de coderingssleutels op te slaan in een veilige kluis, zoals eerder vermeld, zoals Hashicorp Vault, AWS KMS en andere. Een belangrijk probleem van het hebben van codering is dat als iemand de decoderingssleutel verliest, dat grote problemen zou betekenen. U kunt vertellen dat het ongeveer hetzelfde is als het hebben van een wachtwoord, maar het wordt behandeld als een globale sleutel om alle versleutelde gegevens te decoderen. Tenzij je verschillende coderingssleutels hebt voor elk aspect van je database, dan kan dat betekenen dat er veel wachtwoorden moeten worden onthouden en veilig moeten worden bewaard.

Gegevensversleuteling heeft invloed op hersteltijd

Als uw gegevens in rust, zoals back-ups, versleuteld zijn, kan het herstellen met uw eigen back-up in geval van een totale ramp de tijd verdubbelen of verdrievoudigen of zelfs veel meer, afhankelijk van hoe u het type hebt ingesteld van algoritmen of cijfers. Dit zorgt voor extra druk wanneer u uw cluster en applicatie op tijd wilt hebben, maar dit niet kan omdat het ontcijferen of ontsleutelen van de gegevens te veel tijd en systeembronnen kost.

Beperkte bescherming tegen aanvallen op applicatieniveau of insiders

Natuurlijk is dit te begrijpen door de essentie van versleuteling. Maar dit betekent niet dat u niet meer hoeft te versleutelen, alleen maar omdat het geen bescherming toepast op applicatieniveau. Dat is natuurlijk een andere beveiligingslaag die in de applicatielaag moet worden aangebracht. Zeker, als iemand toegang krijgt tot uw databasegebruiker/wachtwoord, vooral met beheerderstoegang, dan helpt codering hier niet. De aanvaller kan gegevens ophalen door een reeks SQL-query's uit te voeren die natuurlijk door mensen kunnen worden gelezen, tenzij er een bepaald niveau van toepassingslogica is die de ware betekenis van uw gegevens versleutelt. Aan de andere kant voegt dat alleen maar extra werk en complexiteit toe aan de algehele vastgelopen technologie die u gebruikt. Als je een groot team hebt dat is toegewezen aan elk van deze lagen, dan is dat een groot voordeel, omdat het beheer van de complexiteit alleen kan worden besteed aan elke rol waarop ze zich zouden moeten concentreren.

Samenwerking en vertrouwen met peers die de gegevenscoderingssleutels bezitten

Absoluut een goede zaak om hier te overwegen. Wat als de peer die de sleutels kent en waar deze is opgeslagen of het wachtwoord van uw opslagkluis is achtergelaten? Het is erg belangrijk om de fysieke toegang aan te geven van de server waar de sleutels en wachtwoorden worden opgeslagen. Het aanwijzen van de rol en het beperken van toegang tot deze sleutels en wachtwoorden is erg belangrijk. Het helpt ook als je een lange en complexe combinatie van wachtwoorden hebt, zodat het moeilijk te onthouden is, maar tegelijkertijd gemakkelijk terug te vinden is wanneer dat nodig is. Hoewel dat ironisch klinkt, moet een geheim heilig blijven.

Moet ik om gegevenscodering geven?

Gegevensversleuteling is wenselijk en vaak verplicht, zoals vermeld, afhankelijk van het schematische proces van uw toepassing en het ontwerp en het bedrijfsniveau waarmee u bezig bent.

Moet je gegevensversleuteling belangrijk vinden? Zeker ja. Het komt ook naar voren, met persoonlijke afhankelijkheid en zakelijke doeleinden. In de aanwezigheid van gevoelige gegevens, vooral wanneer u al uw eigen persona en financiële capaciteit in uw organisatie en bedrijf hebt opgebouwd, bevinden alle gegevens zich op een veel hoger niveau van gevoeligheid. U wilt niet dat iemand uw gegevens steelt en alle strategische en zakelijke zaken kent die betrokken zijn bij de groei van uw bedrijf. Gegevens moeten in dit geval worden beveiligd; encryptie is dus een essentieel aspect van het beveiligen van uw database en de gegevens zelf.

Conclusie

Omdat gevoelige gegevens altijd bestaan, zelfs in ons persoonlijke dagelijkse leven, neemt het volume aan gevoelige en waardevolle gegevens in een organisatie parallel toe. Het is belangrijk om te begrijpen dat niet alle gegevens versleuteling vereisen. Zeker, sommige gegevens worden wereldwijd gedeeld of vaak hergebruikt; dit type gegevens hoeft niet versleuteld te worden. Let op de voor- en nadelen van het gebruik van encryptie in uw database. Door te bepalen waar het van toepassing is en hoe u het moet toepassen, kunt u een veilige omgeving bereiken zonder enige invloed op de prestaties.


  1. Tekenen dat uw database niet langer voor u werkt

  2. TAAL MAKEN plpython3u – PostgreSQL 9.6

  3. TypeORM subquery's

  4. Een veld verplaatsen in het queryraster in Microsoft Access