📜

【論文紹介】Microsemi FPGAビットストリームのリバースエンジニアリング

2023/01/04に公開

せっかくなので読んだ論文を紹介(要約?)していこうと思う.自分のメモ書きに毛が生えたものなので内容の正確性や解説までは期待しないように.
著作権のことはよくわからないので,公開されてる論文であっても画像引用などはとりあえずしないようにする.


今回の論文

  • Title: Bitstream Reverse Engineering of Microsemi’s VersaTile-based FPGAs
  • Authors: The affiliated Institute of ETRI(韓国)
  • Where: IEEE International Conference on PHYSICAL ASSURANCE and INSPECTION of ELECTRONICS (PAINE)
  • Year: 2021
  • URL: https://ieeexplore.ieee.org/document/9707700

要約

  • Microsemiのビットストリーム暗号化はサイドチャネル攻撃で破れることが報告されている.
  • しかしビットストリームの内容はリバエンされてない.
  • ProASIC3(不揮発)やIGLOO2を100&リバエンできた
  • おもしろポイント:これ系の先行研究はほとんどXilinxを対象としていた.Microsemiの一番のポイントは不揮発FPGAであること.外付けROMがいらないのでセキュリティ上のメリットがあると言われてきたが,ビットストリームのサイドチャネル攻撃できるっぽい.本論文はビットストリームの内容のリバエンなのでまあやればできるという内容だがちゃんとやったのはすごい.FPGAのセルもXilinxとは全然違う構成なのは知らなかった.

1. Introduction

  • ビットストリーム暗号化はサイドチャネル攻撃で破られてきている.[4-8]
  • ビットストリームのリバエンも可能(おそらくビットストリームフォーマットは公開されてない?)
    • ビットストリームを改ざんしてトロジャンを埋め込んだりセキュリティを回避できる[9-17]
  • 先行研究の多くはXilinxがターゲット
  • Microsemi ProASIC3にバックドア見つかる[7]
    • これくらいしかMicrosemiの研究はない

2. Background

A. FPGA Bitstream Reverse Engineering

  • 各エレメントによるビットストリームへの影響を調査
    • 調査に基づいてビットストリームの位置と値をデータベース化
  • Xilinx FPGAを対象とした先行研究ではXDLとXDLRCファイルが鍵となる
    • XDLはテキストベースのネットリスト
    • XDLRCはFPGAエレメントの全情報が入ったリスト
    • [26]で初めてXDLがリバエンに利用され[27]でXDLRCにより改良された.
    • ほか[18, 28, 19, 29]

B. Architecture of Microsemi VersaTile-based FPGAs

  • FPGAはPLPs (Programmable Logic Points)とPIPs (Programmable Interconnection Points)とほかのnon-programmableな素子で構成される.
  • MicrosemiのProASIC3, IGLOOとFusionはVersaTileと呼ばれるPLP構成(図2(a))
    • Xilinxのスライスとは全然違う
    • 32個のスイッチ
  • PIPはホップ数(何枚離れたタイルとつなぐか?)で分類される(図2(b))
    • UFL (ultra-fast local)
    • ELL (efficient long-line)
    • HSL (high-speed very-long-line)

C. Dissimilarities in Bitstream Analysis

  • Xilinxの組み合わせ回路はLUTでできるので,総当たりがリバエンに有効?
  • VersaTileはLUTじゃないのでこのような方法をとれない.
  • どのスイッチでどの論理回路になるかあいまい.またすべてのスイッチの組み合わせが有効なわけではない.
  • XLDやXDLRCに相当するファイルもない

3. Bitstream Abalysis of Microsemi FPGAs

A. Bitstream Analysis Methodology

  • リソースファイルなしでリバエンする手法を提案.4ステップからなる
    • Step1. Analysis Model: 仮定や観測に基づいて,ターゲットとなる素子のモデルを立てる.
    • Step2. Bitstream Generation & Analysis: ビットストリームを生成してモデルを分析
    • Step3. Evaluation: モデルとビットストリームの位置と値が一致するかを評価.一致すればOK.だめならStep4でModel Examination

B. VersaTile Bitstream Analysis Model

  • 上記の手法に基づき,ビットストリームの32ビットがあるVersaTileの32のスイッチに対応していることがわかった.(図3)
    • 4入力を使うか使わないかで4ビット(GND)
    • 入力を反転させるかで10ビット(NDS)
    • 残り18ビットで論理回路(LBS)(表1)

C. Logic Gates from VersaTile Analysis Model

  • 例えばどんふうになるかが書いてある?

D. UFL Routes in Bitstream

  • UFLはX1/X2/X3入力とF2出力をつなぐ.
  • 単純に3ビットで使うか使わないか選択.(図4)

E. Correlations between connected VersaTiles

  • VersaTileには出力反転がないため,続くVersaTileの入力反転に影響を与える?(図5)

4. Bitstream Reverse Engineering

A. Bitstream Position Estimator

  • FPGAは規則的な構造であるため,ビットストリームも規則的になっているだろう.
  • アルゴリズム1のように位置を推定

B. Bitstream Patterns of VersaTiles and UFL Routes

  • いろいろやり方が書いてあるけど割愛

C. Reverse Engineering VersaTiles and UFL Routes

  • 提案手法に基づいてデータベースを構築し,リバエンしてみたらエラーなしでできた.
  • LFSRをリバエンした結果っぽいのが図6にあるが,まーよくみないとわからない.多分あってるのだろう.ルーティングはすべてUFL

考察/アイデア

  • 結論にも書いてあるけどUFL以外のルーティングは抽出できてない?
  • 不揮発FPGAは外付けROMがいらないのでセキュリティ上メリットだとされてきたが,どうもそうでもないみたい.

Discussion