メディア

つながる時代のセキュリティ、チップと組み込みOSの連携で守る組み込みソフトウェア技術(2/4 ページ)

» 2012年11月08日 13時12分 公開
[David Kleidermacher,Green Hills Software]

信頼基盤を担うハードとソフト

 エレクトロニクスシステムにおけるセキュリティの第一歩は、ユーザーに対して次のような確証を担保することである。すなわち、あらかじめテスト済みの既知のファームウェアあるいはソフトウェアだけが常に動作しており、製品供給や据え付けの過程で不正なアクセスを受けていないという確証である。ここで、セキュアな初期状態を確立するための動作を、一般に「セキュアブート」と呼ぶ。

 エレクトロニクスシステムでは通常、一連のファームウェアが順次実行されてセキュアな初期状態が確立される。その際にCPUは、製造工程でROMに焼き込まれた小規模なブートローダーを最初に実行する。セキュアブートは一般に、何かしらのハードウェアベースの信頼基盤に基づいており、この場合はROMを製造後に改変することが不可能だという事実が信頼基盤を担う。

 このROMローダーは次に、さらに複雑な機能を備えた第2階層のブートローダーを起動する。この第2階層のブートローダーは、内蔵フラッシュメモリに格納されることが多い。そして通常は、第2階層のブートローダーがメインOSを立ち上げて、次にそのOSが組み込みアプリケーションを始動させるという順番になる。

 一般的なセキュアブートでは、この一連のファームウェアを構成する各コンポーネントがそれぞれ信頼できるもの(出所が明らかで、安全が担保されているもの)であることを検証しておく。もし仮に、これらのコンポーネントのどこかに不備があれば、セキュアな状態は成立し得ない。

 第1階層のブートローダーには、第2階層のブートローダーのデジタル署名を検証するための暗号化キーを事前に書き込んでおく必要がある。このキーはROMローダーのイメージ自体に組み込まれる場合もあり、その際には、一度書きこんだら書き換え不可能な(ワンタイムプログラマブルの)ヒューズ素子を利用したユーザープログラマブル領域に書き込んだり、あるいは高度な改ざん保護が可能なローカルTPM(Trusted Platform Module)領域に保存したりする。いずれにしても、ブート用の検証キーはハードウェアベースの信頼基盤に保持しておく必要がある。

 署名キーは、一連のブート処理において、第2階層のブートローダーの真正性を確かめる証明役を果たす。従って、ハードウェア的に保護された領域にも、本物であることがあらかじめ判定されている署名(known-good signature)を保存しておかなければならない。第2階層のブートローダーを検証する際の対象として、それ自体の実行可能なイメージに加えて、known-good signatureと、もし用意されていれば第3階層の署名検証キーも対象として含まれる。

 この検証を処理する一連の工程の長さは、システムごとに異なり、一意には定まらない。システムの複雑度が高いケースでは非常に長くなったり、場合によっては検証済みのコンポーネントをツリー状に組み上げてTCB(Trusted Computing Base、信頼できるコンピュータ処理基盤)を形作ったりすることも珍しくはない。

図2 図2 セキュアブートのためには、プラットフォームの最終的な制御を担うOS/ハイパーバイザに至るまで、ファームウェアの一連のコンポーネントを検証することが求められる。

 なおコンピュータセキュリティ用語としてのTCBは、次のような意味を持つ。すなわち、システムを構成するコンポーネントのうち、セキュリティに不可欠であり、それゆえに信頼できることが求められる、ソフトウェアとハードウェアの両方のコンポーネントを指す。図2に、3つの階層にわたるセキュアブートの処理工程を示した。

 エレクトロニクス製品にセキュアブートを採用すれば、ファームウェアの改ざんを狙った攻撃に対して耐性を確保できるだろう。しかし攻撃者から見れば、悪意のある偽のファームウェアをインストールするという余地が残されている可能性がある。それによって例えば、外観上は正規のスマートメーターのまま、その機能を差し替えて、エンドユーザーのエネルギー消費情報を悪意のあるWebサイトにひそかに送信する“詐取ユニット”に仕立て上げることも不可能なわけではない。

 それゆえに、ユーザーによっては、製品がセキュアブートを採用していたとしても、良品確認済み(known-good)のTCBで動作しているという確証を追加で要求することがあるだろう。それに応える際に、管理ネットワークに接続されるエレクトロニクスシステムであれば、リモート認証を利用することが可能だ。

 あらゆるエレクトロニクスシステムに簡単に実装できる方法としては、次のようなものがある。つまり、公開鍵暗号を使うIKE/IPsec(Internet Key Exchange/Internet Protocol Security)やSSL(Secure Sockets Layer)を相互認証モードで利用し、リモート検証サーバとセキュアな通信(チャネル)を確立するという方法だ。

 これらのプロトコルの内部では、エレクトロニクスシステムの身元(真正性)を保証する秘密キー(プライベートキー)によってデータに“署名”し、次に証明役がそのデータを認証する。当該システムのセキュアブートの過程で検証されたTCBが、秘密キーと、セキュア通信プロトコルのクライアント側ソフトウェアを有していれば、証明役はそのシステムが正規のファームウェアを実行していることの保証を得る。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.