セキュリティ対策の一つとして、暗号化は重要な役割を果たしています。情報を暗号化すれば、通信経路を盗聴されても、情報の中身が漏洩することはありません。暗号化を解くためには暗号鍵が必要であり、主要な暗号化方式を使用していれば、暗号鍵が盗まれることはまれだからです。
しかし思わぬ方法で情報を盗み出す攻撃があります。その攻撃の一つが「サイドチャネル攻撃」です。今回はサイドチャネル攻撃の概要について徹底解説します。
サイドチャネル攻撃とは
「サイドチャネル攻撃(Side Channel Attack)」とは暗号解読手法の一つです。暗号を処理しているコンピュータの物理的な特性を外部から観察あるいは測定することで、内部の情報の取得を試みる攻撃です。
暗号装置に対する攻撃手法には、対象の機器を破壊して解析する「破壊攻撃」と、破壊しないで解析する「非破壊攻撃」に分類されますが、サイドチャネル攻撃は非破壊攻撃の1つです。
サイドチャネル攻撃の仕組み
サイドチャネル攻撃のターゲットとなるのは、暗号機能を内蔵したICカードや暗号処理機能を組み込まれた半導体製品などです。それらの機器の内部で、暗号化や復号化を行う時の処理時間や消費電力の変化、外部に発生する電磁波、音、熱などの変動を測定し、重要な情報を盗み出します。
このように”サイドチャネル(情報の正規ではない入出力口)”を利用して機密情報を盗む手法であることから、サイドチャネル攻撃と呼ばれています。
サイドチャネル攻撃の種類
サイドチャネル攻撃は、利用する物理的特性によって、主に以下の6つの手法に分類されます。1つずつ見ていきましょう。
タイミング攻撃
タイミング攻撃とは暗号を処理する機器に対して様々な入力情報を与えて、処理時間の違いを測定して内部の秘密鍵を推測する攻撃です。例えば暗号化された情報を復号する場合、処理に時間が必要となりますが、処理時間の差を読み取ることで、暗号鍵を見つけ出そうとする攻撃もタイミング攻撃に含まれます。
故障利用攻撃
故障利用攻撃とは暗号化演算を故意に誤作動させることで、正常に作動させた時との結果の差異を解析する攻撃のことです。「フォールト解析攻撃」とも呼ばれます。
電力解析攻撃
電力解析攻撃とは、タイミング攻撃と同様に機器に複数の入力を与えて、その時に消費する電力の違いから暗号鍵を推測する方法です。1回の暗号化・復号化における電力の変動を分析することを単純電力解析と呼び、複数回の暗号化・復号化における電力の変動を分析することを差分電力解析と呼び区別します。
電力解析攻撃には解析用のソフトウェアも出回っており、IoT機器に備わっているセキュリティ機能に対して電力解析攻撃を仕掛けようとする動きもあるようです。
電磁波解析攻撃
電磁波解析攻撃とは、コンピュータや周辺機器、ケーブルから発生している弱い電磁波を傍受し、情報を不正に入手する攻撃のことです。電磁波盗聴攻撃やテンペスト攻撃と呼ばれることもあります。
キャッシュ攻撃
キャッシュ攻撃とは、キャッシュ付きCPUに対する攻撃のことです。キャッシュ付きCPUにおいて、データのキャッシュヒットの有無によりメモリアクセスの時間が異なることを利用することで、ブロック暗号に対してタイミング攻撃が可能になることを利用しています。
音声解析攻撃
音声解析攻撃とは、コンピュータが演算する時に発生するノイズを分析することで、処理内容を推測する攻撃のことです。音響解析攻撃と呼ばれることもあります。
サイドチャネル攻撃とテンペスト攻撃の違い
サイドチャネル攻撃とテンペスト攻撃はどちらも機器の物理的な特性を利用して情報を盗む手法ですが、明確な違いがあります。
テンペスト攻撃はパソコンのディスプレイやLANケーブル、USBケーブルなどから発生する弱い電磁波を傍受して、情報を盗聴する攻撃のことです。一方、サイドチャネル攻撃は”暗号解読”を目的とした攻撃手法です。これは厳密に言うと”盗聴”を目的とするテンペスト攻撃とは異なります。
例えばLANケーブルから発生する電磁波をテンペスト攻撃で傍受されても、暗号化されていれば情報の中身を知られることはありません。テンペスト攻撃は電磁波の受信は行いますが、復号処理を行わないからです。
しかしテンペスト攻撃では、パソコンの画面の表示内容やキーボードで打ち込んだ情報などが知られる可能性があります。これらの情報は暗号化のしようがないため、平文のまま情報がやり取りされているからです。ただ、サイドチャネル攻撃の1つである「電磁波解析攻撃」のことをテンペスト攻撃と呼ぶこともあるようです。
サイドチャネル攻撃への対策方法
サイドチャネル攻撃に対してはどのような方法で対策すれば良いのでしょうか。対策方法として次の2つがあります。
機器を安全に管理し盗難されないようにする
まずサイドチャネル攻撃のターゲットとなる機器を攻撃者の手に渡らないようにすることが重要です。サイドチャネル攻撃は、その攻撃の特性上、ターゲットとなる機器を観察できる範囲内に必要とします。そのため機器の保有者がしっかりと保有している状態では、サイドチャネル攻撃を仕掛けることはできません。
つまり機器を安全に管理し、盗まれないようにすれば、サイドチャネル攻撃の被害にあうことはありません。
耐タンパー性のある機器を使用する
もう1つの対策方法として、耐タンパー性のある機器を使用することがあげられます。耐タンパー性とはコンピュターシステムの内部構造や保有している情報の解析を困難にする状態のことを指します。
耐タンパー性のある機器に対してサイドチャネル攻撃を仕掛けても、機器が攻撃を感知して、内部構造を自動的に破壊して情報を守ることができ、外部への情報漏洩を防ぐことが可能です。
まとめ
今回はサイドチャネル攻撃に仕組みや種類、そして対策方法について紹介しました。
サイドチャネル攻撃は攻撃対象の物理的な特性を利用して暗号を解読する攻撃です。攻撃者は直接ターゲットとなる機器に近づくことが必要なので、大型のコンピュータよりも、IoT機器やICカードなどのモバイルな機器にとって脅威となる攻撃手法です。
まずは情報資産として機器管理をしっかりと行い、耐タンパー性のある機器を使うなどのセキュリティ対策が必要です。