next up previous contents
Next: III.3.2 タイミング解析 Up: III.3.1 故障利用解析 Previous: III.3.1.5 ElGamalへの適用

III.3.1.6 故障利用解析の対策

本節では故障利用解析の実現可能性と対策についてまとめる.

以上説明してきたように故障利用解析は,攻撃者が望む一過性の故障を ICカードに的確に与える必要がある.

故障利用解析では,鍵などの情報を保持しているメモリの物理的な位置の把握と 改竄が必要となる.耐タンパーデバイスに対してこのような高度な改竄が可能で あるならば,同様にプローブ解析なども不可能ではないと思われる. また,故障利用解析ではICカードを利用できる状態に保ったまま攻撃を行わなけ ればならないため,いくつか技術的課題をクリアしなければならない. たとえば,レーザ照射などはカードにチップが搭載された状態のまま行えなけれ ばならない.また,その他の技術的課題をいくつか挙げると

  1. 故障発生の手段
    放射線やレーザ照射といった故障発生手段には専用の設備が必要となる.
  2. 不可逆障害の影響
    Bihamらの故障非差分攻撃では,暗号アルゴリズムの利用するメモリに 不可逆的な障害を与えているが,暗号アルゴリズムのコードが中間デー タの保持にワークメモリを利用している場合,他のアプリケーションに も影響が及ぶ.
  3. 故障の発生のタイミング
    一過性の故障を適切なタイミングで,適切な時間(数$\mu$秒)だけ発生させなければ ならない. 耐タンパーデバイスへのクロックが内部で供給されている場合,困難が 伴うと思われる.
  4. 攻撃位置の特定
    配線の多層化やアドレススクランブルなどが行われている耐タンパーデ バイスに対して攻撃すべきRAMやROMの位置を的確に把握する技術が必要 である.
  5. 故障の発生方法
    たとえばチップが多層である場合,破壊的な解析では上層を除去するこ とで対応できるが,故障利用解析では上層に障害を与えることなく目的 の箇所を操作できる必要がある.
  6. メモリの特性
    ECC (Error Correcting Code)メモリが使われることは稀であるが,RAMや PROMやEEPROMなど書き込み可能なメモリについてはパリ ティチェック機能がある.
  7. クロック/電圧/温度変動
    現在のICカードには,クロックや電圧や温度等の動作環境検知回路を搭載し, 異常を検出したならばカードを停止あるいは使用不能にする機能を もったものもある.

対策としては,プローブ解析への対策と同様の対策が有効である. 外界からの影響を取り除くため, 周波数検知回路,電圧検知回路,温度検知回路などを搭載し, 誤動作を引き起こす異常な環境での使用を許さないなどの対策 が必要である. また,レーザによる任意の回路形成や破壊などを防ぐには 多層配線など耐タンパー技術が有効である.

内蔵プログラムに関しては,故障利用解析は 内部状態や中間データを保持するメモリへの攻撃を行うため, その処理固有のワーク領域の使用を避けることも有効であ る.ワーク領域を共有することにより,特定の処理以外に も改竄の影響を波及させ,正常なICカードとしては利用で きなくする効果もある.

共通鍵暗号に関しては,鍵スケジュール部の処理を 事前に行い拡大鍵を保持する方法よりも,旧来のRAM領域の少ない ICカード等で用いられていたon-the-fly鍵生成の方が解析が困難となる. 拡大鍵をROMに保持することは避ける方が望ましい.

また,実装についてICカード設計者は,RAMの若いアドレス に重要な情報を配置する傾向があるとの指摘がある [And96].後方のアドレスはスタック領域として用いられ るため,自ずと前方に変数などが配置されることが多いと 思われるが,安全性を高めるために対応が望まれる.