Impostazioni del Registro di sistema TLS

Si applica a: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows 11, Windows 10 e versioni precedenti, come indicato

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 è archiviato in HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL in EventLogging con 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 di errore, avviso, informativi e di operazione riuscita

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 (4) 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 di registro: 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 a, 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

La configurazione dei pacchetti di crittografia TLS/SSL dovrebbe avvenire usando Criteri di gruppo, MDM o PowerShell. Per informazioni dettagliate, consultare la sezione Configurazione ordine dei pacchetti di crittografia TLS 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, master secret, pacchetto di crittografia e certificati vengono archiviati nella cache della sessione sui rispettivi client e server.

Percorso di registro: 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 includerà 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 può causare problemi di prestazioni.

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

Percorso di registro: 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, nel server, è disponibile una cache negativa, quindi, se il mapping di un nome dell'autorità di certificazione a un account non viene eseguito, viene aggiunto alla cache e SSP SChannel non proverà a eseguire di nuovo il mapping di quel nome finché la voce della cache non scadrà. 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 di registro: 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, nel server, è disponibile una cache negativa, quindi, se il mapping di un nome dell'autorità di certificazione a un account non viene eseguito, viene aggiunto alla cache e SSP SChannel non proverà a eseguire di nuovo il mapping di quel nome finché la voce della cache non scadrà. 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 di registro: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Dimensioni delle chiavi KeyExchangeAlgorithm

Queste voci elencate di seguito potrebbero non esistere nel registro 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.

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

Percorso di registro: HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\Diffie-Hellman

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

Per specificare un intervallo massimo supportato di lunghezza dei bit della chiave Diffie-Hellman per il client TLS, creare una voce ClientMaxKeyBitLength. Dopo aver creato la voce, modificare il valore DWORD con la lunghezza di bit desiderata.

Per specificare la lunghezza di bit della chiave Diffie-Hellman per il server TLS predefinito, creare una voce ServerMinKeyBitLength. Dopo aver creato la voce, modificare il valore DWORD con la lunghezza di bit desiderata. Se non configurato, 2048 bit è l'impostazione predefinita.

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).

Per maggiori informazioni sugli algoritmi di crittografia TLS/SSL, consultare la sezione:

MaximumCacheSize

Questa voce controlla il numero massimo di sessioni TLS nella cache. L'impostazione MaximumCacheSize su 0 disabilita la cache della sessione sul lato server per impedire la ripresa della sessione. L'aumento del valore di MaximumCacheSize 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. Il valore predefinito è 20.000 elementi.

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

Percorso di registro: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Messaggistica: analisi dei frammenti

Questa voce controlla le dimensioni massime consentite di un messaggio di handshake TLS che verrà accettato. I messaggi di dimensione maggiore rispetto a quella consentita non verranno accettati e l'handshake TLS avrà 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 comporterà l'utilizzo di 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 di registro: HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Messaging

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

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

Per specificare una dimensione massima consentita di messaggi di handshake TLS frammentati che il server TLS accetterà quando non è presente alcuna autenticazione client, creare una voce MessageLimitServerClientAuth. Dopo aver creato la voce, modificare il valore DWORD con la lunghezza di 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. Questo può aiutare i client TLS a 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.

Il mancato invio di un elenco di autorità di certificazione attendibili potrebbe avere un impatto su ciò che il client invia quando viene richiesto un certificato client. Ad esempio, quando Internet Explorer riceve una richiesta di autenticazione client, visualizza solo i certificati client concatenati a una delle autorità di certificazione inviata dal server. Se il server non ha inviato un elenco, Internet Explorer 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 avranno lo stesso CA radice, quindi, Internet Explorer non potrà scegliere un certificato concatenato a uno dei 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 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 di registro: 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 di registro: 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 la struttura SCH_CREDENTIALS, 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 può 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:

<Numero di versione superiore><SSL/TLS/DTLS>.<numero di versione secondaria><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 del protocollo TLS o SSL supportata sullo stato Abilitato , creare un valore del Registro di sistema DWORD denominato "Abilitato" 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 of Set TLS 1.0 client-side to enabled in Windows Server registry setting.

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

L'esempio seguente mostra DTLS 1.2 disabilitato nel registro:

Screenshot of Windows Server registry setting for DTLS 1.2 set to disabled by default.

Il passaggio di una versione del protocollo (D)TLS o SSL allo stato Disabilitato può 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 versioni (D)TLS e SSL Abilitate può interrompere l'interoperabilità con peer remoti.

Dopo aver modificato le impostazioni della versione del protocollo (D)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 e riacquisire gli handle delle credenziali, potrebbe essere necessario un riavvio dell'applicazione o del servizio.

Queste impostazioni del registro si applicano solo a SSP SChannel e non influiscono sulle implementazioni (D)TLS e SSL di terze parti che possono essere installate nel sistema.