web-dev-qa-db-ja.com

「低電圧障害攻撃」で実際に何が起こるか

さまざまなプロセッサに実装されている暗号アルゴリズムに対する攻撃であると理解していますが、どのように機能しますか? オンラインペーパー は複雑すぎて理解できません。

enter image description here

29
Ulkoma

「障害攻撃」は、一部のハードウェアで行うものです。

  • それはあなたの肉体の手にあります
  • しかし、侵入に対して保護されています(「改ざん防止」)。
  • そして、あなたは知らないけれどもしたい値(「暗号鍵」)を使って計算を行います。

そのようなハードウェアの例は スマートカード です。典型的なシナリオは次のようになります。衛星TVデコーダー用のスマートカードがある。放送局への通常のサブスクリプションを通じてカードを入手した。そのカードの3000枚のコピーを作成して、無料/安いテレビが欲しい人に再販できるようにしたいとします。人々はそれをします。

フォールト攻撃とは、シールドされたハードウェアに環境を変更することで問題を引き起こすことです。たとえば、カードの公称動作温度を超える温度のオーブンでカードを実行しようとします。攻撃者の希望は、カードが失敗したときに何が返されるかを分析することで、カードに格納されている秘密の値について何らかの洞察を得ることができることです(もちろん、カードの計算内容とそのカードでの実装方法に非常に固有です)。 低電圧障害攻撃は、ハードウェアに通常よりも低い電圧を供給することによって障害が引き起こされる障害攻撃です(「スマートカード」モデルでは、カードには独自のCPU、RAMおよびROMがありますが、電流信号とクロック信号は外部から提供されます。つまり、攻撃者の制御下にあります)。たとえば、カード3.3Vを期待すると、2Vしか与えられません。本当のトリックは、攻撃者がアルゴリズム実行の特定の部分で障害を引き起こすために、非常に短い期間、数クロックサイクルだけ電圧を下げることができるということです。

44
Thomas Pornin

これはローカル攻撃であり、暗号アルゴリズム自体への攻撃です。基本的に、低電圧では、暗号化アルゴリズムをあいまいにしてキーに関する情報を漏らすために0と1を区別するのが難しいという事実を利用しています。

これは、デバイスの電力レベルを変更できると同時に、暗号化されたストレージを安全にロードして実行するシステムを必要とするため、使用が制限されます。これは、非常に限られた状況です。これは主に、フォレンジックタイプのセットアップで、または電力を維持できる盗難されてログインしたデバイスで使用されます。攻撃が機能するための鍵は、秘密鍵が復号化または暗号化操作に使用されている必要があるが、攻撃者が他の方法でアクセスできないようにすることです。暗号化および復号化ソフトウェアに制御された方法で強制的に障害を発生させることにより、秘密鍵に関する情報を特定できます。

これは機能します。故障点を制御すると、値が1または0のどちらであるかに基づいて、異なる動作の変化が発生するためです。0は電圧の不在によって表され、1は存在に基づいています。電圧の場合、一部の1は0として読み取りを開始します。これにより、条件の値が1であるというエラーが発生しますが、条件の値が0である場所ではエラーが発生しません。

これらの障害のパターンを使用して、暗号化プロセスに使用されているキー、またはこの場合、キー自体ではなく暗号化された元のプレーンテキストに関するいくつかの限られた情報を取得し、断層。彼らは、暗号化がプレーンテキストの特定を可能にする方法で正しく行われるのを防ぐことで、実験的にプレーンテキストを回復することができました(実際にはキーやキーの詳細を漏らす必要はありません)。暗号化を何千回も再実行してかなり成功しましたが、攻撃後にデバイスが正常に機能する方法で攻撃を実行できたため、監視されていない物理的なアクセスがあると、潜在的に秘密にされる可能性があります端末。

17
AJ Henderson