WEBBOOK CHAPTER

외부 인터페이스 엔지니어링: 30장. 인증 장애 종합 실습

30장. 인증 장애 종합 실습

시나리오 A는 Google만 callback loop가 나는 사건이다. provider authorization log는 성공이고 우리 callback에 code가 도착한다. state lookup이 실패한다. browser HAR에서 Secure·SameSite cookie, proxy 이전 scheme, callback hostname, session store region을 확인한다. token은 sanitize한다.

시나리오 B는 Apple login이 특정 시각부터 401이다. client assertion의 iss, sub, aud, iat/exp, key ID, signing key, server clock을 확인한다. key rotation 중 old/new overlap과 실제 deployment secret version을 연결한다. private key를 진단 출력에 보이지 않는다.

시나리오 C는 Kakao provider subject가 새로운데 같은 email이라는 이유로 기존 계정과 자동 병합되는 보안 결함이다. 자동 병합을 중지하고 기존 계정의 재인증·명시 승인·audit로 연결한다. email 확인 상태와 provider별 subject namespace를 보존한다.

세 사건의 공통 recovery gate는 신규 login, 기존 session, account link/unlink, logout, revoke, 탈퇴, provider 장애 우회다. 인증 성공만이 아니라 다른 사용자의 resource에 접근할 수 없음을 검증한다.