제135회 정보관리기술사 1교시 6번 — OAuth 2.0 Authorization Code Flow와 PKCE

정보관리기술사 · 135회 1교시 · 6번 · 배점 10점

제135회 정보관리기술사 1교시 6번

단답형 | 10점
[문제] OAuth 2.0의 권한 부여 코드 흐름(Authorization Code Flow)을 단계별로 설명하고, PKCE(Proof Key for Code Exchange)가 필요한 이유와 동작 방식을 서술하시오.

1. OAuth 2.0 Authorization Code Flow

단계 설명
① 권한 요청 클라이언트가 사용자를 Authorization Server로 리다이렉트 (scope, redirect_uri, state 포함)
② 사용자 동의 사용자가 로그인·권한 동의 → Authorization Code 발급
③ 코드 교환 클라이언트가 Authorization Code + Client Secret으로 Token Endpoint에 Access Token 요청
④ 토큰 사용 Access Token으로 Resource Server API 호출
⑤ 갱신 Refresh Token으로 Access Token 재발급 (만료 시)

2. PKCE (Proof Key for Code Exchange)

필요성: 모바일·SPA 앱은 Client Secret을 안전하게 저장할 수 없어 Authorization Code 가로채기 공격에 취약하다. PKCE는 이를 방지한다.

동작 방식:

  • Code Verifier: 클라이언트가 랜덤 문자열 생성 (43~128자)
  • Code Challenge: Code Verifier의 SHA-256 해시값 → Base64URL 인코딩
  • 권한 요청 시 Code Challenge 전송, 토큰 요청 시 Code Verifier 전송
  • Authorization Server가 Code Challenge == SHA-256(Code Verifier) 검증

효과: Authorization Code를 가로채도 Code Verifier 없이는 Access Token 획득 불가

핵심 키워드: OAuth 2.0, Authorization Code, PKCE, Code Verifier, Code Challenge, Refresh Token, SPA, 모바일 보안
OAuth 2.0 Authorization Code Flow는 서버 측 Secret 보호를 전제로 하며, PKCE는 Public Client(SPA·모바일)에서 코드 가로채기 공격을 방지하는 필수 보안 확장이다. RFC 7636으로 표준화되었다.

Leave a Comment