マイコンに搭載されているセキュリティ機能は、メーカーや製品ごとに若干異なるが、各マイコンのセキュリティの概念は共通であり、ほぼ同じ機能が搭載されているといえる。ここでは例としてSTマイクロエレクトロニクスの32ビットマイコン「STM32ファミリ」を取り上げ、セキュリティシステムを解説する。主なセキュリティシステムを挙げると次のようになる。
マイコンのフラッシュメモリに書かれているプログラムコードを盗まれることは、製品の中枢を盗まれることに匹敵する。そこでマイコンには必ずフラッシュメモリを不正に読み出されないようにする機能が搭載されている。それが「読み出し保護機能:ReaD Protect(以下、RDP)」だ。
プログラムコードを書き換えられると、マイコンの乗っ取りや誤動作につながるため、フラッシュメモリへの書き込みができなくなる機能、すなわち「書き込み保護機能:WRite Protect(以下、WRP)」も必須機能だ。
RDPを有効にすると、ハッカーがフラッシュメモリのプログラムコードを読み出そうしても、読み出せなくなるので安全である。しかしその半面、マイコンメーカーが製造後にフラッシュメモリの内容を確認したくても読み出せなくなるという問題が生じる。
そこで、RDPには機能を解除できるモードと永久に解除できないモードの2つのモードが準備されている。STM32ファミリでは、前者をレベル1のRDP(RDP1)、後者をレベル2のRDP(RDP2)と呼んでいる。
ところが、ハッカーがRDP1の解除方法を知ると、プログラムコードが盗まれてしまう。そこで、RDP1では保護機能を解除すると、その時点でフラッシュメモリはハードウェアによって即座に初期化され、ユーザープログラムは消去される仕組みになっている。そのため、ハッカーがフラッシュメモリの中身を読み出すことはできない。
RDP2は、一般的にJTAG ヒューズ(FUSE)と呼ばれていて、物理的に読み出せなくする機能だ。この保護機能は解除する手段がない。読み出し保護と同時にJTAGなどの開発ツールも物理的に使えなくする。RDP2をいったん有効にすると、ハッカーはもちろんマイコンメーカーでも二度と解除することはできない。
時々、ユーザーからRDP2を有効にしたマイコンの不良解析を依頼される。当然ながら、前述の理由でマイコンメーカーといえども保護機能を解除できないので、解析の術はない(図4)。
STM32ファミリでは、RDPはフラッシュメモリ全体が対象だが、WRPはフラッシュメモリをページまたはセクターに分割して、書き込み(“消去”も含む)を防止する機能になっている。製品出荷後のプログラムの更新を全領域ではなく、必要最低限の領域だけで行えるので、フラッシュメモリの書き換え時間が最短で済む。
STM32では、上記のRDPとWRPの他に、独自コード読み出し保護(PCROP:Proprietary Code Read Out Protection)がある。これはフラッシュメモリをページまたはセクターに分けて、RDPとWRPを部分的に有効にする機能だ(図5.a)。
PCROPは、ハッカーからフラッシュメモリを守る役割もあるが、この機能を使ってソフトウェア開発会社のIP(知的財産)を守ることも可能だ。例えば、製品の目標仕様を実現する上で、特殊なIPを必要とし、IP専門のソフトウェア開発会社に外注しなければならない場合だ。その特殊なIPは、IPの開発会社の企業秘密で、依頼会社に公開したくない場合、IPの開発会社が自社のIPソフトウェアを書き込む際に、企業秘密の部分にPCROPをかけて出荷する。すると、製品の目標仕様を実現しながらも、IP開発会社の企業秘密も守ることができるわけだ(図5.b)。
Copyright © ITmedia, Inc. All Rights Reserved.