暗号実装と通信プロトコルへの攻撃
暗号実装と通信プロトコルへの攻撃は、暗号アルゴリズムそのものを破るのではなく、暗号を実装した機器の物理的な振る舞いや、プロトコルの設計上の弱点を突いて秘密情報を得る攻撃である。代表例はサイドチャネル攻撃とタイミング攻撃、そして通信プロトコルの弱点を突く攻撃である。試験では、攻撃が何を観測し、どの仕組みを悪用するのかを区別できるかが問われる。
サイドチャネル攻撃の仕組み
サイドチャネル攻撃は、暗号処理を行う機器が処理に伴って外部へ漏らす情報を測定し、その情報から機器内部の秘密情報を推定する攻撃である。観測する対象は、処理時間、消費電力、消費電流、電磁波、さらにはエラーメッセージの出方などである。暗号の数学的な強さに頼らず、機器の実装の癖を利用する点が特徴である。
暗号化装置の消費電力を測定し、統計処理によって秘密情報を推定する攻撃も、この分類に入る。暗号化の途中で消費される電力は、処理する値に依存して変わることがある。そのため、測定と統計処理を重ねると、内部の鍵に関する情報が浮かび上がる。
同じ考え方は、ほかの観測量にも当てはまる。処理中の装置が発する電力や時間の情報を使い、内部の秘密情報を推定する問題は、装置の種類によらず出題されやすい。
IoT機器の場合も、機器が処理中に発する電磁波を測定して秘密情報の取得を試みる攻撃は、サイドチャネル攻撃に当たる。機器が小型で外部から観測しやすい場合ほど、この種の攻撃は現実的な脅威になる。
攻撃者は、機器の物理的な振る舞いを測定するために、機器の近くに置いた測定器や、処理の応答時間を計る仕組みを用いる。そのため、サイドチャネル攻撃への対策は、暗号アルゴリズムの選択だけでなく、機器の設計と実装の段階で測定に現れる差を減らすことが重要になる。
タイミング攻撃と定時間処理による対策
タイミング攻撃は、秘密情報の値によって処理時間が変わることを利用し、処理にかかる時間の差から秘密情報を推定する攻撃である。対策の基本は、秘密情報の違いによって演算の処理時間に差が出ないようにすることである。これを定時間処理と呼び、演算アルゴリズムに必要な処理を追加して、どの入力でも処理時間がそろうように設計する。
この節の続き
- 通信プロトコルへの攻撃(POODLE)
- 試験で問われやすい区別
ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。
アプリでこの節を読む