MCU 애플리케이션을 위한 안전한 프로그래밍 접근 방식

인시스템 프로그래밍(ISP)은 펌웨어를 설치하지 않고도 전체 제품의 펌웨어를 업데이트하거나 새 제품에 초기 펌웨어를 설치할 수 있는 편리한 방법을 제공합니다. 

일반적인 ISP는 펌웨어 데이터를 칩으로 전송하기 위해 전송 인터페이스가 필요하므로 전송 과정에서 데이터가 도난의 위험에 노출되므로 실험실 개발에만 적합합니다. 제품이 개발되고 생산을 위해 외부에서 아웃소싱되면 전송된 통신은 펌웨어를 보호하기 위해 암호화되며, 이는 ISP 전송 및 프로그래밍을 위한 안전한 채널을 만드는 것과 같습니다.

예를 들어, 누보톤 테크놀로지의 M2351 마이크로컨트롤러에는 보안 ISP 기능이 내장되어 있어 전송 중 도난을 방지할 수 있습니다. 보안 ISP 기능을 켜려면 먼저 원래 제조업체가 설치한 ICP 도구를 통해 설정할 수 있습니다. 그런 다음 사용자가 UART를 ISP 전송 인터페이스로 사용해야 하는 경우 사용자는 부트 로더 UART1 TXD/RXD 핀 선택 기능을 설정하여 사용할 전송 핀을 확인해야 합니다.

Figure 1 UART1 pin setting

Figure 1 UART1 pin setting

ISP 기능이 켜지면 사용자는 원래 제조업체에서 제공한 ISP 도구로 마이크로컨트롤러에 연결하여 프로그래밍을 수행할 수 있습니다.

USB를 ISP 연결 인터페이스로 사용할 때 사용자는 사전 구성을 할 필요 없이 USB 케이블을 장치의 USB 소켓을 통해 PC 쪽의 USB 포트에 연결하고 Secure ISPTool을 열고 연결 버튼을 클릭하면 정상적으로 실행됩니다.

Figure 2 USB connection interface setting

Figure 2 USB connection interface setting 

UART1을 전송 인터페이스로 사용하는 경우, 사용자는 마이크로컨트롤러의 현재 UART1 핀을 PC 직렬 포트에 연결해야 하며, 그러면 사용자는 Secure ISPTool과 정상적으로 연결할 수 있습니다.
 

Figure 3 Serial port settings for connecting UART1 to PC

Figure 3 Serial port settings for connecting UART1 to PC 

마이크로컨트롤러가 Secure ISPTool에 성공적으로 연결되면 마이크로컨트롤러의 기본 정보가 도구에 표시됩니다. 그 후 마이크로컨트롤러 설정을 수행하고 펌웨어를 프로그래밍할 수 있습니다. 보안 채널은 이러한 모든 작업을 보호하므로 공격자는 통신 인터페이스의 데이터를 듣고 전송된 펌웨어를 훔칠 수 없습니다.
 

Figure 4 Basic information displayed after the microcontroller is connected to ISP

Figure 4 Basic information displayed after the microcontroller is connected to ISP 

Figure 5 ISP firmware file programming

Figure 5 ISP firmware file programming

ISP는 마이크로컨트롤러의 표준 기능으로, 사용자는 추가 하드웨어 장치 없이도 생산 중에 제품 펌웨어를 테스트하고 프로그래밍할 수 있습니다. 그러나 ISP 데이터는 전송 인터페이스를 통해 전송되기 때문에 전송 과정에서 정보가 노출되어 제품 펌웨어 도난의 위험이 발생하며, 특히 제품 테스트와 대량 생산이 외부 처리 서비스 제공업체에 아웃소싱될 경우 위조 위험이 더 높습니다.

이 문제를 방지하기 위해 보안 ISP를 사용할 수 있습니다. 펌웨어 전송 과정에서 모든 데이터는 고강도 암호화로 암호화되어 데이터를 도난당하지 않도록 하여 제품 펌웨어를 도난으로부터 보호하고 위조 가능성을 제거합니다.