Eventos
Campeonato mundial de DataViz de Power BI
14 feb, 16 - 31 mar, 16
Con 4 posibilidades de entrar, podrías ganar un paquete de conferencia y convertirlo en el Live Grand Finale en Las Vegas
Saber másEste explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
El sistema de protección de datos emplea un mecanismo de detección de forma predeterminada para determinar cómo se deben cifrar las claves criptográficas en reposo. El desarrollador puede invalidar el mecanismo de detección y especificar manualmente cómo se deben cifrar las claves en reposo.
Advertencia
Si especifica una ubicación de persistencia de clave explícita, el sistema de protección de datos anula el registro del cifrado de claves predeterminado en reposo. Por lo tanto, las claves ya no se cifran en reposo. Se recomienda especificar un mecanismo de cifrado de clave explícito para las implementaciones de producción. Las opciones del mecanismo de cifrado en reposo se describen en este tema.
Para almacenar claves en Azure Key Vault, configure el sistema con ProtectKeysWithAzureKeyVault en la clase Startup
:
public void ConfigureServices(IServiceCollection services)
{
services.AddDataProtection()
.PersistKeysToAzureBlobStorage(new Uri("<blobUriWithSasToken>"))
.ProtectKeysWithAzureKeyVault("<keyIdentifier>", "<clientId>", "<clientSecret>");
}
Para obtener más información, consulte Configurar la protección de datos de ASP.NET Core: ProtectKeysWithAzureKeyVault.
Solo se aplica a las implementaciones de Windows.
Cuando se usa DPAPI de Windows, el material de clave se cifra con CryptProtectData antes de conservarse en el almacenamiento. DPAPI es un mecanismo de cifrado adecuado para los datos que nunca se leen fuera de la máquina actual (aunque es posible hacer una copia de seguridad de estas claves en Active Directory). Para configurar el cifrado de clave en reposo de DPAPI, llame a uno de los métodos de extensión ProtectKeysWithDpapi):
public void ConfigureServices(IServiceCollection services)
{
// Only the local user account can decrypt the keys
services.AddDataProtection()
.ProtectKeysWithDpapi();
}
Si ProtectKeysWithDpapi
se llama a sin parámetros, solo la cuenta de usuario actual de Windows puede descifrar el anillo de claves persistente. Opcionalmente, puede especificar que cualquier cuenta de usuario de la máquina (no solo la cuenta de usuario actual) pueda descifrar el anillo de claves:
public void ConfigureServices(IServiceCollection services)
{
// All user accounts on the machine can decrypt the keys
services.AddDataProtection()
.ProtectKeysWithDpapi(protectToLocalMachine: true);
}
Si la aplicación se distribuye entre varias máquinas, puede ser conveniente distribuir un certificado X.509 compartido entre las máquinas y configurar las aplicaciones hospedadas para usar el certificado para el cifrado de claves en reposo:
public void ConfigureServices(IServiceCollection services)
{
services.AddDataProtection()
.ProtectKeysWithCertificate("3BCE558E2AD3E0E34A7743EAB5AEA2A9BD2575A0");
}
Debido a las limitaciones de .NET Framework, solo se admiten certificados con claves privadas CAPI. Consulte el contenido siguiente para ver posibles soluciones alternativas a estas limitaciones.
Este mecanismo solo está disponible en Windows 8/Windows Server 2012 o posterior.
A partir de Windows 8, el sistema operativo Windows admite DPAPI-NG (también denominado DPAPI de CNG). Para más información, consulte Acerca de CNG DPAPI.
La entidad de seguridad se codifica como una regla de descriptor de protección. En el ejemplo siguiente que llama a ProtectKeysWithDpapiNG, solo el usuario unido a un dominio con el SID especificado puede descifrar el anillo de claves:
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);
}
También hay una sobrecarga sin parámetros de ProtectKeysWithDpapiNG
. Use este método de conveniencia para especificar la regla "SID={CURRENT_ACCOUNT_SID}", donde CURRENT_ACCOUNT_SID es el SID de la cuenta de usuario de Windows actual:
public void ConfigureServices(IServiceCollection services)
{
// Use the descriptor rule "SID={current account SID}"
services.AddDataProtection()
.ProtectKeysWithDpapiNG();
}
En este escenario, el controlador de dominio de AD es responsable de distribuir las claves de cifrado utilizadas por las operaciones de DPAPI-NG. El usuario de destino puede descifrar la carga cifrada de cualquier máquina unida a un dominio (siempre que el proceso se ejecute en su identidad).
Si la aplicación se ejecuta en Windows 8.1/Windows Server 2012 R2 o posterior, puede usar WINDOWS DPAPI-NG para realizar el cifrado basado en certificados. Use la cadena de descriptor de regla "CERTIFICATE=HashId:THUMBPRINT", donde THUMBPRINT es la huella digital SHA1 codificada en hexadecimal del certificado:
public void ConfigureServices(IServiceCollection services)
{
services.AddDataProtection()
.ProtectKeysWithDpapiNG("CERTIFICATE=HashId:3BCE558E2...B5AEA2A9BD2575A0",
flags: DpapiNGProtectionDescriptorFlags.None);
}
Cualquier aplicación que apunte a este repositorio debe ejecutarse en Windows 8.1/Windows Server 2012 R2 o posterior para descifrar las claves.
Si los mecanismos de la bandeja de entrada no son apropiados, el desarrollador puede especificar su propio mecanismo de cifrado de claves proporcionando un IXmlEncryptor personalizado.
Comentarios de ASP.NET Core
ASP.NET Core es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios:
Eventos
Campeonato mundial de DataViz de Power BI
14 feb, 16 - 31 mar, 16
Con 4 posibilidades de entrar, podrías ganar un paquete de conferencia y convertirlo en el Live Grand Finale en Las Vegas
Saber másCursos
Módulo
Introducción a la protección de datos en reposo en Azure - Training
Identifique los datos de la organización y almacénelos en Azure. Almacene secretos de forma segura y use el cifrado del lado cliente y Storage Service Encryption para proteger los datos.
Certificación
Demuestre los aspectos básicos de la seguridad de los datos, la administración del ciclo de vida, la seguridad de la información y el cumplimiento para proteger una implementación de Microsoft 365.
Documentación
Administración de claves en ASP.NET Core
Obtenga información sobre los detalles de implementación de las API de administración de claves de protección de datos de ASP.NET Core.
Proveedores de almacenamiento de claves en ASP.NET Core
Obtenga información sobre los proveedores de almacenamiento de claves en ASP.NET Core y cómo configurar ubicaciones de almacenamiento de claves.
Formato de almacenamiento de claves en ASP.NET Core
Obtenga información sobre los detalles de implementación del formato de almacenamiento de claves de protección de datos de ASP.NET Core.