Wireguard FPGA
(github.com/chili-chips-ba)- このオープンソースプロジェクトは、低価格な Artix7 FPGA とオープンソースツールチェーンを活用し、Wireguard VPN をハードウェアで実装するもの
- 従来のソフトウェア方式と比べて、ワイヤスピードに近い速度と低コストを提供する点が特徴
- すべての設計ファイルが完全公開されており、バックドアやセキュリティ欠陥の点検を徹底して行える
- ChaCha20-Poly1305, Curve25519, BLAKE2 など、Wireguard の最新暗号アルゴリズムがハードウェア/ソフトウェアの組み合わせで実装されている
- 本プロジェクトはまだ初期の「Proof of Concept」段階であり、今後機能拡張と最適化を予定している
紹介と重要性
このオープンソースの Wireguard FPGA プロジェクトは、Wireguard VPN を低価格な Artix7 FPGA 上でハードウェア実装することで、ネットワークセキュリティ基盤の中核要素である VPN を、誰でも低コストで最高速度に近い形で利用できるようにするもの。従来のハードウェアソリューションは高価な商用 FPGA とクローズドなツールチェーンを必要としていたが、本プロジェクトはオープンソースベースの設計とツール利用、完全なソースコード公開により、透明性と裾野の拡大という面で大きな差別化要因と利点を持つ。
プロジェクトの背景と目標
- 既存の OpenVPN、IPSec などは性能と管理の面で限界があり、Wireguard が現代的で安全な代替として台頭している
- 現在存在する Wireguard のハードウェア実装は高価な装置とクローズドな IP に依存しており、ソフトウェア実装の性能はネットワーク回線速度に達していない
- 本プロジェクトは SystemVerilog で開発された Wireguard を、オープンソースかつ低価格 FPGA 環境で誰でも活用できるようにし、❨検証や教育目的を含む❩ことを目指している
関連プロジェクトとの比較
- Blackwire プロジェクト(100Gbps 級 Wireguard ハードウェア)は、高価な Alveo U50 と閉じた Vivado ツールチェーンを使用しており、アクセスしにくい
- このプロジェクトチームは過去に Balanced Binary Tree Search アルゴリズムなどの中核モジュールを開発したが、商用化の頓挫や所有権の問題などの限界が確認されている
- Wireguard FPGA プロジェクトは、業界標準 HDL(SystemVerilog)とオープンソースツールのサポート、安価で普及型のハードウェア、透明なオープンソース方針を強調している
ハードウェアおよびソフトウェアアーキテクチャ
ハードウェア(HW)
- 制御プレーン: ブート ROM と DDR3 SDRAM コントローラに接続されたソフト CPU が、Wireguard プロトコル管理、ルーティング、セッション/鍵管理などを担当
- データプレーン: RTL で実装され、パケットの暗号化/復号、ルーティング、Wireguard プロトコルの実質的なデータ転送をワイヤスピードで処理
- 主な構成要素
- PHY Controller、1G MAC、Rx/Tx FIFO、Header Parser、Packet {Dis/As}sembler、ChaCha20-Poly1305 暗号/認証モジュール、IP Lookup エンジンなど
- すべての暗号化・認証モジュールは RFC7539 標準に基づいて実装されている
ソフトウェア(SW)
- Wireguard Agent: プロトコルハンドシェイク、セッション維持、鍵/ルーティングテーブル管理を担う
- 暗号関連モジュール
- Curve25519: ECDH 鍵交換
- ChaCha20-Poly1305, XChaCha20-Poly1305: AEAD 方式の対称鍵暗号/認証および nonce 保護
- BLAKE2s: MAC 認証およびハッシュ
- そのほか HKDF、Timer、SipHash、CLI、HAL/CSR ドライバなどを含む
開発および実行計画
プロジェクト段階
- 第1段階: ボード起動と設計青写真の策定、HW/SW プラットフォームへの習熟、既存実装の分析、設計分割と文書化
- 第2段階: 静的 Wireguard チャネルのハードウェアデータパスの基本実装と統合、暗号アルゴリズム(特に ChaCha20-Poly1305)のハードウェア化
- 第3段階: ソフト RISC-V プロセッサ内の管理 SW 開発と HW/SW 統合、セッション/鍵管理などをオーバーヘッドの低いソフトウェアで担当
- 第4段階: VPN トンネルの初期化、維持、安全終了までのフルワークフロー実装
- 第5段階: 性能テスト、最適化、他のオープンソースツールチェーン(OpenXC7)対応拡大、コミュニティ文書/CI の継続管理
- 第6段階(任意) : VPN トンネルのデータフロー制御ソフトウェア開発、安定したデータ転送と管理の実装
HW/SW 共同アーキテクチャ(協調)
- WireGuard ノードは IP ルータに近い役割を果たすため、2層構造(制御/データプレーン) に効果的に分割できる
- 制御トラフィック(プロトコルメッセージ)とデータトラフィック(暗号化/一般ユーザーパケット)を区別し、それぞれに適した経路と処理構造を設計
シミュレーションおよび検証体制
- 仮想(VProc)および RTL ソフトコア(RISC-V など)ベースの CPU を選択可能で、実際の Wireguard トラフィックシナリオに基づく段階的なパケット分析に対応
- Co-simulation HAL: peakrdl により HW/SW 間の制御・状態レジスタを自動生成し API を提供、実動作で迅速な SW/HW 連携テストが可能
オープンソースと透明性
- 回路(ゲートウェア)、組み込みソフトウェア、ビルド、ビットストリームなど実装全体を BSD-3-Clause ライセンスで完全公開
- バックドア、脆弱性、法的所有権などの問題をコミュニティが直接点検できるよう、開かれた構造を強調
その他の情報
- 開発フロー、各パートの詳細説明、主要な参考ソースや外部委託モジュールなどは README ファイルおよびサブディレクトリ(1.hw、2.sw、3.build など)で確認できる
- NLnet Foundation の支援を受けて進められている
結論
- このプロジェクトは、高性能な Wireguard VPN ハードウェア実装のオープンソース標準を目指しており、低コスト、透明性、迅速な導入可能性という差別化要因を持つ
- 開発初期段階ではあるが、セキュリティとアクセス性の両面で、今後オープンなネットワークインフラにおける重要な役割が期待される
まだコメントはありません。