AD FS에 대한 SSL/TLS 프로토콜 및 암호 그룹 관리

다음 설명서에서는 AD FS(Active Directory Federation Services)에서 사용하는 특정 TLS/SSL 프로토콜 및 암호 그룹을 사용하지 않도록 설정하고 사용하도록 설정하는 방법에 대한 정보를 제공합니다.

AD FS의 TLS/SSL, Schannel 및 암호 그룹

TLS(전송 계층 보안) 프로토콜은 네트워크를 통해 암호화된 보안 통신을 제공합니다. SSL(Secure Sockets Layer) 프로토콜은 TLS와 유사한 웹 서버와 웹 브라우저 간에 전송되는 중요한 데이터 교환을 암호화합니다. AD FS(Active Directory Federation Services)는 통신에 이러한 프로토콜을 사용합니다. 현재 이러한 프로토콜의 여러 버전이 있습니다.

보안 채널(Schannel)은 SSL, TLS 및 DTLS 인터넷 표준 인증 프로토콜을 구현하는 SSP(보안 지원 공급자)입니다. SSPI(Security Support Provider Interface)는 인증을 비롯한 보안 관련 기능을 수행하기 위해 Windows 시스템에서 사용되는 API입니다. SSPI는 Schannel SSP를 포함하여 여러 SSP에 대한 공통 인터페이스로 작동합니다.

암호화 제품군은 암호화 알고리즘의 집합입니다. TLS/SSL 프로토콜의 Schannel SSP 구현은 암호화 도구 모음의 알고리즘을 사용하여 키를 만들고 정보를 암호화합니다. 암호 그룹은 다음 작업에 대해 각각 하나의 알고리즘을 지정합니다.

  • 키 교환
  • 대량 암호화
  • 메시지 인증

AD FS는 Schannel.dll을 사용하여 보안 통신 상호 작용을 수행합니다. 현재 AD FS는 Schannel.dll에서 지원하는 모든 프로토콜 및 암호 그룹을 지원합니다.

TLS/SSL 프로토콜 및 암호 그룹 관리

Important

이 섹션에는 레지스트리를 수정하는 방법을 알려주는 단계가 포함되어 있습니다. 하지만 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 따라서 다음 단계를 신중하게 수행해야 합니다.

SCHANNEL에 대한 기본 보안 설정을 변경하면 특정 클라이언트와 서버 간의 통신이 중단되거나 차단될 수 있습니다. 보안 통신이 필요하고 통신을 협상할 프로토콜이 없는 경우에 발생합니다.

이러한 변경 내용을 적용하는 경우 팜의 모든 AD FS 서버에 적용해야 합니다. 이러한 변경 내용을 적용한 후에는 다시 부팅해야 합니다.

오늘날의 시대에는 서버를 강화하고 오래되거나 약한 암호 그룹을 제거하는 것이 많은 조직에서 주요 우선 순위가 되고 있습니다. 서버를 테스트하고 이러한 프로토콜 및 제품군에 대한 자세한 정보를 제공하는 소프트웨어 제품군을 사용할 수 있습니다. 규정을 다시 기본 보안 등급을 얻으려면 약한 프로토콜 또는 암호 그룹을 제거하거나 사용하지 않도록 설정해야 합니다. 이 문서의 re기본der는 특정 프로토콜 및 암호 그룹을 사용하거나 사용하지 않도록 설정하는 방법에 대한 지침을 제공합니다.

레지스트리 키는 동일한 위치에 있습니다. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols. 레지스트리 편집기 또는 PowerShell을 사용하여 이러한 프로토콜 및 암호 그룹을 사용하거나 사용하지 않도록 설정합니다.

Screenshot of the Registry Editor showing the registry keys located in the Protocols folder.

SSL 3.0 사용 및 사용 안 함

다음 레지스트리 키와 해당 값을 사용하여 SSL 3.0을 사용하거나 사용하지 않도록 설정합니다.

SSL 3.0 사용

Path 값 이름 값 데이터
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server Enabled 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server DisabledByDefault 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client Enabled 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client DisabledByDefault 00000000

SSL 3.0 사용 안 함

Path 값 이름 값 데이터
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server Enabled 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server DisabledByDefault 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client Enabled 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client DisabledByDefault 00000001

PowerShell을 사용하여 SSL 3.0 사용 안 함

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'SSL 3.0 has been disabled.'

TLS 1.0 사용 및 사용 안 함

다음 레지스트리 키와 해당 값을 사용하여 TLS 1.0을 사용하거나 사용하지 않도록 설정합니다.

Important

TLS 1.0을 사용하지 않도록 설정하면 WAP가 AD FS 트러스트로 중단됩니다. TLS 1.0을 사용하지 않도록 설정하는 경우 애플리케이션에 대해 강력한 인증을 사용하도록 설정해야 합니다. 자세한 내용은 .NET 애플리케이션에 대한 강력한 인증 사용을 참조 하세요.

TLS 1.0 사용

Path 값 이름 값 데이터
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server Enabled 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server DisabledByDefault 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client Enabled 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client DisabledByDefault 00000000

TLS 1.0 사용 안 함

Path 값 이름 값 데이터
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server Enabled"=00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server DisabledByDefault 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client Enabled 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client DisabledByDefault 00000001

PowerShell을 사용하여 TLS 1.0 사용 안 함

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'TLS 1.0 has been disabled.'

TLS 1.1 사용 및 사용 안 함

다음 레지스트리 키와 해당 값을 사용하여 TLS 1.1을 사용하거나 사용하지 않도록 설정합니다.

TLS 1.1 사용

Path 값 이름 값 데이터
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server Enabled 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server DisabledByDefault 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client Enabled 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client DisabledByDefault 00000000

TLS 1.1 사용 안 함

Path 값 이름 값 데이터
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server Enabled 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server DisabledByDefault 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client Enabled 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client DisabledByDefault 00000001

PowerShell을 사용하여 TLS 1.1 사용 안 함

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'TLS 1.1 has been disabled.'

TLS 1.2 사용 안 함

TLS 1.2는 Windows Server 2012부터 기본적으로 사용하도록 설정됩니다. 다음 레지스트리 키와 해당 값을 사용하여 TLS 1.2를 사용하지 않도록 설정할 수 있습니다.

참고 항목

TLS 1.2를 사용하지 않도록 설정하는 것은 권장되지 않습니다.

Path 값 이름 값 데이터
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server Enabled 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server DisabledByDefault 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client Enabled 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client DisabledByDefault 00000001

PowerShell을 사용하여 TLS 1.2 사용 안 함

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'TLS 1.2 has been disabled.'

해시, 암호 및 암호 그룹 사용 또는 사용 안 함

레지스트리를 통해 키 크기 이외의 암호화, 해시 및 키 교환 알고리즘을 제어하는 것은 지원되지 않습니다. 해시, 암호 및 키 교환 알고리즘은 PowerShell, MDM 또는 암호 그룹 순서 지정을 통해 제어됩니다.

지원되는 암호 제품군의 전체 목록은 TLS/SSL(Schannel SSP)의 암호 그룹을 참조하세요. 이 문서에서는 기본적으로 사용하도록 설정된 제품군 테이블을 제공하며 기본적으로 지원되지만 사용하도록 설정되지 않은 제품군을 보여 줍니다. 암호 도구 모음 의 우선 순위를 지정하려면 Schannel Cipher Suites 우선 순위를 지정합니다.

.NET 애플리케이션에 대해 강력한 인증 사용

.NET Framework 3.5/4.0/4.5.x 애플리케이션은 SchUseStrongCrypto 레지스트리 키를 사용하도록 설정하여 기본 프로토콜을 TLS 1.2로 전환할 수 있습니다. 이러한 레지스트리 키는 .NET 애플리케이션에서 TLS 1.2를 사용하도록 강제합니다.

Important

Windows Server 2016 및 Windows Server 2012 R2의 AD FS의 경우 .NET Framework 4.0/4.5.x 키 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\를 사용해야 합니다. NETFramework\v4.0.30319

.NET Framework 3.5의 경우 다음 레지스트리 키를 사용합니다.

Path 값 이름 값 데이터
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\. NETFramework\v2.0.50727 SchUseStrongCrypto 00000001

.NET Framework 4.0/4.5.x의 경우 다음 레지스트리 키를 사용합니다.

Path 값 이름 값 데이터
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\. NETFramework\v4.0.30319 SchUseStrongCrypto 00000001

Screenshot of Registry Editor that highlights the SchUseStrongCrypto key

New-ItemProperty -path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -name 'SchUseStrongCrypto' -value '1' -PropertyType 'DWord' -Force | Out-Null

추가 정보