Notice
Recent Posts
Recent Comments
Link
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Archives
Today
Total
관리 메뉴

Studyyyyy

PKCE (OAuth) 본문

study

PKCE (OAuth)

manyYun 2025. 9. 3. 18:21

PKCE (Proof Key for Code Exchange) 동작 원리

 

OAuth2 Authorization Code Flow를 모바일/SPA같은 비밀키를 안전하게 숨기기 어려운 환경에서 보안 강화를 위해 만든 방식

 

1. 클라이언트에서 code_verifier 생성

  • 클라이언트 앱에서 랜덤 문자열(ex. xYz123...) 생성
  • 외부에 노출되면 안되기 때문에 일반적으로 HttpOnly 쿠키에 저장

2. code_challenge 생성

  • code_verifier를 SHA256 해시 후 URL-safe Base64로 인코딩 -> code_challenge
  • 이걸 OAuth 서버로 보냄(공개해도 되는 값)

3. 사용자가 로그인하면 Authorization Code 발급

  • OAuth 서버는 code_challenge 값을 기억
  • 로그인 후 클라이언트 서버의 redirect_uri(ex. /api/auth/callback)으로 code를 넘겨줌

4. Authorization Code + code_verifier로 토큰 교환

  • 클라이언트 서버는 code랑 원래의 code_verifier를 가지고 OAuth 서버에 토큰 요청
  • OAuth 서버는 미리 저장해둔 2( code_challenge)랑 클라이언트에서 보낸 code_verifier를 해시한 값이 일치하는지 확인
  • 맞으면 access_token, refresh_token 발급

 

  • PKCE = code_verifier (랜덤값) + code_challenge (그 랜덤값을 해시한 공개용 값)
  • 로그인 요청 시에는 해시값만 보내고, 토큰 교환 시에는 원본값을 제출하여 서로 맞는지 검증하는 보안 절차

 

 

'study' 카테고리의 다른 글

포트포워딩 (Port Forwading)  (0) 2025.09.15
V8  (0) 2025.07.23
브라우저 작동 방식  (0) 2025.07.23
운영체제  (0) 2025.07.23
NAT (Network Address Translation)  (0) 2025.07.15