5-3 11 topics 🔐 TLS · OAuth · CryptoKit

네트워크 보안

💡 HTTPS인데 왜 해킹당할 수 있습니까 / 토큰을 어디에 저장해야 합니까

데이터를 주고받고 저장할 줄 압니다. 이제 "이게 안전한가?"가 반드시 따라옵니다. 보안은 기능이 완성된 직후 배워야 의미가 있습니다 — 지킬 것이 생겼을 때 잠금장치를 배웁니다.

💡 왜 여기서?
보안은 기능 개발과 동시에 배우는 것이 아니라 기능이 완성된 직후 배워야 의미가 있습니다. 지킬 것이 생겼을 때 잠금장치를 배웁니다.
TOPICS COMPLETED 0 / 11
Topics
TLS 핸드셰이크 — 암호화 키 교환 과정
인증서와 CA — 서버가 진짜인지 검증
SSL Pinning — MITM 공격 방어
App Transport Security — iOS의 강제 HTTPS
⚠️ HTTPS가 있어도 SSL Pinning 없이는 MITM(중간자 공격)에 취약합니다. 특히 Charles Proxy 같은 도구로 트래픽을 가로챌 수 있습니다.
OAuth 2.0 — 소셜 로그인 플로우
JWT — 토큰 구조, Access + Refresh 패턴
Keychain에 토큰 저장
Face ID / Touch ID — LocalAuthentication
대칭키(AES), 비대칭키(RSA), 해시(SHA-256)
CryptoKit — Swift 암호화 구현
API Key 코드 하드코딩 금지 — xcconfig 분리
🚨 API Key를 코드에 하드코딩하면 GitHub에 push하는 순간 전 세계에 노출됩니다. 반드시 xcconfig 또는 환경변수로 분리하고 .gitignore에 추가하세요.
Quiz
🔐 5-3 네트워크 보안
💡 실전 상황: 외부 API를 사용합니다.
API Key를 어디에 두시겠습니까?
안전한 방법은?
🎉
Stage 5 완료!
오토바이로 달릴 수 있습니다.
하지만 동시에 두 가지를 할 수 없습니다. → STAGE 6에서 해결합니다.
🧊 STAGE 6 동시성 시작하기 →
← 5-2 데이터 영속성 Network 홈으로