セキュリティキャンプでJTAGの講演を行います
セキュリティキャンプの講師をやらせていただくことになりました。
今年から創設されたフィジカルトラックというところで、「JTAG(ジェイタグ)の原理と活用」というテーマで講演させていただきます。
下記のページの
https://www.ipa.go.jp/jinzai/camp/2018/zenkoku2018_program_list.html
のページのD5の講義です。
JTAG(ジェイタグ)はいわゆる「工場出荷時の検査モード」で、ほぼすべて(概ね32bit以上の組み込みCPUを含めて)のハイエンドなCPUやFPGAに備わっています。これを使うと、CPUを強制的にデバッグモードに入れて動作をオーバーライドし、本来のプログラムとは違うプログラムを走らせることができたり、FPGAに書き込まれている回路とは異なる動作をさせることができます。しかも、ROMを書き換えず痕跡を残さずに・・ このように便利なテストモードですが、ハッキングの手段としても使うことはできるので、市場に出る製品では無効にされていることも多いでしょう。本講義ではそんなJTAGの原理と波形の解説をはじめ、組み込み機器でよく使われているARMプロセッサ(具体的にはRaspberry Pi3やそこら辺のルータ)やFPGAをターゲットに、LSIの内部構造へアクセスする簡単な実習を行います。
どんな講義にするかはまだ未定なのですが、1コマ3時間くらいしかないので、基本的な説明は事前課題で勉強してもらうことになると思います。
講義本番の時間では、手近なRasPiなどのマイコンボードをJTAGアダプタにして、JTAGのプロトコルを喋らせて、CPUの内部のデバッグ用レジスタのアクセスしたり、FPGAに書き込んだりして、皆で遊びます。
JTAGの低レイヤーのプログラムは講師が事前に用意しますので、参加者がゼロから作る必要がないようにします。参加者は「どのデバッグレジスタに何をするか」という、JTAGの中ではアプリケーション層といえる部分をいろいろ試してもらいたいと思います。
実際に手を動かして試して、CPUやFPGAの中をいじくって、解説して、可能ならばセキュリティを破る、そんなゆるいセミナーにしたいと思います。
| 固定リンク


コメント