Supporto dei criteri a livello di computer per la protezione dei dati in ASP.NET Core
Durante l'esecuzione in Windows, il sistema di protezione dei dati ha un supporto limitato per l'impostazione di criteri predefiniti a livello di computer per tutte le app che utilizzano ASP.NET Protezione dati di base. L'idea generale è che un amministratore potrebbe voler modificare un'impostazione predefinita, ad esempio gli algoritmi usati o la durata della chiave, senza dover aggiornare manualmente ogni app nel computer.
Avviso
L'amministratore di sistema può impostare i criteri predefiniti, ma non può applicarlo. Lo sviluppatore di app può sempre sostituire qualsiasi valore con una delle proprie opzioni di scelta. Il criterio predefinito influisce solo sulle app in cui lo sviluppatore non ha specificato un valore esplicito per un'impostazione.
Impostazione dei criteri predefiniti
Per impostare i criteri predefiniti, un amministratore può impostare valori noti nel Registro di sistema nella chiave del Registro di sistema seguente:
HKLM\SOFTWARE\Microsoft\DotNetPackages\Microsoft.AspNetCore.DataProtection
Se si usa un sistema operativo a 64 bit e si vuole influire sul comportamento delle app a 32 bit, ricordarsi di configurare l'equivalente Wow6432Node della chiave precedente.
Di seguito sono riportati i valori supportati.
Valore | Type | Descrizione |
---|---|---|
EncryptionType | stringa | Specifica gli algoritmi da usare per la protezione dei dati. Il valore deve essere CNG-CBC, CNG-GCM o Gestito ed è descritto in modo più dettagliato di seguito. |
DefaultKeyLifetime | DWORD | Specifica la durata per le chiavi appena generate. Il valore viene specificato in giorni e deve essere >= 7. |
KeyEscrowSinks | stringa | Specifica i tipi utilizzati per il deposito delle chiavi. Il valore è un elenco delimitato da punto e virgola di sink di deposito delle chiavi, in cui ogni elemento nell'elenco è il nome completo dell'assembly di un tipo che implementa IKeyEscrowSink. |
Tipi di crittografia
Se EncryptionType è CNG-CBC, il sistema è configurato per l'uso di una crittografia a blocchi simmetrici in modalità CBC per la riservatezza e HMAC per l'autenticità con i servizi forniti da Windows CNG (vedere Specifica di algoritmi CNG Windows personalizzati per altri dettagli). Sono supportati i valori aggiuntivi seguenti, ognuno dei quali corrisponde a una proprietà nel tipo CngCbcAuthenticatedEncryption Impostazioni .
Valore | Type | Descrizione |
---|---|---|
EncryptionAlgorithm | stringa | Nome di un algoritmo di crittografia a blocchi simmetrici compreso da CNG. Questo algoritmo viene aperto in modalità CBC. |
EncryptionAlgorithmProvider | stringa | Nome dell'implementazione del provider CNG che può produrre l'algoritmo EncryptionAlgorithm. |
EncryptionAlgorithmKeySize | DWORD | Lunghezza (in bit) della chiave da derivare per l'algoritmo di crittografia a blocchi simmetrici. |
Hashalgorithm | stringa | Nome di un algoritmo hash riconosciuto da CNG. Questo algoritmo viene aperto in modalità HMAC. |
HashAlgorithmProvider | stringa | Nome dell'implementazione del provider CNG che può produrre l'algoritmo HashAlgorithm. |
Se EncryptionType è CNG-GCM, il sistema è configurato per l'uso di una crittografia a blocchi simmetrici Galois/Counter Mode per la riservatezza e l'autenticità con i servizi forniti da Windows CNG (vedere Specifica di algoritmi CNG Windows personalizzati per altri dettagli). Sono supportati i valori aggiuntivi seguenti, ognuno dei quali corrisponde a una proprietà nel tipo CngGcmAuthenticatedEncryption Impostazioni.
Valore | Type | Descrizione |
---|---|---|
EncryptionAlgorithm | stringa | Nome di un algoritmo di crittografia a blocchi simmetrici compreso da CNG. Questo algoritmo viene aperto in modalità Galois/Counter. |
EncryptionAlgorithmProvider | stringa | Nome dell'implementazione del provider CNG che può produrre l'algoritmo EncryptionAlgorithm. |
EncryptionAlgorithmKeySize | DWORD | Lunghezza (in bit) della chiave da derivare per l'algoritmo di crittografia a blocchi simmetrici. |
Se EncryptionType è gestito, il sistema è configurato per l'uso di un symmetricAlgorithm gestito per la riservatezza e KeyedHashAlgorithm per l'autenticità (vedere Specifica di algoritmi gestiti personalizzati per altri dettagli). Sono supportati i valori aggiuntivi seguenti, ognuno dei quali corrisponde a una proprietà nel tipo ManagedAuthenticatedEncryption Impostazioni.
Valore | Type | Descrizione |
---|---|---|
EncryptionAlgorithmType | stringa | Nome completo dell'assembly di un tipo che implementa SymmetricAlgorithm. |
EncryptionAlgorithmKeySize | DWORD | Lunghezza (in bit) della chiave da derivare per l'algoritmo di crittografia simmetrica. |
ValidationAlgorithmType | stringa | Nome completo dell'assembly di un tipo che implementa KeyedHashAlgorithm. |
Se EncryptionType ha un valore diverso da null o vuoto, il sistema di protezione dati genera un'eccezione all'avvio.
Avviso
Quando si configura un'impostazione di criteri predefinita che include nomi di tipi (EncryptionAlgorithmType, ValidationAlgorithmType, KeyEscrowSinks), i tipi devono essere disponibili per l'app. Ciò significa che per le app in esecuzione in CLR desktop, gli assembly che contengono questi tipi devono essere presenti nella Global Assembly Cache (GAC). Per ASP.NET app Core in esecuzione in .NET Core, è necessario installare i pacchetti che contengono questi tipi.