SSL Pinning
클라이언트 애플리케이션이 특정 서버의 인증서 또는 공개키를 미리 고정하여 해당 서버와 통신할 때 사용하는 보안 기법
중간자 공격(MITM) 방지와 민감 정보 보호에 핵심 역할
왜 필요한가?
일반 HTTPS는 CA(Certificate Authority)가 서버 인증서를 보증하지만, 공격자가 사용자 설치 CA (ex. Burp Suite 인증서)를 통해 MITM 공격을 시도할 수 있다.
→ SSL Pinning은 사전 정의된 값만 신뢰해 이런 공격을 차단
동작 과정
- 사전 고정
- 개발 단계에서 신뢰할 수 있는 서버의 인증서 또는 공개키를 앱에 포함
- 인증서 고정 : 인증서 전체 바이트 비교 → 인증서 재발급 시 앱 업데이트 필요
- 공개키 고정 : 인증서 바뀌어도 공개키가 같으면 문제없음
- 개발 단계에서 신뢰할 수 있는 서버의 인증서 또는 공개키를 앱에 포함
- 연결 시도
- 앱이 서버에 연결 시도 시 TLS 핸드 셰이크를 통해 서버로부터 인증서를 받음
- 인증서 비교
- 받은 서버 인증서를 앱에 미리 저장된 핀 값(인증서 전체 또는 공개키 해시)과 바이트 단위로 비교
- 연결 승인 / 거부
- 인증서가 일치 : 연결 허용
- 인증서가 불일치 : 연결 차단
'Study > Mobile Hacking' 카테고리의 다른 글
| [Android] Galaxy S10e KernelSU (0) | 2026.03.29 |
|---|---|
| [Mobile] SSL Pinning 우회 (1) | 2026.03.21 |
| [Android] Rooting Detection 우회 (0) | 2026.03.21 |
| [Android] Rooting 알아보자 (0) | 2025.11.24 |
| [Mobile] Frida가 뭐죠? (0) | 2025.11.16 |