Impostazioni del Registro di sistema TLS

Questo articolo illustra le informazioni sulle impostazioni del registro supportato per l'implementazione Windows del protocollo TLS (Transport Layer Security) e del protocollo SSL (Secure Sockets Layer) tramite SSP (Security Support Provider) Schannel. Le sottochiavi e le voci di registro illustrate in questo articolo facilitano l'amministrazione e la risoluzione dei problemi di SSP Schannel, in particolare dei protocolli TLS e SSL.

Attenzione

Queste informazioni vengono fornite come riferimento utilizzabile durante la risoluzione dei problemi o quando si verifica che le impostazioni obbligatorie siano applicate. È consigliabile non modificare direttamente il Registro di sistema, a meno che non ci siano altre alternative. Le modifiche al Registro di sistema non vengono convalidate dall'editor del Registro di sistema o dal sistema operativo Windows prima di essere applicate. Di conseguenza, è possibile che vengano archiviati valori non corretti, che possono causare errori irreversibili del sistema. Se possibile, invece di modificare direttamente il registro, usare Criteri di gruppo o altri strumenti di Windows, come Microsoft Management Console (MMC). Se è necessario modificare il Registro di sistema, usare la massima cautela.

Registrazione SChannel

Esistono otto livelli di registrazione per gli eventi SChannel salvati nel registro eventi di sistema e visualizzabili usando Visualizzatore eventi. Questo percorso del Registro di sistema viene archiviato nella HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL chiave EventLogging con un valore DWORD impostato su 1.

Decimale o esadecimale Eventi di registrazione SChannel
0 Nessun evento
1 Eventi di errore
2 Eventi di avviso
3 Eventi di errore e avviso
4 Eventi informativi e di operazione riuscita
5 Eventi di errore, informativi e di operazione riuscita
6 Eventi di avviso, informativi e di operazione riuscita
7 Eventi Error, Warning, Informational e Success

Nota

È necessario riavviare il dispositivo dopo aver modificato il livello di registrazione SChannel.

CertificateMappingMethods

Quando un'applicazione server richiede l'autenticazione client, SChannel prova automaticamente a eseguire il mapping del certificato fornito dal computer client a un account utente. È possibile autenticare gli utenti che accedono con un certificato client creando mapping che mettono in relazione le informazioni sul certificato con un account utente di Windows.

Dopo avere creato e abilitato il mapping di un certificato, ogni volta che un client presenta un certificato client, l'applicazione server associa automaticamente l'utente con l'account utente di Windows corretto.

Nella maggior parte dei casi, il mapping di un certificato a un account utente viene eseguito in uno dei due modi seguenti:

  • Un singolo certificato viene mappato a un singolo account utente (mapping uno a uno).
  • Più certificati vengono mappati a un account utente (mapping molti a uno).

Il provider SChannel usa quattro metodi di mapping dei certificati:

  1. Mapping del servizio Kerberos per utente (S4U) (abilitato per impostazione predefinita)
  2. Mapping del nome dell'entità utente
  3. Mapping uno a uno (detto anche mapping soggetto/autorità di certificazione)
  4. Mapping molti a uno

Percorso del Registro di sistema: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Nome voce DWORD Abilitata per impostazione predefinita
Oggetto/Autorità di certificazione 0x000000001 No
Autorità di certificazione 0x000000002 No
UPN 0x000000004 No
S4U2Self 0x000000008
S4U2Self Explicit 0x000000010

Versioni applicabili: come indicato nell'elenco Si applica all'inizio di questo articolo.

Ciphers

Le crittografie TLS/SSL devono essere controllate configurando l'ordine dei pacchetti di crittografia. Per informazioni dettagliate, consultare la sezione Configurazione ordine pacchetti di crittografia TLS.

Per informazioni sugli ordini predefiniti dei pacchetti di crittografia usati dal provider di servizi condivisi SChannel, consultare la sezione Pacchetti di crittografia in TLS/SSL (SSP SChannel).

CipherSuites

Per informazioni dettagliate, è consigliabile configurare pacchetti di crittografia TLS/SSL usando Criteri di gruppo, MDM o PowerShell. Per informazioni dettagliate, vedere Configuring TLS Cipher Suite Order .Configuring TLS Cipher Suite Order .Configuring TLS/SSL cipher suite order should be done using group policy, MDM, or PowerShell, see Configuring TLS Cipher Suite Order for details.

Per informazioni sugli ordini predefiniti dei pacchetti di crittografia usati dal provider di servizi condivisi SChannel, consultare la sezione Pacchetti di crittografia in TLS/SSL (SSP SChannel).

ClientCacheTime

Questa voce specifica la durata dell'elemento della cache della sessione TLS client in millisecondi. A partire da Windows Server 2008 e Windows Vista, il valore predefinito è 10 ore. Il valore 0 disattiva la memorizzazione nella cache della sessione TLS nel client.

La prima volta che un client si connette a un server tramite SSP SChannel, viene eseguito un handshake TLS/SSL completo. Al termine, il master secret, la suite di crittografia e i certificati vengono archiviati nella cache della sessione nel rispettivo client e server.

Percorso del Registro di sistema: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

EnableOcspStaplingForSni

L'associazione OCSP (Online Certificate Status Protocol) consente a un server Web, ad esempio, Internet Information Services (IIS), di fornire lo stato di revoca corrente di un certificato server quando invia il certificato server a un client durante l'handshake TLS. Questa funzionalità riduce il carico sui server OCSP perché il server Web può memorizzare nella cache lo stato OCSP corrente del certificato del server e inviarlo a più client Web. Senza questa funzionalità, ogni client Web tenterebbe di recuperare lo stato OCSP corrente del certificato server dal server OCSP. Questo genererebbe un carico elevato su tale server OCSP.

Oltre a IIS, i servizi Web su http.sys possono anche trarre vantaggio da questa impostazione, tra cui Active Directory Federation Services (AD FS) e Web Application Proxy (WAP).

Per impostazione predefinita, il supporto OCSP è abilitato per i siti Web IIS che dispongono di un'associazione SSL/TLS semplice. Tuttavia, questo supporto non è abilitato per impostazione predefinita se il sito Web IIS uno o entrambi i tipi di associazioni SSL/TLS seguenti:

  • Richiedi Indicazione nome server
  • Usa archivio certificati centralizzato

In questo caso, la risposta hello del server durante l'handshake TLS non include uno stato di blocco OCSP per impostazione predefinita. Questo comportamento migliora le prestazioni: l'implementazione dell'associazione OCSP di Windows viene ridimensionata a centinaia di certificati server. Tuttavia, l'indicazione del nome del server (SNI) e l'archivio certificati centrale (CCS) consentono a IIS di ridimensionare a migliaia di siti Web che potenzialmente hanno migliaia di certificati server, pertanto l'abilitazione dell'associazione OCSP per le associazioni CCS potrebbe causare problemi di prestazioni.

Versioni applicabili: tutte le versioni che iniziano con Windows Server 2012 e Windows 8.

Percorso del Registro di sistema: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Aggiungere la seguente chiave:

"EnableOcspStaplingForSni"=dword:00000001

Per disabilitare, impostare il valore DWORD su 0:

"EnableOcspStaplingForSni"=dword:00000000

Nota

L'abilitazione di questa chiave del registro ha un potenziale impatto sulle prestazioni.

Hash

Gli algoritmi hash TLS/SSL devono essere controllati configurando l'ordine dei pacchetti di crittografia. Per i dettagli, consultare la sezione Configurazione ordine pacchetti di crittografia TLS.

IssuerCacheSize

Questa voce controlla le dimensioni della cache dell'autorità di certificazione ed è usata con il mapping dell'autorità di certificazione. SSP SChannel prova a eseguire il mapping di tutte le autorità di certificazione nella catena di certificati del client, non solo l'autorità di certificazione diretta del certificato client. Quando non viene eseguito il mapping delle autorità di certificazione a un account, che rappresenta un caso tipico, il server potrebbe provare a eseguire ripetutamente il mapping dello stesso nome dell'autorità di certificazione, centinaia di volte al secondo.

Per evitare questo problema, il server dispone di una cache negativa, quindi se un nome dell'autorità emittente non esegue il mapping a un account, viene aggiunto alla cache e il provider di servizi condivisi SChannel non tenta di eseguire di nuovo il mapping del nome dell'autorità emittente fino alla scadenza della voce della cache. Questa voce del Registro di sistema specifica le dimensioni della cache. Per impostazione predefinita, questa voce non è disponibile nel registro. Il valore predefinito è 100.

Versioni applicabili: tutte le versioni che iniziano con Windows Server 2008 e Windows Vista.

Percorso del Registro di sistema: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

IssuerCacheTime

Questa voce controlla la durata dell'intervallo di timeout della cache in millisecondi. SSP SChannel prova a eseguire il mapping di tutte le autorità di certificazione nella catena di certificati del client, non solo l'autorità di certificazione diretta del certificato client. Se non viene eseguito il mapping delle autorità di certificazione a un account, che rappresenta un caso tipico, il server potrebbe provare a eseguire ripetutamente il mapping dello stesso nome dell'autorità di certificazione, centinaia di volte al secondo.

Per evitare questo problema, il server dispone di una cache negativa, quindi se un nome dell'autorità emittente non esegue il mapping a un account, viene aggiunto alla cache e il provider di servizi condivisi SChannel non tenta di eseguire di nuovo il mapping del nome dell'autorità emittente fino alla scadenza della voce della cache. Questa cache viene mantenuta ai fini delle prestazioni, per evitare che il sistema continui a provare a eseguire il mapping delle stesse autorità di certificazione. Per impostazione predefinita, questa voce non è disponibile nel registro. Il valore predefinito è 10 minuti.

Versioni applicabili: tutte le versioni che iniziano con Windows Server 2008 e Windows Vista.

Percorso del Registro di sistema: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Dimensioni delle chiavi KeyExchangeAlgorithm

Queste voci seguenti potrebbero non esistere nel Registro di sistema per impostazione predefinita e devono essere create manualmente. L'uso di algoritmi di scambio di chiavi deve essere controllato configurando l'ordine dei pacchetti di crittografia. Per altre informazioni sugli algoritmi di crittografia TLS/SSL, vedere Pacchetti di crittografia in TLS/SSL (SSP SChannel).

Aggiunta in Windows 10, versione 1507 e Windows Server 2016.

Percorso del Registro di sistema: HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\Diffie-Hellman

Per specificare un intervallo minimo supportato di lunghezza minima dei bit di chiave Diffie-Hellman per il client TLS, creare una ClientMinKeyBitLength voce. Dopo aver creato la voce, modificare il valore DWORD impostando la lunghezza del bit desiderata. Se non configurato, 1024 bit è l'impostazione minima.

Nota

Le curve ellittiche configurate determinano la forza crittografica dello scambio di chiavi ECDHE. Per maggiori informazioni, consultare la sezione Gestione di Transport Layer Security (TLS).

MaximumCacheSize

Questa voce controlla il numero massimo di sessioni TLS nella cache. L'impostazione di MaximumCacheSize su 0 disabilita la cache della sessione lato server per impedire la ripresa della sessione. Aumentando MaximumCacheSize al di sopra dei valori predefiniti, Lsass.exe utilizza memoria aggiuntiva. Ciascun elemento della cache della sessione richiede in genere da 2 a 4 KB di memoria. Per impostazione predefinita, questa voce non è disponibile nel registro. Il valore predefinito è 20.000 elementi.

Versioni applicabili: tutte le versioni che iniziano con Windows Server 2008 e Windows Vista.

Percorso del Registro di sistema: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Messaggistica: analisi dei frammenti

Questa voce controlla le dimensioni massime consentite di un messaggio di handshake TLS accettato. I messaggi maggiori delle dimensioni consentite non vengono accettati e l'handshake TLS ha esito negativo. Per impostazione predefinita, queste voci non esistono nel registro.

Quando si imposta il valore su 0x0, i messaggi frammentati non vengono elaborati e causano l'esito negativo dell'handshake TLS. Questo rende i client o i server TLS nel computer corrente non conformi alle RFC TLS.

Le dimensioni massime consentite possono essere aumentate fino a 2^16 byte. Consentire a un client o a un server di leggere e archiviare grandi quantità di dati non verificati dalla rete non è una buona idea e utilizza memoria aggiuntiva per ogni contesto di sicurezza.

Aggiunta in Windows 7 e Windows Server 2008 R2: è disponibile un aggiornamento che consente a Internet Explorer in Windows XP, Windows Vista o Windows Server 2008 di analizzare messaggi di handshake TLS/SSL frammentati.

Percorso del Registro di sistema: HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Messaging

Per specificare una dimensione massima consentita di messaggi di handshake TLS frammentati accettati dal client TLS, creare una MessageLimitClient voce. Dopo aver creato la voce, modificare il valore DWORD impostando la lunghezza del bit desiderata. Se non è configurato, il valore predefinito è 0x8000 byte.

Per specificare una dimensione massima consentita di messaggi di handshake TLS frammentati accettati dal server TLS quando non è presente alcuna autenticazione client, creare una MessageLimitServer voce. Dopo aver creato la voce, modificare il valore DWORD impostando la lunghezza del bit desiderata. Se non configurato, il valore predefinito è 0x4000 byte.

Per specificare una dimensione massima consentita di messaggi di handshake TLS frammentati accettati dal server TLS quando è presente l'autenticazione client, creare una MessageLimitServerClientAuth voce. Dopo aver creato la voce, modificare il valore DWORD impostando la lunghezza del bit desiderata. Se non configurato, il valore predefinito è 0x8000 byte.

SendTrustedIssuerList

I server TLS possono inviare un elenco dei nomi distinti delle autorità di certificazione accettabili quando si richiede l'autenticazione client. Ciò consente ai client TLS di selezionare un certificato client TLS appropriato. I server TLS basati su SChannel non inviano questo elenco di autorità emittenti attendibili per impostazione predefinita perché espone le autorità di certificazione attendibili dal server a osservatori passivi e aumenta anche la quantità di dati scambiati durante l'handshake TLS. Se si imposta questo valore su 1, i server basati su SChannel inviano gli elenchi di autorità emittenti attendibili.

L'invio di un elenco di autorità emittenti attendibili potrebbe influire sugli invii del client quando viene richiesto un certificato client. Ad esempio, quando Microsoft Edge riceve una richiesta di autenticazione client, visualizza solo i certificati client che concatenano fino a una delle autorità di certificazione inviate dal server. Se il server non ha inviato un elenco, Microsoft Edge visualizza tutti i certificati client installati nel client.

Questo comportamento potrebbe risultare utile. Ad esempio, quando gli ambienti PKI includono certificati incrociati, i certificati client e server non hanno la stessa CA radice. Di conseguenza, Microsoft Edge non può scegliere un certificato che concatena fino a una delle CA del server. I client TLS possono offrire qualsiasi certificato client disponibile quando un server non invia l'elenco di autorità emittenti attendibili. Per impostazione predefinita, questa voce non è disponibile nel registro.

Comportamento predefinito dell'elenco di autorità di certificazione attendibili di invio

Versione di Windows Comportamento predefinito
Windows Server 2012, Windows 8 e versioni successive FALSE
Windows Server 2008 R2, Windows 7 e versioni precedenti TRUE

Versioni applicabili: tutte le versioni che iniziano con Windows Server 2008 e Windows Vista.

Percorso del Registro di sistema: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

ServerCacheTime

Questa voce specifica la durata dell'elemento della cache della sessione TLS server in millisecondi. Il valore predefinito è 10 ore. Il valore 0 disattiva la memorizzazione nella cache della sessione TLS nel server e impedisce la ripresa della sessione. L'aumento del valore di ServerCacheTime oltre i valori predefiniti causa il consumo di memoria aggiuntiva da parte di Lsass.exe. Ciascun elemento della cache della sessione richiede in genere da 2 a 4 KB di memoria. Per impostazione predefinita, questa voce non è disponibile nel registro.

Versioni applicabili: tutte le versioni che iniziano con Windows Server 2008 e Windows Vista.

Percorso del Registro di sistema: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Tempi di memorizzazione nella cache server predefiniti: 10 ore

Impostazioni della versione del protocollo TLS, DTLS e SSL

SSP SChannel implementa le versioni dei protocolli TLS, DTLS e SSL. Diverse versioni di Windows supportano versioni di protocollo diverse. Il set di versioni TLS e SSL disponibili a livello di sistema può essere limitato (ma non espanso) dai chiamanti SSPI che specificano la struttura SCH_CREDENTIALS nella chiamata AcquireCredentialsHandle. È consigliabile che i chiamanti SSPI usino le impostazioni predefinite del sistema, anziché imporre restrizioni di versione del protocollo.

Una versione supportata del protocollo TLS o SSL può essere presente in uno degli stati seguenti:

  • Abilitato: a meno che il chiamante SSPI non disabiliti esplicitamente questa versione del protocollo usando SCH_CREDENTIALS struttura, SSP SChannel potrebbe negoziare questa versione del protocollo con un peer di supporto.
  • Disabilitato: SSP SChannel non negozia questa versione del protocollo indipendentemente dalle impostazioni che il chiamante SSPI potrebbe specificare.

Questi valori del registro vengono configurati separatamente per i ruoli client e server del protocollo nelle sottochiavi del registro denominate usando il formato seguente:

<SSL/TLS/DTLS> <major version number>.<minor version number><Client\Server>

Queste sottochiavi specifiche della versione possono essere create nel percorso di registro seguente:

  • HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols

Ad esempio, di seguito sono riportati alcuni percorsi validi del Registro di sistema con sottochiavi specifiche della versione:

  • HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client

  • HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server

  • HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\DTLS 1.2\Client

Per eseguire l'override di un valore predefinito del sistema e impostare una versione Enabled del protocollo TLS o SSL supportata sullo stato, creare un valore del Registro di sistema DWORD denominato Enabled con un valore di voce "1" nella sottochiave specifica della versione corrispondente.

L'esempio seguente mostra il client TLS 1.0 impostato sullo stato Abilitato:

Screenshot dell'opzione Imposta lato client TLS 1.0 su abilitata nell'impostazione del Registro di sistema di Windows Server.

Per eseguire l'override di un valore predefinito del sistema e impostare una versione Disabled del protocollo TLS o SSL supportata sullo stato, modificare il valore del Registro di sistema DWORD su Enabled "0" nella sottochiave specifica della versione corrispondente.

L'esempio seguente mostra DTLS 1.2 disabilitato nel registro:

Screenshot dell'impostazione del Registro di sistema di Windows Server per DTLS 1.2 impostata su disabilitata per impostazione predefinita.

Il passaggio di una versione Disabled del protocollo TLS o SSL allo stato potrebbe causare l'esito negativo delle chiamate AcquireCredentialsHandle a causa della mancanza di versioni del protocollo abilitate a livello di sistema e contemporaneamente consentite da determinati chiamanti SSPI. Inoltre, la riduzione del set di Enabled versioni TLS e SSL (D)potrebbe interrompere l'interoperabilità con peer remoti.

Dopo aver modificato le impostazioni della versione del protocollo TLS o SSL, le connessioni stabilite usando gli handle delle credenziali aperti dalle successive chiamate AcquireCredentialsHandle . Le applicazioni e i servizi client e server (D)TLS e SSL tendono a riutilizzare gli handle delle credenziali per più connessioni, per motivi di prestazioni. Per ottenere queste applicazioni per riacquisire gli handle delle credenziali, potrebbe essere necessario un'applicazione o un riavvio del servizio.

Queste impostazioni del Registro di sistema si applicano solo a SSP SChannel e non influiscono sulle implementazioni TLS e SSL di terze parti che potrebbero essere installate nel sistema.

Avviso

Il tentativo di creare o modificare le impostazioni del Registro di sistema SChannel non descritte in modo esplicito in questo articolo non è consigliato a causa di potenziali rischi e conseguenze impreviste che possono verificarsi da configurazioni non supportate.

Per informazioni sulla gestione della suite di crittografia TLS con PowerShell, vedere Informazioni di riferimento sui comandi TLS. Se si è interessati a gestire le impostazioni TLS tramite Criteri di gruppo, vedere Configuring TLS Cipher Suite Order by using Group Policy .If interested in managing TLS settings via Group Policy, see Configuring TLS Cipher Suite Order by using Group Policy.