고객이 코드 플래시(code flash)에 대한 외부 읽기 보호 메커니즘을 요구하고 있습니다.
TRM 매뉴얼에는 플래시 쓰기 보호만 있는 것으로 보입니다.
읽기 보호는 어떻게 구현해야 하나요?
고객이 코드 플래시(code flash)에 대한 외부 읽기 보호 메커니즘을 요구하고 있습니다.
TRM 매뉴얼에는 플래시 쓰기 보호만 있는 것으로 보입니다.
읽기 보호는 어떻게 구현해야 하나요?
코드 저장 영역의 읽기 보호는 하드웨어 수준 메커니즘과 암호화 기술을 결합하여 구현할 수 있습니다. STM32 시리즈를 예로 들면, 옵션 바이트에 있는 읽기 보호(RDP) 수준을 설정하여 구현할 수 있습니다. 예를 들어:
RDP 수준 1: 디버그 인터페이스(JTAG/SWD)를 비활성화하고, SRAM 또는 시스템 메모리에서 부팅할 때 Flash에 대한 접근을 금지하며, 칩 자체의 프로그램만 읽기를 허용합니다.
RDP 수준 2: 디버그 인터페이스를 추가로 퓨즈 차단하여 외부 접근을 완전히 금지하며, 이는 되돌릴 수 없습니다.
또한, 퓨즈 비트(예: AVR의 SPIEN 비트)를 사용하여 프로그래밍 인터페이스를 비활성화하고 ISP를 통한 Flash 읽기를 방지할 수 있습니다. 더 높은 보안이 필요한 경우, 하드웨어 암호화 모듈(예: HSM)을 통합하여 AES/SM4 알고리즘으로 Flash 콘텐츠를 암호화하고, 키는 외부 보안 칩에 저장할 수 있습니다.
외부 읽기 보호 요구사항에 대응하기 위해 다음과 같은 방식을 적용할 수 있습니다:
위 방법들은 특정 MCU 모델과 보안 요구사항에 따라 조합해 사용해야 하며, 제조사 TRM의 보안 장(예: STM32 Option Bytes 설정 절차)을 참고하는 것을 권장합니다.