다음을 통해 공유


Windows의 Kerberos 프로토콜 레지스트리 항목 및 KDC 구성 키

이 문서에서는 Kerberos 버전 5 인증 프로토콜 및 KDC(키 배포 센터) 구성에 대한 레지스트리 항목을 설명합니다.

원래 KB 번호: 837361

요약

Kerberos는 사용자 또는 호스트 ID를 확인하는 데 사용되는 인증 메커니즘입니다. Kerberos는 Windows 서비스의 기본 인증 방법입니다.

Windows를 실행하는 경우 Kerberos 매개 변수를 수정하여 Kerberos 인증 문제를 해결하거나 Kerberos 프로토콜을 테스트할 수 있습니다. 이렇게 하려면 다음 섹션에 나열된 레지스트리 항목을 추가하거나 수정합니다.

Important

이 절, 방법 또는 작업에는 레지스트리를 수정하는 방법에 대한 단계가 포함되어 있습니다. 그러나 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 따라서 다음 단계를 신중하게 수행해야 합니다. 추가 보호를 위해 레지스트리를 수정하기 전에 백업합니다. 그러면 문제가 발생할 경우 레지스트리를 복원할 수 있습니다. 레지스트리를 백업하고 복원하는 방법에 대한 자세한 내용은 Windows에서 레지스트리를 백업 및 복원하는 방법을 참조하십시오.

참고 항목

Kerberos 프로토콜 문제 해결 또는 테스트를 완료한 후 추가한 레지스트리 항목을 제거합니다. 그렇지 않으면 컴퓨터의 성능에 영향을 미칠 수 있습니다.

매개 변수 키 아래의 레지스트리 항목 및 값

이 섹션에 나열된 레지스트리 항목은 다음 레지스트리 하위 키에 추가되어야 합니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters

참고 항목

Kerberos 아래에 매개 변수 키가 나열되지 않은 경우 키를 만들어야 합니다.

  • 항목: SkewTime

    • 유형: REG_DWORD

    • 기본값: 5(분)

      이 값은 클라이언트 컴퓨터와 Kerberos 인증 또는 KDC를 수락하는 서버 간에 허용되는 최대 시간 차이입니다.

      참고 항목

      SkewTime은 다시 사용할 Kerberos 티켓 유효성을 결정할 때 고려됩니다. 만료 시간이 현재 시간 + SkewTime보다 작은 경우 티켓이 만료된 것으로 간주됩니다. 예를 들어 SkewTime이 20분으로 설정되고 현재 시간이 08:00인 경우 만료 시간이 08:20 이전인 티켓은 만료된 것으로 간주됩니다.

  • 항목: LogLevel

    • 유형: REG_DWORD

    • 기본값: 0

      이 값은 이벤트가 시스템 이벤트 로그에 기록되는지 여부를 나타냅니다. 이 값을 0이 아닌 값으로 설정하면 모든 Kerberos 관련 이벤트가 시스템 이벤트 로그에 기록됩니다.

      참고 항목

      기록된 이벤트에는 Kerberos 클라이언트가 성공한 다른 요청 플래그로 다시 시도되는 가양성도 포함될 수 있습니다. 따라서 이 설정에 따라 기록된 이벤트가 표시될 때 Kerberos 문제가 있다고 가정하지 마세요. 자세한 내용은 Kerberos 이벤트 로깅을 사용하도록 설정하는 방법을 참조하세요.

  • 항목: MaxPacketSize

    • 유형: REG_DWORD

    • 기본값: 1465(바이트)

      이 값은 최대 UDP(사용자 데이터그램 프로토콜) 패킷 크기입니다. 패킷 크기가 이 값을 초과하면 TCP가 사용됩니다.

      Windows Vista 이상 버전의 Windows에서 이 값의 기본값은 0이므로 UDP는 Windows Kerberos 클라이언트에서 사용되지 않습니다.

  • 항목: StartupTime

    • 유형: REG_DWORD

    • 기본값: 120(초)

      이 값은 Windows가 포기하기 전에 Windows가 KDC가 시작될 때까지 기다리는 시간입니다.

  • 항목: KdcWaitTime

    • 유형: REG_DWORD

    • 기본값: 10(초)

      이 값은 Windows가 KDC의 응답을 기다리는 시간입니다.

  • 항목: KdcBackoffTime

    • 유형: REG_DWORD

    • 기본값: 10(초)

      이 값은 이전 호출이 실패한 경우 KDC에 대한 연속 호출 사이의 시간입니다.

  • 항목: KdcSendRetries

    • 유형: REG_DWORD

    • 기본값: 3

      이 값은 클라이언트가 KDC에 연결하려고 시도하는 횟수입니다.

  • 항목: DefaultEncryptionType

    • 유형: REG_DWORD

      이 값은 사전 인증에 대한 기본 암호화 유형을 나타냅니다. 기본값은 AES256의 경우 18진수입니다.

      가능한 다른 값:

      • AES128의 경우 17진수
      • RC4 HMAC의 경우 23 소수점

      이 값은 사전 인증에 대한 기본 암호화 유형을 나타냅니다.

  • 항목: FarKdcTimeout

    • 유형: REG_DWORD

    • 기본값: 10(분)

      도메인 컨트롤러 캐시의 다른 사이트에서 도메인 컨트롤러를 무효화하는 데 사용되는 시간 초과 값입니다.

  • 항목: NearKdcTimeout

    • 유형: REG_DWORD

    • 기본값: 30(분)

      도메인 컨트롤러 캐시의 동일한 사이트에서 도메인 컨트롤러를 무효화하는 데 사용되는 제한 시간 값입니다.

  • 항목: StronglyEncryptDatagram

    • 형식: REG_BOOL

    • 기본값: False

      이 값에는 데이터그램 패킷에 128비트 암호화를 사용할지 여부를 나타내는 플래그가 포함되어 있습니다.

  • 항목: MaxReferralCount

    • 유형: REG_DWORD

    • 기본값: 6

      이 값은 클라이언트가 포기하기 전에 클라이언트가 추구하는 KDC 조회 수입니다.

  • 항목: MaxTokenSize

    • 유형: REG_DWORD

    • 기본값: 12000(10진수). Windows Server 2012 및 Windows 8부터 기본값은 48000입니다.

      이 값은 Kerberos 토큰의 최대값입니다. 이 값을 65535 미만으로 설정하는 것이 좋습니다. 자세한 내용은 사용자가 여러 그룹에 속하는 경우 Kerberos 인증 문제를 참조하세요.

  • 항목: SpnCacheTimeout

    • 유형: REG_DWORD

    • 기본값: 15분

      이 값은 SPN(서비스 사용자 이름) 캐시 항목을 삭제할 때 시스템에서 사용됩니다. 도메인 컨트롤러에서 SPN 캐시를 사용할 수 없습니다. 클라이언트 및 멤버 서버는 이 값을 사용하여 음수 캐시 항목(SPN을 찾을 수 없음)을 제거합니다. 유효한 SPN 캐시 항목(예: 음수 캐시 아님)은 15분 후에 삭제되지 않습니다. 그러나 SPNCacheTimeout 값은 SPN 캐시를 관리 가능한 크기로 줄이는 데도 사용됩니다. SPN 캐시가 350개 항목에 도달하면 시스템에서 이 값을 이전 및 사용되지 않은 항목에 scavenge / cleanup 사용합니다.

  • 항목: S4UCacheTimeout

    • 유형: REG_DWORD

    • 기본값: 15분

      이 값은 특정 컴퓨터의 S4U 프록시 요청 수를 제한하는 데 사용되는 S4U 음수 캐시 항목의 수명입니다.

  • 항목: S4UTicketLifetime

    • 유형: REG_DWORD

    • 기본값: 15분

      이 값은 S4U 프록시 요청에서 얻은 티켓의 수명입니다.

  • 항목: RetryPdc

    • 유형: REG_DWORD

    • 기본값: 0(false)

    • 가능한 값: 0(false) 또는 0이 아닌 값(true)

      이 값은 클라이언트가 암호 만료 오류를 수신하는 경우 클라이언트가 AS_REQ(인증 서비스 요청)에 대한 기본 도메인 컨트롤러에 연결할지 여부를 나타냅니다.

  • 항목: RequestOptions

    • 유형: REG_DWORD

    • 기본값: RFC 1510 값

      이 값은 TGS_REQ(Ticket Granting Service) 요청에서 KDC 옵션으로 전송해야 하는 옵션이 더 있는지 여부를 나타냅니다.

  • 항목: ClientIpAddresses

    • 유형: REG_DWORD

    • 기본값: 0(동적 호스트 구성 프로토콜 및 네트워크 주소 변환 문제로 인해 이 설정은 0입니다.)

    • 가능한 값: 0(false) 또는 0이 아닌 값(true)

      이 값은 필드가 모든 티켓에 IP 주소를 포함하도록 AS_REQ Caddr 클라이언트 IP 주소를 추가할지 여부를 나타냅니다.

      클라이언트 주소가 필요한 타사 영역의 경우 주소를 선택적으로 사용하도록 설정할 수 있습니다.

      1. 관리자 권한으로 명령 프롬프트 창을 엽니다.

      2. 다음 명령을 실행합니다.

        ksetup /setrealmflags <your Kerberos realm name> sendaddress
        
      3. 스위치를 /server 사용하여 ksetup이 원격 컴퓨터에서 변경하도록 할 수 있습니다.

  • 항목: TgtRenewalTime

    • 유형: REG_DWORD

    • 기본값: 600초

      이 값은 티켓이 만료되기 전에 Kerberos가 TGT(티켓 부여 티켓)를 갱신하기 전에 대기하는 시간입니다.

  • 항목: AllowTgtSessionKey

    • 유형: REG_DWORD

    • 기본값: 0

    • 가능한 값: 0(false) 또는 0이 아닌 값(true)

      이 값은 세션 키를 초기 또는 교차 영역 TGT 인증으로 내보낼지 여부를 나타냅니다. 기본값은 보안상의 이유로 false입니다.

      참고 항목

      Windows 10 이상 버전의 Windows에서 활성 Credential Guard를 사용하면 더 이상 애플리케이션과 TGT 세션 키를 공유할 수 없습니다.

Kdc 키 아래의 레지스트리 항목 및 값

이 섹션에 나열된 레지스트리 항목은 다음 레지스트리 하위 키에 추가되어야 합니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc

참고 항목

Kdc 키가 서비스 아래에 나열되지 않은 경우 키를 만들어야 합니다.

  • 항목: KdcUseClientAddresses

    • 유형: REG_DWORD

    • 기본값: 0

    • 가능한 값: 0(false) 또는 0이 아닌 값(true)

      이 값은 ip 주소가 TGS_REP(Ticket-Granting Service Reply)에 추가될지 여부를 나타냅니다.

  • 항목: KdcDontCheckAddresses

    • 유형: REG_DWORD

    • 기본값: 1

    • 가능한 값: 0(false) 또는 0이 아닌 값(true)

      이 값은 TGS_REQ 및 TGT Caddr 필드의 IP 주소를 확인할지 여부를 나타냅니다.

  • 항목: NewConnectionTimeout

    • 유형: REG_DWORD

    • 기본값: 10(초)

      이 값은 연결을 끊기 전에 초기 TCP 엔드포인트 연결을 열어 데이터를 수신하는 시간입니다.

  • 항목: MaxDatagramReplySize

    • 유형: REG_DWORD

    • 기본값: 1465(10진수, 바이트)

      이 값은 TGS_REP 및 AS_REP(인증 서비스 회신) 메시지의 최대 UDP 패킷 크기입니다. 패킷 크기가 이 값을 초과하면 KDC는 클라이언트가 TCP로 전환하도록 요청하는 "KRB_ERR_RESPONSE_TOO_BIG" 메시지를 반환합니다.

      참고 항목

      MaxDatagramReplySize를 늘리면 Kerberos UDP 패킷이 조각화될 가능성이 높아질 수 있습니다.

      이 문제에 대한 자세한 내용은 Windows에서 UDP 대신 Kerberos가 TCP를 사용하도록 강제 적용하는 방법을 참조 하세요.

  • 항목: KdcExtraLogLevel

    • 유형: REG_DWORD

    • 기본값: 2

    • 가능한 값:

      • 1(10진수) 또는 0x1(16진수): 보안 이벤트 로그에서 알 수 없는 SPN 오류를 감사합니다. 이벤트 ID 4769는 실패한 감사와 함께 기록됩니다.
      • 2(10진수) 또는 0x2(16진수): PKINIT 오류를 기록합니다. 그러면 KDC 경고 이벤트 ID 21(기본적으로 사용)이 시스템 이벤트 로그에 기록됩니다. PKINIT는 Kerberos의 초기 인증을 위한 공개 키 암호화를 위한 IETF(인터넷 엔지니어링 태스크 포스) 인터넷 초안입니다.
      • 4(10진수) 또는 0x4(16진수): 모든 KDC 오류를 기록합니다. 그러면 KDC 이벤트 ID 24(U2U 필수 문제 예)가 시스템 이벤트 로그에 기록됩니다.
      • 8(10진수) 또는 0x8(16진수): S4U2Self 티켓을 요청하는 사용자가 대상 사용자에 대한 충분한 액세스 권한이 없는 경우 시스템 로그에 KDC 경고 이벤트 ID 25를 기록합니다.
      • 16(10진수) 또는 0x10(16진수): ETYPE(암호화 유형) 및 잘못된 옵션 오류에 대한 감사 이벤트를 기록합니다. 이 값은 KDC가 이벤트 로그 및 보안 이벤트 로그의 감사에 쓸 정보를 나타냅니다. 이벤트 ID 4769는 실패한 감사와 함께 기록됩니다.
  • 항목: DefaultDomainSupportedEncTypes

    • 유형: REG_DWORD

    • 기본값: 0x27

    • 가능한 값:

      기본값은 0x27(DES, RC4, AES 세션 키)입니다. 이 값은 AES 암호화 티켓과 AES 세션 키 모두를 허용하므로 보안 강화를 위해 값을 0x3C 설정하는 것이 좋습니다. Kerberos 프로토콜에 RC4가 사용되지 않는 AES 전용 환경으로 이동하는 경우 값을 0x38 설정하는 것이 좋습니다.

      이 값은 AES를 기본 암호화 유형으로 표시되지 않은 계정의 세션 키에 대한 기본 암호화 유형으로 설정합니다.

      자세한 내용은 KB5021131: CVE-2022-37966과 관련된 Kerberos 프로토콜 변경 내용을 관리하는 방법을 참조하세요.