Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Por Rick Anderson
Ao executar no Windows, o sistema de Proteção de Dados tem suporte limitado para definir uma política padrão em todo o computador para todos os aplicativos que consomem ASP.NET Core Data Protection. A ideia geral é que um administrador possa querer alterar uma configuração padrão, como os algoritmos usados ou o tempo de vida da chave, sem a necessidade de atualizar manualmente todos os aplicativos no computador.
Warning
O administrador do sistema pode definir a política padrão, mas não pode aplicá-la. O desenvolvedor de aplicativos sempre pode substituir qualquer valor com uma de suas próprias escolhas. A política padrão afeta apenas aplicativos em que o desenvolvedor não especificou um valor explícito para uma configuração.
Configurando a política padrão
Para definir a política padrão, um administrador pode definir valores conhecidos no registro do sistema na seguinte chave do Registro:
HKLM\SOFTWARE\Microsoft\DotNetPackages\Microsoft.AspNetCore.DataProtection
Se você estiver em um sistema operacional de 64 bits e quiser afetar o comportamento de aplicativos de 32 bits, lembre-se de configurar o equivalente wow6432Node da chave acima.
Os valores com suporte são mostrados abaixo.
| Value | Tipo | Description |
|---|---|---|
| EncryptionType | cadeia | Especifica quais algoritmos devem ser usados para proteção de dados. O valor deve ser CNG-CBC, CNG-GCM ou Managed e é descrito em mais detalhes abaixo. |
| DefaultKeyLifetime | dword | Especifica o tempo de vida das chaves recém-geradas. O valor é especificado em dias e deve ser >= 7. |
| KeyEscrowSinks | cadeia | Especifica os tipos que são usados para o escrow de chaves. O valor é uma lista delimitada por ponto-e-vírgula de destinos de custódia de chaves, em que cada elemento na lista é o nome qualificado do assembly de um tipo que implementa IKeyEscrowSink. |
Tipos de criptografia
Se EncryptionType for CNG-CBC, o sistema será configurado para usar uma criptografia de bloco simétrico no modo CBC para confidencialidade e HMAC para obter autenticidade com os serviços fornecidos pelo Windows CNG (consulte Especificando algoritmos CNG personalizados do Windows para obter mais detalhes). Há suporte para os seguintes valores adicionais, cada um deles corresponde a uma propriedade no tipo CngCbcAuthenticatedEncryptionSettings.
| Value | Tipo | Description |
|---|---|---|
| EncryptionAlgorithm | cadeia | O nome de um algoritmo de criptografia de bloco simétrico compreendido pelo CNG. Esse algoritmo é aberto no modo CBC. |
| EncryptionAlgorithmProvider | cadeia | O nome da implementação do provedor CNG que pode produzir o algoritmo EncryptionAlgorithm. |
| EncryptionAlgorithmKeySize | dword | O comprimento (em bits) da chave a ser derivada para o algoritmo de criptografia de bloco simétrico. |
| HashAlgorithm | cadeia | O nome de um algoritmo de hash compreendido pelo CNG. Esse algoritmo é aberto no modo HMAC. |
| HashAlgorithmProvider | cadeia | O nome da implementação do provedor CNG que pode produzir o algoritmo HashAlgorithm. |
Se EncryptionType é CNG-GCM, o sistema será configurado para usar uma cifra de bloco simétrico no modo Galois/Counter para confidencialidade e autenticidade com os serviços fornecidos pelo Windows CNG (consulte Especificando algoritmos CNG personalizados do Windows para obter mais detalhes). Há suporte para os seguintes valores adicionais, cada um deles corresponde a uma propriedade no tipo CngGcmAuthenticatedEncryptionSettings.
| Value | Tipo | Description |
|---|---|---|
| EncryptionAlgorithm | cadeia | O nome de um algoritmo de criptografia de bloco simétrico compreendido pelo CNG. Esse algoritmo está no Modo Galois/Counter. |
| EncryptionAlgorithmProvider | cadeia | O nome da implementação do provedor CNG que pode produzir o algoritmo EncryptionAlgorithm. |
| EncryptionAlgorithmKeySize | dword | O comprimento (em bits) da chave a ser derivada para o algoritmo de criptografia de bloco simétrico. |
Se o EncryptionType for Gerenciado, o sistema será configurado para usar um SymmetricAlgorithm gerenciado para confidencialidade e um KeyedHashAlgorithm para garantir a autenticidade (consulte Especificando algoritmos gerenciados personalizados para mais detalhes). Há suporte para os seguintes valores adicionais, cada um deles corresponde a uma propriedade no tipo ManagedAuthenticatedEncryptionSettings.
| Value | Tipo | Description |
|---|---|---|
| EncryptionAlgorithmType | cadeia | O nome qualificado do assembly de um tipo que implementa SymmetricAlgorithm. |
| EncryptionAlgorithmKeySize | dword | O comprimento (em bits) da chave a derivar para o algoritmo de criptografia simétrica. |
| ValidationAlgorithmType | cadeia | O nome qualificado para assembly de um tipo que implementa KeyedHashAlgorithm. |
Se EncryptionType tiver qualquer outro valor diferente de nulo ou vazio, o sistema de Proteção de Dados lançará uma exceção na inicialização.
Warning
Ao configurar uma configuração de política padrão que envolva nomes de tipo (EncryptionAlgorithmType, ValidationAlgorithmType, KeyEscrowSinks), os tipos devem estar disponíveis para o aplicativo. Para aplicativos ASP.NET Core, os pacotes que contêm esses tipos devem ser instalados.