サイドチャネル攻撃

読み:さいどちゃねるこうげき / 英語表記:side-channel attack

暗号処理を行う装置の消費電力、処理時間、電磁波などの物理的な情報を測定し、装置内部の秘密情報(暗号鍵など)を推定する攻撃。

イマシルちゃんの解説

金庫のダイヤルを回すとき、正しい番号のところで「カチッ」って小さな音がする……なんて話、聞いたことないかな?
金庫を壊さなくても、音を聞くだけで番号がわかっちゃうんだ。

サイドチャネル攻撃は、まさにこれ!
暗号を計算している機械の電気の使い方や、計算にかかる時間をこっそり測って、
中にしまってある秘密の鍵を当てちゃうんだ。暗号そのものは破らずに、横道から攻めるんだよ!

より深い解説

定義

サイドチャネル攻撃は、暗号のアルゴリズムそのものの弱点を突くのではなく、暗号を実装した装置が動作するときに漏れ出す物理的な情報(サイドチャネル情報)を観測して、秘密鍵などを推定する攻撃である。ICカード、スマートフォン、暗号モジュールなどが対象になる。

主な種類

攻撃利用する情報内容
電力解析攻撃消費電力暗号処理中の消費電力の変化を測る。単純電力解析(SPA)と、多数の測定を統計的に処理する差分電力解析(DPA)がある
タイミング攻撃処理時間入力によって処理時間がわずかに変わることを利用する
電磁波解析攻撃電磁波装置から漏れる電磁波を測る。ディスプレイなどの電磁波から表示内容を盗むテンペスト攻撃も、この仲間
故障利用攻撃誤った出力電圧の変動やレーザー照射などで、わざと計算を誤らせ、その結果から鍵を推定する
キャッシュ攻撃キャッシュの状態CPUのキャッシュへのアクセス時間の違いから、ほかのプロセスの秘密情報を推定する
音響解析音装置の動作音やキーの打鍵音から情報を推定する

なぜ情報が漏れるのか

例:暗号の計算で、鍵のビットが1のときだけ、ある処理(乗算など)を行う実装の場合

消費電力の波形や処理時間を観測すると、鍵のビットの並びがそのまま読み取れてしまう。

対策

対策の基本は、秘密の値によって、外から観測できる振る舞いが変わらないようにすることである。

対策内容
処理時間の一定化鍵の値にかかわらず、同じ時間で処理が終わるように実装する(定数時間実装)
消費電力の平準化ダミーの処理を加えたり、回路を工夫したりして、電力の変化を小さくする
マスキング処理する値に乱数を混ぜ、観測した値と秘密の値の関係を隠す
電磁波の遮蔽装置をシールドで覆う
異常の検知電圧や温度の異常、光の照射を検知したら、処理を止めたり、秘密情報を消去したりする

外部からの物理的な解析や改ざんに対する耐性を耐タンパ性といい、ICカードや暗号モジュールに求められる。

ほかの攻撃との区別

攻撃内容
サイドチャネル攻撃装置の物理的な情報から、内部の秘密情報を推定する
キーロガー利用者のキー入力を記録して盗む
スミッシングSMSで偽のサイトに誘導して、情報を盗む
中間者攻撃通信経路の途中に入り込み、通信を盗聴・改ざんする

消費電力などの物理量の測定から秘密を推定する、という点が、サイドチャネル攻撃を見分けるポイントである。

実際の試験ではここに出る!

この用語が出てくる記事

↑