Security

CODE BLUE 2017レポート(DAY2前篇)

More than 1 year has passed since last update.

こんにちは、ひろかずです。
昨日に引き続き、CODE BLUE 2017のDAY2をレポートします。

5階では各種コンテストが催されているとのことです。
年々新たな取組がなされていますね!

お品書き

  • "商用ホワイトボックス暗号方式" に対する "鍵回復攻撃"
  • LG vs. Samsung スマートTV: あなたを追跡できるのはどちら?

=== 今回はここまで ===

  • インサイドShell:.NETハッキング技術を応用したPowerShell可視性の向上
  • 国産IT資産管理ソフトウェアの(イン)セキュリティ
  • Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes -
  • OSSによる自動車の自動運転化

"商用ホワイトボックス暗号方式" に対する "鍵回復攻撃"

アン・サンファン - Sanghwan Ahn -

イントロダクション

商用のホワイトボックスソリューションでは、攻撃はなかなか成功しない状況だった。
サイドチャネルアタックを使って、攻撃に成功(鍵回復)した。
この成功は初めてである。

アプリケーションセキュリティは2fa等様々な方式で保護されている
鍵はハードウェアに格納されている
システムの保護が不十分であれば、メモリから鍵情報を抜くことができる
データが暗号化されても、鍵がメモリに格納されているので、情報は読み取れる。

ホワイトボックス脅威モデル

攻撃者は

  • バイナリを完全に見える
  • 暗号アルゴリズムにアクセスできる
  • 実行環境を完全に制御できる
  • 何度もクエリを事項できる

信頼できる実行環境(TEE)は、ほぼ安全だがサポートされるデバイスは少ない
ホワイトボックス暗号(WBC)は、学術レベルの実装は破られているが、商用WBCへの攻撃成功は事例がない

ハードウェアにあまりにも依存するのは危険。
WBCはアプリケーションレベルで実装されるべき。

ホワイトボックス暗号は、データだけでなく、アルゴリズムそのものも暗号化されている。
攻撃者は、何処に鍵があるのかわからず、抽出することも困難。

鍵とデータ、0-255の数字でスクランブルかけた(Sbox)ものがTboxになる。
通常のAES暗号と同じオペレーションが使われる。
テーブルベースのAES暗号実装では、Tboxを通じて暗号化が行われる。
Tbox(すなわちSbox)が破られると、鍵の復号化が可能になる。

ホワイトボックスAES実装は、外部の入力値をエンコードし、デコードすることができる。

多数Tboxを用意する(Lookup Table)ことで、攻撃者が鍵を解読することを更に困難にできる。

既存の攻撃

table-decomposition
全てのTboxを分散関数で計算し、鍵を抽出する手法がある。

power anakysis(電力解析)
電力消費と途中の計算結果を基に、シミュレートされたデータを比較する手法
もっとも強力
保護されていないAES暗号は、途中計算結果の直列が0,1で表現される。
機密データと1バイトの256鍵推測の消費電力との相関で、鍵を抽出することができる。

fault analysis
中間データを変更して、誤りを発生させる

既存の研究

ソフトウェアの実行トレースを観察することで、リバースエンジニアリングなしでプリミティブを読み取ることができる

商用のWBC実装を対象にした攻撃

実装方式は2つ

  • シンプル暗号モード(パフォーマンス重視)
  • コンプレックス暗号モード(複雑さ重視)

ラウンド演算解析

  • シンプル暗号モードでは、ラウンド演算パターンを見出すことはできなかった。

テイント解析

  • データフローと使われたコードから解析する。
  • シンプル暗号モードにて、平文トレースでは簡単に暗号プリミティブを見る事ができた。
  • 可視化するとただのfor文の繰り返しに見えた
  • シンプル暗号モードでは、鍵を抽出することができた。
  • コンプレックス暗号モードでは無理だった

fault analysis

  • コンプレックス暗号モードでは何処に失敗を注入するかわからないので、使えなかった
  • リバースエンジニアリングを通じて、失敗を注入することができ、その出力結果から鍵を復元することができた

まとめ

WBCは強力でコストパフォーマンスに優れるので、考慮点としては

  • マスター鍵を流用しない
  • 鍵をハードコートしない
  • IVを固定しない

そして、外部エンコードを利用して、電力解析とfault analysisを使えないようにする
WBベース公開鍵アルゴリズムを使用する
コード、データの完全性

デバイスバインディングについては、研究が行き届いていないので、調査が必要。

LG vs. Samsung スマートTV: あなたを追跡できるのはどちら?

イ・サンミン - Sangmin Lee -

いろいろあって書けませんでした!
内容は資料を参照してください!

続きます!