Megosztás a következőn keresztül:


Transzparens adattitkosítás (TDE)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

A transzparens adattitkosítás (TDE) titkosítja az SQL Servert, az Azure SQL Database-t és az Azure Synapse Analytics-adatfájlokat. Ezt a titkosítást inaktív adatok titkosításának nevezzük.

A felhasználói adatbázisok biztonságossá tételéhez az alábbi óvintézkedéseket teheti:

  • Biztonságos rendszer tervezése.
  • Bizalmas objektumok titkosítása.
  • Tűzfal létrehozása az adatbázis-kiszolgálók köré.

Azonban egy rosszindulatú fél, aki fizikai adathordozót, például meghajtókat vagy biztonsági mentési szalagokat lop, visszaállíthatja vagy csatolhatja az adatbázist, és tallózhat az adatai között.

Az egyik megoldás a bizalmas adatok titkosítása az adatbázisban, és tanúsítvány használata az adatok titkosítását biztosító kulcsok védelmére. Ez a megoldás megakadályozza, hogy a kulcsok nélkül bárki használja az adatokat. De előre meg kell terveznie ezt a fajta védelmet.

A TDE valós idejű I/O-titkosítást és adat- és naplófájl-visszafejtést végez. A titkosítás adatbázis-titkosítási kulcsot (DEK) használ. Az adatbázis rendszerindítási rekordja a rendelkezésre állás kulcsát tárolja a helyreállítás során. A DEK egy szimmetrikus kulcs, amelyet a kiszolgáló adatbázisa master által tárolt tanúsítvány vagy egy EKM-modul által védett aszimmetrikus kulcs biztosít.

A TDE védi az inaktív adatokat, vagyis az adatokat és a naplófájlokat. Lehetővé teszi a különböző iparágakban létrehozott számos törvény, rendelet és irányelv követését. Ez a képesség lehetővé teszi, hogy a szoftverfejlesztők AES- és 3DES-titkosítási algoritmusokkal titkosítják az adatokat a meglévő alkalmazások módosítása nélkül.

Megjegyzés:

A TDE nem érhető el a rendszeradatbázisokhoz. Nem használható titkosításra vagy modelmsdbtitkosításramaster. tempdb automatikusan titkosítva van, ha egy felhasználói adatbázis engedélyezte a TDE-t, de közvetlenül nem titkosítható.

A TDE nem biztosít titkosítást a kommunikációs csatornák között. További információ az adatok kommunikációs csatornák közötti titkosításáról: Sql Server-kapcsolatok titkosítása tanúsítvány importálásával.

Kapcsolódó témakörök:

Tudnivalók a TDE-ről

Az adatbázisfájl titkosítása az oldal szintjén történik. A titkosított adatbázisok lapjai titkosítva vannak, mielőtt lemezre írnának, és visszafejthetők a memóriába való beolvasáskor. A TDE nem növeli a titkosított adatbázis méretét.

Az SQL Database-re vonatkozó információk

Amikor a TDE-t az Azure SQL Database-vel használja, az SQL Database automatikusan létrehozza az adatbázisban tárolt kiszolgálószintű tanúsítványt master . Ha TDE-adatbázist szeretne áthelyezni az SQL Database-en, nem kell visszafejtenie az adatbázist az áthelyezési művelethez. A TDE és az SQL Database használatával kapcsolatos további információkért lásd az Azure SQL Database transzparens adattitkosítását.

Az SQL Serverre vonatkozó információk

Miután biztonságossá tette az adatbázist, a megfelelő tanúsítvány használatával visszaállíthatja azt. További információ a tanúsítványokról: SQL Server-tanúsítványok és aszimmetrikus kulcsok.

A TDE engedélyezése után azonnal biztonsági másolatot készít a tanúsítványról és a hozzá tartozó titkos kulcsról. Ha a tanúsítvány elérhetetlenné válik, vagy ha egy másik kiszolgálón állítja vissza vagy csatolja az adatbázist, biztonsági másolatot kell készítenie a tanúsítványról és a titkos kulcsról. Ellenkező esetben nem nyitható meg az adatbázis. A tárolt rendszeradatbázisban tárolt tanúsítványokról is biztonsági másolatot kell készíteni.

Akkor is tartsa meg a titkosítási tanúsítványt, ha letiltotta a TDE-t az adatbázisban. Bár az adatbázis nincs titkosítva, előfordulhat, hogy a tranzakciónapló egyes részei védettek maradnak. Előfordulhat, hogy bizonyos műveletekhez szüksége lesz a tanúsítványra, amíg teljes adatbázis-biztonsági másolatot nem készít.

A TDE-vel történő adatok titkosításához és visszafejtéséhez továbbra is használhat olyan tanúsítványt, amely túllépi a lejárati dátumát.

Titkosítási hierarchia

A Windows Data Protection API (DPAPI) a titkosítási fa gyökerénél található, a kulcshierarchiát a gép szintjén védi, és az adatbázis-kiszolgálópéldány szolgáltatás-főkulcsának (SMK) védelmére szolgál. Az SMK védi a felhasználói adatbázis szintjén tárolt adatbázis-főkulcsot (DMK), és védi a tanúsítványokat és az aszimmetrikus kulcsokat. Ezek a kulcsok viszont védik a szimmetrikus kulcsokat, amelyek védik az adatokat. A TDE a tanúsítványhoz hasonló hierarchiát használ. A TDE használatakor a DMK-t és a tanúsítványt az master adatbázisban kell tárolni. A rendszer létrehoz és tárol egy új kulcsot, amelyet csak a TDE-hez használnak, és amelyet adatbázistitkosítási kulcsnak (DEK) nevezünk.

Az alábbi ábra a TDE-titkosítás architektúráját mutatja be. Csak az adatbázisszintű elemek (az adatbázis titkosítási kulcsa és ALTER DATABASE részei) konfigurálhatók felhasználó által konfigurálhatóak, ha TDE-t használ az SQL Database-en.

A transzparens adattitkosítási architektúrát bemutató ábra.

TDE engedélyezése

A TDE használatához kövesse az alábbi lépéseket.

A következőkre vonatkozik: SQL Server.

  1. Hozzon létre egy főkulcsot.
  2. Hozzon létre vagy szerezzen be egy főkulcs által védett tanúsítványt.
  3. Hozzon létre egy adatbázistitkosítási kulcsot, és védje azt a tanúsítvány használatával.
  4. Állítsa be az adatbázist titkosítás használatára.

Az alábbi példa az AdventureWorks2022 adatbázis titkosítását és visszafejtést mutatja be egy, a kiszolgálón telepített tanúsítvány MyServerCert használatával.

USE master;
GO

CREATE MASTER KEY ENCRYPTION BY PASSWORD= '<password>';
GO

CREATE CERTIFICATE MyServerCert
    WITH SUBJECT = 'My DEK Certificate';
GO

USE AdventureWorks2022;
GO

CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256
    ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO

ALTER DATABASE AdventureWorks2022
    SET ENCRYPTION ON;
GO

A titkosítási és visszafejtési műveleteket az SQL Server háttérszálakra ütemezi. A műveletek állapotának megtekintéséhez használja a katalógusnézeteket és a dinamikus felügyeleti nézeteket a cikkben később megjelenő táblázatban.

Caution

A TDE-kompatibilis adatbázisok biztonsági mentési fájljai a DEK-val is titkosítva vannak. Ennek eredményeképpen ezeknek a biztonsági másolatoknak a visszaállításakor a DEK-t védő tanúsítványnak elérhetőnek kell lennie. Ezért az adatbázis biztonsági mentése mellett gondoskodjon a kiszolgálótanúsítványok biztonsági mentéséről. Adatvesztés akkor történik, ha a tanúsítványok már nem érhetők el.

További információ: SQL Server-tanúsítványok és aszimmetrikus kulcsok.

Parancsok és függvények

A TDE-tanúsítványok elfogadásához az alábbi utasításokhoz használjon adatbázis-főkulcsot a titkosításukhoz. Ha csak jelszóval titkosítja őket, az utasítások elutasítják őket titkosítóként.

Fontos

Ha a tanúsítványokat jelszóval védi a TDE használata után, az adatbázis újraindítás után elérhetetlenné válik.

Az alábbi táblázat a TDE-parancsok és -függvények hivatkozásait és magyarázatait tartalmazza:

Parancs vagy függvény Cél
ADATBÁZIS-TITKOSÍTÁSI KULCS LÉTREHOZÁSA Adatbázist titkosító kulcs létrehozása
ADATBÁZIS TITKOSÍTÁSI KULCSÁNAK MÓDOSÍTÁSA Az adatbázist titkosító kulcs módosítása
ADATBÁZIS TITKOSÍTÁSI KULCSÁNAK ELVETÉSE Eltávolítja az adatbázist titkosító kulcsot
AZ ALTER DATABASE SET beállításai ALTER DATABASE A TDE engedélyezéséhez használt beállítás leírása

Katalógusnézetek és dinamikus felügyeleti nézetek

Az alábbi táblázat a TDE-katalógusnézeteket és a dinamikus felügyeleti nézeteket (DMV) mutatja be.

Katalógusnézet vagy dinamikus felügyeleti nézet Cél
sys.databases Adatbázisadatokat megjelenítő katalógusnézet
sys.certificates Katalógusnézet, amely egy adatbázisban lévő tanúsítványokat jeleníti meg
sys.dm_database_encryption_keys Dinamikus felügyeleti nézet, amely információt nyújt az adatbázis titkosítási kulcsairól és a titkosítás állapotáról

Permissions

Minden TDE-funkciónak és parancsnak egyedi engedélykövetelményei vannak a korábban bemutatott táblázatokban leírtak szerint.

A TDE-vel kapcsolatos metaadatok megtekintéséhez tanúsítványra van szükség VIEW DEFINITION .

Megfontolások

Amíg az adatbázis titkosítási műveletének újratitkosítása folyamatban van, az adatbázis karbantartási műveletei le lesznek tiltva. Az adatbázis egyfelhasználós üzemmódbeállításával karbantartási műveleteket hajthat végre. További információ: Adatbázis beállítása egyfelhasználós üzemmódra.

sys.dm_database_encryption_keys A dinamikus felügyeleti nézettel keresse meg az adatbázis-titkosítás állapotát. További információ: A katalógusnézetek és a dinamikus felügyeleti nézetek szakasz a jelen cikk korábbi részében.

A TDE-ben az adatbázis összes fájlja és fájlcsoportja titkosítva van. Ha egy adatbázis bármelyik fájlcsoportja meg van jelölve READ ONLY, az adatbázis titkosítási művelete meghiúsul.

Ha adatbázist használ az adatbázis tükrözésében vagy a naplók szállításában, mindkét adatbázis titkosítva lesz. A naplótranzakciók titkosítva lesznek, amikor elküldik őket.

Fontos

A teljes szöveges indexek titkosítva lesznek, ha egy adatbázis titkosításra van beállítva. Az SQL Server 2005 (9.x) és korábbi verzióiban létrehozott indexeket az SQL Server 2008 (10.0.x) és újabb verziói importálják az adatbázisba, és a TDE titkosítja őket.

Jótanács

Az adatbázisok TDE-állapotának változásainak monitorozásához használja az SQL Server-naplózást vagy az Azure SQL Database-naplózást. Az SQL Server esetében a TDE a naplózási műveletcsoport DATABASE_OBJECT_CHANGE_GROUPalatt van nyomon követve, amelyet az SQL Server naplózási műveletcsoportjaiban és műveleteiben talál.

Korlátozások

Az adatbázis kezdeti titkosítása, kulcsmódosítása vagy adatbázis-visszafejtése során a következő műveletek lesznek letiltva:

  • Fájl elvetése egy fájlcsoportból egy adatbázisban
  • Adatbázis elvetése
  • Adatbázis offline állapotba helyezése
  • Adatbázis leválasztása
  • Adatbázis vagy fájlcsoport áttűnése állapotba READ ONLY

A következő műveletek nem engedélyezettek a CREATE DATABASE ENCRYPTION KEY, ALTER DATABASE ENCRYPTION KEY, DROP DATABASE ENCRYPTION KEYés ALTER DATABASE...SET ENCRYPTION utasítások során:

  • Fájl elvetése egy fájlcsoportból egy adatbázisban
  • Adatbázis elvetése
  • Adatbázis offline állapotba helyezése
  • Adatbázis leválasztása
  • Adatbázis vagy fájlcsoport áttűnése állapotba READ ONLY
  • ALTER DATABASE Parancs használata
  • Adatbázis vagy adatbázisfájl biztonsági mentésének indítása
  • Adatbázis- vagy adatbázisfájl-visszaállítás indítása
  • Pillanatkép létrehozása

A következő műveletek vagy feltételek megakadályozzák a CREATE DATABASE ENCRYPTION KEY, ALTER DATABASE ENCRYPTION KEY, DROP DATABASE ENCRYPTION KEYés ALTER DATABASE...SET ENCRYPTION az utasításokat:

  • Egy adatbázis írásvédett vagy írásvédett fájlcsoportokkal rendelkezik.
  • Egy ALTER DATABASE parancs fut.
  • Az adatok biztonsági mentése fut.
  • Az adatbázis offline vagy visszaállítási állapotban van.
  • Folyamatban van egy pillanatkép.
  • Az adatbázis-karbantartási feladatok futnak.

Adatbázisfájlok létrehozásakor az azonnali fájl inicializálása nem érhető el, ha a TDE engedélyezve van.

A DEK aszimmetrikus kulccsal való titkosításához az aszimmetrikus kulcsnak bővíthető kulcskezelő szolgáltatón kell lennie.

TDE-vizsgálat

A TDE adatbázison való engedélyezéséhez az SQL Servernek titkosítási vizsgálatot kell végeznie. A vizsgálat beolvassa az egyes lapokat az adatfájlokból a pufferkészletbe, majd visszaírja a titkosított lapokat a lemezre.

Az SQL Server 2019 (15.x) tDE-vizsgálatot vezet be, amely felfüggesztési és folytatási szintaxissal rendelkezik. Szüneteltetheti a vizsgálatot, amíg a rendszer számítási feladatai nehézkesek vagy üzleti szempontból kritikus időszakokban tartanak, majd később folytathatja a vizsgálatot.

A TDE titkosítási vizsgálatának szüneteltetéséhez használja az alábbi szintaxist:

ALTER DATABASE <db_name> SET ENCRYPTION SUSPEND;

Hasonlóképpen használja a következő szintaxist a TDE titkosítási vizsgálatának folytatásához:

ALTER DATABASE <db_name> SET ENCRYPTION RESUME;

A encryption_scan_state oszlop hozzáadva a sys.dm_database_encryption_keys dinamikus felügyeleti nézethez. Megjeleníti a titkosítási vizsgálat aktuális állapotát. Van egy új, encryption_scan_modify_date nevű oszlop is, amely a legutóbbi titkosítási-vizsgálati állapotváltozás dátumát és időpontját tartalmazza.

Ha az SQL Server-példány újraindul a titkosítási vizsgálat felfüggesztése közben, a rendszer az indítás során naplózza az üzenetet a hibanaplóban. Az üzenet azt jelzi, hogy egy meglévő vizsgálat szüneteltetve van.

Fontos

A TDE-vizsgálat felfüggesztése és folytatása funkció jelenleg nem érhető el az Azure SQL Database-ben, az Azure SQL Managed Instance-ben és az Azure Synapse Analyticsben.

TDE és tranzakciónaplók

A TDE védi az inaktív adatfájlokat és naplófájlokat. A teljes adatbázis titkosítása a TDE titkosítatlan adatbázisokon való engedélyezése után nagy adatművelet, és az időtartam attól függ, hogy az adatbázis mely rendszererőforrásokon fut. A sys.dm_database_encryption_keys DMV segítségével meghatározhatja az adatbázis titkosítási állapotát.

Ha a TDE be van kapcsolva, az adatbázismotor egy új tranzakciónapló létrehozását kényszeríti ki, amelyet az adatbázis titkosítási kulcsa titkosít. A korábbi tranzakciók vagy a TDE-állapotváltozások közötti aktuálisan futó tranzakciók által létrehozott naplók nem titkosítva vannak.

A tranzakciónaplók a sys.dm_db_log_info DMV használatával monitorozhatók, amely azt is megmutatja, hogy a naplófájl titkosítva van-e, vagy sem az vlf_encryptor_thumbprint Azure SQL-ben elérhető oszlop, valamint az SQL Server 2019 (15.x) és újabb verziók használatával. A naplófájl titkosítási állapotának a nézet oszlopával sys.dm_database_encryption_keys való encryption_state megkereséséhez íme egy minta lekérdezés:

USE AdventureWorks2022;
GO

/* The value 3 represents an encrypted state
   on the database and transaction logs. */
SELECT *
FROM sys.dm_database_encryption_keys
WHERE encryption_state = 3;
GO

Az SQL Server naplófájlarchitektúrájáról további információt a tranzakciónaplóban talál.

A DEK módosítása előtt az előző DEK titkosítja a tranzakciónaplóba írt összes adatot.

Ha kétszer módosít egy DEK-t, a DEK ismételt módosítása előtt napló biztonsági másolatot kell készítenie.

TDE és a tempdb rendszeradatbázis

A tempdb rendszeradatbázis akkor lesz titkosítva, ha az SQL Server-példány bármely más adatbázisa TDE használatával van titkosítva. Ez a titkosítás teljesítménybeli hatással lehet ugyanazon az SQL Server-példányon lévő titkosítatlan adatbázisokra. A rendszeradatbázisról további információt a tempdbtempdb Database-ben talál.

TDE és replikáció

A replikáció nem replikálja automatikusan az adatokat egy TDE-kompatibilis adatbázisból titkosított formában. Külön engedélyezze a TDE-t, ha védeni szeretné a terjesztési és előfizetői adatbázisokat.

A pillanatkép-replikáció titkosítatlan köztes fájlokban, például BCP-fájlokban tárolhatja az adatokat. A tranzakciós és egyesítési replikáció kezdeti adateloszlása is lehetséges. Az ilyen replikáció során engedélyezheti a titkosítást a kommunikációs csatorna védelme érdekében.

További információ: Sql Server-kapcsolatok titkosítása tanúsítvány importálásával.

TDE és rendelkezésre állási csoportok

Titkosított adatbázist is hozzáadhat egy Always On rendelkezésre állási csoporthoz.

A rendelkezésre állási csoport részét képező adatbázisok titkosításához hozza létre a főkulcsot és a tanúsítványokat, illetve az aszimmetrikus kulcsot (EKM) az összes másodlagos replikán, mielőtt létrehozná az adatbázis-titkosítási kulcsot az elsődleges replikán.

Ha tanúsítványt használ a DEK védelmére, készítsen biztonsági másolatot az elsődleges replikán létrehozott tanúsítványról, majd hozza létre a tanúsítványt egy fájlból az összes másodlagos replikán, mielőtt létrehozná a DEK-t az elsődleges replikán.

TDE- és FILESTREAM-adatok

A FILESTREAM-adatok nincsenek titkosítva, még akkor sem, ha engedélyezi a TDE-t.

TDE és biztonsági másolatok

A tanúsítványokat gyakran használják transzparens adattitkosításban a DEK védelmére. A tanúsítványt létre kell hozni az master adatbázisban. A TDE-kompatibilis adatbázisok biztonsági mentési fájljai a DEK használatával is titkosítva vannak. Ennek eredményeképpen a biztonsági másolatok visszaállításakor a DEK-t védő tanúsítványnak elérhetőnek kell lennie. Ez azt jelenti, hogy az adatbázis biztonsági mentése mellett a kiszolgálótanúsítványok biztonsági mentését is fenn kell tartania az adatvesztés elkerülése érdekében. Adatvesztés akkor következik be, ha a tanúsítvány már nem érhető el.

TDE eltávolítása

Távolítsa el a titkosítást az adatbázisból az ALTER DATABASE utasítás használatával.

ALTER DATABASE <db_name> SET ENCRYPTION OFF;

Az adatbázis állapotának megtekintéséhez használja a sys.dm_database_encryption_keys dinamikus felügyeleti nézetet.

Megjegyzés:

Amíg a titkosítási folyamat folyamatban van, ALTER DATABASE az utasítások nem engedélyezettek az adatbázisban. A titkosítási folyamat befejezéséig nem kezdheti el az adatbázis visszafejtését.

Várja meg, amíg a visszafejtés befejeződik, mielőtt eltávolítaná a DEK-t a DROP DATABASE ENCRYPTION KEY használatával.

Fontos

Biztonsági másolatot készít a TDE-hez használt főkulcsról és tanúsítványról egy biztonságos helyre. A főkulcsra és a tanúsítványra az adatbázis TDE-vel való titkosításakor készített biztonsági másolatok visszaállításához van szükség. A DEK eltávolítása után készítsen napló biztonsági másolatot, majd készítsen egy friss, teljes biztonsági másolatot a visszafejtött adatbázisról.

TDE és a pufferkészlet bővítménye

Amikor TDE használatával titkosít egy adatbázist, a pufferkészlet-bővítményhez (BPE) kapcsolódó fájlok nem lesznek titkosítva. Ezekhez a fájlokhoz használjon olyan titkosítási eszközöket, mint a BitLocker vagy az EFS a fájlrendszer szintjén.

TDE és In-Memory OLTP

Engedélyezheti a TDE-t In-Memory OLTP-objektumokkal rendelkező adatbázisokon. Az SQL Server 2016 -ban (13.x) és az Azure SQL Database-ben In-Memory OLTP-naplórekordok és -adatok titkosítva lesznek, ha engedélyezi a TDE-t. Az SQL Server 2014 -ben (12.x) In-Memory OLTP-naplórekordok titkosítva vannak, ha engedélyezi a TDE-t, de a MEMORY_OPTIMIZED_DATA fájlcsoport fájljai titkosítatlanok.

A TDE-ben használt tanúsítványok kezelésének irányelvei

Biztonsági másolatot kell készítenie a tanúsítványról és az adatbázis főkulcsról, ha az adatbázis engedélyezve van a TDE-hez, és a naplószállításban vagy az adatbázis tükrözésében használatos. A tárolt rendszeradatbázisban tárolt tanúsítványokról is biztonsági másolatot kell készíteni.

A DEK védelmére használt tanúsítványt soha nem szabad elvetni az master adatbázisból. Ennek hatására a titkosított adatbázis elérhetetlenné válik.

Az alábbihoz hasonló üzenet (33091-s hiba) akkor jelenik meg a végrehajtás CREATE DATABASE ENCRYPTION KEY után, ha a parancsban használt tanúsítványról még nem készült biztonsági másolat.

Figyelmeztetés

Az adatbázis titkosítási kulcsának titkosításához használt tanúsítványról nem készült biztonsági másolat. Azonnal biztonsági másolatot kell készítenie a tanúsítványról és a tanúsítványhoz társított titkos kulcsról. Ha a tanúsítvány valaha elérhetetlenné válik, vagy ha egy másik kiszolgálón kell visszaállítania vagy csatolnia az adatbázist, biztonsági másolatokkal kell rendelkeznie a tanúsítványról és a titkos kulcsról, vagy nem tudja megnyitni az adatbázist.

Az alábbi lekérdezés a TDE-ben használt tanúsítványok azonosítására használható, amelyek a létrehozásuk óta nem lettek biztonsági másolatot készítve.

SELECT pvt_key_last_backup_date,
       Db_name(dek.database_id) AS encrypteddatabase,
       c.name AS Certificate_Name
FROM sys.certificates AS c
     INNER JOIN sys.dm_database_encryption_keys AS dek
         ON c.thumbprint = dek.encryptor_thumbprint;

Ha az oszlop pvt_key_last_backup_date az NULL, az adott sornak megfelelő adatbázis engedélyezve lett a TDE-hez, de a DEK védelmére használt tanúsítványról nem készült biztonsági mentés. További információ a tanúsítványok biztonsági mentéséről: BACKUP CERTIFICATE.