Forensic/study
[모바일 포렌식] AP·FDE·FBE
ukkiyeon
2025. 3. 10. 01:01
AP(Application Processor)
- 모바일 기기에서 CPU와 유사한 역할을 하는 부품으로서, 모바일 중앙처리장치를 의미
- CPU, GPU, NPU, ISP, 모뎀 등 여러 부품을 포함(AP⊃CPU)하고 있으며, 모바일에서 연산을 담당하는 부품의 집약체
- 이렇게 칩 하나에 대부분의 기능이 들어가 있는 설계를 SoC(System On Chip)라고 함
- Android vs. iOS
- Android는 주로 퀄컴과 미디어텍 AP를 사용
- iOS는 Arm 아키텍처를 기반으로 애플이 만든 A시리즈(아이폰)와 M시리즈(아이패드, 맥북)의 AP를 사용
FDE(Full-Disk Encryption, 전체 디스크 암호화)
- Android 4.4 ~ 9
- HW 기반 암호화와 SW 기반 암호화로 구현됨
- ex. BitLocker, FileVault(macOS), VeraCrypt(오픈소스), Android FDE
FBE(File-Based Encryption, 파일 기반 암호화)
- Android 7.0 이상에서 지원, Android 10 이후부터 필수
- 파일별로 개별적 암호화 키 사용
- ex. Android FBE
- EXT4 FBE
- Extended Attributes(확장 속성)를 통해 폴더와 파일 각각에 대한 암호화 속성(암호화 키, 알고리즘 등)을 저장
- FBE 작동 방식
1) 로그인 및 사용자 인증을 통해 Master Key 확보
2) Master Key로부터 KDF를 통해 개별 DEK 생성
3) DEK를 통해 파일 내용 및 파일명 암호화
4) 암호화 정보는 EXT4 inode의 확장 속성(xattr)에 저장됨
- random nonce, 암호화 정책 등이 포함
- fscrypt - Extended Attribute 구조체
- fscrypt는 Android의 FBE에서 사용되는 암호화 기능
- 암호화된 파일에 대한 메타데이터를 inode의 xattr에 저장
- 이때, 아래와 같은 fscrypt_context_v1 구조체가 활용
- fscrypt_context_v1: 파일 암호화 속성을 inode의 xattr에 저장하는 구조로서, 버전, 파일 내용 암호화 방식, 파일명 암호화 방식, Master Key 식별자, nonce 등의 값을 포함
- https://cs.android.com/android/kernel/superproject/+/common-android-4.14-stable:common/fs/crypto/fscrypt_private.h;l=29;bpv=1
FBE Crack
- 각 디렉토리/파일의 고유한 DEK가 생성되는 Master Key 값 찾기
- 모든 Nonce 추출 - inode xattr에 저장된
- 모든 DEK 추출 - 메모리 덤프에서 복구
- Master Key 후보 확인 - Nonce와 DEK의 모든 경우의 수를 조합
- Master Key 후보 검증 - 여러 번 등장하는 Master Key
참고