Daarvoor bestaat encryption at rest: het versleutelen van gegevens terwijl ze op schijf staan. MariaDB ondersteunt dit met ingebouwde InnoDB-encryptie. Daarmee blijven databasebestanden onleesbaar zonder de bijbehorende encryptiesleutel, bijvoorbeeld wanneer een schijf wordt gestolen of een kopie van de opslag in verkeerde handen valt.

Op Cyberfusion Core schakelen jullie MariaDB-encryptie met één instelling in. Bestaande tabellen worden automatisch versleuteld en nieuwe tabellen zijn vanaf dat moment standaard encrypted. Je hoeft hiervoor niets aan de applicatie te veranderen.

Voor welke applicaties is database-encryptie interessant?

Voor SaaS-bedrijven is de database vaak de plek waar de belangrijkste gegevens van klanten samenkomen. Denk aan persoonsgegevens, gebruikersaccounts en vertrouwelijke bedrijfsinformatie. Bij een multi-tenant SaaS-platform staan bovendien de gegevens van verschillende klanten op dezelfde infrastructuur. Die klanten stellen steeds vaker eisen aan hoe hun gegevens worden beveiligd. Encryption at rest kan een onderdeel zijn van de beveiligingsmaatregelen die je in een security-assessment of bij een aanbesteding moet kunnen aantonen.

Ook webshops verwerken grote hoeveelheden persoonsgegevens. Namen, adressen, contactgegevens en bestelhistorie worden dagelijks opgeslagen en opgevraagd. Database-encryptie verkleint het risico dat deze informatie toegankelijk wordt wanneer iemand de onderliggende opslag in handen krijgt.

Voor webbureaus en developers speelt daarnaast de verantwoordelijkheid richting opdrachtgevers. Zij beheren regelmatig applicaties met klantgegevens, ledenadministraties of andere vertrouwelijke informatie. Encryptie kan helpen om aan de beveiligingseisen van die opdrachtgevers te voldoen.

Bij zorgapplicaties en financiële platforms is de gevoeligheid van de gegevens vaak nog groter. Medische dossiers, patiëntinformatie, financiële transacties en vertrouwelijke documenten vragen om aanvullende beveiligingsmaatregelen.

Hoe werkt database-encryptie in MariaDB?

MariaDB slaat de inhoud van je database op in bestanden op de schijf. Bij InnoDB, de standaard storage-engine van MariaDB, bestaan die bestanden uit - onder andere - tabelgegevens en indexen.

Normaal gesproken kan iemand die toegang krijgt tot die bestanden, de gegevens uitlezen. Met encryption at rest worden de InnoDB-tabellen versleuteld voordat MariaDB ze naar de schijf schrijft (probeer dat maar eens heel vaak achter elkaar te zeggen). Wanneer MariaDB de gegevens weer nodig heeft, worden ze in het geheugen ontsleuteld.

Zonder encryptie
  1. MariaDB gegevens
  2. Rechtstreeks naar schijf
  3. Schijf leesbare data
Met encryption at rest
  1. MariaDB gegevens
  2. Encryptie met key
  3. Schijf encrypted data
MariaDB versleutelt InnoDB-pagina's bij het schrijven naar schijf en ontsleutelt ze bij het lezen.

De applicatie blijft gewoon met MariaDB communiceren zoals voorheen. Een applicatie die een SELECT-query uitvoert, krijgt dezelfde resultaten terug als voorheen. Ook INSERT- en UPDATE-queries werken ongewijzigd.

Dat geldt eveneens voor phpMyAdmin, mysqldump, database-imports en restores. Die werken via MariaDB, en zien daardoor de ontsleutelde gegevens. Vanuit het perspectief van sites en applicaties verandert er dus niets, maar de tabellen worden op disk wél versleuteld opgeslagen.

Waartegen beschermt database-encryptie?

Encryption at rest beschermt tegen situaties waarin iemand toegang krijgt tot de onderliggende opslag. Denk aan een gestolen server, een schijf die wordt afgevoerd zonder goed gewist te zijn of een onbevoegd gemaakte kopie van de databasebestanden.

De bestanden zijn dan niet zomaar uit te lezen. Om de oorspronkelijke gegevens te herstellen, is ook de encryptiesleutel nodig.

Encryption at rest is daarom een aanvullende beveiligingsmaatregel, naast sterke authenticatie, beperkte databaseprivileges, veilige applicatiecode en versleutelde netwerkverbindingen via TLS.

Wat betekent encryptie voor de prestaties van MySQL en MariaDB?

Encryptie kost rekenkracht. Bij iedere schijfbewerking waarvoor encryptie nodig is, moet MariaDB gegevens versleutelen of ontsleutelen. Hoe groot de invloed is, hangt onder andere af van de verhouding tussen geheugen- en schijftoegang.

InnoDB houdt veelgebruikte tabelgegevens en indexen bij in de bufferpool. Zodra een pagina vanaf de schijf is gelezen en ontsleuteld, blijft die in het geheugen beschikbaar. MariaDB hoeft de pagina daardoor niet bij iedere query opnieuw te ontsleutelen.

Voor MariaDB-encryptie op Core moet je rekening houden met ongeveer 3 tot 5% lagere throughput. Bij de meeste applicaties is dat nauwelijks merkbaar. Bij databases met veel lees- of schrijfbewerkingen kan de impact groter zijn en is het verstandig om vooraf met een representatieve workload te testen.

MariaDB-encryptie inschakelen op Cyberfusion Core

Op Cyberfusion Core is MariaDB-encryptie beschikbaar als eenvoudige instelling. Je hoeft zelf geen encryption-plugins te installeren, encryption-keys te configureren, of bestaande tabellen handmatig aan te passen.

  • Eén instelling

    Schakel encryptie in via Core. Alle bestaande InnoDB-tabellen worden dan, met terugwerkende kracht, encrypted.

  • Automatische encryptie

    Nieuwe tabellen worden direct encrypted.

  • Geen codewijzigingen

    Applicaties, queries, database-back-ups en beheertools blijven op dezelfde manier werken.

Het inschakelen zelf vraagt wel enige planning. MariaDB moet eerst opnieuw starten om de encryption-plugin te laden. Tijdens die herstart zijn de databases enkele seconden onbereikbaar. Applicaties die op dat moment een query uitvoeren, kunnen daardoor tijdelijk een foutmelding tonen.

Daarna begint MariaDB op de achtergrond met het versleutelen van bestaande tabellen. Dat levert tijdelijk extra schijfactiviteit en CPU-belasting op, waardoor queries iets trager kunnen worden. Bij een kleine database kan de encryptie binnen enkele minuten afgerond zijn. Bij honderden gigabytes aan gegevens kan dat uren duren.

We raden daarom aan om encryptie tijdens een rustig moment in te schakelen.

Houd er rekening mee dat het inschakelen van encryptie niet kan worden teruggedraaid.

Geavanceerd gebruik: meerdere encryptiesleutels gebruiken

Wanneer je database-encryption aanzet, gebruikt MariaDB op Core één encryption-key voor alle versleutelde tabellen. Nieuwe InnoDB-tabellen worden automatisch met die key versleuteld.

Voor geavanceerd gebruik kan het nodig of wenselijk zijn om verschillende tabellen met afzonderlijke keys te encrypten. Dan kun je via de Core API extra MariaDB-encryption-keys aanmaken, en bij het creëren van tabellen expliciet een key kiezen.

Bijvoorbeeld:

CREATE TABLE customers (
    id INT PRIMARY KEY
)
ENGINE=InnoDB
ENCRYPTED=YES
ENCRYPTION_KEY_ID=2;

Hierbij gebruikt de tabel de encryptiesleutel met ID 2, die vooraf via de API moet zijn aangemaakt.

Voor het gros van de applicaties volstaat één key. Meerdere keys kunnen nodig zijn wanneer een applicatie specifieke eisen aan de scheiding van gegevens stelt.

Database-encryptie als onderdeel van managed hosting

Database-encryptie is een extra beveiligingslaag die vooral interessant is voor applicaties die persoonsgegevens, financiële informatie of andere vertrouwelijke gegevens verwerken. Ook bij beveiligingsaudits en compliance-trajecten kan encryption at rest een relevante maatregel zijn, bijvoorbeeld voor SaaS-applicaties en grote platforms.

Op Cyberfusion Core kun je die beveiliging inschakelen zonder zelf het sleutelbeheer, de configuratie van MariaDB of de encryptie van bestaande tabellen te organiseren.

Wil je weten hoe je MariaDB-encryptie inschakelt, welke technische gevolgen dit heeft voor databases, en hoe je de voortgang van encryptie controleert? Lees dan onze technische documentatie over MariaDB-encryptie.