ADFS용 KDFv2란 무엇인가요?
2021년 7월 13일, CVE-2021-33779에 설명된 대로 토큰 리플레이 공격을 해결하기 위한 ADFS의 업데이트가 릴리스되었습니다. 이번 업데이트에서는 “KDFv2”라는 새로운 키 파생 기능(KDF)을 활성화하고 제어하는 새로운 설정이 도입되었습니다. 이 새 버전의 KDF는 이전 버전보다 더 안전합니다. 이 문서에서는 CVE-2021-33779의 보안 수정으로 활성화된 새로운 설정과 다양한 배포 시나리오에서 이러한 설정을 활성화하는 방법에 대해 설명합니다. 제품별 KB 번호 및 관련 다운로드는 CVE 문서에 제공된 링크를 참조하세요.
KDFv2 설정:
ADFS 서버의 관리자는 다음과 같은 여러 모드 중 하나에서 실행되도록 KDFv2를 구성할 수 있습니다.
- None - (Default value) KDFv2 설정값이 변경되었는지 추적하는 데 사용됩니다. 이 값은 관리자가 설정할 수 없습니다.
- Disabled - 이 값을 설정하면 키 파생 기능을 원래 동작으로 되돌릴 수 있으며, KDFv2를 활성화할 때 문제가 발생할 경우 이 값을 설정할 수 있습니다.
- 활성화 - KDFv2 지원을 활성화합니다. ADFS 서버는 새로운 기능을 지원한다고 알립니다. 클라이언트가 원본 KDF 버전을 사용하여 초기 PRT(기본 새로 고침 토큰) 요청을 보내면 ADFS는 요청을 수락하고 원본 KDF를 사용합니다. 이를 통해 패치되지 않은 클라이언트를 지원할 수 있습니다.
- Enforced - KDFv2 지원을 활성화하고 원본 KDF를 사용하는 초기 PRT 요청을 허용(거부)합니다. 관리자는 모든 클라이언트에 패치가 적용되었다고 판단되면 적용 모드로 전환할 수 있습니다.
ADFS 서버의 관리자는 다음 PowerShell 명령을 통해 KDFv2 모드를 변경할 수 있습니다:
- KDFv2를 활성화합니다.
Set-AdfsProperties -KdfV2Support enable
- KDFv2를 비활성화합니다.
Set-AdfsProperties -KdfV2Support disable
- KDFv2를 적용합니다.
Set-AdfsProperties -KdfV2Support enforce
관리자는 Get-AdfsProperties
을 실행하여 현재 KDFv2 설정을 확인할 수 있습니다. 반환되는 KdfV2Support
값은 구성된 모드와 일치합니다.
배포 시나리오
KDFv2를 지원하도록 패치할 때 AD FS 서버가 실행 중인 OS 버전에 따라 KDFv2가 자동으로 사용하도록 설정될 수 있습니다. 또한 팜에서 KDFv2의 상태를 나타내기 위해 OS 버전에 따라 이벤트가 기록될 수 있습니다. 다음은 가능한 배포 시나리오와 예상되는 동작입니다.
시나리오 1: 팜의 모든 AD FS 서버에 Windows Server 2019 이상이 설치되어 있습니다. 하나 이상의 팜 노드에 패치가 적용되지 않았습니다.
예상되는 동작: 팜의 모든 노드가 패치되지 않은 경우 권장 해결 조치를 나타내는 아래 오류 이벤트가 기록됩니다. 이 이벤트는 팜의 모든 노드가 패치될 때까지 24시간마다 기록됩니다. 모든 노드에 패치가 적용되면 “활성화” 모드를 통해 팜의 모든 시스템에 대해 KDFv2가 자동으로 활성화됩니다.
Source: AD FS
Level: Error
ID: 181
Message: AD FS could not enable the new KDFv2 feature automatically because of missing Windows Updates on one or more nodes of the farm. Please make sure that all the farm nodes are patched with the latest Windows Updates. AD FS checks regularly for the required updates to enable the new KDFv2 feature. An event 182 will be logged when a check is successful. For more information on this, please see https://go.microsoft.com/fwlink/?linkid=2153807.
시나리오 2: 팜의 하나 이상의 서버에 Windows Server 2016이 설치되어 있습니다. 모든 서버가 Windows 2016 이상을 실행 중입니다. 하나 이상의 팜 노드에 패치가 적용되지 않았습니다.
예상되는 동작: 팜의 모든 노드가 패치되지 않은 경우 권장 해결 조치를 나타내는 아래 오류 이벤트가 기록됩니다. 이 이벤트는 팜의 모든 노드가 패치될 때까지 24시간마다 기록됩니다. 모든 노드에 패치가 적용되면 팜의 모든 서버에서 KDFv2를 수동으로 활성화해야 합니다.
Source: AD FS
Level: Error
ID: 185
Message: KDFv2 feature is not enabled on AD FS farm. Please make sure that all the farm nodes are patched with latest Windows Updates and the KDFv2 feature is enabled to enhance the security of the farm. For more information on this, please see https://go.microsoft.com/fwlink/?linkid=2153807.
시나리오 3: 팜의 모든 ADFS 서버에 Windows Server 2019 이상이 설치되어 있습니다. 팜의 모든 서버에 패치가 적용되었습니다.
예상되는 동작: 위의 시나리오 1에 설명된 대로 팜에서 KDFv2가 자동으로 활성화되면 아래 이벤트가 기록됩니다.
Source: AD FS
Level: Information
ID: 182
Message: AD FS enabled the new KDFv2 feature successfully. For more information on this, please see https://go.microsoft.com/fwlink/?linkid=2153807.
참고 항목
팜의 서버 중 Windows Server 2016이 실행 중인 서버가 있으면 이벤트 182가 기록되지 않습니다.
시나리오 4: 관리자가 환경에 있는 하나 이상의 서버에서 KDFv2를 비활성화했습니다.
예상되는 동작: KDFv2가 비활성화된 팜의 각 시스템에서 ADFS 서비스 시작 시 아래 로그 메시지가 기록됩니다.
Source: AD FS
Level: Warning
ID: 183
Message: KDFv2 feature is disabled on AD FS farm. Please make sure that all the farm nodes are patched with latest Windows Updates and the KDFv2 feature is enabled to enhance the security of the farm. For more information on this, please see https://go.microsoft.com/fwlink/?linkid=2153807.