12주 완성 AI 온디바이스 앱 실전 커리큘럼으로 돌아가기
Mobile & System•11 / 12주차
11주차 마일스톤약 9시간 소요난이도: 고급
AI 앱 보안 & 모델 가중치 암호화(EncryptedSharedPreferences / NDK)
리버스 엔지니어링 방지, Android Keystore 하드웨어 보안 모듈 연동 및 모델 가중치 AES-GCM 암호화 인메모리 로딩
#AppSecurity#AndroidKeystore#AES-GCM#NDK
이번 주 핵심 학습 목표
- 1JADX 및 APKTool로 앱 애셋(.tflite / .onnx)이 손쉽게 탈취될 수 있는 취약점을 이해한다.
- 2Android Keystore를 통해 하드웨어 TEE(TrustZone) 내에 안전한 대칭키를 발급한다.
- 3암호화된 모델 파일을 인메모리에서 복호화하여 디스크 노출 없이 직접 런타임에 주입한다.
실전 학습 가이드 & 코드 워크스루
1. 온디바이스 모델 탈취의 위협
개발자가 수개월간 수천만 원을 들여 학습시킨 고유 모델을 assets/ 폴더에 평문(.tflite)으로 넣어두면, 누구든지 APK 압축을 풀고 단 3초 만에 모델을 무단 복제하여 사용할 수 있습니다.
2. Android Keystore + AES-GCM 암호화 구조
안드로이드의 Keystore 시스템은 암호화 키를 앱 프로세스 메모리가 아닌 기기의 하드웨어 보안 칩(TEE / StrongBox)에 격리 보관합니다. 루팅된 단말기라 할지라도 개인키 자체를 추출하는 것은 불가능합니다.
kotlin
fun getOrCreateSecretKey(): SecretKey {
val keyStore = KeyStore.getInstance("AndroidKeyStore").apply { load(null) }
if (!keyStore.containsAlias(KEY_ALIAS)) {
val keyGenerator = KeyGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES, "AndroidKeyStore")
keyGenerator.init(
KeyGenParameterSpec.Builder(
KEY_ALIAS,
KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT
)
.setBlockModes(KeyProperties.BLOCK_MODE_GCM)
.setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_NONE)
.setKeySize(256)
.build()
)
return keyGenerator.generateKey()
}
return (keyStore.getEntry(KEY_ALIAS, null) as KeyStore.SecretKeyEntry).secretKey
}📂 이번 주차 학습 자료 & 실습 파일 다운로드
2개 파일 제공강의 교안 PDF, 실습 스타터 코드, 치트시트 등 학습에 필요한 자료를 별도로 열람하거나 다운로드하여 학습하세요.
11주차_핵심요약_치트시트.pdf
PDF•1.8 MB
11주차 핵심 이론 및 아키텍처 다이어그램 치트시트
11주차_실전_스타터코드.zip
ZIP•3.4 MB
Android Studio 프로젝트 템플릿 및 실습 코드 예제
실전 체크리스트 & 셀프 점검
0 / 4 완료직접 코드를 구현하고 테스트를 완료할 때마다 체크해 보세요. 브라우저에 자동 보관됩니다.
Android Keystore 기반 AES-256 GCM 비밀키 생성 유틸리티 작성
빌드 타임 또는 초기 실행 시 모델 가중치 암호화 파이프라인 구현
CipherInputStream을 통한 스트리밍 인메모리 복호화 ByteBuffer 변환
JADX 디컴파일러로 APK 추출 시 모델 바이너리가 노출되지 않음을 교차 검증
ADVERTISEMENTfirststep.kr ad
1st
firststep.kr 12주 완성 실전 커리어 로드맵
파이썬, 소프트웨어설계, DB, 데이터과학, 딥러닝, LLM 9종 코스 100% 무료
공식 문서 & 추천 자료
12주 완성 AI 온디바이스 앱 실전 커리큘럼
[1주차] 코틀린(Kotlin) 핵심 언어 체계 & 안드로이드 런타임 이해[2주차] Jetpack Compose 기반 선언형 UI 기초 및 상태 관리[3주차] 로컬 경량 AI 모델(ONNX / MediaPipe) 구동 환경 세팅[4주차] 온디바이스 텍스트 & 임베딩 모델 인퍼런스 최적화[5주차] 실시간 컴퓨터 비전(MediaPipe) 객체 인식 & 포즈 추정[6주차] 안드로이드 NNAPI & GPU/NPU 하드웨어 가속기 연동[7주차] 로컬 벡터 DB(ObjectBox / SQLite-VSS) 기반 온디바이스 RAG 구축[8주차] 음성 인식(Whisper.tflite) & 온디바이스 음성 AI 어시스턴트[9주차] 모델 경량화 & 양자화 파이프라인(PyTorch ➔ ONNX ➔ TFLite)[10주차] 백그라운드 비동기 추론 & WorkManager 배터리 최적화[11주차] AI 앱 보안 & 모델 가중치 암호화(EncryptedSharedPreferences / NDK)[12주차] 독자적인 온디바이스 AI 앱 포트폴리오 완성 & 구글 플레이 배포