Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az adatvédelmi rendszer alapértelmezés szerint felderítési mechanizmust alkalmaz annak meghatározására, hogy a titkosítási kulcsokat hogyan kell titkosítani inaktív állapotban. A fejlesztő felülbírálhatja a felderítési mechanizmust, és manuálisan megadhatja, hogy a kulcsok hogyan legyenek titkosítva inaktív állapotban.
Figyelmeztetés
Ha megad egy explicit kulcsmegőrzési helyet, az adatvédelmi rendszer letiltja az alapértelmezett, nyugvó állapotban lévő kulcstitkosítást. Következésképpen a kulcsok már nincsenek titkosítva nyugalmi állapotban. Javasoljuk az explicit kulcstitkosítási mechanizmus megadását éles telepítéshez. A inaktív állapotú titkosítási mechanizmus beállításait ebben a témakörben ismertetjük.
Azure Key Vault
További információ: ASP.NET Core Data Protectionkonfigurálása.
Windows DPAPI
Csak Windows telepítésekre vonatkozik.
A Windows DPAPI használata esetén a rendszer titkosítja a kulcsanyagot a CryptProtectData használatával, mielőtt a tárolóban marad. A DPAPI egy megfelelő titkosítási mechanizmus az olyan adatokhoz, amelyeket soha nem olvasnak el az aktuális gépen kívül (bár ezekről a kulcsokról is lehet biztonsági másolatot készíteni az Active Directoryba). A DPAPI key-at-rest titkosítás konfigurálásához hívja meg az egyik ProtectKeysWithDpapi bővítménymetódust:
// Only the local user account can decrypt the keys
services.AddDataProtection()
.ProtectKeysWithDpapi();
Ha a ProtectKeysWithDpapi paraméterek nélkül hívják meg, csak az aktuális Windows-felhasználói fiók tudja megfejteni a tárolt kulcsgyűrűt. Megadhatja, hogy a gép bármely felhasználói fiókja (nem csak az aktuális felhasználói fiók) képes legyen a kulcsgyűrű visszafejtésére:
// All user accounts on the machine can decrypt the keys
services.AddDataProtection()
.ProtectKeysWithDpapi(protectToLocalMachine: true);
X.509-tanúsítvány
Ha az alkalmazás több gépen is el van osztva, célszerű lehet megosztott X.509-tanúsítványt (.pfx formátumot) terjeszteni a gépek között, és konfigurálni a üzemeltetett alkalmazásokat, hogy a tanúsítványt használják a kulcsok inaktív titkosításához.
Az alábbi példában a tanúsítvány ujjlenyomata a következőnek lesz átadva ProtectKeysWithCertificate:
services.AddDataProtection()
.ProtectKeysWithCertificate("{CERTIFICATE THUMBPRINT}");
Az alábbi példában egy X509Certificate2 kerül átadásra a ProtectKeysWithCertificate-nek.
var cert = new X509Certificate2(...);
services.AddDataProtection()
.ProtectKeysWithCertificate(cert);
A tanúsítvány létrehozásához használja az alábbi módszerek vagy bármely más megfelelő eszköz vagy online szolgáltatás egyikét:
-
dotnet dev-certsparancs -
New-SelfSignedCertificatePowerShell-parancs - Azure Key Vault
- MakeCert Windows rendszeren
- OpenSSL
További információ: Önaláírt tanúsítványok létrehozása a .NET parancssori felülettel.
A .NET-keretrendszer korlátozásai miatt csak a CAPI titkos kulcsokkal rendelkező tanúsítványok támogatottak. A korlátozások lehetséges kerülő megoldásait az alábbi tartalomban találja.
Windows DPAPI-NG
Ez a mechanizmus csak Windows 8/Windows Server 2012 vagy újabb rendszereken érhető el.
A Windows 8-tól kezdve a Windows operációs rendszer támogatja a DPAPI-NG (más néven CNG DPAPI) használatát. További információt a CNG DPAPI-ról szóló cikkben talál.
A főösszeg védelmi leíró szabályként van kódolva. A következő ProtectKeysWithDpapiNG hívó példában csak a megadott SID-del rendelkező, tartományhoz csatlakoztatott felhasználó tudja visszafejteni a kulcsgyűrűt.
public void ConfigureServices(IServiceCollection services)
{
// Uses the descriptor rule "SID=S-1-5-21-..."
services.AddDataProtection()
.ProtectKeysWithDpapiNG("SID=S-1-5-21-...",
flags: DpapiNGProtectionDescriptorFlags.None);
}
A ProtectKeysWithDpapiNG is rendelkezik egy paraméter nélküli túlterheléssel. Ezzel a kényelmi módszerrel adja meg a "SID={CURRENT_ACCOUNT_SID}" szabályt, ahol CURRENT_ACCOUNT_SID az aktuális Windows-felhasználói fiók SID-azonosítója:
public void ConfigureServices(IServiceCollection services)
{
// Use the descriptor rule "SID={current account SID}"
services.AddDataProtection()
.ProtectKeysWithDpapiNG();
}
Ebben a forgatókönyvben az AD-tartományvezérlő felelős a DPAPI-NG műveletek által használt titkosítási kulcsok terjesztéséért. A célfelhasználó képes visszafejteni a titkosított hasznos terhet bármilyen tartományhoz csatlakoztatott gépről (feltéve, hogy a folyamat az ő identitása alatt fut).
Tanúsítványalapú titkosítás Windows DPAPI-NG
Ha az alkalmazás Windows 8.1/Windows Server 2012 R2 vagy újabb rendszeren fut, a Windows DPAPI-NG használatával tanúsítványalapú titkosítást végezhet. Használja a "CERTIFICATE=HashId:{CERTIFICATE THUMBPRINT}" szabályleíró sztringet, ahol a {CERTIFICATE THUMBPRINT} helyőrző a tanúsítvány hexán kódolt SHA1 ujjlenyomata:
public void ConfigureServices(IServiceCollection services)
{
services.AddDataProtection()
.ProtectKeysWithDpapiNG("CERTIFICATE=HashId:{CERTIFICATE THUMBPRINT}",
flags: DpapiNGProtectionDescriptorFlags.None);
}
Az adattárra mutatott alkalmazásoknak Windows 8.1/Windows Server 2012 R2 vagy újabb rendszeren kell futniuk a kulcsok visszafejtéséhez.
Egyéni kulcstitkosítás
Ha a beépített mechanizmusok nem megfelelőek, a fejlesztő egyéni IXmlEncryptorbeállítással megadhatja saját kulcstitkosítási mechanizmusát.