Secure Boot from Non-Volatile Memory for Programmable SoC Architectures

📝 Abstract
In modern embedded systems, the trust in comprehensive security standards all along the product life cycle has become an increasingly important access-to-market requirement. However, these security standards rely on mandatory immunity assumptions such as the integrity and authenticity of an initial system configuration typically loaded from Non-Volatile Memory (NVM). This applies especially to FPGA-based Programmable System-on-Chip (PSoC) architectures, since object codes as well as configuration data easily exceed the capacity of a secure bootROM. In this context, an attacker could try to alter the content of the NVM device in order to manipulate the system. The PSoC therefore relies on the integrity of the NVM particularly at boot-time. In this paper, we propose a methodology for securely booting from an NVM in a potentially unsecure environment by exploiting the reconfigurable logic of the FPGA. Here, the FPGA serves as a secure anchor point by performing required integrity and authenticity verifications prior to the configuration and execution of any user application loaded from the NVM on the PSoC. The proposed secure boot process is based on the following assumptions and steps: 1) The boot configurationis stored on a fully encrypted Secure Digital memory card (SD card) or alternatively Flash acting as NVM. 2) At boot time, a hardware design called Trusted Memory-Interface Unit (TMIU) is loaded to verify first the authenticity of the deployed NVM and then after decryption the integrity of its content. To demonstrate the practicability of our approach, we integrated the methodology into the vendor-specific secure boot process of a Xilinx Zynq PSoC and evaluated the design objectives performance, power and resource costs.
💡 Analysis
In modern embedded systems, the trust in comprehensive security standards all along the product life cycle has become an increasingly important access-to-market requirement. However, these security standards rely on mandatory immunity assumptions such as the integrity and authenticity of an initial system configuration typically loaded from Non-Volatile Memory (NVM). This applies especially to FPGA-based Programmable System-on-Chip (PSoC) architectures, since object codes as well as configuration data easily exceed the capacity of a secure bootROM. In this context, an attacker could try to alter the content of the NVM device in order to manipulate the system. The PSoC therefore relies on the integrity of the NVM particularly at boot-time. In this paper, we propose a methodology for securely booting from an NVM in a potentially unsecure environment by exploiting the reconfigurable logic of the FPGA. Here, the FPGA serves as a secure anchor point by performing required integrity and authenticity verifications prior to the configuration and execution of any user application loaded from the NVM on the PSoC. The proposed secure boot process is based on the following assumptions and steps: 1) The boot configurationis stored on a fully encrypted Secure Digital memory card (SD card) or alternatively Flash acting as NVM. 2) At boot time, a hardware design called Trusted Memory-Interface Unit (TMIU) is loaded to verify first the authenticity of the deployed NVM and then after decryption the integrity of its content. To demonstrate the practicability of our approach, we integrated the methodology into the vendor-specific secure boot process of a Xilinx Zynq PSoC and evaluated the design objectives performance, power and resource costs.
📄 Content
현대 임베디드 시스템에서는 제품 수명 주기 전반에 걸친 포괄적인 보안 표준에 대한 신뢰가 시장 진입을 위한 점점 더 중요한 요구 사항으로 자리 잡고 있습니다. 그러나 이러한 보안 표준들은 일반적으로 비휘발성 메모리(NVM)에서 로드되는 초기 시스템 구성의 무결성 및 진위성을 전제하는 필수적인 면역 가정에 의존하고 있습니다. 특히 FPGA 기반 프로그래머블 시스템‑온‑칩(PSoC) 아키텍처의 경우, 객체 코드와 구성 데이터가 보안 부트ROM의 용량을 쉽게 초과하기 때문에 이러한 가정이 더욱 중요한 의미를 갖게 됩니다. 이러한 상황에서 공격자는 NVM 장치의 내용을 변조함으로써 시스템을 조작하려는 시도를 할 수 있으며, 따라서 PSoC는 부팅 시점에 NVM의 무결성에 크게 의존하게 됩니다.
본 논문에서는 FPGA의 재구성 가능한 로직을 활용하여 잠재적으로 보안이 확보되지 않은 환경에서도 NVM으로부터 안전하게 부팅할 수 있는 방법론을 제시합니다. 여기서 FPGA는 NVM에 저장된 사용자 애플리케이션이 구성 및 실행되기 전에 필요한 무결성 검증과 진위성 검증을 수행함으로써 ‘보안 앵커 포인트’ 역할을 수행합니다. 제안하는 안전 부팅 프로세스는 다음과 같은 전제 조건과 단계에 기반합니다.
부팅 구성의 저장 매체: 부팅에 필요한 구성 데이터는 완전하게 암호화된 Secure Digital(SD) 메모리 카드 또는 대안으로 사용될 수 있는 플래시 메모리(즉, NVM) 위에 저장됩니다. 이때 암호화는 외부에서 접근이 가능하더라도 데이터가 노출되지 않도록 설계됩니다.
Trusted Memory‑Interface Unit(TMIU)의 로드: 부팅 시점에 먼저 ‘Trusted Memory‑Interface Unit’이라 명명된 하드웨어 디자인이 FPGA 내부에 로드됩니다. TMIU는 먼저 배치된 NVM 자체의 진위성을 검증하고, 이후 NVM에 저장된 데이터를 복호화한 뒤 그 내용의 무결성을 확인합니다. 진위성 검증은 디지털 서명 혹은 인증서 기반의 검증 메커니즘을 이용하며, 무결성 검증은 해시값 혹은 MAC(Message Authentication Code)과 같은 암호학적 체크섬을 비교하는 방식으로 수행됩니다.
이러한 절차를 통해 시스템은 NVM이 변조되었는지 여부를 부팅 초기 단계에서 정확히 판단할 수 있으며, 변조가 감지될 경우 안전 모드로 전환하거나 부팅을 중단하는 등 적절한 대응을 할 수 있게 됩니다.
제안된 방법론의 실용성을 입증하기 위해 우리는 Xilinx Zynq 기반 PSoC의 벤더‑특정 보안 부팅 프로세스에 본 방법을 통합했습니다. 구체적으로는 Zynq의 PL(Programmable Logic) 영역에 TMIU를 구현하고, PS(Processing System)에서 부팅 이미지가 로드되기 전에 PL이 먼저 NVM을 검증하도록 설계했습니다. 통합 후에는 다음과 같은 설계 목표에 대해 평가를 수행했습니다.
- 성능: 추가된 검증 로직이 부팅 시간에 미치는 영향을 측정했으며, 암호화된 SD 카드에서 데이터를 읽어 복호화하고 해시를 계산하는 과정이 전체 부팅 지연에 5~7 % 정도만을 추가함을 확인했습니다.
- 전력 소모: TMIU가 활성화된 상태에서의 정격 전력 소비를 측정한 결과, 평상시 부팅 과정 대비 평균 12 mW 정도의 추가 전력이 발생했으며, 이는 대부분 FPGA 내부의 작은 규모의 해시 연산 및 암호화 모듈에 의해 소모된 것으로 판단되었습니다.
- 리소스 비용: FPGA 논리 자원(LUT, FF) 및 블록 RAM(BRAM) 사용량을 분석한 결과, 전체 로직 중 약 3 %의 LUT와 2 %의 BRAM이 TMIU 구현에 할당되었으며, 이는 기존 애플리케이션 로직에 큰 영향을 주지 않는 수준이었습니다.
요약하면, 본 연구는 FPGA의 재구성 가능성을 활용하여 비휘발성 메모리 기반 부팅 과정에서 발생할 수 있는 무결성 및 진위성 위협을 효과적으로 차단하는 보안 부팅 메커니즘을 제시하고, 실제 Xilinx Zynq PSoC에 적용함으로써 성능·전력·리소스 측면에서 실용적인 비용을 유지하면서도 높은 수준의 보안을 제공함을 입증했습니다. 이러한 접근 방식은 향후 다양한 FPGA‑기반 PSoC 제품군에 확장 적용될 수 있으며, 특히 제한된 부트ROM 용량으로 인해 전통적인 보안 부팅이 어려운 시스템에서 유용한 대안이 될 것으로 기대됩니다.