Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Por Rick Anderson
Quando executado no Windows, o sistema de Proteção de Dados tem suporte limitado para definir uma política padrão em toda a máquina para todos os aplicativos que consomem ASP.NET Proteção de Dados Principal. A ideia geral é que um administrador pode 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 na máquina.
Warning
O administrador do sistema pode definir a política padrão, mas não pode impô-la. O desenvolvedor do aplicativo sempre pode substituir qualquer valor com um de sua própria escolha. A política padrão afeta apenas aplicativos em que o desenvolvedor não especificou um valor explícito para uma configuração.
Definindo a política padrão
Para definir a política padrão, um administrador pode definir valores conhecidos no registro do sistema sob a 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 suportados são mostrados abaixo.
| Value | Tipo | Description |
|---|---|---|
| EncryptionType | cadeia (de caracteres) | Especifica quais algoritmos devem ser usados para proteção de dados. O valor deve ser CNG-CBC, CNG-GCM ou Gerenciado e é descrito com 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 (de caracteres) | Especifica os tipos que são usados para custódia de chave. O valor é uma lista delimitada por ponto-e-vírgula de coletores de depósito de chave, onde cada elemento na lista é o nome qualificado para assembly de um tipo que implementa IKeyEscrowSink. |
Tipos de encriptação
Se EncryptionType for CNG-CBC, o sistema está configurado para usar o modo de cifra de bloco simétrico (CBC) para confidencialidade e HMAC para garantir a autenticidade com serviços fornecidos pelo Windows CNG (consulte Especificando algoritmos CNG personalizados do Windows para obter mais detalhes). Os seguintes valores adicionais são suportados, cada um dos quais corresponde a uma propriedade no tipo CngCbcAuthenticatedEncryptionSettings.
| Value | Tipo | Description |
|---|---|---|
| EncryptionAlgorithm | cadeia (de caracteres) | O nome de um algoritmo de cifra de bloco simétrico entendido por CNG. Este algoritmo é aberto no modo CBC. |
| Fornecedor de Algoritmo de Encriptação | cadeia (de caracteres) | O nome da implementação do provedor CNG que pode produzir o algoritmo EncryptionAlgorithm. |
| TamanhoDaChaveDoAlgoritmoDeCriptografia | DWORD | O comprimento (em bits) da chave a derivar para o algoritmo de cifra de bloco simétrico. |
| HashAlgorithm | cadeia (de caracteres) | O nome de um algoritmo de hash reconhecido por CNG. Este algoritmo é aberto no modo HMAC. |
| HashAlgorithmProvider | cadeia (de caracteres) | O nome da implementação do provedor CNG que pode produzir o algoritmo HashAlgorithm. |
Se EncryptionType for CNG-GCM, o sistema está configurado para usar uma cifra de bloco simétrico do 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). Os seguintes valores adicionais são suportados, cada um dos quais corresponde a uma propriedade no tipo CngGcmAuthenticatedEncryptionSettings.
| Value | Tipo | Description |
|---|---|---|
| EncryptionAlgorithm | cadeia (de caracteres) | O nome de um algoritmo de cifra de bloco simétrico entendido por CNG. Este algoritmo é aberto no modo Galois/Counter. |
| Fornecedor de Algoritmos de Encriptação | cadeia (de caracteres) | O nome da implementação do provedor CNG que pode produzir o algoritmo EncryptionAlgorithm. |
| TamanhoDaChaveDoAlgoritmoDeEncriptação | DWORD | O comprimento (em bits) da chave a derivar para o algoritmo de cifra de bloco simétrico. |
Se o EncryptionType for gerido, o sistema será configurado para usar um SymmetricAlgorithm gerido para confidencialidade e um KeyedHashAlgorithm para autenticidade (consulte Especificação de algoritmos geridos personalizados para mais detalhes). Os seguintes valores adicionais são suportados, cada um dos quais corresponde a uma propriedade no tipo ManagedAuthenticatedEncryptionSettings.
| Value | Tipo | Description |
|---|---|---|
| EncryptionAlgorithmType | cadeia (de caracteres) | O nome qualificado para assembly de um tipo que implementa SymmetricAlgorithm. |
| TamanhoDaChaveDoAlgoritmoDeEncriptação | DWORD | O comprimento (em bits) da chave a derivar para o algoritmo de encriptação simétrica. |
| TipoDeAlgoritmoDeValidação | cadeia (de caracteres) | 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 definir 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.