코파일럿에 문의 해밧습니다.
1번 일반적으로 3자인증 지원사이트가 jwt를 많이 쓰는데 이유와 쿠팡같은 문제는 뭐야
다단계 인증과 결합 용이: 1차(비밀번호) → 2차(OTP/앱 인증) → 3차(생체인증 등) 과정을 거친 뒤 발급된 JWT는 클라이언트가 여러 API 호출에 재사용할 수 있어 효율적입니다.
표준화된 구조: 헤더·페이로드·서명으로 구성되어 있어 OAuth2.0, OpenID Connect 같은 글로벌 표준과 잘 맞습니다.
짧은 수명 + Refresh Token: 보안성이 높은 서비스는 Access Token을 짧게 발급하고 Refresh Token으로 갱신하는 구조를 씁니다
쿠팡의 문제
최근 쿠팡의 3,370만 계정 유출 사건은 JWT 자체의 결함이 아니라 인증 체계 운영 부실이 핵심이었습니다.
인증키 장기간 방치: 퇴사한 직원의 인증키(서명키)를 갱신·폐기하지 않아 장기간 유효 상태로 남아 있었음.
서버 인증 취약점: 내부용 API가 외부에서 호출 가능하거나, 권한 검증이 빠진 엔드포인트가 존재했던 것으로 추정됨.
모니터링 실패: 수개월간 대량 조회가 발생했는데도 응답 본문 수준의 데이터 유출 탐지가 없어 탐지하지 못함.
Zero Trust 부재: 내부자 또는 전직원이 시스템 구조를 알고 있을 경우를 대비한 위협 모델링이 부족했음.
질문 2쿠팡과 네이버·구글 같은 대규모 3자 인증(API 제공) 업체의 가장 큰 차이는 JWT 자체가 아니라 운영·보안 체계의 성숙도입니다.
구글 OAuth2.0 기반 JWT는 보통 1시간 이내 만료.
네이버도 비슷하게 짧게 발급하고 Refresh Token으로 갱신.
→ 토큰 탈취 시 피해 범위가 제한됨.
Refresh Token 관리
Refresh Token은 별도 저장소에 안전하게 관리되고, 의심스러운 로그인 시 무효화.
토큰 재발급 시 기기·IP·위치 기반 검증을 추가.
키 회전(Key Rotation)과 공개 키 검증
구글·네이버는 JWK(JSON Web Key) 세트를 공개하고 주기적으로 갱신.
클라이언트는 토큰 서명을 검증할 때 최신 키를 사용.
→ 서명키 유출 위험을 줄임.
다단계 인증(2FA/3FA)
구글: 패스키, OTP, 보안키, 앱 인증.
네이버: 앱 알림, OTP, 생체인증.
→ 토큰만으로는 로그인 불가, 추가 인증 필요.
위험 탐지 및 자동 차단
비정상적인 로그인 시도, 대량 API 호출, 토큰 오용 패턴을 실시간 탐지.
자동으로 세션 종료·토큰 무효화.
저도 운영해본적은 없지만jwt자체의 취약보다는 쿠팡의 안일함이 더 문제엿다고 하네요;