다음을 통해 공유


Windows 10 및 Windows Server 2016의 TLS(Schannel SSP) 변경 내용

암호화 도구 모음 변경 내용

Windows 10, 버전 1511 및 Windows Server 2016은 MDM(모바일 장치 관리)을 사용하여 암호화 도구 모음 주문의 구성에 대한 지원을 추가합니다.

암호화 도구 모음 우선 순위 변경은 Schannel의 암호화 도구 모음을 참조하세요.

다음 암호화 도구 모음에 대한 지원이 추가되었습니다.

  • Windows 10 버전, 1507 및 Windows Server 2016의 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256(RFC 5289)
  • Windows 10 버전, 1507 및 Windows Server 2016의 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384(RFC 5289)

다음 암호화 도구 모음에 대해 DisabledByDefault가 변경됩니다.

  • Windows 10, 버전 1703의 TLS_DHE_DSS_WITH_AES_256_CBC_SHA256(RFC 5246)
  • Windows 10, 버전 1703의 TLS_DHE_DSS_WITH_AES_128_CBC_SHA256(RFC 5246)
  • Windows 10, 버전 1703의 TLS_DHE_DSS_WITH_AES_256_CBC_SHA(RFC 5246)
  • Windows 10, 버전 1703의 TLS_DHE_DSS_WITH_AES_128_CBC_SHA(RFC 5246)
  • Windows 10, 버전 1703의 TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA(RFC 5246)
  • Windows 10, 버전 1709의 TLS_RSA_WITH_RC4_128_SHA
  • Windows 10, 버전 1709의 TLS_RSA_WITH_RC4_128_MD5

Windows 10, 버전 1507 및 Windows Server 2016부터 SHA 512 인증서가 기본적으로 지원됩니다.

RSA 주요 변경 사항

Windows 10, 버전 1507 및 Windows Server 2016에서는 클라이언트 RSA 키 크기에 대한 레지스트리 구성 옵션을 추가합니다.

자세한 내용은 KeyExchangeAlgorithm 키 크기를 참조하세요.

Diffie-Hellman 주요 변경

Windows 10, 버전 1507 및 Windows Server 2016에서는 Diffie-Hellman 키 크기에 대한 레지스트리 구성 옵션을 추가합니다.

자세한 내용은 KeyExchangeAlgorithm 키 크기를 참조하세요.

SCH_USE_STRONG_CRYPTO 옵션 변경

Windows 10, 버전 1507 및 Windows Server 2016에서는 이제 SCH_USE_STRONG_CRYPTO 옵션을 사용하여 NULL, MD5, DES 및 암호화 내보내기를 사용하지 않도록 설정합니다.

타원형 곡선 변경 내용

Windows 10, 버전 1507 및 Windows Server 2016은 컴퓨터 구성 > 관리 템플릿 > 네트워크 > SSL 구성 설정에서 타원형 곡선에 대한 그룹 정책 구성을 추가합니다. ECC 곡선 순서 목록은 선호되는 타원형 곡선의 순서를 지정하고 활성화되지 않은 지원되는 곡선을 사용하도록 설정합니다.

다음 타원형 곡선에 대한 지원을 추가했습니다.

  • Windows 10, 버전 1507 및 Windows Server 2016의 BrainpoolP256r1(RFC 7027)
  • Windows 10, 버전 1507 및 Windows Server 2016의 BrainpoolP384r1(RFC 7027)
  • Windows 10, 버전 1507 및 Windows Server 2016의 BrainpoolP512r1(RFC 7027)
  • Windows 10, 버전 1607 및 Windows Server 2016의 Curve25519(RFC draft-ietf-tls-curve25519)

SealMessage & UnsealMessage에 대한 디스패치 수준 지원

Windows 10, 버전 1507 및 Windows Server 2016은 디스패치 수준에서 SealMessage/UnsealMessage에 대한 지원을 추가합니다.

DTLS 1.2

Windows 10, 버전 1607 및 Windows Server 2016은 DTLS 1.2(RFC 6347)에 대한 지원을 추가합니다.

HTTP.SYS 스레드 풀

Windows 10, 버전 1607 및 Windows Server 2016에서는 HTTP.SYS의 TLS 핸드셰이크를 처리하는 데 사용되는 스레드 풀 크기의 레지스트리 구성을 추가합니다.

레지스트리 경로:

HKLM\SYSTEM\CurrentControlSet\Control\LSA

CPU 코어당 최대 스레드 풀 크기를 지정하려면 MaxAsyncWorkerThreadsPerCpu 항목을 만듭니다. 이 항목은 기본적으로 레지스트리에 없습니다. 항목을 만든 후 DWORD 값을 원하는 크기로 변경합니다. 구성되지 않은 경우 CPU 코어당 최대 스레드의 개수는 2개입니다.

NPN(다음 프로토콜 협상) 지원

Windows 10 버전 1703부터 NPN(다음 프로토콜 협상)은 제거되었으며 더 이상 지원되지 않습니다.

미리 공유한 키(PSK)

Windows 10, 버전 1607 및 Windows Server 2016은 PSK 키 교환 알고리즘(RFC 4279)에 대한 지원을 추가합니다.

다음 PSK 암호화 도구 모음에 대한 지원이 추가되었습니다.

  • Windows 10, 버전 1607 및 Windows Server 2016의 TLS_PSK_WITH_AES_128_CBC_SHA256(RFC 5487)
  • Windows 10, 버전 1607 및 Windows Server 2016의 TLS_PSK_WITH_AES_256_CBC_SHA384(RFC 5487)
  • Windows 10, 버전 1607 및 Windows Server 2016의 TLS_PSK_WITH_NULL_SHA256(RFC 5487)
  • Windows 10, 버전 1607 및 Windows Server 2016의 TLS_PSK_WITH_NULL_SHA384(RFC 5487)
  • Windows 10, 버전 1607 및 Windows Server 2016의 TLS_PSK_WITH_AES_128_GCM_SHA256(RFC 5487)
  • Windows 10, 버전 1607 및 Windows Server 2016의 TLS_PSK_WITH_AES_256_GCM_SHA384(RFC 5487)

서버 측 상태 서버 측 성능 향상 없이 세션 다시 시작

Windows 10, 버전 1507 및 Windows Server 2016에서는 Windows Server 2012에 비해 세션 티켓으로 초당 30% 더 많은 세션 재개를 제공합니다.

세션 해시 및 확장 마스터 비밀 확장

Windows 10, 버전 1507 및 Windows Server 2016에서는 RFC 7627: TLS(전송 계층 보안) 세션 해시 및 확장 마스터 비밀 확장에 대한 지원을 추가합니다.

이러한 변경으로 인해 Windows 10 및 Windows Server 2016에는 NCRYPT_SSL_INTERFACE_VERSION_3을 지원하고 이 새 인터페이스를 설명하기 위해 타사 CNG SSL 공급자 업데이트가 필요합니다.

SSL 지원

Windows 10, 버전 1607 및 Windows Server 2016부터 TLS 클라이언트 및 서버 SSL 3.0은 기본적으로 사용하지 않도록 설정됩니다. 즉, 애플리케이션 또는 서비스가 SSPI를 통해 SSL 3.0을 특별히 요청하지 않는 한 클라이언트는 SSL 3.0을 제공하거나 수락하지 않고 서버는 SSL 3.0을 선택하지 않습니다.

Windows 10 버전 1607 및 Windows Server 2016부터 SSL 2.0은 제거되었으며 더 이상 지원되지 않습니다.

비준수 TLS 클라이언트를 통한 연결에 대한 TLS 1.2 요구 사항의 Windows TLS 준수 변경

TLS 1.2에서 클라이언트는 "signature_algorithms" 확장을 사용하여 디지털 서명(예: 서버 인증서 및 서버 키 교환)에서 사용할 수 있는 서명/해시 알고리즘 쌍을 서버에 나타냅니다. 또한 TLS 1.2 RFC를 사용하기 위해서는 서버 인증서 메시지에서 "signature_algorithms" 확장을 적용해야 합니다.

"클라이언트가 "signature_algorithms" 확장을 제공한 경우 서버에서 제공하는 모든 인증서는 해당 확장에 표시되는 해시/서명 알고리즘 쌍으로 서명해야 합니다."

실제로 일부 타사 TLS 클라이언트는 TLS 1.2 RFC를 준수하지 않으며 "signature_algorithms" 확장에서 수락하려는 모든 서명 및 해시 알고리즘 쌍을 포함하지 않거나 확장을 모두 생략합니다(후자는 클라이언트가 RSA, DSA 또는 ECDSA에서 SHA1만 지원한다는 것을 서버에 보여줍니다).

TLS 서버에는 종종 엔드포인트당 하나의 인증서만 구성됩니다. 즉, 서버가 클라이언트의 요구 사항을 충족하는 인증서를 항상 제공할 수는 없습니다.

Windows 10 및 Windows Server 2016 이전에는 Windows TLS 스택이 TLS 1.2 RFC 요구 사항을 엄격하게 준수하여 RFC 비준수 TLS 클라이언트와의 연결 실패 및 상호 운용성 문제가 발생했습니다. Windows 10 및 Windows Server 2016에서는 제약 조건이 완화되며 서버의 유일한 옵션인 경우 서버에서 TLS 1.2 RFC를 준수하지 않는 인증서를 보낼 수 있습니다. 그러면 클라이언트에서 핸드셰이크를 계속하거나 종료할 수 있습니다.

서버 및 클라이언트 인증서의 유효성을 검사하는 경우 Windows TLS 스택은 TLS 1.2 RFC를 엄격하게 준수하며 서버 및 클라이언트 인증서에서 협상된 서명 및 해시 알고리즘만 허용합니다.