メディア

組み込み機器のセキュリティを確保せよ!

ネットワーク対応機器は、常にセキュリティ上の脅威にさらされている。悪意を持った第三者により、やり取りするデータが盗聴/改ざんされるリスクと常に隣り合わせなのだ。組み込み機器もその例外ではない。さらには、チップ自身が備えるデータや情報を直接盗み出そうとする者もいる。組み込み技術者にとっても、セキュリティ対策は極めて重要な課題となったのである。

» 2006年10月01日 00時00分 公開
[Warren Webb,EDN]

 現代社会では、組み込み機器が至るところに浸透し、それぞれが重要な役割を担っている。そうした機器がセキュリティの面で脆弱であると、大きな事故が発生する可能性がある。製造、医療、輸送、金融、軍事などの分野では、高い安全性が要求されるミッションクリティカルなシステムが数え切れないほど存在する。組み込み機器は、人間が操作することなく、そうしたシステムを稼働させ続けてくれる。われわれは何も考えずに組み込みシステムに頼っているが、それらがいつクラッカー(ハッカー)や組織犯罪、テロリスト、敵対関係にある国の政府の標的になるとも知れない。そうした攻撃、つまりはクラッキング(ハッキング)からシステムを守れるか否かは、ひとえにシステム設計者の肩にかかっている。組み込み機器がやり取りするデータやその機器が記憶しているデータだけでなく、製品そのものが内包する知的財産も守らなければならない。

 従来は、組み込み機器を物理的に分離して保護することで、ある程度データのセキュリティを確保することができていた。しかし、高い相互接続性が要求される今日では、組み込み機器が備える重要なデータを盗んだり、あるいはそうした機器に対して不正な操作を行ったりといったことが、世界中のどこからでもできてしまう可能性がある。

 デスクトップ機器とは異なり、組み込み機器にはあらかじめあらゆるセキュリティ機能を組み込んでおかなければならない。組み込み機器の設計者は、犯罪に遭ってからセキュリティ対策のパッチを作成するなどという悠長な対応をとることはできない。組み込み機器のユーザーは、その機器を買ったときの状態で、数年間は正しく機能すると信じている。また、製品の寿命を縮めるリスクや、知的財産、重要な情報を失うリスクを犯してまで、機器を停止させ、再起動させることもない。現代社会では、「製品の企画から開発、生産、廃棄に至るプロセスを見越して一番に考慮しなければならないのがセキュリティである」ともいえよう。

 NIST(National Institute of Standards and Technology:米国標準技術局)のCSRC(Computer Security Resource Center)は、設計者向けに数多くのセキュリティ関連文書を公開している。それらの文書には、セキュリティポリシーの定義法、セキュリティを考慮した製品の設計手法、攻撃の種類、プログラマの教育法など、製品開発のライフサイクルで考慮すべき基本原則が書かれている。

 それによれば、最初にやるべきことは、セキュリティ対策を考える前に、保護する必要のあるデータ、あるいは機密情報を特定することである。設計の労力を最小限に抑えるために、重要なデータを減らす、あるいは排除するといったことも可能かもしれない。

 次にやるべきことは、攻撃者とその技術的レベルを想定することである。素人のいたずらくらいであれば簡単なパスワードで防げるかもしれないが、確たる意図を持った侵入者による被害を防ぐには、複数のセキュリティ対策が必要となる。

クラッカーとの闘い

 セキュリティを確保するための一番の方法は、ネットワークに接続されたシステムを物理的に外部から分離することだ。組み込みシステムとサーバーを、インターネットを介さずに同一ネットワーク上に配置できれば、セキュリティ上の問題はほとんど解決できる。このような分離方式が特に有効なのは、工場の制御など、業務が中断することで多額の損失が発生するケースである。

 インターネットへの接続時間を最小限に抑えることもクラッキングの防止に役立つ。データを交換する短い時間だけランダムに接続するようにすれば、検索ロボットによってシステムを特定される可能性も低くなる。しかし、組み込みシステムが一度クラッカーの標的にされれば、いかに接続時間を短くしてもいずれは不正なアクセスを許してしまうことになるだろう。

 クラッカーが、ポータブル製品をはじめとする組み込み機器そのものを盗み出すケースも考えられる。その目的は、その機器を解体し、高感度のテスト機器を使ってデータを取得することだ。その製品からメモリーを取り出して、格納された情報を取得することも可能だろう。さらには、デバッギングポートとソフトウエアを使って機密データを読み出したり、意図しない動作を強制的に実行させたりする可能性もある。情報を得るためなら、電磁波の監視や、温度、電圧、クロックの操作によってシステムを誤動作させるといったことさえやりかねない。

 機器の設計者は、重要な情報を守るために物理的な対策を講じる必要もある。こじ開けるために特殊な道具が必要となるような頑強な筐体にしておけば、ある種の攻撃を抑止できるだろう。筐体の内部に関しては、セキュリティの確保を念頭に置いてプリント基板を設計する必要がある。例えば、内部基板層に重要な信号が隠れているBGAパッケージであれば、プロービングやリバースエンジニアリングが行いにくい。化学薬品を使ってパッケージを除去しようとするクラッカーもいるが、特殊な樹脂や絶縁コーティング材を使えば、重要な内部回路を保護することができる。

セキュリティ標準

 米国、カナダ、そして欧州の一部の国は、システムのセキュリティに関する標準を確立すべく、「Common Criteria for Information Technology Security Evaluation(情報技術セキュリティ評価基準。通称Common Criteria)」を共同で作成した。Common Criteriaのウェブサイトでは、開発者向けにセキュリティに関するガイドラインと豊富な資料が提供されている。Common Criteriaそのものは、消費者、開発者、評価者が、標準保護プロファイルとEAL(evaluation assurance level)に基づいて製品のセキュリティ機能を判定できるように構成されている。

 もう1つの組み込みソフトウエア向けセキュリティ標準として、MILS(multiple independent levels of security)が挙げられる。MILSでは、リアルタイムOSをパーティションによって分離し、厳しいテストに基づいて安全性を検証する(図1)。メモリーが保護され、またリソースの可用性が保証されることで、安全なデータとそうでないデータを1つのプロセッサ上で管理することが可能になる。設計者はMILSのアーキテクチャにより、不正操作が不可能で、数学的に検証でき、システムによって常に呼び出すことが可能なセキュリティ機能を備えたアプリケーションプログラムを作成できる。

図1 MILSのアーキテクチャ 図1 MILSのアーキテクチャ MILSのアーキテクチャでは、カーネルやミドルウエア、アプリケーションコンポーネントなどがそれぞれ分離される。(米LynuxWorks社提供)

認証プロセスを組み込む

 システムのセキュリティを確保するためには、通常、ユーザーIDを検証する認証プロセスを利用する。組み込みシステムにおいても同様である。認証プロセスとしては、パスワード、指紋などの生体特性、スマートカードやスマートキーなどのセキュリティデバイスを組み合わせた方法が考えられる。例えば、米AuthenTec社のスライドセンサー「EntrePad 1510」を使えば、携帯電話機などのポータブル機器で指紋認証が行える。12mm×5mmの40端子BGAに格納されており、128×8ピクセルの検出マトリクスとパターンマッチング用のファームウエアが組み込まれている(図2)。

図2 EntrePad1510の機能ブロック図 図2 EntrePad1510の機能ブロック図

 クラッカーはさまざまな手口を使ってパスワードを盗み出す。どのキーが押されたかを目視や電子的手段で識別することもあれば、うまくだまして本人から聞き出すこともある。ローカルネットワークやワイヤレスネットワークでは、暗号化されないままパスワードが送られることが多い。そのため、インターネット上で簡単に入手可能なパケット取得プログラムによってパスワードを盗むことができてしまう。

暗号技術の活用

 組み込みシステムをインターネットなどのネットワークに接続する場合、設計者は暗号化によってデータを守ることを考えなければならない。暗号化方式によっては、有線、無線を問わず利用できる。現在主流となっている2種類の暗号化アルゴリズムは、いずれも秘密鍵と符号化シーケンスを組み合わせ、平文を暗号文(あるいはその逆)に変換するというものだ。2種類の暗号化方式とは、対称暗号化方式と非対称暗号化方式である。前者では、送信者と受信者が同じ鍵を使ってメッセージの暗号化と解読を行う。後者では、暗号化と解読にそれぞれ別の鍵を使う。非対称暗号化方式では公開鍵を利用するのが一般的で、2つの鍵のうちの一方を公開し、他方を秘匿しておく。暗号を用いたセキュリティシステムでは、鍵の配布方法とその秘匿性が最も重要である(別掲記事「『鍵』を守るためのオンチップ技術」を参照されたい)。

 TCP/IPをベースとしたネットワークでは、セキュリティプロトコルとしてSSL(secure sockets layer)が最も広く使われている。SSLでは、データの暗号化、サーバー認証、メッセージの完全性のチェック、さらにオプションでクライアント認証が行われる。SSLには128ビット版と256ビット版がある。このビット数は、いずれも暗号化された通信で用いられるセッションキーの長さを表す。キーが長いほど、暗号化されたデータの安全性が高くなるといえる。

 もう1つの暗号化標準であるIPSec(internet protocol security)では、ネットワーク層でセキュリティを確保する。IPSecに対応したソフトウエアをゲートウエイにインストールすれば、個々のネットワークノードに負荷をかけることなく、インターネットを介するすべてのトラフィックを保護できる。ほかの多くのセキュリティプロトコルと同様に、IPSecでも鍵とメッセージの交換方式が規定されている。IPSecの利用例としては、VPN(仮想プライベートネットワーク)がある。

図3 SpartanP630の外観と実装基板 図3 SpartanP630の外観と実装基板 

 機密性が最重要課題である軍事市場をターゲットとした製品として、米General Micro Systems社の「Spartan P630」が挙げられる(図3)。同製品は、メインの基板が6.5インチ×3インチ×0.5インチ(16.5cm×7.6cm×1.3cm)のセキュアなポータブルパソコンだ。

 同製品は、セキュリティを万全にするために、プリブートのアクセス制御機能とデータ暗号化機能を搭載している。それに加え、誰かがシステムを不正に操作しようとすると、ファイルを自動的に削除するソフトウエアが組み込まれている(同製品の詳細については、別掲記事「Spartan P630の仕様」を参照されたい)。

セキュリティ機能を利用した新たなビジネス

 セキュリティ機能の向上に伴い、機器メーカーはさまざまなビジネスモデルによって、より多くの顧客を獲得しようとしている。例として、顧客が安全性の保証されたネットワーク対応機器を受け取り、それを使い続ける限り(あるいは契約期間が終わるまで)料金を払い続けることを約束するというかたちの従量課金制システムが挙げられる。このビジネスモデルでは、顧客が支払いを怠った場合、ベンダーはネットワークに接続するためのコードを差し押さえることで、その機器の利用を無効にすることができる。強力なセキュリティ機能を用意しておくことで、顧客が不正に機器を利用したり、部品を取り外したりするのを防ぐことが可能になる。

 米Microsoft社が最近発表した「FlexGo」という従量課金制ビジネス向けのプラットフォームは、新興市場におけるパソコンの普及を狙って考案されたものだ。FlexGoでは、それぞれのシステムコンポーネントの利用状況が追跡される。顧客が利用可能時間のすべてを使い切る(あるいは利用期限日時になる)と、Microsoft社は顧客が追加時間分の料金を支払うまで、そのパソコンへのアクセスを制限する。また、システムを改ざんしようとする兆しが見えた場合も、その時点で使用を制限する。さらに同社はOSにセキュアなコンポーネントを追加することで、ソフトウエアの利用状況を管理できるようにしている。企業はFlexGoソフトウエア開発キットを使うことにより、Microsoft社から提供されるシステムを管理する独自の課金システムを構築し、自社の顧客に対して従量課金サービスを提供することができる。

図4 PureDigitalTechnology社のビデオカムコーダ 図4 PureDigitalTechnology社のビデオカムコーダ 

 セキュリティに配慮したスタンドアロンの組み込み機器として、米Pure Digital Technologies社が“使い切り型”のポケットサイズカムコーダを発売している(図4)。このカムコーダは約20米ドルでカメラ店やコンビニエンスストアで販売されており、最長20分の映像/音声を記録できる。同製品を返却し、その際にさらに12米ドル支払うことで、録画した動画をDVDにコピーしてくれる。同製品は、固定焦点レンズ、1.4インチのカラー液晶、スピーカのほか、データを記録、再生、削除するためのコントロールを備えている。

 このような製品はクラッカーの格好の標的となることが多い。実際、カムコーダを返却しなくてもビデオデータを抽出できるようにしようと企んでいる者もいる。しかし、大半のユーザーはそのような気を起こさなくて済むだけの十分なセキュリティ対策が講じられている。

 セキュリティ対策の必要性が、組み込み機器の基本的な設計目標を変えつつある。もはや設計者にとっては、操作が簡単で低コストの機器を設計することだけが重要な目標ではない。設計者は、厳しいセキュリティ要件を満たす必要がある。アプリケーションの実行時にシステムとデータを守るために、より高速で高性能のプロセッサ、安全なデータストレージ、不正操作が不可能なハードウエアを開発しなければならないのだ。

「鍵」を守るためのオンチップ技術

Kris Ardis 米Dallas Semiconductor/Maxim社

 「セキュリティ」と聞くと、「暗号化」のことを思い浮かべる人も多いのではないだろうか。トリプルDES(data encrypted standard)方式で暗号化されたコマンドだけを送受信する組み込みシステムであれば、一見クラッキングは困難に思われる。しかし、最新式のドアロックシステムとセキュリティシステムが配備された家を想像してみていただきたい。おそらく、頭の良い泥棒なら、複雑な方法を使ってその家のセキュリティシステムを破ろうなどとは思わないだろう。そうではなく、家主から鍵を盗むか、セキュリティコードを無理やり聞き出そうとするに違いない。組み込みシステムにも、これと同じ弱点がある。どれほど優れた暗号化方式であっても、暗号鍵を盗まれてしまえば何の意味もないのだ。

 鍵を守るには、まずその保管場所を考えなければならない。実は、組み込みシステムにおいて、鍵の保管場所として最も安全なのは、その鍵を実際に使用する場所である。つまり、組み込みシステムでは、暗号鍵をマイクロコントローラの内部に格納し、絶対にそこから持ち出せないようにするとよい。シリアルEEPROMや外部RAMといった外部メモリーに鍵を格納した場合、マイクロコントローラはそこから鍵を取り出さなくてはならなくなる。外部メモリーが鍵をそのままの状態でマイクロコントローラに渡す仕組みになっていたら、オシロスコープやロジックアナライザを使うことで、誰でもその鍵を盗み出せてしまう。

 また、オンチップのEEPROMやフラッシュメモリーも鍵の格納場所としては不適切である。マイクロコントローラのプラスチックモールドパッケージを取り除き、メモリーセルを丹念に調べつくすことでクラッキングできてしまうからだ。

 セキュリティが重要な意味を持つアプリケーションでは、鍵の紛失が大きな被害につながる。鍵を手にしたクラッカーが、何の妨げもなく金融ネットワークに潜り込み、偽者であることを検知不可能なIDカードを作ってしまうといったことが起こり得る。

 セキュリティ要件の厳しいアプリケーションは、ICの設計者にさまざまな課題を突きつける。そうした課題に対応した製品の1つに、Dallas Semiconductor社のマイクロコントローラ「DS5250」がある。同製品には、鍵のデータを格納するオンチップのストレージとして、電池をバックアップ電源とする不揮発性のSRAMが組み込まれている。このカスタム設計のメモリーは、オンチップ/オフチップの改ざん検知回路にリンクしており、改ざんが行われたと判断される状況が発生したら、すぐにデータが消去されるようになっている。

 温度検知器や電圧検知器といったオンチップセンサーの中には、異常動作を利用した攻撃に反応するものがある。例えば、マイクロコントローラが最大動作電圧の範囲外で動作しているときに、暗号化処理を失敗させて鍵データを盗もうとするクラッカーがいる。こうした攻撃に対処できるようになっている。

 ほかには、マイクロプローブによる攻撃を検知するオンチップセンサーもある。誰かがチップ上で配線を短絡/破断しようとすると、チップ最上層のシリコン膜が改ざん防止のために破壊し始めるのだ。あるいは、マイクロスイッチや光センサー、圧力センサーといった外部機構によってトリガーがかかる自己破壊用の入力ピンを備えたマイクロコントローラ製品も存在する。

 鍵を物理的に保護することも大事だが、論理的に保護することも同じくらい重要である。例えば、標準アルゴリズムを高速かつ安全に実行できる暗号化アクセラレータが組み込まれているマイクロコントローラ製品がある。そうした製品では、RSA方式の公開鍵の処理はミリ秒レベルで実行され、トリプルDESなど対称暗号化方式のアルゴリズムはマイクロ秒レベルで実行される。なお、ハードウエアアクセラレータはソフトウエアアルゴリズムよりもタイミング攻撃(演算時間を観測することで、暗号を推定する攻撃)に強い。なぜなら、鍵やデータの値に関係なく、一定のマシンサイクル数で演算が完了するからだ。また、電圧、温度などの変化に反応するハードウエア乱数ジェネレータが組み込まれたマイクロコントローラ製品もある。その仕組みにより、生成された鍵の値の推測/解読を不可能にしている。

 さらに、次のような仕組みを備えたマイクロコントローラ製品もある。まず、システムが最初に初期化される際に、マイクロコントローラがオンチップの乱数ジェネレータを使って鍵を生成する。システムはこの鍵を使ってプログラム空間を暗号化する。アプリケーションの実行時には、システムが暗号化された命令を復号化し、それらの命令をリアルタイムにオンチップキャッシュに格納する。この方法は、リバースエンジニアリングを困難にするとともに、クラッカーによる不正なコードの実行も防止する。

 セキュリティが重視されるアプリケーションには、それぞれに固有の課題がある。物理的、論理的なセキュリティ対策を念頭に置いてマイクロコントローラを設計することで、鍵の保護が必要なアプリケーションにとって、最も安全な基盤を提供することができる。

Spartan P630の仕様

 Spartan P630は、1.4GHzのPentium Mプロセッサ、最大2MバイトのL2キャッシュ、GPS(global positioning system)レシーバ、IEEE 802.11b/gに対応したワイヤレス通信機能などをポケットサイズの筐体に収めたものだ。電池寿命は6時間で、Windows XP、Linux、QNX、VxWorksなどのOSに対応している。

 カスタマイズも可能で、最大2GバイトのECC(error check and correct )メモリー、16Gバイトのブータブルフラッシュメモリー、最大60GバイトのHDD、液晶/タッチスクリーンを搭載できる。軍事用途を想定したものなので、もともと頑丈な作りだが、特に頑丈さが必要とされる場合には、チタンアルミニウム合金製の筐体を注文することも可能だ。

 同製品には、動作温度が−40〜85℃の伝導冷却式モデルと、0〜55℃の対流冷却式モデルの2種類がある。前者の価格は3400米ドル(100台購入時)からとなっている。


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.