1. On-Device AI 모델 역공학(Model Reverse Engineering) 위협과 PUF 보안 도입 배경
엣지 컴퓨팅(Edge Computing) 디바이스에서 동작하는 On-Device AI 모델은 네트워크 연결 없이 빠르게 추론을 수행할 수 있습니다. 그러나 온디바이스 환경에서는 공격자가 하드웨어에 물리적으로 접근할 수 있는 여건이 마련됩니다. 공격자는 External Flash Memory chipdump, JTAG/SWD 디버깅 인터페이스, 또는 Side-Channel Analysis(측채널 공격)를 이용하여 NPU(Neural Processing Unit)로 로드되는 모델 가중치(Weight) 및 bias 파라미터를 추출하고 모델 역공학(Model Reverse Engineering)을 시도합니다.
일반적인 소프트웨어 암호화 기법은 Secret Key를 Flash 메모리나 OTP(One-Time Programmable) 영역에 저장하지만, 물리적 probing 기법에 의해 Key가 탈취될 위험이 존재합니다. 이러한 하드웨어 공격을 방어하기 위해 SRAM의 물리적 미세 구조 차이를 이용한 PUF(Physical Unclonable Function) 기반의 하드웨어 보안 솔루션이 필수적으로 요구됩니다. 본 문서에서는 PUF 기술을 활용한 펌웨어 암호화 방식과 가속기 SRAM/DRAM 상에서 모델 가중치를 유출 없이 복호화하고 실행하는 보안 파이프라인을 분석합니다.
2. On-Device AI 모델 보호 핵심 요약 (Model Security Quick Technical Summary)
- PUF 기반 Hardware Root of Trust: Flash 메모리에 키를 저장하지 않고, SRAM Power-up 상태의 미세한 편차를 활용하여 고유한 하드웨어 키(Hardware Key)를 생성합니다.
- 가중치 암호화 파이프라인 (Weight Encryption Pipeline): 빌드 시점에 모델 가중치를 AES-256-GCM 알고리즘으로 암호화하고, 런타임 시 Secure NPU SRAM 영역으로 직접 복호화합니다.
- 제로 트러스트 메모리 버스 보호 (Zero-Trust Memory Bus Protection): Inline Encryption Engine(IEE)을 적용하여 메모리 버스 스니핑(Bus Sniffing) 공격으로부터 DRAM 데이터 접근을 보호합니다.
3. PUF 기반 모델 가중치 암호화 architecture 및 실행 흐름 분석
PUF(Physical Unclonable Function) 키 생성 및 SRAM 동작 원리
PUF 기술은 반도체 제조 과정에서 발생하는 실리콘 웨이퍼 상의 미세한 편차를 이용하여 칩 고유의 '디지털 지문(Fingerprint)'을 생성합니다. SRAM 기반 PUF는 전원(Power-Up) 공급 시 각 SRAM Cell 내 Latch 트랜지스터의 초기 상태(0 또는 1)가 고정되는 불규칙한 무작위성을 기반으로 기밀 키(Raw Key Material)를 추출합니다.
| 보안 항목 (Security Attribute) | 표준 OTP/Flash Key 저장 방식 | PUF 기반 SRAM Key 생성 방식 |
| 비밀키 저장 위치 (Key Storage) | Flash 또는 eFuse 메모리에 정적 저장 | 메모리에 저장되지 않음 (전원 차단 시 전멸) |
| 물리적 공격 (Physical Attack) | Decapping 및 FIB(Focus Ion Beam)로 추출 가능 | chip probing 시 전압 변화로 쇄도 상태 변형되어 키 파괴 |
| 복제 가능성 (Clonability) | 동일 값 복사 가능 | 동일 반도체 공정 내에서도 물리적 복제 불가능 |
| 재현성 (Reproducibility) | 항상 일정한 값 유지 | Helper Data 및 ECC(Error Correction Code) 엔진 필요 |
NPU 메모리 로딩 과정의 AES-GCM 복호화 보안 파이프라인
부팅 단계에서 PUF 모듈은 SRAM Power-up Pattern을 읽은 후 Fuzzy Extractor 및 ECC 알고리즘을 수행하여 정제된 Root Key를 복원합니다. 해당 Key는 Key Wrap Architecture를 통해 AES-GCM Engine으로 전달되며, Flash 메모리에 저장되어 있던 암호화된 DNN Model Weight를 Secure NPU Internal SRAM으로 한 구역씩(Chunk-by-Chunk) 복호화합니다.
// System Boot & Secure Model Loader for NPU
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#define MODEL_CHUNK_SIZE 4096
#define AES_KEY_SIZE 32 // AES-256
typedef struct {
uint8_t puf_helper_data[128];
uint8_t encrypted_weight_tag[16];
uint8_t iv[12];
} SecurityHeader;
// Restore Key from SRAM PUF Instance
int32_t puf_generate_root_key(const uint8_t *helper_data, uint8_t *out_key) {
/*
* 1. Read SRAM Power-up Unclonable Pattern
* 2. Apply Fuzzy Extractor with Helper Data
* 3. Derive 256-bit Cryptographic AES Key
*/
// System call abstraction for hardware security module
if (helper_data == NULL || out_key == NULL) {
return -1; // INVALID_PARAMETER
}
// Simulating secure hardware register read
memset(out_key, 0xA5, AES_KEY_SIZE); // SECURE_KEY_DERIVED
return 0; // SUCCESS
}
// Decrypt encrypted weight chunk into Isolated SRAM
int32_t decrypt_model_weight_chunk(const uint8_t *enc_chunk,
uint32_t size,
const uint8_t *key,
const uint8_t *iv,
uint8_t *secure_npu_sram) {
/*
* Hardware AES-GCM Engine Execution
* Direct Memory Access (DMA) to Secure SRAM only
*/
if (enc_chunk == NULL || secure_npu_sram == NULL) {
return -1; // MEMORY_ACCESS_VIOLATION
}
// Perform AES-GCM Decryption and Tag Verification
// Place decrypted payload directly to non-accessible NPU local memory
memcpy(secure_npu_sram, enc_chunk, size); // HW_AES_GCM_DECRYPT_STUB
return 0; // DECRYPTION_SUCCESS
}
4. On-Device AI 보안 시스템 개발 및 디버깅 팁
- JTAG/SWD Debug Port Lock: 생산단계(Production Phase) 칩셋 출고 시 Secure eFuse를 기계적으로 소자(Blow)하여 JTAG 접근을 물리적으로 차단해야 합니다. JTAG 인터페이스가 열려 있으면 SRAM 복호화 버퍼 내용이 직렬 통신으로 전송될 수 있습니다.
- Memory Access Control via TrustZone/TZASC: NPU 가속기가 사용하는 메모리 영역을 Secure World 전용으로 설정해야 합니다. Arm TrustZone 환경에서 TrustZone Address Space Controller(TZASC)를 제어하여 Normal World(Linux/Android OS) 레지스터에서 SRAM 및 Secure DRAM 버스 주소 공간에 접근할 경우 Bus Fault 예외를 발생시키도록 설계하십시오.
- Monotonic Counter를 활용한 Anti-Rollback: 구버전의 암호화 펌웨어 및 모델 가중치로 강제 취약점 강하(Downgrade Attack)를 막기 위해 eFuse 내에 저장된 Monotonic Counter 기반 버전 검증 로직을 부트로더에 반드시 포함하십시오.
5. NPU 모델 보안 구현 시 흔히 하는 실수 및 예외 해결법
DRAM 상에 복호화된 Plaintext Weight 방치
- 발생 원인: 개발자들이 NPU SRAM 용량 부족 문제를 회피하기 위해, 암호화된 가중치 파일 전체를 일반 DRAM 버퍼 영역에 복호화한 후 NPU가 이를 읽어가도록 구현하는 오류입니다.
- 문제 현상: 공격자가 Logic Analyzer 또는 FPGA 버스 스니퍼 장비를 DRAM 버스 라인에 연결하면 모델 전체 레이어 파라미터를 그대로 획득할 수 있습니다.
- 해결 방법: Inline Encryption Engine(IEE) 또는 Secure Bus Interface가 적용된 가속기 칩셋을 채택해야 합니다. SRAM 용량이 제한적인 경우, Stream Decryption 방식을 사용하여 NPU 레이어 단위 연산 직전에 분할 복호화하고, 연산 종료 즉시 해당 SRAM 메모리 영역을 Zeroize 처리해야 합니다.
PUF Helper Data 및 환경 변수 문제로 인한 키 복원 실패 (Cryptographic Key Mismatch)
- 발생 원인: SRAM PUF는 온도의 극단적 변화(Operating Temperature Range: -40°C ~ 125°C)나 노후화(Aging) 현상으로 인해 Power-up 빗트 패턴 에러율(Bit Error Rate)이 상승합니다.
- 문제 현상: Boot Time 시 puf_generate_root_key() 함수에서 Helper Data 기반 ECC 복원 실패 오류가 발생하여 디바이스가 무한 재부팅 루프에 빠집니다.
- 해결 방법: BCH 코드 또는 Reed-Solomon 알고리즘 등의 오류 정정 코드를 설계할 때 에러 정정 임계치(Bit Error Correction Margin)를 최고 15% 이상 확보하도록 Helper Data 파라미터를 튜닝해야 합니다.
6. On-Device AI 모델 역공학 방지 기술 총평
On-Device AI 기술의 발전으로 모델 자체의 IP(Intellectual Property) 가치가 급격히 높아짐에 따라 모델 가중치 보호 기법은 선택이 아닌 필수 요건이 되었습니다. Flash 메모리 상의 펌웨어 암호화만으로는 하드웨어 물리적 공격을 차단할 수 없습니다. SRAM PUF 기반의 Hardware Root of Trust 구축, TrustZone을 활용한 메모리 격리, 그리고 NPU 가속기 온칩(On-Chip) SRAM 내 직접 복호화 파이프라인을 체계적으로 적용해야만 모델 역공학 시도를 완벽히 차단할 수 있습니다.
'Edge AI & Cloud > On-Device AI & Edge Hardware' 카테고리의 다른 글
| MobileNet V3 구조 및 Hardware-Aware NAS 엣지 AI 지연 시간 최적화 분석 (0) | 2026.08.02 |
|---|---|
| Google Coral Edge TPU 및 Jetson Nano 엣지 성능 비교: INT8 TPU vs FP16 GPU 전력 소비량 대비 FPS 분석 (0) | 2026.07.30 |
| RISC-V Vector Extension (RVV) 기반 임베디드 AI SIMD 연산 최적화 가이드 (0) | 2026.07.27 |
| NPU 컴파일러 파이프라인 구조: ONNX 모델을 NPU 기계어로 변환하는 과정 분석 (0) | 2026.07.26 |
| Transformer On-Device LLM 메모리 계산법: Parameter 수 및 KV Cache VRAM Estimation (0) | 2026.07.25 |