■ PKCE란?
Outh2.0의 확장 사양으로 인가 코드 가로채기 공격의 대책으로서 사용되는 구조.
클라이언트 측에서 해시화된 code_challenge와 원래 소재의 code_verifier를 인가 서버에서 대조하여 인증을 실시한다.
기본적인 처리 흐름은 아래와 같다.
※인용 이미지(일본어):https://qiita.com/naoya_matsuda/items/992c67b803ff460818ec
OAuth2.0 PKCEとは 〜Stateとの違い〜 - Qiita
はじめに OAuth2.0の拡張仕様で当たり前になりつつある?PKCEについてまとめました。 「PKCE」とは PKCEとは、「Proof Key for Code Exchange by OAuth Public C...
qiita.com
■ code_challenge
클라이언트 측에서 해시화한 파라미터.
클라이언트 : 인가 요청 시 인가 서버에 송신한다.
인가 서버 : 인가 코드와 연결하여 code_challenge를 유지하고 토큰 요청 시 조회한다.
■ code_challenge_method
code_challenge를 생성하는 방법을 지정한다.
"plain"(해시화하지 않음), "S256"(SHA256 해시화) 중 하나를 지정한다.
클라이언트 : 인가 요청 시 인가 서버에 송신한다.
인가 서버 : 인가 코드와 연결하여 code_challenge_method를 유지하고 토큰 요청 시 지정한 방법으로 code_challenge와 맞댄 값을 생성한다.
■ code_verifier
code_challenge의 원래 값.
클라이언트 : Token 요청 시 인가 서버로 송신한다.
인가 서버 : code_challenge_method가 "S256"일 경우, code_challenge와 같은 키로 해시화하여 code_challenge와 비교하여 인증한다.
challenge_method가 "plain"일 경우 해시화하지 않고 code_challenge와 비교하여 인증한다.
'WEB > 보안' 카테고리의 다른 글
XSS(Cross Site Script) 체크 리스트 (0) | 2023.03.14 |
---|