メディア
連載
» 2018年06月29日 11時00分 公開

ハイレベルマイコン講座【セキュリティ編】(2):マイコンのセキュリティ機能を詳細解説 〜ソフトウェア編〜 (2/4)

[菅井賢(STマイクロエレクトロニクス),EDN Japan]

セキュアエンジン・ミドルウェア

 X-CUBE-SBSFUでは、セキュアエンジン・ミドルウェアを提供している。セキュアエンジン・ミドルウェアとは、保護されたAPI(アプリケーション・プログラミング・インタフェース: Application Programming Interface)を提供し、重要なデータをアクセスする際には必ずAPI経由でアクセスする方式のミドルウェアである。例えば、暗号鍵を揮発性メモリの中に置き、ファイアウォール(Firewall:防火壁)で保護されるアクセスを使用してデータのアクセスを行う。データアクセスの際は、必ずこのAPIを呼び出して、API経由でデータアクセスを行う。もし、このAPIを呼び出さずにデータアクセスが行われると、強制的にマイコンをリセットする仕組みになっている。

 ユーザーアプリケーション・プログラムをアップデートするファームウェアは、「ヘッダー」と「イメージ」の2つの領域で構成されている(表1参照)。

表1:ファームウェアの構成

 「ヘッダー」は暗号化されずにデバイスに送信され、アップデートする内容(データおよび、プログラムコード)のバージョンとサイズと暗号化パラメーターを含む。

 「イメージ」は、ブートもしくはアップデートされるユーザーアプリケーション・プログラムを、秘密鍵と「ヘッダー」のパラメーターから暗号化して送信するものである。アップデートの際に復号され、フラッシュメモリに格納される。

 セキュアエンジン・ミドルウェアを使用することにより、ユーザーはSTM32の全てのセキュリティ機能を活用して、IoT端末などのデバイスを保護することができる。

セキュアブート・ファームウェア

 製品の製造時の段階で、不正なプログラムコードが作り込まれないように、セキュアなプログラムブートを行わなくてはならない。

 X-CUBE-SBSFUのセキュアブートは、STM32に内蔵されたセキュリティ・メカニズムをチェックしてから起動させる他、ユーザーアプリケーション・プログラムの実行前に毎回、真正性と完全性をチェックし、不正なプログラムコードや悪意のあるプログラムコードの動作を防止する。

 図2にセキュアブートプロセスを示す。セキュアブートプロセスは必ず、リセットから始まる。そして、署名検証などの暗号アルゴリズムを使用して真正性チェックなどを行う。真正性チェックは、認証されていないプログラムコードがインストールされ、実行されるのを防ぐために、「イメージ」が信頼できる既知のソースから来ていることを検証することを目的としている。

図2:セキュアブートの概要

 図3にセキュアブートプロセスの実行フローを示す。

図3:セキュアブートの実行フロー

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from UBM Electronics, a division of United Business Media LLC.