
간편 로그인의 종류와 보안 위협 (SSO, OAuth, OIDC)Security/Secure Coding2025. 4. 15. 16:46
Table of Contents
0. 간편 로그인(Convenient Login)이란?
외부 계정을 통해 빠르게 로그인하는 방식.
간편 로그인은 사용자 경험을 향상시키는 방식이지만,
공격자가 한 번만 침투해도 여러 서비스가 동시에 위험해질 수 있는 구조를 가지고 있음.
1. SSO(Single Sign-On)
여러 서비스에서 하나의 계정으로 로그인하는 방법
- IdP: Identity Provider (예: Google, Naver)
- SP: Service Provider (서비스 제공자)
주요 취약점
- Session Hijacking : 세션 쿠키나 토큰을 탈취해 타인으로 가장
- 세션 쿠키 탈취 → 다른 서비스도 무단 로그인
- Account Linking Hijack : 공격자가 피해자의 SP에 자기 IdP 계정을 연동
- 피해자의 SP에 공격자 IdP 계정 연동 → 공격자 계정으로 로그인 가능
- Silent SSO Abuse : 사용자 상호작용 없이 자동 로그인/연동 발생
- 자동 로그인 시 계정 연동이 사용자 몰래 이뤄짐
- Phishing + SSO
- "구글 로그인" 위장 사이트로 피싱 → 전체 계정 털림
2. OAuth 2.0
사용자가 애플리케이션에게 자신의 데이터 접근 권한을 위임하는 방법 (비밀번호를 공유 없이)
- Access Token: 권한을 증명하는 토큰
- state: 요청의 정합성을 확인하기 위한 무작위 문자열
- PKCE (Proof Key for Code Exchange): 코드 탈취 방지를 위한 안전 메커니즘
주요 취약점
- CSRF on Redirect
- 피해자 브라우저로 code 요청 유도 → 공격자 계정 연결
- Token Leakage via URL
- URL에 노출된 Access Token → Referrer, 히스토리로 탈취 가능
- Open Redirect + OAuth
- 악의적인 redirect URI로 피싱 가능
- Fake Consent Page
- OAuth UI 위장 → 사용자의 권한을 빼앗음
3. OIDC(OpenID Connect)
OIDC는 OAuth 2.0 위에 구축된 인증 프로토콜로, 로그인 기능을 포함하는 방법. 핵심은 ID Token (JWT 형식).
- ID Token: 로그인 인증 정보를 담은 JWT
- JWT (JSON Web Token): 클레임 기반의 서명된 토큰
- nonce: 요청-응답 정합성을 검증하는 무작위 값
- Mix-Up Attack: 다중 IdP 환경에서 발생하는 혼선 공격
주요 공격
- ID Token Forgery
- alg:none 허용 등으로 서명 검증 안함 → 위조 토큰 사용
- ID Token Replay
- 이전의 토큰을 재사용해 세션 탈취
- Nonce 불일치
- nonce 누락/검증 누락 → replay attack
- Mix-Up Attack
- SP가 응답을 잘못된 IdP로 오인
반응형
'Security > Secure Coding' 카테고리의 다른 글
[웹해킹] SQL INJECTION 공격 종류 (In band / blind / out of band ) (0) | 2024.02.21 |
---|---|
[DREAMHACK 워게임] 웹해킹_command-injection-1 문제풀이 (1) | 2023.11.24 |
[DREAMHACK 워게임] 웹해킹_simple_sqli 문제풀이 (0) | 2023.11.24 |
[DREAMHACK 워게임] 웹해킹_CSRF-2 문제풀이 (2) | 2023.11.24 |
[DREAMHACK 워게임] 웹해킹_xss-2 문제풀이 (0) | 2023.11.24 |
[DREAMHACK 워게임] 웹해킹_XSS문제 풀이 (0) | 2023.11.24 |
@염염 :: 왕감자
공부하고 정리하는 기록모음