Modifiche a 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 al pacchetto di crittografia

Windows 10, versione 1511 e Windows Server 2016 aggiungono il supporto per la configurazione dell'ordine dei pacchetti di crittografia tramite Mobile Device Management (MDM).

Per le modifiche all'ordine di priorità dei pacchetti di crittografia, consultare la sezione Pacchetti di crittografia in Schannel.

Supporto aggiunto per i seguenti pacchetti di crittografia:

  • 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 seguenti pacchetti di crittografia:

  • 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 da Windows 10, versione 1507 e Windows Server 2016, i certificati SHA 512 sono supportati per impostazione predefinita.

Modifiche chiavi RSA

Windows 10, versione 1507 e Windows Server 2016 aggiungono opzioni di configurazione di registro per le dimensioni delle chiavi RSA client.

Per maggiori informazioni, vedere le dimensioni chiave KeyExchangeAlgorithm.

Modifiche chiave Diffie-Hellman

Windows 10, versione 1507 e Windows Server 2016 aggiungono opzioni di configurazione di registro per le dimensioni delle chiavi Diffie-Hellman.

Per maggiori informazioni, vedere le dimensioni chiave KeyExchangeAlgorithm.

Modifiche all'opzione SCH_USE_STRONG_CRYPTO

Con Windows 10, versione 1507 e Windows Server 2016, SCH_USE_STRONG_CRYPTO opzione ora disabilita NULL, MD5, DES ed esporta crittografie.

Modifiche della curva ellittica

Windows 10 versione 1507 e Windows Server 2016 aggiungono la configurazione di Criteri di gruppo per le curve ellittiche in Configurazione computer >Modelli amministrativi >Rete > Impostazioni configurazione SSL. L'elenco ordine curva ECC specifica l'ordine in cui sono preferite le curve ellittiche, nonché le curve supportate non 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 aggiungono il supporto per SealMessage/UnsealMessage a livello di invio.

DTLS 1.2

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

Pool di thread HTTP.SYS

Windows 10, versione 1607 e Windows Server 2016 aggiungono 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 una dimensione massima 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 alla dimensione desiderata. Se non configurato, il massimo è 2 thread per core CPU.

Supporto di Next Protocol Negotiation (NPN)

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

Chiave precondivisa (PSK)

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

Supporto aggiunto ai seguenti pacchetti di crittografia PSK:

  • 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 delle prestazioni lato server-side server

Windows 10, versione 1507 e Windows Server 2016 forniscono il 30% di ripresa delle sessioni al secondo con i ticket di sessione rispetto a Windows Server 2012.

Estensione hash sessione ed estensione master secret estesa

Windows 10, versione 1507 e Windows Server 2016 aggiungono il supporto per RFC 7627: Hash sessione TLS (Transport Layer Security) ed Estensione master secret estesa.

A causa di questa modifica, Windows 10 e Windows Server 2016 richiedono aggiornamenti del provider CNG SSL 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 richieda specificamente SSL 3.0 tramite SSPI, il client non offrirà mai o accetterà SSL 3.0 e il server non selezionerà mai SSL 3.0.

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

Modifiche alla conformità di TLS di Windows ai requisiti 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 firme/algoritmi hash possono essere usate nelle firme digitali (ad esempio, certificati server e scambio di chiavi del server). TLS 1.2 RFC richiede anche che il messaggio del certificato del server rispetti 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 a TLS 1.2 RFC e non includono tutte le coppie di firme e algoritmi hash che sono disposti ad accettare nell'estensione "signature_algorithms" od omettere completamente l'estensione (quest'ultima indica al server che il client supporta solo SHA1 con RSA, DSA o ECDSA).

Un server TLS ha spesso un solo certificato configurato per 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 è strettamente conforme ai requisiti TLS 1.2 RFC, 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 flessibili e il server può inviare un certificato non conforme a TLS 1.2 RFC, se si tratta dell'unica opzione del server. Il client può quindi continuare o terminare l'handshake.

Quando si convalidano certificati server e client, lo stack TLS di Windows è strettamente conforme a TLS 1.2 RFC e consente solo la firma negoziata e gli algoritmi hash nei certificati server e client.