IT用語集

サイドチャネル攻撃とは? わかりやすく10分で解説

水色の背景に六角形が2つあるイラスト 水色の背景に六角形が2つあるイラスト
アイキャッチ
目次

サイドチャネル攻撃とは?

サイドチャネル攻撃は、暗号アルゴリズムそのものを数学的に破るのではなく、実装や実行環境が外部に漏らす副作用(サイドチャネル)を観測して秘密情報を推測する攻撃です。代表例として、暗号処理の処理時間、消費電力、電磁波、CPUキャッシュの挙動などが挙げられます。暗号方式が理論上安全でも、実装や機器の作り方によっては秘密鍵や内部状態の推測につながる余地が残ります。

特に注意したいのは、サイドチャネル攻撃が「暗号の理論」ではなく、実装・ハードウェア・OS・共有実行環境・物理環境の問題として成立し得る点です。ICカードやIoT機器、決済端末、HSMのように鍵を長く扱う装置では、対策の優先度が上がります。一方で、すべてのシステムが同じ条件で狙われるわけではなく、実際のリスクは資産価値、観測しやすさ、処理の繰り返し回数、攻撃者の足場によって変わります。

サイドチャネル攻撃のイメージ

サイドチャネル(副経路)とは

暗号処理は、理想化すれば「入力→演算→出力」で完結します。しかし実機では、演算に伴って時間差、電力変動、電磁波、メモリアクセスの癖など、さまざまな情報がにじみ出ます。こうした本来の出力以外の観測可能な情報が副経路です。

副経路は、装置の外側から測る物理的なものだけではありません。CPUキャッシュ、分岐予測、共有資源の使われ方のように、マイクロアーキテクチャ上の挙動が観測できる場合も、攻撃の足掛かりになります。

なぜ「暗号が安全」でも漏れるのか

暗号アルゴリズムの安全性は、理想化された前提のもとで議論されます。ところが実装では、秘密情報に応じて分岐が変わったり、参照するメモリ位置が変わったり、処理時間や電力の波形に差が出たりすることがあります。攻撃者はその差を統計的に集めて、鍵や内部状態の候補を絞り込みます。

つまり、暗号方式の選定だけでは十分ではありません。サイドチャネル攻撃への対策は、実装品質、機器設計、実行環境、運用管理を合わせて考える必要があります。

サイドチャネル攻撃の歴史

サイドチャネル攻撃の研究は1990年代に大きく進みました。まずタイミング解析が知られるようになり、その後は電力解析、電磁波解析、キャッシュ攻撃などへと対象が広がっています。現在では、ICカードや組み込み機器だけでなく、サーバーや共有実行環境でも論点になる分野です。

サイドチャネル攻撃の特徴

  • 暗号アルゴリズムが強固でも、実装や環境の弱点から成立し得る
  • 装置の近くで測る物理系だけでなく、同一ホスト上の別プロセスや共有CPU資源を悪用する手法もある
  • 成立には条件が必要で、対象、ノイズ、測定回数、攻撃者の位置取りに大きく左右される

他の攻撃手法との違い

暗号解析は、アルゴリズムや数学的性質の弱点を突く攻撃です。これに対してサイドチャネル攻撃は、装置・実装・実行環境が漏らす情報を突きます。また、ネットワーク攻撃のように通信内容を直接盗聴しなくても、機器の振る舞いを観測することで秘密情報に迫れる点が異なります。

サイドチャネル攻撃の種類

サイドチャネル攻撃は、何を観測するかによって大きく分かれます。実務で押さえておきたい代表例は次の通りです。

タイミング攻撃

タイミング攻撃は、処理時間の差から秘密情報を推測する攻撃です。分岐の有無、テーブル参照の違い、キャッシュヒット/ミスなどが時間差として表れる場合に成立します。対策の基本は、秘密情報に依存した時間差をできるだけ作らないコンスタントタイム実装です。

電力解析攻撃

電力解析攻撃は、消費電力の変動から演算内容を推測する攻撃です。ICカードや組み込み機器のように、電源ラインに近い場所で測定しやすい対象では現実味が増します。対策としては、マスキング、ブラインディング、ダミー演算、電力変動を読み取りにくくする設計などが検討されます。

電磁波解析攻撃

電磁波解析攻撃は、機器から放射される電磁波を測定し、演算の特徴を読み取る手法です。対策は、シールド、基板レイアウトの工夫、ノイズ対策、測定しにくい構造づくりなど、ハードウェア設計と実装の両面で考える必要があります。

故障利用(Fault)攻撃

故障利用攻撃は、電圧、クロック、レーザーなどで故障を誘発し、正常時と異常時の差から秘密情報を推測する手法です。厳密には「観測」だけでなく故障注入を伴う能動的な攻撃ですが、実務ではサイドチャネル対策とあわせて論じられることが少なくありません。対策としては、エラーチェック、冗長計算、耐タンパー性を意識した設計が有効です。

キャッシュ攻撃(マイクロアーキテクチャ系)

キャッシュ攻撃は、CPUキャッシュの挙動やアクセス時間の差を利用して、処理の内部状態を推測する攻撃です。共有資源がある環境で問題になりやすく、同一ホスト上の別プロセスや、場合によっては共有実行基盤上でも論点になります。対策はコンスタントタイム実装に加え、プロセス分離、SMTの扱い、コア固定、キャッシュ分割、仮想化基盤での隔離設計など、環境面まで含めて検討します。

音声・熱などの物理チャネル

音や熱の変化を手掛かりにする研究例も報告されています。一般的な業務システムで直ちに主要論点になるとは限りませんが、高価値な鍵を扱う装置では、観測手段の幅を狭く見積もらないほうが安全です。

サイドチャネル攻撃が成立する条件

  • 観測できる副経路が存在し、秘密情報と何らかの相関を持っている
  • 攻撃者が十分な測定回数と解析能力を確保できる
  • 対象が同様の秘密処理を繰り返し実行する
  • ノイズ、隔離、監視などの防御が不十分である

「攻撃者が必ず装置の近くにいなければならない」とは限りません。物理的な近接測定が前提になる手法もありますが、キャッシュ攻撃のように、同一ホストや共有実行環境で成立する可能性があるものもあります。そのため、論点を物理セキュリティだけに限定すると見落としが出ます。

サイドチャネル攻撃で起こり得る被害

  • 秘密鍵が推測され、暗号通信の解読やなりすましにつながる
  • 署名鍵が漏えいし、正規の署名を偽造される
  • 機器が改ざんされていなくても、外部から情報を抜き取られる
  • 共有基盤上で一部の処理だけが狙われ、原因特定が難しくなる

被害の大きさは、漏れた情報の価値と再利用のしやすさで決まります。特に、長期間使う鍵、広い範囲で共用する鍵、署名や認証の中核となる鍵は、漏れたときの影響が大きくなります。

サイドチャネル攻撃から身を守るための対策

対策は「実装」「機器」「運用・環境」の3つに分けて考えると整理しやすくなります。暗号方式の更新だけで済む問題ではないため、どの層で何を抑えるかを切り分けることが重要です。

実装面の対策(ソフトウェア/ファームウェア)

  • コンスタントタイム実装で、秘密情報による時間差やアクセス差を減らす
  • マスキング、ブラインディング、乱数化などの耐解析技術を使う
  • エラーチェックや冗長計算で故障利用攻撃への耐性を高める
  • 実装レビューや評価で「理論上安全」ではなく「測っても漏れにくい」状態を確認する

機器・ハードウェア面の対策

  • 耐タンパー性を備えたデバイスやHSMを利用する
  • シールド、ノイズ対策、電源設計の見直しで観測しにくくする
  • 鍵を扱う領域を物理的に隔離し、測定や改ざんの難度を上げる

運用・環境面の対策

  • 鍵の寿命、ローテーション、用途分離を見直す
  • 共有環境では、重要処理を専用ホストや専用領域に寄せる
  • 保守経路、設置場所、持ち出し制御、点検手順を整備する
  • 脅威モデルに応じて、どの資産をどこまで守るかを明確にする

対策の優先順位をどう決めるか

すべての機器に同じ強度の対策を入れる必要はありません。まずは、どの鍵が長期間使われるか、漏えい時の影響が大きいか、攻撃者が観測しやすいかを整理します。そのうえで、署名鍵、認証鍵、決済関連の鍵、外部に持ち出されやすい端末内の鍵から優先して対策するのが現実的です。

「新しい暗号方式に替えれば終わり」という誤解

サイドチャネル攻撃は、暗号方式を更新しただけでは解決しません。実装や実行環境が副経路を漏らしていれば、別のアルゴリズムでも問題は残ります。対策の中心は、あくまで実装品質と環境設計です。

企業が最初に確認したいポイント

  • どの機器・ソフトウェアが秘密鍵や署名鍵を保持しているか
  • その鍵がどのくらい長く使われるか
  • 物理的に測られやすいか、共有環境で動いているか
  • コンスタントタイム実装や耐解析設計の有無を確認できるか
  • 障害時や保守時に鍵周辺の保護が崩れないか

サイドチャネル攻撃は、すべての環境で同じように差し迫った脅威になるわけではありません。ただし、鍵の価値が高く、処理が繰り返され、観測条件を満たしやすい環境では、後回しにしにくい論点です。自社に関係あるかどうかは、資産の棚卸しと脅威モデルの確認から判断します。

よくある質問(FAQ)

Q. サイドチャネル攻撃は暗号が弱いから起きるのですか?

いいえ。暗号アルゴリズムが強固でも、実装や実行環境が副経路を漏らすと成立し得ます。

Q. 攻撃者は必ず装置の近くにいる必要がありますか?

手法によります。物理測定が前提のものもありますが、キャッシュ攻撃のように同一ホストや共有実行環境で成立し得るものもあります。

Q. どんな機器が狙われやすいですか?

ICカード、IoT機器、決済端末、HSMのように、鍵を長く扱う機器は特に注意が必要です。

Q. 一番基本的な対策は何ですか?

秘密情報に依存した時間差やアクセス差を作りにくい実装にすることです。代表例がコンスタントタイム実装です。

Q. 電力解析攻撃はPCでも起きますか?

可能性はありますが、現実的な成立条件は対象や測定条件に強く依存します。近接測定しやすい組み込み機器などのほうが問題になりやすい傾向があります。

Q. キャッシュ攻撃はどう防げばよいですか?

コンスタントタイム実装に加え、重要処理の隔離、共有資源の扱いの見直し、実行基盤側の分離設計を組み合わせて考えます。

Q. 物理セキュリティはどこまで重要ですか?

測定や故障注入を伴う手法では重要です。設置場所、保守手順、持ち出し管理も防御の一部になります。

Q. 「新しい暗号方式」に変えれば解決しますか?

それだけでは不十分です。副経路は実装や環境から漏れるため、実装品質と環境設計の見直しが欠かせません。

Q. サイドチャネル攻撃は検知できますか?

一部の異常を捉えられる場合はありますが、検知だけで防ぎ切るのは難しい場面があります。高価値資産では、成立しにくい設計を優先したほうが安全です。

Q. 企業で最初にやるべきことは何ですか?

鍵を扱う資産と用途を棚卸しし、どの資産がどの副経路にさらされるかを整理したうえで、実装・機器・運用のどこを優先的に強化するか決めることです。

記事を書いた人

ソリトンシステムズ・マーケティングチーム