Come utilizzare l'utilità ASP.NET per crittografare le credenziali e stringhe di connessione dello stato sessione

Riepilogo

In questo articolo viene descritto come utilizzare l'utilità Aspnet_setreg.exe per crittografare le credenziali e stringhe di connessione dello stato sessione. Microsoft ASP.NET versione 1.0 è necessario memorizzare credenziali in testo normale nei file di configurazione se si desidera eseguire una delle operazioni seguenti:
  • Modificare l'identità del processo di lavoro ASP.NET.
  • Specificare un'identità di rappresentazione.
  • Specificare una stringa di connessione per lo stato sessione.
Quando si applica l'aggiornamento rapido (hotfix) descritto nell'articolo della Microsoft Knowledge Base 329250 (vedere "Riferimenti"), è possibile utilizzare i dati crittografati che viene memorizzati nel Registro di sistema anziché testo normale nelle sezioni di configurazione seguente:
  • < nome utente identità = password = / >
  • < processModel userName = password = / >
  • < sessionState stateConnectionString = sqlConnectionString = / >

Introduzione

Utilizzare l'utilità Aspnet_setreg.exe per crittografare e memorizzare questi valori di attributo nel Registro di sistema una chiave protetta. Utilizzare la funzione CryptProtectData con il flag CRYPTPROTECT_LOCAL_MACHINE per crittografare le credenziali. Poiché chiunque abbia accesso al computer può chiamare CryptUnprotectData, i dati crittografati vengono archiviati sotto una chiave del Registro di sistema protetto con un elenco di controllo sicuro di accesso discrezionale (DACL). Quando ASP.NET analizza il file di configurazione, legge la chiave del Registro di sistema protetti e quindi CryptUnprotectData viene utilizzato per decrittografare i dati.

Inetinfo.exe, che viene eseguito con l'identità di sistema, legge il < processModel / > sezione. Per leggere le chiavi del Registro di sistema contenenti un nome utente e password per il processo di lavoro ASP.NET, l'account di sistema deve disporre dell'autorizzazione per queste chiavi lettura.

Il processo di lavoro ASP.NET (Aspnet_wp.exe) legge il < identità / > e < sessionState / > sezioni. Per leggere queste chiavi del Registro di sistema, l'account del processo di lavoro deve disporre dell'autorizzazione per queste chiavi lettura. Se il contenuto è ospitato su un Universal Naming Convention (UNC) condividere, l'account utilizzato per accedere alla condivisione UNC deve disporre dell'autorizzazione alla lettura di queste chiavi.

Per impostazione predefinita, le chiavi di registro che crea Aspnet_setreg.exe concedono controllo completo all'account di sistema, amministratore e Creator Owner. È possibile utilizzare Regedt32.exe per modificare l'elenco DACL nella chiave del Registro di sistema. Assicurarsi che gli utenti non autorizzati sia in grado di leggere le chiavi del Registro di sistema.

Riavviare IIS

Per rendere effettive le modifiche, è necessario riavviare Microsoft Internet Information Services (IIS). Per riavviare IIS, si avvia un nuovo processo di lavoro ASP.NET. A tale scopo, fare clic su Start, fare clic su
Eseguire, tipo iisreset nel
Apri casella e quindi fare clic su OK.

Nota: Se il server che è stato riconfigurato un controller di dominio, potrebbe essere necessario riavviare il server.

Ulteriori informazioni

Scaricare ed eseguire Aspnet_setreg.exe.

Il seguente file è disponibile per il download da Microsoft Download Center:

Download Download del pacchetto Aspnet_setreq.exe.
Data di rilascio: 11 aprile 2003

Per ulteriori informazioni su come scaricare i file di supporto Microsoft, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:
119591 come ottenere file di supporto Microsoft dai servizi online
Microsoft ha analizzato questo file per individuare eventuali virus. Microsoft ha utilizzato il software antivirus più recente disponibile alla data in cui il file è stato registrato. Il file è archiviato in un server con protezione avanzata che impedisce modifiche non autorizzate al file.


Per visualizzare tutte le opzioni della riga di comando disponibili e il relativo utilizzo, eseguire questo strumento dal prompt dei comandi senza opzioni della riga di comando. Se questo strumento è stato salvato in C:\Tools\, eseguire il comando seguente dal prompt dei comandi per visualizzare tutte le opzioni disponibili e la Guida per le opzioni:
C:\Tools>aspnet_setreg.exe

Utilizzare attributi crittografati nel file di configurazione

Importante Questa sezione, metodo o attività contiene passaggi su come modificare il Registro di sistema. Tuttavia, una modifica errata del registro di sistema potrebbe causare gravi problemi. Pertanto, assicurarsi di seguire attentamente i passaggi. Per maggiore protezione, eseguire il backup del Registro di sistema prima di modificarlo. Cosicché sia possibile ripristinare il Registro di sistema se si verifica un problema. Per ulteriori informazioni su come eseguire il backup e ripristinare il Registro di sistema, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
322756 come eseguire il backup e ripristinare il Registro di sistema Windows


Nota: Questo strumento crea le chiavi del Registro di sistema nella sottostruttura HKEY_LOCAL_MACHINE . Per impostazione predefinita, solo gli amministratori possono creare chiavi di questo sottoalbero. Assicurarsi che si è connessi come amministratore per creare queste chiavi del Registro di sistema.
  1. Crittografare gli attributi userName e password da utilizzare con la sezione < identity > . (Effettuare questa operazione per le altre sezioni che vengono citate in questo articolo). A tale scopo, digitare il seguente comando dalla riga di comando:
    c:\Tools>aspnet_setreg.exe -k:SOFTWARE\MY_SECURE_APP\identity -u:"yourdomainname\username" -p:"password"
    Questo comando consente di crittografare gli attributi userName e password , crea le chiavi del Registro di sistema in qualsiasi percorso desiderato, quindi archiviare gli attributi in queste chiavi del Registro di sistema. Questo comando genera inoltre un output che specifica come modificare il file Web. config o Machine. config in modo che ASP.NET utilizzerà queste chiavi per leggere le informazioni dal Registro di sistema.

    Dopo l'esecuzione di questo comando, viene visualizzato l'output è simile al seguente:
    Modificare la configurazione per contenere i seguenti:

    userName = "del Registro di sistema: HKLM\SOFTWARE\MY_SECURE_APP\identity\ASPNET_SETREG, userName"
    password = "Del Registro di sistema: HKLM\SOFTWARE\MY_SECURE_APP\identity\ASPNET_SETREG, password"

    L'elenco DACL nella chiave del Registro di sistema concede il controllo completo per System, Administrators e Creator Owner.

    Se sono stati crittografati credenziali per il < identità / > sezione di configurazione oppure una connessione
    stringa per il < sessionState / > configurazione sezione, verificare che l'identità del processo disponga
    Accesso in lettura alla chiave del Registro di sistema. Inoltre, se è stato configurato IIS per accedere al contenuto in un
    Condivisione UNC, l'account utilizzato per accedere alla condivisione sarà necessario l'accesso in lettura alla chiave del Registro di sistema.
    Regedt32.exe può essere utilizzato per visualizzazione e modifica di autorizzazioni per chiavi del Registro di sistema.

    È possibile rinominare la sottochiave del Registro di sistema e il valore del Registro di sistema per evitare il rilevamento.
  2. Modificare il file di configurazione corrispondente per fare riferimento a queste chiavi del Registro di sistema. Se questi valori devono essere utilizzati nella sezione < identity > , la sezione < identity > risultante è simile al seguente.
    <identity impersonate="true"userName="registry:HKLM\SOFTWARE\MY_SECURE_APP\identity\ASPNET_SETREG,userName"
    password="registry:HKLM\SOFTWARE\MY_SECURE_APP\identity\ASPNET_SETREG,password" />

  3. Autorizzazioni GRANT Read per l'account di processo Aspnet_wp.exe. Per ulteriori informazioni su come modificare le autorizzazioni per le chiavi del Registro di sistema, vedere "Regedt32.exe utilizzare per concedere autorizzazioni per l'account ASP.NET su queste chiavi del Registro di sistema" sezione.

Utilizzare Regedt32.exe per concedere autorizzazioni per l'account ASP.NET su queste chiavi del Registro di sistema

Importante Questa sezione, metodo o attività contiene passaggi su come modificare il Registro di sistema. Tuttavia, una modifica errata del registro di sistema potrebbe causare gravi problemi. Pertanto, assicurarsi di seguire attentamente i passaggi. Per maggiore protezione, eseguire il backup del Registro di sistema prima di modificarlo. Cosicché sia possibile ripristinare il Registro di sistema se si verifica un problema. Per ulteriori informazioni su come eseguire il backup e ripristinare il Registro di sistema, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
322756 come eseguire il backup e ripristinare il Registro di sistema Windows
  1. Fare clic su Start, scegliere Esegui, digitare regedt32 nella casella Apri e quindi fare clic su OK.
  2. Fare clic sulla sottochiave HKEY_LOCAL_MACHINE\SOFTWARE\MY_SECURE_APP\.
  3. Nel menu protezione , fare clic su
    Le autorizzazioni per aprire la finestra di dialogo autorizzazioni .

    In Microsoft Windows XP o Windows Server 2003, il pulsante destro la chiave del Registro di sistema e quindi fare clic su autorizzazioni.
  4. Fare clic su Aggiungi. Nella finestra di dialogo visualizzata, digitare nomeserver\ASPNET(o
    nomeserver\NetWork servizio quando si utilizza Windows Server 2003 (IIS 6.0)), quindi scegliere OK.
  5. Assicurarsi che l'account appena aggiunto dispone di autorizzazioni di lettura e quindi fare clic su OK.
  6. Chiudere l'Editor del Registro di sistema.

Riferimenti

Per ulteriori informazioni su un hotfix che consente di utilizzare le funzionalità descritte in questo articolo, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:

329250 FIX: credenziali più efficaci per processModel, identity e sessionState

Nota: La correzione descritta nell'articolo 329250 è disponibile solo per.NET Framework 1.0.

Per ulteriori informazioni sul Registro di sistema Microsoft Windows, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:
256986 descrizione del Registro di sistema di Microsoft Windows

Per ulteriori informazioni su ASP.NET, fare clic sui numeri per visualizzare gli articoli della Microsoft Knowledge Base riportato di seguito:
315158 FIX: ASP.NET non funziona con l'account ASPNET predefinito in un controller di dominio

Nota: La correzione descritta nell'articolo 315158 è disponibile solo per.NET Framework 1.0.

Identità di processo e richiesta 317012 in ASP.NET

Proprietà

ID articolo: 329290 - Ultima revisione: 30 gen 2017 - Revisione: 1

Feedback