AD FS용 SSL/TLS 프로토콜 및 암호 제품군 관리
다음 설명서에서는 ADFS(Active Directory Federation Services)에서 사용하는 특정 TLS/SSL 프로토콜 및 암호 집합을 사용하지 않도록 설정하고 사용하도록 설정하는 방법에 대한 정보를 제공합니다.
AD FS의 TLS/SSL, Schannel 및 암호 제품군
TLS(전송 계층 보안) 프로토콜은 네트워크를 통해 암호화된 보안 통신을 제공합니다. SSL(Secure Sockets Layer) 프로토콜은 TLS와 유사하게 웹 서버와 웹 브라우저 간에 전송되는 민감한 데이터 교환을 암호화합니다. ADFS(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
이 섹션에는 레지스트리를 수정하는 방법을 설명하는 단계가 포함되어 있습니다. 하지만 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 따라서 다음 단계를 신중하게 수행해야 합니다.
채널의 기본 보안 설정을 변경하면 특정 클라이언트와 서버 간의 통신이 중단되거나 차단될 수 있다는 점에 유의하세요. 이는 보안 통신이 필요한데 통신을 협상할 프로토콜이 없는 경우에 발생합니다.
이러한 변경 사항을 적용하는 경우 팜의 모든 AD FS 서버에 적용해야 합니다. 이러한 변경 사항을 적용한 후에는 재부팅이 필요합니다.
오늘날에는 서버를 강화하고 오래되거나 취약한 암호 제품군을 제거하는 것이 많은 조직의 주요 우선 순위가 되고 있습니다. 서버를 테스트하고 이러한 프로토콜 및 제품군에 대한 자세한 정보를 제공하는 소프트웨어 제품군을 사용할 수 있습니다. 규정을 준수하거나 보안 등급을 달성하기 위해서는 취약한 프로토콜이나 암호 제품군을 제거하거나 비활성화하는 것이 필수입니다. 이 문서의 나머지 부분에서는 특정 프로토콜 및 암호 제품군을 사용하거나 사용하지 않도록 설정하는 방법에 대한 지침을 제공합니다.
다음 레지스트리 키는 같은 위치에 있습니다: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols. 레지스트리 편집기 또는 PowerShell을 사용하여 이러한 프로토콜 및 암호 제품군을 사용하거나 사용하지 않도록 설정하세요.
SSL 3.0 활성화 및 비활성화
다음 레지스트리 키와 해당 값을 사용하여 SSL 3.0을 활성화 및 비활성화할 수 있습니다.
SSL 3.0 사용
Path | 값 이름 | 값 데이터 |
---|---|---|
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server | 사용 | 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 | 사용 | 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 | 사용 | 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 | 사용 | 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 | 사용 | 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 | 사용 | 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 | 활성화"=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 | 사용 | 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 | 사용 | 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 | 사용 | 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 | 사용 | 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 | 사용 | 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 | 사용 | 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 | 사용 | 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의 암호 제품군(채널 SSP)을 참조하세요. 이 문서에서는 기본적으로 사용 설정되어 있는 제품군 표를 제공하며, 지원되지만 기본적으로 사용 설정되어 있지 않은 제품군을 보여줍니다. 암호 제품군의 우선순위를 지정하려면 채널 암호 제품군 우선순위 지정하기를 참조하세요.
.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의 ADFS의 경우 .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 |
New-ItemProperty -path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -name 'SchUseStrongCrypto' -value '1' -PropertyType 'DWord' -Force | Out-Null