信頼できる自由なLinux対応セルフホスティング64ビットRISC-Vコンピューター
(contrib.andrew.cmu.edu)信頼できて自由なLinux互換セルフホスティング64ビットRISC-Vコンピューター
動機
-
目標: 完全に信頼できるFree/OpenSourceコンピューターを構築すること
- ハードウェアとソフトウェアシステムのあらゆる動作が、完全に公開されたHDL(ハードウェア記述言語)とソフトウェアソースに由来すること
- コンパイラと関連ツールチェーンもFree/OpenSourceである必要があり、そのコンピューターシステム上でビルドおよび実行可能でなければならない
- つまり、セルフホスティング可能なFree/OpenSourceハードウェア+ソフトウェアスタックが必要
-
制約条件: シリコンファウンドリを所有または制御していないこと
- 独自ASICを製造できないため、FPGA上で「ハードウェア」構成要素を構築する
- FPGAのプログラミングとビットストリーム生成は、Free/OpenSourceツールを使って行う
-
信頼性の観点での利点:
- チップファウンドリはFPGAが何に使われるか分からず、「特権ビット」がチップ上のどこに配置されるかも分からない
- これは特権昇格ハードウェアバックドアの防止に役立つ
- FPGAは同一構成要素の規則的なグリッドで構成されているため、専用ASICよりも目視検査(化学的除去およびTEMイメージング)が容易
-
製造段階の攻撃対象領域の制限:
- 悪意あるソースおよび/またはツールチェーンを、ビルド可能なソースへと制限することで、信頼できる最終製品(配布されるハードウェア+ソフトウェアコンピューター)を作る
追加資料および初期実験
-
CReSCT 2020論文、スライドおよび発表: IEEE S&P 2020引用
-
CMU/SEI研究レビュー 2019 スライドデッキおよび発表
-
CERT/SEIにおける信頼できるコンピューティング作業に関する以前のスライドデッキ
-
lowRISCプロジェクト:
- 構成要素を対応するアップストリームプロジェクトへリベースしようとする取り組み
- このプロジェクトは非常に有用なリソースであり、構成要素の理解に大いに役立った
- ただし執筆時点ではクローズドなHDLツールチェーンに依存し、構成要素リストに独自IPモジュール(DRAMコントローラなど)を使用している
-
yoloRISC:
- RV64IMAC、Rocket-Chipベースの点滅デモSoC
- Lattice ECP5 5G Versa開発ボード向けにyosys/trellis/nextpnrを使用して構築
GN⁺の意見
- 自由なハードウェアとソフトウェア: このプロジェクトは完全に自由でオープンソースなハードウェアとソフトウェアの構築を目指す試みであり、信頼性と透明性を重視するユーザーにとって大きな魅力がある。
- FPGAの利点: FPGAを使うことでハードウェアバックドアを防ぎ、目視検査によって信頼性を高められる。
- ツールチェーンとIPモジュール: 現在、多くのプロジェクトがクローズドなツールチェーンと独自IPモジュールに依存しており、完全なオープンソースを追求するうえで難しさがある。
- 技術的課題: セルフホスティング可能なFree/OpenSourceハードウェア+ソフトウェアスタックの構築は、技術的に非常に挑戦的な作業である。
- 将来の可能性: このプロジェクトは将来の信頼できるコンピューティングシステム開発に重要な貢献をもたらす可能性があり、オープンソースコミュニティに大きな影響を与えうる。
1件のコメント
Hacker Newsの意見
Hacker Newsコメントまとめ要約
FPGAのセキュリティ: FPGAの製造工程でハードウェアバックドアを仕込むことを防げる。システムが完全に停止することはあっても、正常に動作しているふりをしながら所有者を裏切ることはない。
FPGAの潜在的リスク: FPGAに隠されたCPUが存在する可能性があり、これはFPGAプログラムに対する完全な読み書きアクセス権を持ちうる。システムが人気を集めれば、製造工程からさらに多くの情報を得て特権ビットを見つける可能性が高まる。
オープンソースツールチェーンの使用: オープンソースツールチェーンを使い、RISC-Vソフトコアを動かすOrangeCrab FPGAでLinuxシェルにログインできるのは驚き。以前なら不可能だったこと。
VexRiscvとSpinalHDL: VexRiscvとSpinalHDLベースの設計を使っており、限られたSRAM(512KB)のためLinuxは動かしていないが、EthernetとHDMIをサポートしている。CGAに似たビデオアダプタをコーディングして、グラフィックとテキストモードをサポートしている。
DDCとTrusting Trust攻撃: Diverse Double-Compiling(DDC)によってTrusting Trust攻撃を防ぐ取り組みへの言及がうれしい。DDCに興味があるなら関連リンクを参照することを勧めている。
システムの再構築: システムを自分で再構築し、ビットファイルが同一か検証するのがよい。512MBで65MHzのCPUなら4.5時間で再構築できるという点が驚き。
初期のUnixワークステーションとの比較: 50〜65MHzと512MBは、1990年代初頭のUnixワークステーションに匹敵する。RAMの面ではさらに優れているかもしれない。
LiteXとKintex-7 FPGA: 2022年にLiteXを使って似たようなことをしたが、Kintex-7 FPGAではVivadoが必要だった。その結果、LinuxとXorgを動かすオープンゲートウェアのラップトップを作った。
Shaktiプロジェクト: インドのIIT Madrasで開発された、RISC-Vベースのオープンソースプロセッサ開発エコシステムであるShaktiプロジェクトを参照することを勧めている。
OSXKVMの作業: QEMU/KVMでOSXを動かす作業をした人物と同じ人が、このプロジェクトを進めている。
セルフホストRISC-Vマシンの必要性: 完全なセルフホストRISC-Vマシンが必要だという意見。現在の最大の制約は、十分なRAMを備えたFPGAボードを見つけること。
セルフホスティングの難しさ: セルフホスティングのハードウェアとソフトウェアという発想は良いが、60MHzのCPUでGCCのようなものをビルドするのは想像を絶するほど大変。RockPro64でGentooを使っていたが、コンパイル時間が長すぎてやめたという経験も共有されている。