IEEE Spectrunの2015年2月号にハードウェア版トロイの木馬の記事があります。
2007年にシリアのレーダーが航空攻撃の警告に失敗した時、システムのチップにバックドアが組み込まれていたのではと噂されたそうです。記事では、そのようなバックドアをチップに混入させないために、現在研究中の方法が紹介されています。
現在は、情報を厳しく管理することでトロイの木馬の混入を防いでいるが、私たちの研究がうまくいけば、そのようなことを気にしないでチップを作ることができるようになる。さらに言えば、トロイの木馬が内部にあってもチップを使う方法を提供できる。
スプリット・マニュファクチャリング
記事で紹介されている半導体チップでのトロイの木馬を防ぐ方法は、一言でいうと半導体チップを製造するファウンドリを複数に分けるというものです。例えば、最初のファウンドリでは、トランジスタ層と金属配線の第一層のみを製造し、残りの金属配線は別のファウンダリで製造します。最先端で高度な製造能力を持っている海外のファウンドリは部分的に利用し、残りは別の(例えば国内の)ファウンドリで製造するといった分業を行います。
スプリット・マニュファクチャリングの課題
コスト
ファウンダリを分けるとコストが跳ね上がることは容易に想像できます。記事でも言及されていますが、コストが大幅に増して物流プロセスも複雑になりそうです。
トロイの木馬を発見できたとして、どう対処するか
トロイの木馬の発見方法としては、配線層間に組み込んだ抵抗変化型メモリとトランジスタ層の回路でプログラマブルなチェッカーを構成し、動作を監視する方法などが検討されていあす。チェッカーをプログラマブルにすることで、どのようなチェックをしているかをトロイの木馬から隠して半導体チップの動作を監視できるとしています。このような方法は、バックドアのような攻撃を検出することはできるかもしれませんが、それによって発生する事故までを防ぐことはできないかもしれまえせん。
デザイン段階で入れられたトロイの木馬
スプリット・マニュファクチャリングは、製造過程でのトロイの木馬の混入は防止できるかもしれませんが、デザインの設計段階で入れられたトロイの木馬は防げません。
感想
コスト面だけを考えると、場合によっては複数のファウンドリで同一デザインから半導体チップをそれぞれ製造し、それらのチップの動作の多数決をチェックしたほうが安上がりな気がしないでもありません。
デザイン段階でトロイの木馬が入り込む可能性としては、
- サードーパーティから購入したIPコア
- 外部に発注した機能モジュール
などが考えられます。可能性だけで言えば、社内で設計したデザインにもトロイの木馬が混入する可能性があります。サードパーティーのIPコアは、多くが暗号化されてブラックボックスになっています。このため、仕様書やインターフェース以外からIPコアの詳細動作を知ることはできません。ただ、IPコア側からも、どのような半導体チップに組み込まれるかの詳細は知らされていない場合も多く、ある意図を持ってシステムの動作に問題を引き起こすトロイの木馬を仕込むのは至難の技でしょう。
最近の大規模な半導体チップは非常に複雑になっているので、開発中の半導体チップの全貌を把握してる人はごく僅かです。このため、設計データが最終的にファウンドリの製造に流れるまでの各チェックポイントで、コンピュータを使ってデータの正当性が厳密にチェックされています。人間が読めるような最初のソースコード段階から最終的な製造データに落としこまれるまでには、複数のEDAベンダのツールが使われ、形式チェックなどが各ポイントで行われます。これらの機械的なチェックをくぐり抜けて、「通常は正しく動作しているが、あるトリガで問題を引き起こす」ようなトロイの木馬を入れるのは至難の技でしょう。トロイの木馬を入れるというコストがどの程度なのか想像もつきません。