バックナンバーはこちら

today&tomorrow

What's New in DesignWare IP?

2018 Mar. vol.109

脅威モデルとリスク・アセスメントによるデバイスのセキュリティ要件定義

セキュリティ実装

脅威アセスメントで見つかったリスクに対する最善の軽減方法を決定するには、1つ1つの実装においてコストとメリットのトレードオフを考慮する必要があります。 セキュリティ対策のレベルはソフトウェアによる対策、ハードウェアによる対策、強化型ハードウェアによる対策の3つの保護メカニズムに大別されます。

ソフトウェアによる実装は、多くのセキュリティ脅威に対処できます。公認された暗号化アルゴリズムと試験済みのプロトコル実装を使用することで、基本的な保護性能が得られます。 ROMを起点としたソフトウェア・ベースのセキュア・ブート・プロセスにより信頼性の高い環境を構築し、ここでバリデーション済みのアプリケーション・コードを実行します。 セキュアなコーディング・ガイドラインやファズ・テストを導入するなどのソフトウェア開発プロセスは、望ましくない脆弱性の混入を防ぐのに役立ちます。 これらの方法は実装が最も簡単でコストもかかりません。しかし同時に、低コストで簡単に突破できます。

暗号化アルゴリズムをハードウェアで実装すると性能が向上するだけでなく、セキュリティも強化されます。 これは、隔離されたハードウェア環境を構築し、暗号キーとデータを観察されないようにすることで実現します。 複数階層の暗号キー(キーラダー)を使用したRoot of Trust(信頼の起点)をベースにした完全なハードウェア・セキュア・モジュールは、すべての重要な資産をリモート攻撃から隔離します。 ハードウェア・ソリューションを実装するとシリコン面積が大きくなりますが、より高い保護性能要求を満たすことができます。
強化型ハードウェア・セキュリティ機能は、差分電力解析(DPA)やタイミング攻撃などのセキュリティ脅威への耐性を高めます。 また、特殊な故障注入手法にも強化型のハードウェア機能で対処できます。これらの手法は実装が更に困難で、対抗手段の有効性を確認することも困難です。

SoCデザイン例

図3は、シンプルなIoT機器向けSoCのアーキテクチャ概略図を示したものです。この図中で、番号の付いた矢印はSoCに対するさまざまな脅威および攻撃を表しています。 以下、これらの各番号で示した脅威/攻撃の内容と、それに対する推奨セキュリティ対策をまとめます。

  • プログラム・メモリーを悪意のあるブートローダー、オペレーティング・システム、アプリケーションで置き換える。
    (対策)セキュアなブート・プロセスを実装し、実行可能コードはすべて妥当性を検証してから実行します。 最初のブート・コード、およびこれら検証に使用する暗号キーは書き換えできないようにしておく必要があります。
  • プログラム・メモリーからソフトウェア・アルゴリズムまたはその他の知的財産を盗み取る。
    (対策)セキュアなブート・プロセスを実装し、コードを暗号化して格納します。復号化したコードはセキュアなローカル・メモリーに格納してから実行するようにします。
  • メモリーからユーザー・データを盗み取る。
    (対策)ユーザー・データまたはその他の資産をソフトウェア(性能が求められる場合はハードウェア)で実装した暗号化アルゴリズムで暗号化し、攻撃者がメモリーから読み出せないようにします。
  • システム・バスから暗号キーを読み出す。
    (対策)ヒューズを切断するか、プログラミング制御によってJTAGなどのデバッグ・アクセス・ポートを無効にします。 再び有効にする場合は必ずセキュアなプロセスを使用し、重要なセキュリティ・パラメータをすべて破棄してからアクセスを許可するようにします。
  • 外部通信の傍受またはリプレイ。
    (対策)ネットワーク・トラフィックをTLS(Transport Layer Security)または同等のテスト/検証済みプロトコルで暗号化します。 暗号化により、エンドポイント間を移動するデータの傍受を防ぎます。 また、ネットワーク上でのパケットのリプレイを防ぐため、TRNG(真性乱数生成器)を使用してランダムなセッション・キーを生成することも重要です。
  • コード脆弱性を突いて他のアプリケーションや資産にアクセスする。
    (対策)メモリー領域を分離して保護するように設計されたCPUを使用することで、アプリケーションとデータを不正なアプリケーションから隔離できます。

画像

図3:IoT SoCに対する脅威と攻撃

シノプシスはハードウェア・セキュリティIP、ソフトウェア暗号化ライブラリ、セキュア・ブートSDKを包括的にラインナップしており、これらコンポーネントを事前統合済みのサブシステムとしてもご提供しています。 また、シノプシスは「セキュリティを考慮した設計(Secure by Design)」のベスト・プラクティスを開発プロセスに取り込むための完全な開発およびテスト・ツールも取りそろえています。

まとめ

現在多く存在するセキュリティ脅威はますます巧妙化しており、サービスの妨害や重要な資産の盗難などが発生しています。 セキュリティとトラストは後付けでは対応できないため、エコシステムの設計時点で組み込んでおく必要があります。セキュアなエコシステムを設計するには、まず個々のデバイスをセキュリティ保護する必要があります。 これは、デバイスを制御するSoCのアーキテクチャにセキュリティ機能を含めることによって実現します。 設計エンジニアには、適切な保護レベルを選択し、コスト効率よく堅牢な製品を構築することによって各種攻撃のリスクに対処することが求められます。

詳細情報

カテゴリートップ