コンピューターのセキュリティを向上させるために、古くから暗号化が用いられてきました。この暗号化されたデータを解析しようとするサイバー攻撃として、サイドチャネル攻撃が知られています。サイドチャネル攻撃とは具体的には、どのような攻撃なのでしょうか。この記事では、サイドチャネル攻撃の仕組みや種類、そして対策方法などについて詳しくご紹介します。
サイドチャネル攻撃とは
サイドチャネル攻撃とは、暗号を処理しているコンピューターの特徴を外部から観察あるいは測定することで、内部情報を取得するサイバー攻撃です。本来の情報の入出力口ではない部分から情報の測定を実施することから、サイドチャネル攻撃と呼ばれています。
暗号処理しているコンピューターに対する攻撃には、対象のコンピューターを破壊する「破壊攻撃」と、破壊せずに解析する「非破壊攻撃」の2種類ありますが、サイドチャネル攻撃は非破壊攻撃に分類されます。
サイドチャネル攻撃は、主にプライベート鍵や秘密鍵の特定などのために実施されます。
情報の暗号化には、AESなどの強固なアルゴリズムが採用されおり、現状ではプログラムなどによる解析は困難とされています。しかしサイドチャネル攻撃は、ソフトウェア的な性質ではなく、電磁波などの物理的な特性を使って暗号化の解析を試みる攻撃です。つまりソフトウェア的に強力な暗号化が施されていても、サイドチャネル攻撃を受けると、解読されてしまう恐れがあります。
サイドチャネル攻撃の仕組み
サイドチャネル攻撃の対象となるのは、暗号機能を内蔵したICカードや半導体製品などです。これらの攻撃対象について、暗号・復号処理の際の処理時間や消費電力の変動、電磁波、音、熱などの変化を観測して特徴をつかみます。
回路内部の電流の変化に伴い生じる物理現象の時間変化を観測することで,回路中で処理されている演算やデータに関する情報を得て、内部の重要情報を盗み出します。
サイドチャネル攻撃の種類
サイドチャネル攻撃には、攻撃で使われる物理的な特性の違いにより、以下の5つに分類されます。
1つずつ詳しくご紹介します。
タイミング攻撃
タイミング攻撃とは、暗号処理装置に複数の入力を与えて、処理時間の差を読み取ることで暗号鍵を見つけようとする攻撃のことです。
暗号処理装置が暗号を復号するには、一定の処理時間を要します。この復号時の処理時間読み取りを繰り返すことで、正解の暗号鍵を見つけようとする攻撃がタイミング攻撃です。
フォールト解析攻撃
フォールト解析攻撃とは、暗号処理装置の演算に誤った動作をさせ、正常時との差異を解析する攻撃のことです。「故障利用攻撃」とも呼ばれます。
電力解析攻撃
電力解析攻撃とは、暗号処理装置に対して複数の入力を行い、消費する電力の違いを観測し、暗号鍵を推測する攻撃のことです。
1回の暗号・復号観測による分析を「単純電力解析」と呼び、複数回の観測による分析を「差分電力解析」と呼びます。
電力解析攻撃については、解析用のソフトウェアが広く出回っており、暗号処理装置だけでなく、さまざまなIoT機器のセキュリティ機能の解析を試みようとする攻撃者もいるようです。
キャッシュ攻撃
キャッシュ攻撃とは、キャッシュ付きCPUについて、キャッシュヒットのメモリアクセスの時間の差分を利用して解析し、タイミング攻撃と同様の手法によりブロック暗号の解読を行う攻撃のことです。
音声解析攻撃
音声解析攻撃とは、コンピューターが処理の演算を実行するときに発生するノイズ音声を分析して、処理内容を推測しようとする攻撃のことです。
音響解析攻撃と呼ばれることもあります。
サイドチャネル攻撃と似たテンペスト攻撃
サイドチャネル攻撃と似たサイバー攻撃として、テンペスト攻撃が知られています。
この2つはどちらも、コンピューターの物理的な特性を利用したサイバー攻撃ですが、攻撃の目的に大きな違いがあります。
テンペスト攻撃は、コンピューターのディスプレイなどの周辺機器や、USBケーブル、LANケーブルなどから発生する電磁波を解析して通信を盗聴しようとするサイバー攻撃です。
一方、サイドチャネル攻撃は、暗号処理装置から発生する情報の取得と暗号解読を目的としています。
例えば、テンペスト攻撃によりLANケーブルなどから発生する電磁波を傍受しても、その内容が暗号化されていれば、情報が漏洩することはありません。テンペスト攻撃の目的は、あくまでも電磁波の傍受であって、復号処理までは行わないからです。
しかし、ディスプレイに表示されている映像やキーボードで入力された情報は通常、暗号化のしようがなく平文のまま情報を発信しています。つまり、それらの情報をテンペスト攻撃によって解析されてしまうと、その情報がそのまま攻撃者に知られてしまうことになります。
このような特徴から、テンペスト攻撃のことを「電磁波解析攻撃」と呼ぶことがあります。なお、この電磁波解析攻撃をサイドチャネル攻撃の種類の一つであると考える方もいるようです。
サイドチャネル攻撃への対策方法
サイドチャネル攻撃への対策方法はいくつかあります。
まず、ターゲットとなる暗号処理装置を攻撃者が観測できる場所に置かないことです。サイドチャネル攻撃は、攻撃者がターゲットとなる暗号機器の側にいることを必要とします。つまり暗号機器を入退室が管理された機械室などで管理できれば、サイドチャネル攻撃が仕掛けられることはなく、暗号解読のリスクを減らせます。
例えばクレジットカードに保存されているデータに対して、サイドチャネル攻撃を仕掛ける場合、攻撃者はそのクレジットカード自体を手に入れなければなりません。逆に言えば、クレジットカードが盗まれなければ、サイドチャネル攻撃は確実に防げます。
さらに万が一、暗号処理装置が盗まれたとしても、サイドチャネル攻撃を防げる対策もあります。それが耐タンパー性です。
耐タンパー性とは、コンピューターなどの暗号処理装置やICカードなどの内部構造や保有している情報の解析を困難にさせる状態のことです。もし耐タンパー性を持つ機器に対して、サイドチャネル攻撃を仕掛けた場合、その機器が攻撃を感知すると、内部構造を自動的に破壊して情報の漏洩を防ぎます。盗難に遭ったICカードに対するサイドチャネル攻撃の対策として、耐タンパー性は非常に効果的です。
まとめ
サイドチャネル攻撃の仕組みや種類、対策方法についてご紹介しました。サイドチャネル攻撃の特徴として、暗号処理装置の解析と解説しましたが、ターゲットとなる機器の特性を利用するため、通常のコンピューターよりもIoT機器やICカードなどの持ち運びできる小型の機器にとって大きな脅威となります。サイドチャネル攻撃の対策としては、重要情報が保存されている機器の管理を徹底して、耐タンパー性を持たせることが有効です。