SQL Server Encryption Explained: TDE, Column-Level Encryption and More
az adatvédelem kritikus fontosságú annak biztosítása érdekében, hogy szervezete megfeleljen a GDPR-hez hasonló szabályozásmegfelelőségi előírásoknak, valamint az ügyfelek és üzleti partnerek elvárásainak. Nem csak az adatok megsértése vezethet nagy bírságok, de a reputációs kár is ugyanolyan nagy. A Microsoft SQL Server 5 különböző típusú titkosítást támogat az adatok védelme érdekében. Ez a cikk elmagyarázza mindegyiket, és hol kell használni őket.
SSL Közlekedési Titkosítással
Mint a weboldalak, hogy a biztonságos közlekedési között böngésző server, SQL Server lehet beállítani, hogy a use Secure Sockets Layer (SSL) titkosítja a forgalom, mint utazik között a szerver fokon kliens alkalmazás. Ezenkívül az ügyfél a kiszolgáló tanúsítványával érvényesítheti a kiszolgáló személyazonosságát. Az SSL csak akkor védi az adatokat, amikor a hálózaton keresztül halad, de az SQL Server titkosítás legtöbb más formájával ellentétben az SSL Az SQL Server összes támogatott verziójában és minden kiadásban elérhető.
az SSL engedélyezése előtt telepítenie kell egy tanúsítványt az SQL szerverre. A legjobb módja ennek az, ha igazolást kér a saját vállalati tanúsító hatóságától (CA). A Windows Server CA-ként konfigurálható, az ügyfeleket pedig úgy állíthatja be, hogy bízzanak az általa kiadott tanúsítványokban. Alternatív megoldásként önaláírt tanúsítványok is használhatók, bár ez a legalkalmasabb a környezetek tesztelésére.
SQL Server Transparent Data Encryption (TDE)
Transparent Data Encryption (TDE) in SQL Server protects data at rest by encrypting database data and log files on disk. Átlátható módon működik az ügyfél meglévő alkalmazásai számára, így nem kell megváltoztatni őket, ha a TDE engedélyezve van. A TDE valós idejű titkosítást használ az oldal szintjén. Az oldalak titkosítva vannak, mielőtt lemezre írnák őket, anélkül, hogy növelnék az adatok és a naplófájlok méretét, az oldalak pedig visszafejtésre kerülnek, amikor a memóriába olvasnak. A TDE csak az SQL Server vállalati kiadásaiban érhető el. Az Azure SQL Database, az Azure SQL Data Warehouse és a Parallel Data Warehouse esetében is működik.
a TDE titkosítás hierarchikus felépítésű, a hierarchia tetején a Windows Data Protection API (DPAPI) található, amelyet a service master key (SMK) titkosítására használnak. Az SMK segítségével titkosíthatja a hitelesítő adatokat, a csatolt szerver jelszavakat, valamint a különböző adatbázisokban található adatbázis-kezelő kulcsokat (DMKs). Az SQL DMK egy szimmetrikus kulcs, amely védi az adatbázisokban tárolt tanúsítványok és aszimmetrikus kulcsok privát kulcsait.
az SQL Server saját aláírású tanúsítványokat hozhat létre a TDE-vel való használatra, vagy tanúsítványt kérhet egy CA-tól (ami a gyakoribb megközelítés). Ha úgy dönt, hogy engedélyezi a TDE-t, biztonsági másolatot kell készítenie a tanúsítványról és a tanúsítványhoz társított privát kulcsról. Vissza kell állítania vagy csatolnia kell az adatbázist egy másik SQL szerverre. Ha engedélyezi a TDE-t bármely más SQL Server adatbázisban, akkor a tempdb rendszeradatbázis is titkosítva van. Ha letiltja a TDE-t, akkor tartsa meg a tanúsítványt és a privát kulcsot, mert a tranzakciós napló egyes részei titkosítva maradhatnak a teljes biztonsági mentés végrehajtásáig.
a TDE adatbázis-titkosítási kulcsot (dek) is igényel, amely vagy egy szimmetrikus kulcs, amelyet a mesteradatbázisban tárolt tanúsítvány véd, vagy egy aszimmetrikus kulcs, amelyet egy Extensible Key Management (EKM) szolgáltatást használó szolgáltatás véd, például a Microsoft Azure Key Vault. A TDE-kompatibilis adatbázisok biztonsági mentési fájljai a DEK segítségével titkosítva vannak, így a visszaállítási műveletek során a DEK-t védő tanúsítványnak elérhetőnek kell lennie.
A szimmetrikus kulcsok ugyanazt a jelszót használják az adatok titkosításához és dekódolásához. Az aszimmetrikus kulcsok egy jelszót használnak az adatok titkosításához (nyilvános kulcs), valamint egy másik jelszót az adatok dekódolásához (privát kulcs). A tanúsítvány létrehozása paranccsal létrehozhat tanúsítványokat, valamint a szimmetrikus kulcs létrehozása, valamint aszimmetrikus kulcs Tranact-SQL parancsok létrehozása adatbázis titkosítási kulcsok létrehozásához.
Backup Encryption
Backup Encryption works like TDE, but encrypts SQL backups instead of the active data and log files. A biztonsági mentés titkosítása az SQL Server 2014-ben vagy később érhető el. Megadhatja az AES 128, AES 192, AES 256 vagy Triple DES titkosítást, valamint használhatja az EKM-ben tárolt tanúsítványt vagy aszimmetrikus kulcsot. Ezenkívül lehetőség van a TDE és a Backup titkosítás egyidejű engedélyezésére is, bár különböző tanúsítványokat vagy kulcsokat kell használnia.
csakúgy, mint a TDE esetében, ha engedélyezi a biztonsági mentési titkosítást, akkor biztonsági másolatot kell készítenie a tanúsítványról vagy a kulcsról. Kulcs vagy tanúsítvány nélkül a biztonsági mentési fájl nem használható az adatok visszaállítására. A biztonsági mentések titkosíthatók az SQL Server felügyelt biztonsági mentésének a Microsoft Azure-ra történő használatakor is.
érdemes megjegyezni, hogy ha tanúsítványt használ a biztonsági mentések titkosításához, akkor az adatok visszaállításakor rendelkeznie kell az eredeti tanúsítvánnyal. Ez azt jelenti, hogy a tanúsítványnak ugyanolyan ujjlenyomattal kell rendelkeznie, mint a biztonsági mentés létrehozásakor. A tanúsítványok megújítása vagy megváltoztatása bármilyen módon megváltoztathatja az ujjlenyomatot.
oszlop / sejtszintű titkosítás
Az SQL Server összes kiadásában elérhető, a cellaszintű titkosítás engedélyezhető érzékeny adatokat tartalmazó oszlopokon. Az adatok a lemezen titkosítva maradnak a memóriában, amíg a DECRYPTBYKEY funkciót nem használják a dekódoláshoz. Ezért, bár az SQL adatok titkosítva vannak, nem biztonságos azon túl, hogy egyszerűen csak egy funkciót használ a felhasználói környezetben a dekódoláshoz. Továbbá, mivel az adatok visszafejtéséhez egy funkcióra van szükség, az ügyfélalkalmazásokat módosítani kell a sejtszintű titkosítással való működéshez.
titkosítási kulcskezelés
a TDE-hez hasonlóan létre kell hoznia egy mester kulcsot (DMK) a cellaszintű titkosítás használata előtt. Négy lehetőség van az információk titkosítására cellaszintű titkosítás segítségével:
- az adatok titkosításához és visszafejtéséhez jelszó használható, de a tárolt eljárásokat és funkciókat titkosítani kell; ellenkező esetben a jelszó elérhető a metaadatokban.
- az aszimmetrikus gombok erős biztonságot nyújtanak, de hatással lehetnek a teljesítményre.
- a szimmetrikus billentyűk általában elég erősek, és jó egyensúlyt biztosítanak a biztonság és a teljesítmény között.a
- Tanúsítványok jó egyensúlyt biztosítanak a biztonság és a teljesítmény között, és társíthatók egy adatbázis-felhasználóhoz.
mindig titkosított
mindig titkosított titkosítja az érzékeny adatokat az ügyfélalkalmazásokban anélkül, hogy felfedné az adatbázismotor titkosítási kulcsait, biztosítva az adattulajdonosok és az adatkezelők szétválasztását. Például, ha a mindig titkosított engedélyezve van, biztos lehet benne, hogy az adatbázis adminisztrátorai nem képesek érzékeny adatokat olvasni. Ahogy a neve is sugallja, az adatokat nyugalmi állapotban titkosítják, ha harmadik fél rendszerében használják, például az Azure-ban.
mindig titkosított lehet beállítani az egyes adatbázis oszlopok. Kétféle kulcsot használnak: oszlop titkosítási kulcsok és oszlop fő kulcsok. Az oszlop titkosítási kulcsok védik az adatokat egy oszlopban és az oszlop főbillentyűi “kulcsvédőbillentyűk”, amelyek egy vagy több oszlop titkosítási kulcsot titkosítanak. Az oszlop fő kulcsai külső megbízható kulcstárolókban, például az Azure Key Vaultban vannak tárolva.
a titkosítási folyamat átlátható az ügyfélalkalmazások számára, de speciális illesztőprogramot igényel az ügyfélszámítógépeken. Mindig titkosított elérhető az SQL Server 2016-ban vagy később, de csak a vállalati kiadásokban. Az extra ügyféloldali követelmények miatt a mindig titkosítva a legalkalmasabb olyan helyzetekben, amikor az adattulajdonosok és a vezetők szétválasztása elsődleges követelmény.