패스잇
보안 · 심화

OAuth 2.0 Authorization Code Flow에서 PKCE(Proof Key for Code Exchange)를 사용하는 것이 일반적입니다. 하지만 더욱 강화된 보안을 위해 DPoP(Demonstration of Proof-of-Possession) 또는 CIBA(Client Initiated Backchannel Authentication)와 같은 확장 기능들이 논의되고 있습니다. 이들 중 하나를 선택하여, 해당 기술이 OAuth 2.0/OpenID Connect 기반 시스템의 어떤 보안 취약점을 해결하고, 실제 구현 시 고려해야 할 설계 및 운영상의 주요 사항들을 설명해 주십시오.

힌트 · DPoP은 토큰 탈취 후 재사용을 방지하고, CIBA는 사용자 개입 없는 인증 플로우에 적합합니다. 각 기술의 동작 원리와 적용 시의 복잡성, 그리고 기존 시스템과의 통합 방안을 고려해야 합니다.

DPoPProof-of-Possession토큰 탈취replay 공격HTTP 메시지 서명

모범답안

DPoP를 선택하여 설명드리겠습니다. DPoP는 OAuth 2.0에서 토큰 탈취 후 재사용되는 replay 공격을 막기 위한 기술입니다. 액세스 토큰이 탈취당했을 때, 공격자는 해당 토큰을 사용하여 API에 접근할 수 있습니다. DPoP는 클라이언트가 요청마다 HTTP 메시지에 서명을 추가하여, 특정 클라이언트만이 토큰을 사용할 수 있도록 합니다.

구현 시에는 클라이언트와 서버 모두 DPoP 헤더를 처리할 수 있도록 변경해야 합니다. 클라이언트는 각 요청에 서명을 생성하고, 서버는 서명을 검증해야 합니다. 키 관리도 중요한데, 클라이언트의 공개 키를 안전하게 관리하고, 키 로테이션 전략을 수립해야 합니다. 또한, DPoP 적용으로 인한 성능 저하를 최소화하기 위해 서명 검증 로직을 최적화해야 합니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 인증 / 인가 (JWT · OAuth) 면접 질문

← 인증 / 인가 (JWT · OAuth) 면접 질문 전체 보기