特集:ハードでもセキュアにする時代へ(3)
2016年9月 5日 17:16

システムの中をソフトウエアだけではなくハードウエアもセキュアにしようとすると、やはり半導体にアクセスするのを制限することになる。また、半導体にアクセスして侵入できたとしても、大事なデータを読めないように暗号化することも半導体ができる仕事になる。つまり、半導体へのアクセス制限と、データの暗号化がセキュアにするカギとなる。

 

暗号キーをチップのバラつきで作成

半導体チップに暗号キーを埋め込み、簡単にアクセスできないようにするIP(半導体内の一つの重要な回路のこと)を台湾のeMemory(イーメモリと発音)社が開発、日本や欧州のセキュリティを重視する企業にアプローチしている。これは、暗号を破られないように、半導体チップが持つ許容バラつき範囲内のバラつきを各チップに持たせるようにしてそれも暗号キーとして組み込んでしまうのである。eMemory社は、顧客企業を絞り日本、欧州とそれぞれ3~4社と話し合ってきたが、日本企業は相変わらず対応が遅いが、欧州の顧客1社とは共同開発に入ったという。

  半導体チップのセキュリティを重視する企業は、それほど多くないため数社に絞り、顧客が自分で暗号キーを生成する手助けを行う。eMemoryはあくまでもIPを提供し、顧客のチップに組み込む支援を行うか、あるいは暗号キーと乱数発生器を集積したチップそのものを提供するか、いずれかのビジネスになる。このIPはアンチフューズ方式の不揮発性メモリの一種のOTPOne Time Programmable)メモリであり、暗号キーを生成するのはあくまでも顧客である。eMemory が提供するのはあくまでもプログラムツール。暗号化するのは顧客(半導体メーカー)となる。

  この不揮発性メモリIPNeoFuse IPは暗号キーを半導体チップに埋め込むために使う訳だが、二つの方法を使う(図1)。一つは乱数発生器回路を組み込むことで、もう一つはチップが持つ許容範囲内のプロセスばらつきを利用する方法だ。この二つの方法を使って暗号キーを作れば、乱数コードが例え解読されても、プロセスばらつきまで解読できない。プロセスばらつきを利用する方法は、正常品として動作するチップに32ビット分のメモリに、01かの電圧をかけ、わずかなプロセスのばらつきによって0でも1でもなるように高レベルの電圧をかけてプログラムする。このためチップによって0になるものも1になるものも出てくる。このため人為的に数字を調整できない。

ememory.png

図1 暗号キーを乱数発生器と許容内のプロセスばらつきを利用して生成するeMemoryIP PUFPhysical Unclonable Functionの略 出典:eMemory 

  eMemoryの技術のメリットは、ランダム性が自然に決まり人為的な要素が入り込まないため、機密性が保たれやすい。しかも、アンチフューズ型でプログラムするため、温度や電圧が多少ばらついても、書きこんだ情報が反転することはない。浮遊ゲート方式だと、温度や電圧、過電圧などの影響を受けやすかった。

  このIPをチップに集積する場合、すでに0.15µmプロセスから28nmプロセスまで対応できており、16/14nm FinFETプロセスも開発されてきた。10nmプロセスへの適用検討も始まっている。eMemoryIP技術は営業活動で日本を回っているが、動きがいまだに遅いのが気になるとしている。

 

ARMImaginationはセキュアな部屋を確保

  ARMと同様、IPベンダーであるImagination Technologiesが開発したセキュリティ手法は、OmniShieldと呼んでいる技術であり、コンテナと呼ぶ部屋が最大255室ある。それぞれセキュリティの高い部屋と低い部屋を用意しておき、しょっちゅう使う部屋はセキュリティレベルが低く、データを絶対にセキュアに保ちたい部屋は高くする。

半導体チップ上には、CPUGPU、メモリ、周辺回路などがあるが、超高集積のLSIだと仮想化技術を使って、1チップなのに複数のシステムLSIが集積されているように見せかけることができる。この仮想化技術を使えばSoC1CPU1GPU1+メモリ1+周辺回路1)、SoC2CPU2+GPU2+メモリ2+周辺回路2)、SoC3、、、、というように多数のSoC(システムLSI)が集積されているように見えるチップを設計できる。SoC1はセキュリティをかけずにウェブブラウジング専用で使い、SoC2はカギを格納するセキュアなデータ演算機能として使う、といった使い方を行うことができる。

そのためのカギはTLBTransaction Lookaside Buffer)という物理アドレスと論理アドレスを対応させた情報を格納するメモリを用意し、そのアドレスを二重化する。さらに、セキュアなTLBとセキュアではないTLBを分け、認証するためのセキュリティ制御回路RoTRoot of Trust)が認証を制御する。

 

ファイヤーウォールで隔離

 クルマ用のマイコンに強いルネサスは、セキュアな部屋とセキュアではない部屋の間にファイヤーウォールを設け、認証されたデータだけを通すという仕組みを考えている。クルマを大きく分けると、情報系コンピュータと制御系コンピュータといえるが、外部とインターネットなどでつながるケースは情報系から通信モジュールを通して外部のインターネットとつながっていることが多い。このため、インターネットとつながる情報系と、情報系のデータを元にブレーキをかけたりアクセルを強めたり、モーターの回転でハンドル回転を支援したりする、制御系との間にファイヤーウォールの壁で隔離する(図2)

Fig6Renesas.png

 

図2 情報系からはファイヤーウォールを設けて制御系へ入る 出典:ルネサスエレクトロニクス

 クルマのコンピュータはECU(電子制御ユニット)と呼ばれ、1台のクルマに何十個も搭載されている。制御系ECUでは、アクセル動作に関係したECUやワイパー用のECU、インフォテインメント用のECU、エンジンの最適なタイミングで点火させ、有害ガスの排出を激減させると同時に燃費を改善させるECU、など様々なECUがクルマの各所に分散配置されている。ECUには、マイコンと呼ばれる半導体を搭載しており、それぞれの機能を実現し性能を上げている。

  例えば自動ブレーキシステムでは、情報系のECUではカメラやミリ波レーダーで前方に人やクルマを認識し、制御系ECU(エンジン制御やボディ、車両系など)につながって、ブレーキをかけている。情報系ECUが前方の物体にぶつかりそうだと判断すると、ブレーキを掛けろという指令を制御系のECUに送り、ECUからブレーキパッドを締め付けるためのモーターを駆動し、止まることができる。このため、ネットとつながっている情報系と、クルマの基本動作に係わる制御系を分離することがクルマでは重要になる。その分離技術については詳しくは語らない。

 ルネサスはIoT向けのデバイスでもセキュアにするため、暗号キーの格納場所をよりセキュアにした。これまではセキュリティ用の暗号キーを、フラッシュメモリ回路に入れていたが、暗号発生回路のあるセキュアな部屋の中にフラッシュメモリを設け、そこに暗号キーを格納することで、よりセキュアにした。トラステッドセキュアIPと呼んでいる。乱数発生器による鍵生成情報と、チップ製造時のユニークID情報を使って暗号キーを作成するとしている。この暗号キーはOTPなどのメモリではなく、ロジックで組んでいるという。ルネサスは強固なセキュリティを容易に設計するためのツールも提供する。今後ルネサスは、自社のマイコンにこの暗号化技術を拡大していくとしている。

  ハードウエアでのセキュリティの確保は、これまでのソフトウエアだけのID/パスワード方式よりもより厳しい。とはいえ、ハッカーはセキュリティを突破することが楽しみだからこそ、いつかは破られる。しかし、何もしなければ家のカギをかけていない状態と同じことなので、侵入しやすい。少しでも破りにくいシステムにすることはやはり常道であろう。

(2016/09/05)