Come configurare la modalità di crittografia legacy in ASP.NET

Riepilogo

L'aggiornamento per la protezione descritto nel Bollettino Microsoft sulla sicurezza MS10-070 apporta modifiche al meccanismo di crittografia predefinito in ASP.NET per eseguire la convalida (firma) oltre alla crittografia. Questo articolo descrive le opzioni di configurazione per ripristinare il comportamento legacy per la crittografia in ASP.NET.

Per altre informazioni su questo aggiornamento della sicurezza, visitare il sito Web seguente:

http://www.microsoft.com/technet/security/bulletin/ms10-070.mspx

Altre informazioni

ASP.NET consente agli utenti di crittografare o convalidare facoltativamente i dati tramite la configurazione nella sezione MachineKey. L'aggiornamento della protezione affrontato dall'aggiornamento della protezione MS10-070 modifica il comportamento predefinito della crittografia in ASP.NET per eseguire la convalida oltre alla crittografia anche se è richiesta solo la crittografia.

Dopo aver installato l'aggiornamento per la protezione descritto nel bollettino Microsoft sulla sicurezza MS10-070, vengono eseguite le seguenti operazioni quando è impostata la crittografia per ASP.NET:

  • Durante la crittografia dei dati, viene generata una firma HMAC per i dati crittografati e vi viene aggiunta.
  • Durante la decrittografia dei dati, la firma HMAC viene convalidata prima che i dati vengano decrittografati.

Le chiavi seguenti nelle impostazioni dell ASP.NET applicazione (appSettings) controllano il comportamento dell'accesso oltre alla crittografia.

Tasto Type Valore predefinito Versioni on.NET supportate
aspnet:UseLegacyEncryption booleano FALSE Microsoft .NET Framework 2.0 Service Pack 1
Microsoft .NET Framework 2.0 Service Pack 2
Microsoft .NET Framework 3.5
Microsoft .NET Framework 3.5 Service Pack 1
Microsoft .NET Framework 4.0
aspnet:UseLegacyMachineKeyEncryption booleano FALSE Microsoft .NET Framework 4.0
aspnet:ScriptResourceAllowNonJsFiles booleano FALSE Microsoft .NET Framework 3.5 Service Pack 1
Microsoft .NET Framework 4.0

Descrizione dell'aspnet:UseLegacyEncryption appSetting

Questa impostazione dell'applicazione specifica se la crittografia eseguirà anche la convalida con una chiave HMAC anche quando la sezione di convalida nella sezione machineKey di ASP.NET configurazione non è configurata per la convalida della firma HMAC.

aspnet:UseLegacyEncryption Descrizione
False (impostazione predefinita) Questa impostazione configura ASP.NET per eseguire in aggiunta la convalida della firma HMAC quando ASP.NET è configurato per l'utilizzo della crittografia. Questo problema si verifica anche se la convalida in machineKey non è configurata per la firma con una chiave HMAC.
TRUE Questa impostazione configura ASP.NET non eseguire la convalida della firma HMAC quando è configurata per utilizzare la crittografia e non la firma HMAC tramite convalida in machineKey.

Nota Questa impostazione potrebbe consentire a un client dannoso di decrittografare, falsificare o manomettere in altro modo i dati crittografati.

Per configurare questa impostazione, aggiungere la configurazione seguente nel file di web.config del computer o dell'applicazione:

<configuration>
...
 <appSettings>
 ...
 <add key="aspnet:UseLegacyEncryption" value="false" />
 </appSettings>
</configuration> 

Descrizione di aspnet:UseLegacyMachineKeyEncryption appSetting

Questa impostazione dell'applicazione specifica se la crittografia tramite la classe System.Web.Security.MachineKey eseguirà anche la convalida con una chiave HMAC anche quando l'argomento MachineKeyProtection fornito non specifica che la convalida deve essere eseguita.

aspnet:UseLegacyMachineKeyEncryption Descrizione
False (impostazione predefinita) Questa impostazione configura ASP.NET per eseguire in aggiunta la convalida della firma HMAC tramite la classe MachineKey quando ASP.NET è configurata per l'utilizzo della crittografia. Questo problema si verifica anche se l'argomento MachineKeyProtection fornito non specifica che la convalida deve essere eseguita.
TRUE Questa impostazione configura ASP.NET di non eseguire la convalida della firma HMAC tramite la classe MachineKey quando è configurata per utilizzare la crittografia e non la firma HMAC tramite l'argomento MachineKeyProtection fornito.

Nota Questa impostazione potrebbe consentire a un client dannoso di decrittografare, falsificare o manomettere in altro modo i dati crittografati.

Per configurare questa impostazione, aggiungere la configurazione seguente nel file di web.config del computer o dell'applicazione:

<configuration>
...
 <appSettings>
 ...
 <add key="aspnet:UseLegacyMachineKeyEncryption" value="false" />
 </appSettings>
</configuration> 

Descrizione di aspnet:ScriptResourceAllowNonJsFiles appSetting

Questa impostazione dell'applicazione specifica se il gestore ScriptResource.axd in ASP.NET servirà file non JavaScript (estensione .js). ScriptResource.axd è un gestore ASP.NET che restituisce i file di origine JavaScript ai componenti AJAX in una pagina Web ASP.NET.

aspnet:ScriptResourceAllowNonJsFiles Descrizione
False (impostazione predefinita) Questa impostazione configura ASP.NET per servire solo i file statici con estensione .js (JavaScript) tramite il gestore ScriptResource.axd.
TRUE Questa impostazione configura ASP.NET per servire qualsiasi file statico a cui l'applicazione ASP.NET ha accesso tramite il gestore ScriptResource.axd.

Nota: questa impostazione consente di gestire qualsiasi file all'interno dell'applicazione ASP.NET tramite il gestore. Se uno di questi file contiene dati sensibili o riservati, questa impostazione può potenzialmente causare la perdita di informazioni riservate a un client.

Per configurare questa impostazione, aggiungere la configurazione seguente nel file di web.config del computer o dell'applicazione:

<configuration>
...
 <appSettings>
 ...
 <add key="aspnet:ScriptResourceAllowNonJsFiles" value="false" />
 </appSettings>
</configuration> 

Riferimenti

Per ulteriori informazioni sulla sezione MachineKey, visitare il seguente sito Web Microsoft:

http://msdn.microsoft.com/en-us/library/w8h3skw9.aspx
Per ulteriori informazioni sulla classe System.Web.Security.MachineKey, visitare il seguente sito Web Microsoft:

http://msdn.microsoft.com/en-us/library/system.web.security.machinekey.aspx Per ulteriori informazioni su come utilizzare le impostazioni dell'applicazione (appSettings), fare clic sui numeri degli articoli della Microsoft Knowledge Base riportati di seguito:

815786 Come archiviare e recuperare informazioni personalizzate da un file di configurazione dell'applicazione utilizzando Visual C#
313405 Come archiviare e recuperare informazioni personalizzate da un file di configurazione dell'applicazione utilizzando Visual Basic .NET o Visual Basic 2005

Per ulteriori informazioni su ASP.Net configurazione, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:

307626 INFO: Panoramica della configurazione di ASP.NET