Alterações do TLS (SSP Schannel) no Windows 10 e Windows Server 2016
Alterações no pacote de criptografia
O Windows 10, versão 1511 e Windows Server 2016 adicionam suporte para a configuração da ordem do pacote de criptografia usando o MDM (Gerenciamento de dispositivo móvel).
Para obter alterações na ordem de prioridade do pacote de criptografia, consulte Pacotes de criptografia no Schannel.
Foi adicionado suporte para os seguintes pacotes de criptografia:
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (RFC 5289) no Windows 10, versão 1507 e Windows Server 2016
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (RFC 5289) no Windows 10, versão 1507 e Windows Server 2016
Alteração de DisabledByDefault nos seguintes pacotes de criptografia:
- TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 (RFC 5246) no Windows 10, versão 1703
- TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 (RFC 5246) no Windows 10, versão 1703
- TLS_DHE_DSS_WITH_AES_256_CBC_SHA (RFC 5246) no Windows 10, versão 1703
- TLS_DHE_DSS_WITH_AES_128_CBC_SHA (RFC 5246) no Windows 10, versão 1703
- TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA (RFC 5246) no Windows 10, versão 1703
- TLS_RSA_WITH_RC4_128_SHA no Windows 10, versão 1709
- TLS_RSA_WITH_RC4_128_MD5 no Windows 10, versão 1709
A partir do Windows 10, versão 1507 e Windows Server 2016, os certificados SHA 512 têm suporte por padrão.
Alterações de chave RSA
O Windows 10, versão 1507 e Windows Server 2016 adicionaram opções de configuração de registro para tamanhos de chave RSA do cliente.
Para obter mais informações, confira KeyExchangeAlgorithm key sizes.
Alterações de chave Diffie-Hellman
O Windows 10, versão 1507 e Windows Server 2016 adicionaram opções de configuração de registro para tamanhos de chave Diffie-Hellman.
Para obter mais informações, confira KeyExchangeAlgorithm key sizes.
Alterações na opção SCH_USE_STRONG_CRYPTO
Com o Windows 10, as versões 1507 e o Windows Server 2016, a opção SCH_USE_STRONG_CRYPTO agora desabilita NULL, MD5, DES e exporta criptografias.
Alterações de curva elíptica
O Windows 10, versão 1507 e Windows Server 2016 adicionam configuração de Política de Grupo para curvas elípticas nas Definições de configuração SSL de > Rede > de Modelos Administrativos > da configuração do computador. A lista Ordem de Curva do ECC especifica a ordem na qual as curvas elípticas são preferenciais, bem como permite curvas com suporte que não estão habilitadas.
Foi adicionado suporte para as seguintes curvas elípticas:
- BrainpoolP256r1 (RFC 7027) no Windows 10, versão 1507 e Windows Server 2016
- BrainpoolP384r1 (RFC 7027) no Windows 10, versão 1507 e Windows Server 2016
- BrainpoolP512r1 (RFC 7027) no Windows 10, versão 1507 e Windows Server 2016
- Curve25519 (RFC draft-ietf-tls-curve25519) no Windows 10, versão 1607 e Windows Server 2016
Suporte ao nível de expedição para SealMessage e UnsealMessage
O Windows 10, versão 1507 e Windows Server 2016 adicionam suporte para SealMessage/UnsealMessage no nível de expedição.
DTLS 1.2
O Windows 10, versão 1607 e Windows Server 2016 adicionam suporte para DTLS 1.2 (RFC 6347).
Pool de threads HTTP.SYS
O Windows 10, versão 1607 e Windows Server 2016 adicionam configuração de registro do tamanho do pool de threads usado para tratar handshakes TLS para HTTP.SYS.
Caminho de Registro:
HKLM\SYSTEM\CurrentControlSet\Control\LSA
Para especificar um tamanho máximo do pool de threads por núcleo de CPU, crie uma entrada MaxAsyncWorkerThreadsPerCpu. Essa entrada não existe no Registro por padrão. Depois de criar a entrada, altere o valor DWORD para tamanho desejado. Se não estiver configurado, o máximo será de 2 threads por núcleo de CPU.
Suporte ao NPN (Next Protocol Negotiation)
A partir do Windows 10 versão 1703, o NPN será removido e não terá mais suporte.
PSK (chave pré-compartilhada)
O Windows 10, versão 1607 e Windows Server 2016 adicionam suporte para o algoritmo de troca de chaves PSK (RFC 4279).
Foi adicionado suporte para os seguintes pacotes de criptografia de PSK:
- TLS_PSK_WITH_AES_128_CBC_SHA256 (RFC 5487) no Windows 10, versão 1607 e Windows Server 2016
- TLS_PSK_WITH_AES_256_CBC_SHA384(RFC 5487) no Windows 10, versão 1607 e Windows Server 2016
- TLS_PSK_WITH_NULL_SHA256 (RFC 5487) no Windows 10, versão 1607 e Windows Server 2016
- TLS_PSK_WITH_NULL_SHA384 (RFC 5487) no Windows 10, versão 1607 e Windows Server 2016
- TLS_PSK_WITH_AES_128_GCM_SHA256 (RFC 5487) no Windows 10, versão 1607 e Windows Server 2016
- TLS_PSK_WITH_AES_256_GCM_SHA384 (RFC 5487) no Windows 10, versão 1607 e Windows Server 2016
Retomada da sessão sem melhorias de desempenho do lado do servidor de estado do lado do servidor
O Windows 10, versão 1507 e Windows Server 2016 fornecem 30% mais retomadas de sessão por segundo com tíquetes de sessão em comparação ao Windows Server 2012.
Hash de sessão e extensão de segredo mestre estendido
O Windows 10, versão 1507 e Windows Server 2016 adicionam suporte para RFC 7627: hash de sessão e extensão de segredo mestre estendido de TLS (protocolo TLS).
Devido a essa alteração, o Windows 10 e Windows Server 2016 exigem atualizações de provedor de SSL de CNG de terceiros para dar suporte a NCRYPT_SSL_INTERFACE_VERSION_3 e descrever essa nova interface.
Suporte a SSL
A partir do Windows 10, versão 1607 e Windows Server 2016, o cliente TLS e o servidor SSL 3.0 estarão desabilitados por padrão. Isso significa que, a menos que o aplicativo ou serviço solicite especificamente o SSL 3.0 por meio do SSPI, o cliente nunca oferecerá ou aceitará o SSL 3.0 e o servidor nunca selecionará o SSL 3.0.
A partir do Windows 10 versão 1607 e Windows Server 2016, o SSL 2.0 será removido e não terá mais suporte.
Alterações na adesão do TLS do Windows aos requisitos do TLS 1.2 para conexões com clientes TLS não compatíveis
No TLS 1.2, o cliente usa a extensão "signature_algorithms" para indicar ao servidor quais pares de algoritmos de assinatura/hash podem ser usados em assinaturas digitais (ou seja, certificados de servidor e troca de chaves de servidor). O RFC do TLS 1.2 também exige que a mensagem certificado do servidor honre a extensão "signature_algorithms":
"Se o cliente forneceu uma extensão "signature_algorithms", todos os certificados fornecidos pelo servidor DEVEM ser assinados por um par de algoritmos de hash/assinatura que aparece nessa extensão".
Na prática, alguns clientes TLS de terceiros não estão em conformidade com o RFC do TLS 1.2 e não incluem todos os pares de algoritmos de assinatura e hash que estão dispostos a aceitar na extensão "signature_algorithms" ou omitem a extensão completamente (este último caso indica ao servidor que o cliente só dá suporte a SHA1 com RSA, DSA ou ECDSA).
Um servidor TLS geralmente tem apenas um certificado configurado por ponto de extremidade, o que significa que o servidor nem sempre pode fornecer um certificado que atenda aos requisitos do cliente.
Antes do Windows 10 e Windows Server 2016, a pilha TLS do Windows seguia estritamente os requisitos de RFC do TLS 1.2 e isso resultava em falhas de conexão com clientes TLS fora de conformidade com o RFC e problemas de interoperabilidade. No Windows 10 e Windows Server 2016, as restrições são reduzidas e o servidor pode enviar um certificado que não esteja em conformidade com o RFC TLS 1.2, se essa for a única opção do servidor. Em seguida, o cliente pode continuar ou encerrar o handshake.
Ao validar certificados de servidor e cliente, a pilha TLS do Windows está em total conformidade com o RFC TLS 1.2 e só permite os algoritmos de assinatura e hash negociados nos certificados de servidor e cliente.