Impostazioni del Registro di sistema TLS

Si applica a: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows 10

Questo articolo illustra le informazioni sulle impostazioni del Registro di sistema supportate per l'implementazione Windows del protocollo Transport Layer Security (TLS) e del protocollo Secure Sockets Layer (SSL) tramite SSP (Security Support Provider) Schannel. Le sottochiavi e le voci del Registro di sistema trattate in questo argomento consentono di amministrare e risolvere i problemi di SSP Schannel, in particolare i 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. Quando possibile, invece di modificare direttamente il Registro di sistema, usare Criteri di gruppo o altri strumenti Windows, ad esempio Microsoft Management Console (MMC). Se è necessario modificare il Registro di sistema, usare la massima cautela.

CertificateMappingMethods

Questa voce non è disponibile nel Registro di sistema per impostazione predefinita. Il valore predefinito consiste nel supporto di tutti e quattro i metodi di mapping dei certificati elencati di seguito.

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

Per impostazione predefinita, il provider Schannel usa i quattro metodi di mapping dei certificati seguenti, in ordine di preferenza:

  1. Mapping dei certificati Kerberos Service-For-User (S4U)
  2. Mapping del nome dell'entità utente
  3. Mapping uno a uno (detto anche mapping soggetto/autorità di certificazione)
  4. Mapping molti a uno

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

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

Ciphers

Le crittografia TLS/SSL devono essere controllate configurando l'ordine del pacchetto di crittografia. Per informazioni dettagliate, vedere Configurazione dell'ordine della suite di crittografia TLS.

Per informazioni sull'ordine predefinito dei pacchetti di crittografia usati da SSP Schannel, vedere Pacchetti di crittografia in TLS/SSL (SSP Schannel).

CipherSuites

La configurazione dei pacchetti di crittografia TLS/SSL deve essere eseguita usando Criteri di gruppo, MDM o PowerShell. Per informazioni dettagliate, vedere Configurazione dell'ordine della suite di crittografia TLS.

Per informazioni sull'ordine predefinito dei pacchetti di crittografia usati da SSP Schannel, vedere Pacchetti di crittografia in TLS/SSL (SSP Schannel).

ClientCacheTime

Questa voce controlla l'intervallo di tempo, in millisecondi, che il sistema operativo impiega per la scadenza delle voci della cache sul lato client. Il valore 0 disattiva la memorizzazione nella cache per la connessione sicura. Questa voce non è disponibile nel Registro di sistema per impostazione predefinita.

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.

A partire Windows Server 2008 e Windows Vista, il tempo di cache del client predefinito è 10 ore.

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

EnableOcspStaplingForSni

La graffatura 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 del server quando invia il certificato del 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 del server dal server OCSP. Questo genererebbe un carico elevato sul server OCSP.

Oltre a IIS, i servizi Web su http.sys possono 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 con una semplice associazione sicura (SSL/TLS). Tuttavia, questo supporto non è abilitato per impostazione predefinita se il sito Web IIS usa 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 con graffatura OCSP per impostazione predefinita. Questo comportamento migliora le prestazioni: l Windows implementazione della graffatura OCSP si ridimensiona fino a centinaia di certificati server. Poiché SNI e CCS consentono a IIS di scalare a migliaia di siti Web che potenzialmente hanno migliaia di certificati server, l'impostazione di questo comportamento come abilitato per impostazione predefinita può 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 chiave seguente:

"EnableOcspStaplingForSni"=dword:00000001

Per disabilitare, impostare il valore DWORD su 0:

"EnableOcspStaplingForSni"=dword:00000000

Nota

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

FIPSAlgorithmPolicy

Questa voce controlla la conformità con FIPS (Federal Information Processing Standard). Il valore predefinito è 0.

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

Percorso del Registro di sistema: HKLM SYSTEM\CurrentControlSet\Control\LSA

Windows Pacchetti di crittografia FIPS server: vedere Pacchetti di crittografia e protocolli supportati in SSP Schannel.

Hash

Gli algoritmi hash TLS/SSL devono essere controllati configurando l'ordine del pacchetto di crittografia. Per informazioni dettagliate, vedere Configurazione dell'ordine della suite 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 tenta di eseguire il mapping di tutte le autorità emittente nella catena di certificati del client, non solo dell'autorità emittente diretta del certificato client. Quando non viene eseguito il mapping delle autorità emittente a un account, come nel caso tipico, il server potrebbe tentare di eseguire ripetutamente il mapping dello stesso nome dell'autorità emittente, 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. Questa voce non è disponibile nel Registro di sistema per impostazione predefinita. Il valore predefinito è 100.

Versioni applicabili: tutte le versioni a partire 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 tenta di eseguire il mapping di tutte le autorità emittente nella catena di certificati del client, non solo dell'autorità emittente diretta del certificato client. Nel caso in cui le autorità emittente non eserino il mapping a un account, come nel caso tipico, il server potrebbe tentare di eseguire ripetutamente il mapping dello stesso nome dell'autorità emittente, centinaia di volte al secondo.

Per evitare questo problema, il server ha una cache negativa, quindi se il nome di un'autorità emittente non è mappato a un account, viene aggiunto alla cache e SSP Schannel non tenterà 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. Questa voce non è disponibile nel Registro di sistema per impostazione predefinita. Il valore predefinito è 10 minuti.

Versioni applicabili: tutte le versioni a partire Windows Server 2008 e Windows Vista.

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

KeyExchangeAlgorithm - Dimensioni delle chiavi RSA del client

Questa voce controlla le dimensioni delle chiavi RSA del client.

L'uso di algoritmi di scambio delle chiavi deve essere controllato configurando l'ordine dei pacchetti di crittografia.

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

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

Per specificare un intervallo minimo supportato di lunghezza in bit della chiave RSA per il client TLS, creare una voce ClientMinKeyBitLength. Questa voce non è disponibile nel Registro di sistema per impostazione predefinita. Dopo aver creato la voce, modificare il valore DWORD sulla lunghezza in bit desiderata. Se non configurata, 1024 bit sarà il valore minimo.

Per specificare un intervallo massimo supportato di lunghezza in bit della chiave RSA per il client TLS, creare una voce ClientMaxKeyBitLength. Questa voce non è disponibile nel Registro di sistema per impostazione predefinita. Dopo aver creato la voce, modificare il valore DWORD sulla lunghezza in bit desiderata. Se non è configurato, non viene applicato un valore massimo.

KeyExchangeAlgorithm - dimensioni Diffie-Hellman chiave

Questa voce controlla le dimensioni Diffie-Hellman chiave.

L'uso di algoritmi di scambio di chiavi deve essere controllato configurando l'ordine della suite di crittografia.

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 Diffie-Helman di bit della chiave per il client TLS, creare una voce ClientMinKeyBitLength. Questa voce non è disponibile nel Registro di sistema per impostazione predefinita. Dopo aver creato la voce, modificare il valore DWORD sulla lunghezza in bit desiderata. Se non configurata, 1024 bit sarà il valore minimo.

Per specificare un intervallo massimo supportato di Diffie-Helman di bit della chiave per il client TLS, creare una voce ClientMaxKeyBitLength. Questa voce non è disponibile nel Registro di sistema per impostazione predefinita. Dopo aver creato la voce, modificare il valore DWORD sulla lunghezza in bit desiderata. Se non è configurato, non viene applicato un valore massimo.

Per specificare la lunghezza Diffie-Helman di bit della chiave per il valore predefinito del server TLS, creare una voce ServerMinKeyBitLength. Questa voce non è disponibile nel Registro di sistema per impostazione predefinita. Dopo aver creato la voce, modificare il valore DWORD sulla lunghezza in bit desiderata. Se non configurata, i 2048 bit saranno il valore predefinito.

MaximumCacheSize

Questa voce controlla il numero massimo di elementi della cache. L'impostazione di Setting MaximumCacheSize su 0 disabilita la cache della sessione sul lato server e impedisce la riconnessione. L'aumento del valore di MaximumCacheSize oltre i valori predefiniti causa il consumo di memoria aggiuntiva da parte di Lsass.exe. Ogni elemento della cache della sessione richiede in genere da 2 a 4 KB di memoria. Questa voce non è disponibile nel Registro di sistema per impostazione predefinita. 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 dei messaggi di handshake TLS frammentati che verranno accettati. I messaggi maggiori delle dimensioni consentite non verranno accettati e l'handshake TLS avrà esito negativo. Queste voci non esistono nel Registro di sistema per impostazione predefinita.

Quando si imposta il valore su 0x0, i messaggi frammentati non vengono elaborati e l'handshake TLS avrà esito negativo. In questo modo i client o i server TLS nel computer corrente non sono conformi alle RFC TLS.

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

Aggiunta in Windows 7 e Windows Server 2008 R2: è disponibile un aggiornamento che abilita Internet Explorer in Windows XP, in Windows Vista o in Windows Server 2008 per 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 dei messaggi di handshake TLS frammentati accettati dal client TLS, creare una voce MessageLimitClient. Dopo aver creato la voce, modificare il valore DWORD sulla lunghezza in bit desiderata. Se non è configurato, il valore predefinito sarà 0x8000 byte.

Per specificare le dimensioni massime consentite dei 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 sulla lunghezza in bit desiderata. Se non è configurato, il valore predefinito sarà 0x4000 byte.

Per specificare una dimensione massima consentita dei messaggi di handshake TLS frammentati che il server TLS accetterà quando è presente l'autenticazione client, creare una voce MessageLimitServerClientAuth. Dopo aver creato la voce, modificare il valore DWORD sulla lunghezza in bit desiderata. Se non è configurato, il valore predefinito sarà 0x8000 byte.

SendTrustedIssuerList

Questa voce controlla il flag usato quando viene inviato l'elenco delle autorità di certificazione attendibili. Nel caso di server che considerano attendibili centinaia di autorità di certificazione per l'autenticazione client, il server non potrà inviare tutte queste autorità di certificazione al computer client quando richiede l'autorizzazione client a causa del loro numero eccessivo. In questa situazione, è possibile impostare questa chiave del Registro di sistema e, invece di inviare un elenco parziale, SSP Schannel non invierà alcun elenco al client.

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 la stessa CA radice. Pertanto, Internet Explorer scegliere un certificato che concatena fino a una delle AUTORITÀ di certificazione del server. Se si configura il server in modo che non invii un elenco di autorità di certificazione attendibili, Internet Explorer invierà tutti i propri certificati.

Questa voce non è disponibile nel Registro di sistema per impostazione predefinita.

Comportamento predefinito invia elenco autorità di certificazione attendibili

Versione di Windows Comportamento predefinito
Windows Server 2012 e Windows 8 e versioni successive FALSE
Windows Server 2008 R2 e 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 controlla l'intervallo di tempo, in millisecondi, che il sistema operativo impiega per la scadenza delle voci della cache sul lato server. Un valore 0 disabilita la cache della sessione sul lato server e impedisce la riconnessione. L'aumento del valore di ServerCacheTime oltre i valori predefiniti causa il consumo di memoria aggiuntiva da parte di Lsass.exe. Ogni elemento della cache della sessione richiede in genere da 2 a 4 KB di memoria. Questa voce non è disponibile nel Registro di sistema per impostazione predefinita.

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 di versione del protocollo TLS, DTLS e SSL

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

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

  • Enabled: a meno che il chiamante SSPI non disabiliti in modo esplicito questa versione del protocollo usando la struttura SCH_CREDENTIALS, SSP Schannel può negoziare questa versione del protocollo con un peer di supporto.
  • Disabilitato per impostazione predefinita: a meno che il chiamante SSPI non chieda in modo esplicito questa versione del protocollo usando la struttura SCHANNEL_CRED deprecata, SSP Schannel non negozierà questa versione del protocollo.
  • Disabilitato: SSP SCHANNEL non negozierà questa versione del protocollo indipendentemente dalle impostazioni che il chiamante SSPI può specificare.

L'amministratore di sistema può eseguire l'override delle impostazioni predefinite (D)TLS e della versione del protocollo SSL creando i valori del Registro di sistema DWORD "Enabled" e "DisabledByDefault". Questi valori del Registro di sistema vengono configurati separatamente per i ruoli client e server del protocollo nelle sottochiavi del Registro di sistema denominate nel formato seguente:

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

Queste sottochiavi specifiche della versione possono essere create nel percorso del Registro di sistema 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 supportata (D)TLS o del protocollo SSL sullo stato Abilitato, creare un valore del Registro di sistema DWORD denominato "Enabled" con un valore diverso da zero e un valore del Registro di sistema DWORD denominato "DisabledByDefault" con valore zero, nella sottochiave specifica della versione corrispondente.

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

Client TLS 1.0 abilitato

Per eseguire l'override di un'impostazione predefinita del sistema e impostare una versione supportata (D)TLS o del protocollo SSL sullo stato Disabilitato per impostazione predefinita, creare i valori del Registro di sistema DWORD denominati "Enabled" e "DisabledByDefault" con un valore diverso da zero nella sottochiave specifica della versione corrispondente. L'esempio seguente mostra il server TLS 1.0 impostato sullo stato Disabilitato per impostazione predefinita:

Server TLS 1.0 disabilitato per impostazione predefinita

Per eseguire l'override di un'impostazione predefinita del sistema e impostare una versione supportata (D)TLS o del protocollo SSL sullo stato Disabilitato, creare un valore del Registro di sistema DWORD denominato "Enabled", con valore zero, nella sottochiave specifica della versione corrispondente. L'esempio seguente mostra il server TLS 1.0 impostato sullo stato Disabilitato:

L'esempio seguente mostra DTLS 1.2 disabilitato nel Registro di sistema:

DTLS 1.2 disabilitato

Il passaggio di una versione del protocollo (D)TLS o SSL a Disabilitato per impostazione predefinita o 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 particolari chiamanti SSPI. Inoltre, la riduzione del set di versioni abilitate (D)TLS e SSL può interrompere l'interoperabilità con i peer remoti.

Dopo aver modificato le impostazioni della versione del protocollo (D)TLS o SSL, queste vengono applicate alle connessioni stabilite usando gli handle di credenziali aperti dalle chiamate AcquireCredentialsHandle successive. (D) I servizi e le applicazioni client e server TLS e SSL tendono a riutilizzare gli handle di credenziali per più connessioni, per motivi di prestazioni. Per fare in modo che queste applicazioni riacquisino gli handle delle credenziali, potrebbe essere necessario un riavvio dell'applicazione o del servizio.

Si noti che queste impostazioni del Registro di sistema si applicano solo a SSP Schannel e non influiscono sulle implementazioni di terze parti (D)TLS e SSL che possono essere installate nel sistema.