Auth 가 누가 물어볼 수 있는지 컨트롤. 암호화는 auth 지나친 사람한테 (도난 디스크, 침해 host, rogue 클라우드 admin, 권한 잘못된 backup) 뭐가 읽을 수 있는지 컨트롤.
세 tier
| Tier | 방어하는 것 | 노력 |
|---|---|---|
| Disk-level (FileVault, LUKS) | 전원 꺼진 디바이스의 물리적 도난 | 한 번, 무료, 대부분 모던 OS 기본 ON |
| Database-level (SQLCipher, Postgres TDE) | 파일 접근 있는데 앱 접근 없는 적 | 라이브러리 swap; ~1일 |
| Field-level (민감 컬럼 암호화) | Rogue DBA, leak 된 backup, 앱 레벨 XSS-extracted dump | 가장 많은 작업; key 관리가 새 문제 |
Key 관리 현실
암호화는 보안 문제를 "데이터" 에서 "키" 로 밀어. 새 질문:
- Key 가 어디 살아? (OS keychain, KMS, HSM, env var)
- Deploy / 재시작 동안 뭐 일어나? (서비스가 시작 시 fetch 해야)
- Key 잃으면 뭐 일어나? (데이터 사라짐 — 영원히; key 별도 백업)
- 회전 어떻게? (새 키로 모든 데이터 재암호화; 스케일 시 trivial X)
Field 레벨 암호화 가치 있는 거
전부 X. Index/foreign key 암호화는 쿼리 패턴 깸. 실용적 리스트: 사용자 대신 저장하는 API 키 / 토큰; 개인 노트 / 일기 항목; 건강 / 재무 데이터; session 토큰 (one-way hash 가 보통 OK); 컴플라이언스 regime (HIPAA, GDPR special category) 에 cover 되는 거.