IronSovereign 技術文檔

帶外零信任平台的完整指南:sovProbe 安裝、sovVault 配置、64 位元組 WAL 契約與故障排除。

快速開始

系統需求

  • 支援 BTF 的 Linux 核心(5.8+)
  • clang 與 Linux 核心標頭檔(供 eBPF 使用)
  • Rust 工具鏈(stable,最低 1.75+)

從原始碼建置

git clone https://github.com/dataxcash/sovProbe.git
cd sovProbe/sov-probe
cargo build --release        # 靜態單一二進位檔:target/release/sovprobe (2.1 MB)

快速啟動

sudo ./target/release/sovprobe \
  --interface eth0 \
  --capture-ports 8080 \
  --shm-path /dev/shm/sov-probe

探針掛載 eBPF tc 掛鉤(入口 + 出口),永不進入資料路徑。 僅埠號白名單內封包會被鏡像至 1 MB 核心環形緩衝區——其餘流量原封不動通過。

系統架構

kernel eBPF (tc)

埠號白名單 → 1 MB 核心環形緩衝區。零阻塞、零內聯風險、零單點故障焦慮。

使用者空間 sovprobe

etherparse 解析 → Head-Slicer → 雙層熔斷器。輸出標準 64 位元組契約日誌。

slimSync → Zenoh → sovVault

FastCDC 去重、ChaCha20 加密傳輸,封存至世代隔離的 LMDB,提供法醫級儲存。

[ kernel eBPF (tc) ]   埠號白名單 → RingBuffer (1 MB)
        ↓
[ 使用者空間 sovprobe ]  etherparse 解析 → Head-Slicer → 熔斷器
        ↓
/dev/shm/sov-probe/segment_*.wal   ← 64 B 標頭契約(標準本機管道)
        ↓  (inotify/fanotify)
[ slimSync ]  FastCDC → ChaCha20 → Zenoh → SovVault

sovProbe 安裝

配置說明

TOML 配置檔(/etc/sovprobe.toml)與 CLI 參數對應:

# /etc/sovprobe.toml
interface   = "eth0"
capture_ports = [8080]
shm_path    = "/dev/shm/sov-probe"

指標

Prometheus 指標位於 :9101/metrics

  • sovprobe_written_total — 已提交的 WAL 區段數
  • sovprobe_dropped_total — 壓力下的尾部丟棄數
  • sovprobe_degraded_now — 熔斷器狀態

sovVault 配置

儲存中樞

sovVault 接收加密 WAL 串流、解密、重組亂序 TCP 串流、比對請求/回應 QR 配對, 並落地至三個儲存平面——全部位於零拷貝 LMDB 內並具備世代(epoch)隔離。 幽靈封包會被物理性隔離,無法與遲到的 ACK/RST 混淆。

法醫級匯出

司法級 PCAP 匯出沿 RECORD_TS 時間游標串流,搭配記憶體內 BPF 預先過濾, 重新讀取原始 WAL 負載(Magic→Version→Length→CRC32 四重驗證),並忠實重現 orig_lenincl_len, 使 Wireshark 正確顯示 [Packet size limited]

64 位元組 WAL 契約

Magic (u32) → Length (u32) → CRC32 (u32) → ... payload
  • 三重驗證 — 髒尾部一律拒絕;杜絕無聲的壞資料。
  • Unlink-Oldest 輪替 — 單調區段編號,RAMDisk 上限 ≤ 512 MB,檔案全域唯一。
  • 實機驗證 — 11 段 WAL 重驗:md5 11/11 位元組一致;真實流量 1885 req/s。
  • 離線解碼器sov2pcap 將 WAL 轉為 PCAP 供 Wireshark 分析。

常見問題

它會拖慢我的生產流量嗎?

不會。探針是純旁路的帶外監聽。它永不進入資料路徑、永不注入 RST, 非目標封包完全原封不動通過。

極端負載下會發生什麼?

雙層熔斷器(熱路徑佇列水位 > 80% + 慢路徑 procfs 取樣)觸發 Drop-Tail fail-open 並自動恢復。探針優雅降級——您的流量完全無感。

證據如何防止篡改?

每個 WAL 區段攜帶 64 位元組標頭(Magic → Length → CRC32)。在 sovVault 中, 世代隔離在 B+ 樹中物理分離各代資料,批次原子性(2PC-lite)使崩潰視窗重播冪等且收斂。

可以匯出證據供外部稽核嗎?

可以。sovVault 匯出司法級 PCAP(Wireshark 就緒),完整鏈條從原始 WAL 負載忠實重現—— orig_lenincl_len 原樣保留。

延伸資源