バックナンバーはこちら

today&tomorrow

Technology Update

  • T&T HOME
  • Technology Update
  • IoTエッジ・デバイスのセキュリティ・ガイド~シリコンからソフトウェアまで

2017 May Spring vol.106

IoTエッジ・デバイスのセキュリティ・ガイド~シリコンからソフトウェアまで

シノプシス シニア・スタッフ・エンジニア Ruud Derwig

プロセッサ・レベルの保護メカニズム

ここまで述べてきた方法でセキュアなブロックと非セキュアなブロックを分離する以外にも、プロセッサにセキュリティ拡張機能を追加して改ざん、フォールト検出、サイドチャネル攻撃、リバース・エンジニアリング、IP盗難を防ぐことができます。

改ざんおよびフォールト検出を防ぐには、メモリーおよびプロセッサ・レジスタの完全性をチェックするプロセッサ機能を有効にします。パリティ・ビットとハミング符号を使用すると、LEDまたはレーザー照射による改ざんなどで反転したビットを検出できます。プロセッサのセキュア実行特権レベルを最高レベルに引き上げると、第三者によってメモリーまたはレジスタが改ざんされた場合でも、信頼された例外ハンドラが適切な対策を実行できます。エラーの量と頻度に応じて、1つのトランザクションを中止することもできます。あるいは、より深刻な攻撃を受けた場合には機密情報であるすべての鍵データをレジスタおよび(永続性)メモリーから削除できます。その他の種類の改ざん攻撃については、マスク不能な割り込みラインを改ざん検出センサーに接続し、機器のエンクロージャが開閉されたり温度/電圧レベルが許容範囲を超えたりした場合に割り込みを生成させることができます。最後に、セキュアなウォッチドッグ・タイマを追加し、タスクの実行時間が通常より長くないか、あるいは信頼性の高いソフトウェアの実行が停止していないかを一定間隔でチェックしてDoS(サービス拒否)攻撃を防ぐこともできます。ウォッチドッグ・タイマがタイムアウトになるとプロセッサはリセットされ、最初のセキュアなルート・オブ・トラスト・ソフトウェアからもう一度実行を開始します。ウォッチドッグのタイムアウトによるウォーム・リブートを検出すると、この信頼性の高いソフトウェアはデバイスに過大な負荷を与えているペリフェラル・インターフェイスを無効にするなどの対策をとるか、最近感染したマルウェアによって攻撃が行われている場合は信頼性の高いソフトウェア・イメージを回復することができます。

サイドチャネル攻撃に対しても、プロセッサ・レベルでいくつかの対策をとることができます。たとえばデータ依存による命令タイミングのばらつきをなくすというのもその1つです。これは、0による乗算をそれ以外の値による乗算と同じ実行時間になるようにしたり、分岐する場合としない場合でタイミングに違いが出ないようにしたりするものです。さらに、プロセッサの電力プロファイルもなるべく平坦になるように設計することが必要です。ただし、電力プロファイルを完全に平坦にできるとは限らないため、たとえば命令実行時の消費電力とタイミングを演算によってランダム化するといった対策をプロセッサ・ハードウェアに追加することも必要となります。このようなセキュリティ対策を追加すると演算サイクルが増大し、消費電力が大きくなりますが、ソフトウェアの最も重要な部分にのみランダム化を適用するようにすれば、全体的な消費電力の増加を最小限に抑えることができます。

最後に、リバース・エンジニアリングおよびIP盗難への対策について見てみます。アプリケーションのコードとデータを保護する手法としては、暗号化とスクランブル処理が以前から広く使われています。これらの手法はメモリーに対して適用するものですが、プロセッサのその他の要素にも適用できます。図5に、命令暗号化を利用したプロセッサ・パイプラインの例を示します。このように命令を暗号化したプロセッサ・パイプラインでは、命令は実行直前に復号化されるため、復号化した命令がメモリーやレジスタに格納されることがなく、非常に強力な保護が可能です。

図5:パイプライン暗号化

図5:パイプライン暗号化

図5の例では、フェッチ・ステージと実行ステージの両方に復号化ロジックを含めることにより、電力効率に優れた3段パイプラインへの実装を可能にしています。プロセッサ・パイプラインで復号化がインライン実行されるため、使用するアルゴリズムの複雑さとロジック深さを最小限に抑えることができます。

暗号化とスクランブル処理はデータ・メモリーにも適用できます。データは読み書きの両方が可能なため、暗号化と復号化の両方が必要です。データ自体を暗号化する以外に、メモリー内での位置を変更(アドレス・ラインを並び替えてデータを格納)するという保護方法もあります。これらすべての手法とMPUによるアクセス制御の保護機能を組み合わせると、それぞれの手法が相互に作用して強力な多層セキュリティ・ソリューションを構築できます。

カテゴリートップ