피드로 돌아가기
Dev.toSecurity
원문 읽기
PKCE 도입을 통한 Mobile OS URI Scheme 가로채기 공격 원천 차단
RFC 7636 Deep Dive: How PKCE Kills Authorization Code Interception Attacks
AI 요약
Context
Native App의 Custom URI Scheme 기반 Callback 구조에서 발생하는 Authorization Code Interception 취약점 분석. Mobile OS의 URI 라우팅 비결정성으로 인해 악성 앱이 인증 코드를 탈취할 수 있는 설계적 결함 존재.
Technical Solution
- Code Verifier 생성을 통한 요청자 식별 정보의 RAM 내 격리 저장
- S256 해싱을 거친 Code Challenge 전송으로 초기 요청과 토큰 교환 요청의 무결성 연결
- Token Endpoint에서 원본 Verifier와 저장된 Hash의 일치 여부를 검증하는 2단계 인증 구조 설계
- Public Client의 Secret 저장 불가 제약을 해결하기 위한 일회성 암호화 토큰 메커니즘 적용
- Downgrade Attack 방지를 위해 S256 실패 시 즉시 프로세스를 종료하는 엄격한 상태 관리 정책 수립
실천 포인트
- 모든 OAuth
2.0 클라이언트에 PKCE(S256) 적용 여부 전수 조사 - Native App의 Info.plist 또는 AndroidManifest.xml 내 URI Scheme 중복 등록 가능성 검토 - 'plain' 방식의 Code Challenge 사용 설정 제거 및 S256 강제화 적용 - Client Secret의 하드코딩 여부를 점검하고 Public Client 환경의 보안 모델 재설계