위치:
보안: PKCE(Proof Key for Code Exchange) 필요
이 보안 설정은 모든 호환 가능한 OAuth 2에서 암호화된 작업을 수행해야 합니다.
제어 이름
외부 클라이언트 앱: 보안: PKCE(Proof Key for Code Exchange) 필요
권장 구성
지원되는 인가 플로의 경우 PKCE(Proof Key for Code Exchange) 확장이 필요합니다.
제어 개요
이 보안 설정은 클라이언트가 초기 요청 도중 해시 코드 챌린지를 보내고 토큰 교환 도중 일반 텍스트 코드 검증자가 요청을 특정 클라이언트 인스턴스에 바인딩하기 위해 모든 호환 가능한 OAuth 2.0 허용 유형에서 암호화 처리 작업을 수행해야 합니다.
구성되지 않은 경우 보안 위험
PKCE가 지원되는 모든 플로에 적용되지 않으면 인가 서버에 원래 발신자의 ID를 확인하는 기술적 메커니즘이 없으므로 가로채기된 인가 코드 또는 중간 자격 증명이 악의적인 작업자에 의해 액세스 토큰으로 성공적으로 교환될 수 있습니다.
위협 시나리오
공격자는 브라우저 내역, 시스템 로그 또는 사용자 정의 URI 스키마 가로채기를 통해 성공적인 로그인에서 유효한 인가 코드 또는 가로채기 가능한 자격 증명을 캡처하고 합법적인 클라이언트가 손잡이를 완료하기 전에 프로그램 방식으로 유효한 세션 토큰을 가져옵니다.
예상 CVSS 점수 범위
높음(7.0~8.9)
위험 영향 고려 사항
모든 해당 플로에서 PKCE를 적용하지 못하면 광범위한 세션 하이재킹 및 무단 데이터 액세스가 가능하며, 특히 정적 클라이언트 암호가 사용되지 않거나 손상된 통합을 대상으로 할 수 있습니다.
위험이 높은 경우
이러한 플랫폼은 클라이언트 암호를 안전하게 저장할 수 없으며 트래픽 리디렉션을 관찰할 수 있는 환경에서 자주 작동하므로 기본 모바일 응용 프로그램 및 단일 페이지 웹 응용 프로그램(SPA)과 같은 공개 클라이언트에 대한 위험이 더 높습니다.
낮은 위험 시기
조직이 이미 필수 클라이언트 암호를 적용하고 엄격하게 분리된 네트워크 경계 내에서 작동하는 보안 백엔드 서버에서만 기밀 클라이언트를 사용하는 경우 위험이 낮습니다.
비즈니스 및 통합 고려 사항
지원되는 모든 플로에서 이 요구 사항을 활성화하려면 모든 통합 클라이언트 응용 프로그램이 S256 변환 방법을 지원하고 모든 트랜잭션에 대해 고유한 높은 엔트로피 문자열을 관리해야 합니다.
권장 수정
외부 클라이언트 앱의 OAuth 설정으로 이동하여 지원되는 모든 인가 플로에 대한 PKCE(Proof Key for Code Exchange) 필요 확인란을 선택합니다.
보안 상태 검토 지침
보안 상태 검토는 PKCE를 모든 최신 ID 및 인가 플로의 필수 아키텍처 표준으로 식별하므로 모든 토큰 교환이 자격 증명 삽입 및 가로채기를 방지하기 위해 특정 클라이언트 인스턴스에 암호화 방식으로 바인딩됩니다.

