Part 1: 네트워크 통신 정책
| 항목 | 내용 |
|---|---|
| 문서명 | Part 1: 네트워크 통신 정책 (Network Communication Policy) |
| 제품명 | DTA Wide Sleep Management Platform |
| 작성일 | 2026-02-10 |
| 적용범위 | Part 1 (모바일 앱) |
1. TLS 정책
1.1 TLS 버전 및 암호 스위트
| 항목 | 릴리즈 빌드 | 디버그 빌드 |
|---|---|---|
| 최소 TLS 버전 | iOS 기본 ATS 정책 (TLS 1.2+) | iOS 기본 ATS 정책 |
| 암호 스위트 | iOS 시스템 기본값 | iOS 시스템 기본값 |
| Perfect Forward Secrecy | ✅ iOS ATS 기본 요구사항 | ✅ iOS ATS 기본 요구사항 |
참고:
- iOS 18.0+ 최소 지원이므로 TLS 1.3이 기본 협상됨
- 별도 Info.plist NSAppTransportSecurity 설정 없이 iOS 기본 ATS 정책 사용
2. 앱 ↔ API 통신 흐름
3. 오류 처리 및 사용자 알림
3.1 네트워크 오류 유형
| 오류 유형 | HTTP 상태 | 사용자 메시지 | 개발자 로그 |
|---|---|---|---|
| 연결 실패 | - | "서버에 연결할 수 없습니다. 인터넷 연결을 확인하세요." | Connection timeout |
| 인증 오류 | 401 | "로그인이 만료되었습니다. 다시 로그인하세요." | Unauthorized |
| 권한 오류 | 403 | "접근 권한이 없습니다." | Forbidden |
| 서버 오류 | 500 | "일시적인 오류가 발생했습니다. 잠시 후 다시 시도하세요." | Internal server error |
3.2 오류 처리 플로우
4. 외부 서비스 통신
4.1 Firebase Cloud Messaging (FCM)
| 항목 | 설정 |
|---|---|
| 프로토콜 | HTTPS (TLS 1.3) |
| 데이터 전송 | 디바이스 토큰만 (민감 정보 제외) |
| 페이로드 암호화 | ✅ End-to-End (앱 레벨 AES-256) |
4.2 Firebase Crashlytics (크래시 모니터링)
| 항목 | 설정 |
|---|---|
| 프로토콜 | HTTPS (Google 관리) |
| 데이터 전송 | 크래시 리포트, 익명화된 디바이스 정보 |
| Firebase Analytics | 프로덕션 비활성화 (IS_ANALYTICS_ENABLED=false) |
5. 응답 무결성 및 진위성 검증
5.1 현재 iOS 응답 검증 레이어 현황
| 검증 레이어 | 참조 파일 | 비고 |
|---|---|---|
| TLS 전송 암호화 | Ext+URLSessionConfiguration.swift | iOS ATS 기본 정책 |
| HTTP 상태코드 검증 | LiveSleepQDENetworkManager+UrlSession+Run.swift | 2xx/4xx/5xx 분기 처리 |
| Swift Decodable 타입 검증 | NetworkSerialization.swift | JSON 구조·타입만 검증 |
| 응답 본문 HMAC/서명 검증 | ❌ 미구현 | - |
| 응답 헤더(Content-Type 등) 검증 | ❌ 미구현 | - |
5.2 현재 응답 검증 흐름
증빙 및 참조(Artifacts)
- URLSession 설정 코드 -
Ext+URLSessionConfiguration.swift(캐시 정책, 타임아웃) - ATS 설정 - iOS 기본 ATS 사용
- TLS 설정 검증 - [TODO: SSL Labs 스캔 실행 필요]
- 토큰 갱신 코드 -
+UrlSession+Run.swift(401 자동 갱신, exponential backoff) - 오류 처리 코드 - 네트워크 오류 핸들링
- Rate Limiting 구현 - 서버측 Redis 기반 (사용자당 100 req/min)
- 통신 플로우 다이어그램 - 본 문서 Section 2
- Firebase Crashlytics 설정 -
GoogleService-Info-prod.plist - Android Network Security Config - [TODO: Android 구현 예정]
| 규정 | 요구사항 | 구현 | 증거 |
|---|---|---|---|
| BSI TR-03161 Part 1 | 안전한 통신 채널 | TLS (iOS ATS 기본), Certificate Pinning [TODO: 미구현] | URLSession 설정 코드 |
| GDPR Article 32 | 전송 암호화 | TLS (iOS ATS 기본) | 본 문서 |
| OWASP MASVS-NETWORK | 네트워크 보안 | TLS (iOS ATS), Certificate Pinning [TODO: 미구현] | [TODO: MobSF 실행 필요] |