Modifiche di TLS (SSP Schannel) in Windows 10 e Windows Server 2016

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

Modifiche a Cipher Suite

Windows 10, versione 1511 e Windows Server 2016 aggiungere il supporto per la configurazione dell'ordine dei pacchetti di crittografia tramite gestione di dispositivi mobili (MDM).

Per le modifiche dell'ordine di priorità dei pacchetti di crittografia, vedere Pacchetti di crittografia in Schannel.

Aggiunta del supporto per i pacchetti di crittografia seguenti:

  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (RFC 5289) in Windows 10 versione 1507 e Windows Server 2016
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (RFC 5289) in Windows 10 versione 1507 e Windows Server 2016

Modifica disabledByDefault per i pacchetti di crittografia seguenti:

  • TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 (RFC 5246) in Windows 10 versione 1703
  • TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 (RFC 5246) in Windows 10 versione 1703
  • TLS_DHE_DSS_WITH_AES_256_CBC_SHA (RFC 5246) in Windows 10 versione 1703
  • TLS_DHE_DSS_WITH_AES_128_CBC_SHA (RFC 5246) in Windows 10 versione 1703
  • TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA (RFC 5246) in Windows 10 versione 1703
  • TLS_RSA_WITH_RC4_128_SHA in Windows 10, versione 1709
  • TLS_RSA_WITH_RC4_128_MD5 in Windows 10, versione 1709

A partire Windows 10, versione 1507 e Windows Server 2016, i certificati SHA 512 sono supportati per impostazione predefinita.

Modifiche alle chiavi RSA

Windows 10, versione 1507 e Windows Server 2016 opzioni di configurazione del Registro di sistema per le dimensioni delle chiavi RSA del client.

Per altre informazioni, vedere KeyExchangeAlgorithm - Dimensioni delle chiavi RSA del client.

Diffie-Hellman delle chiavi

Windows 10, versione 1507 e Windows Server 2016 opzioni di configurazione del Registro di sistema per le dimensioni Diffie-Hellman chiave.

Per altre informazioni, vedere KeyExchangeAlgorithm - Diffie-Hellman delle chiavi.

SCH_USE_STRONG_CRYPTO delle opzioni

Con Windows 10, la versione 1507 e Windows Server 2016, SCH_USE_STRONG_CRYPTO disabilita ora le crittografia NULL, MD5, DES ed esportazione.

Modifiche alla curva ellittica

Windows 10, versione 1507 e Windows Server 2016 aggiungere la configurazione Criteri di gruppo per le curve ellittiche in Configurazione computer Modelli amministrativi configurazione >> SSL di rete > Impostazioni. L'elenco ECC Curve Order (Ordine delle curve ECC) specifica l'ordine in cui sono preferite le curve ellittiche e abilita le curve supportate che non sono abilitate.

Aggiunta del supporto per le curve ellittiche seguenti:

  • BrainpoolP256r1 (RFC 7027) in Windows 10, versione 1507 e Windows Server 2016
  • BrainpoolP384r1 (RFC 7027) in Windows 10, versione 1507 e Windows Server 2016
  • BrainpoolP512r1 (RFC 7027) in Windows 10, versione 1507 e Windows Server 2016
  • Curve25519 (RFC draft-ietf-tls-curve25519) in Windows 10, versione 1607 e Windows Server 2016

Supporto a livello di dispatch per SealMessage & UnsealMessage

Windows 10, versione 1507 e Windows Server 2016 aggiunto il supporto per SealMessage/UnsealMessage a livello di invio.

DTLS 1.2

Windows 10, versione 1607 e Windows Server 2016 aggiungere il supporto per DTLS 1.2 (RFC 6347).

HTTP.SYS pool di thread

Windows 10, versione 1607 e Windows Server 2016 aggiungere la configurazione del Registro di sistema delle dimensioni del pool di thread usato per gestire gli handshake TLS per HTTP.SYS.

Percorso del Registro di sistema:

HKLM\SYSTEM\CurrentControlSet\Control\LSA

Per specificare le dimensioni massime del pool di thread per ogni core CPU, creare una voce MaxAsyncWorkerThreadsPerCpu. Questa voce non è disponibile nel Registro di sistema per impostazione predefinita. Dopo aver creato la voce, modificare il valore DWORD in base alle dimensioni desiderate. Se non è configurato, il valore massimo è 2 thread per core CPU.

Supporto NPN (Next Protocol Negotiation)

A partire Windows 10 versione 1703, Next Protocol Negotiation (NPN) è stato rimosso e non è più supportato.

Chiave precondi condivisa (PSK)

Windows 10, versione 1607 e Windows Server 2016 aggiunto il supporto per l'algoritmo di scambio delle chiavi PSK (RFC 4279).

Aggiunta del supporto per i pacchetti di crittografia PSK seguenti:

  • TLS_PSK_WITH_AES_128_CBC_SHA256 (RFC 5487) in Windows 10 versione 1607 e Windows Server 2016
  • TLS_PSK_WITH_AES_256_CBC_SHA384(RFC 5487) in Windows 10 versione 1607 e Windows Server 2016
  • TLS_PSK_WITH_NULL_SHA256 (RFC 5487) in Windows 10 versione 1607 e Windows Server 2016
  • TLS_PSK_WITH_NULL_SHA384 (RFC 5487) in Windows 10 versione 1607 e Windows Server 2016
  • TLS_PSK_WITH_AES_128_GCM_SHA256 (RFC 5487) in Windows 10 versione 1607 e Windows Server 2016
  • TLS_PSK_WITH_AES_256_GCM_SHA384 (RFC 5487) in Windows 10 versione 1607 e Windows Server 2016

Ripresa della sessione senza miglioramenti Server-Side prestazioni lato server dello stato

Windows 10, le versioni 1507 e Windows Server 2016 offrono il 30% in più di ripresi di sessione al secondo con i ticket di sessione rispetto Windows Server 2012.

Hash di sessione ed estensione master secret estesa

Windows 10, versione 1507 e Windows Server 2016 aggiungere il supporto per RFC 7627: Transport Layer Security (TLS) Session Hash ed Extended Master Secret Extension.

A causa di questa modifica, Windows 10 e Windows Server 2016 richiedono aggiornamenti del provider SSL CNG di terze parti per supportare NCRYPT_SSL_INTERFACE_VERSION_3 e per descrivere questa nuova interfaccia.

Supporto di SSL

A partire da Windows 10 versione 1607 e Windows Server 2016, il client TLS e il server SSL 3.0 sono disabilitati per impostazione predefinita. Ciò significa che, a meno che l'applicazione o il servizio non richiede specificamente SSL 3.0 tramite SSPI, il client non offrirà o accetterà mai SSL 3.0 e il server non selezionerà mai SSL 3.0.

A partire Windows 10 versione 1607 e Windows Server 2016, SSL 2.0 è stato rimosso e non è più supportato.

Modifiche alla Windows tls ai requisiti di TLS 1.2 per le connessioni con client TLS non conformi

In TLS 1.2 il client usa l'estensione "signature_algorithms" per indicare al server quali coppie di algoritmi di firma/hash possono essere usate nelle firme digitali, ad esempio i certificati del server e lo scambio di chiavi del server. La RFC TLS 1.2 richiede anche che il messaggio del certificato del server ri honorisi l'estensione "signature_algorithms":

"Se il client ha fornito un'estensione "signature_algorithms", tutti i certificati forniti dal server DEVONO essere firmati da una coppia di algoritmi hash/firma visualizzata in tale estensione."

In pratica, alcuni client TLS di terze parti non sono conformi alla RFC TLS 1.2 e non riescono a includere tutte le coppie di algoritmi di firma e hash che sono disposti ad accettare nell'estensione "signature_algorithms" o omettere completamente l'estensione (il secondo indica al server che il client supporta solo SHA1 con RSA, DSA o ECDSA).

Un server TLS ha spesso un solo certificato configurato per ogni endpoint, il che significa che il server non può sempre fornire un certificato che soddisfi i requisiti del client.

Prima di Windows 10 e Windows Server 2016, lo stack TLS di Windows rispettava rigorosamente i requisiti RFC di TLS 1.2, causando errori di connessione con client TLS non conformi a RFC e problemi di interoperabilità. In Windows 10 e Windows Server 2016, i vincoli sono meno regolati e il server può inviare un certificato non conforme a TLS 1.2 RFC, se questa è l'unica opzione del server. Il client può quindi continuare o terminare l'handshake.

Durante la convalida dei certificati server e client, lo stack TLS di Windows è strettamente conforme alla RFC TLS 1.2 e consente solo la firma negoziata e gli algoritmi hash nei certificati server e client.