Skip to main content

身份驗證

Panguard AI 使用基於 OAuth 的身份驗證流程進行 CLI 連線,並搭配多層憑證安全機制,包括 AES-256-GCM 加密、TOTP 雙因素驗證與計時安全的 API 金鑰驗證。

身份驗證流程概覽

  User
    |
    v
  [panguard.ai]  -- Register / Google OAuth / Email+Password
    |
    | OAuth callback
    v
  [panguard login]  -- Opens browser -> completes auth -> stores token
    |
    | Token at ~/.panguard/credentials.json (0o600)
    v
  [panguard scan / guard / trap ...]  -- Features unlocked by tier

CLI 登入

標準流程(使用瀏覽器)

1

開始登入

panguard login
CLI 會在隨機本地連接埠啟動臨時 HTTP 伺服器,並產生 CSRF 狀態 Token。
2

瀏覽器驗證

預設瀏覽器開啟至 panguard.ai/login?cli_state={state}。透過 Google OAuth 或電子郵件與密碼完成登入。
3

Token 回呼

伺服器重新導向至本地回呼 URL。CLI 接收並儲存連線 Token。
4

連線啟用

終端機顯示登入成功訊息與您的帳號詳情。
  PANGUARD AI

  -- Login Info ----------------------------------------

  Email     user@example.com
  Name      User Name
  Plan      Solo
  Expires   2026-04-27

  Login successful!

無圖形介面流程(SSH / 無瀏覽器)

panguard login --no-browser
CLI 會印出驗證 URL,您可以複製並在任何有瀏覽器的裝置上開啟:
  Open the following URL in your browser to complete login:
  https://panguard.ai/login?cli_state=abc123&callback=...

  Waiting for authentication...
--no-browser 旗標對 CI/CD 流水線、Docker 容器與透過 SSH 存取的遠端伺服器至關重要。

Google OAuth

Panguard 支援 Google OAuth 一鍵登入。當您在網頁上或 CLI 流程中點擊「Sign in with Google」時,Panguard 僅接收您的電子郵件與顯示名稱 — 不會存取 Google 密碼或其他帳號資料。

憑證儲存

檔案位置與權限

~/.panguard/credentials.json
檔案權限在建立後立即設為 0o600(僅擁有者可讀寫)。CLI 在每次啟動時驗證這些權限,若已被放寬則發出警告。

Token 格式

{
  "token": "session-token-string",
  "expiresAt": "2026-04-27T00:00:00.000Z",
  "email": "user@example.com",
  "tier": "solo",
  "name": "User Name",
  "savedAt": "2026-02-26T12:00:00.000Z",
  "apiUrl": "https://panguard.ai"
}

連線有效期

  • CLI 連線有效期為 30 天
  • 過期後請再次執行 panguard login
  • 使用 panguard whoami 查看到期日

憑證加密

敏感設定欄位(API 金鑰、LLM 供應商 Token)使用 AES-256-GCM 進行靜態加密:
屬性
演算法AES-256-GCM
金鑰衍生從硬體識別碼衍生的設備專屬金鑰
儲存位置~/.panguard/llm.enc 用於 AI 供應商金鑰
IV每次加密操作唯一
加密金鑰從您設備的硬體識別碼衍生,因此加密的設定檔無法複製到其他設備並解密。

TOTP 雙因素驗證

Panguard 支援基於 TOTP 的雙因素驗證,提供額外的帳號安全。
1

啟用 2FA

前往 panguard.ai帳號設定,選擇啟用雙因素驗證。使用您的驗證器 App(Google Authenticator、Authy、1Password 等)掃描 QR code。
2

驗證設定

從驗證器 App 輸入 TOTP 代碼以確認設定正常運作。
3

儲存備用碼

Panguard 會產生 10 組一次性備用碼。請安全保存 — 這是您失去驗證器裝置時恢復帳號的唯一方式。
4

使用 2FA 登入 CLI

啟用後,CLI 登入流程會在瀏覽器驗證後要求輸入 TOTP 代碼。6 位數代碼直接在終端機輸入。
備用碼僅在 2FA 設定時顯示一次。如果您同時遺失驗證器裝置與備用碼,帳號恢復需要聯繫客服並進行身份驗證。

連線管理

登出

panguard logout
登出會執行兩個動作:
  1. 本地 — 刪除 ~/.panguard/credentials.json
  2. 伺服器端 — 在 Panguard API 伺服器上使連線 Token 失效
登出後,即使保留了 Token 副本也無法再使用。

驗證連線

panguard whoami
# JSON 格式輸出,適用於腳本
panguard whoami --json

Manager API 驗證

Panguard Manager(機群編排層)的 REST API 使用 Bearer token 驗證:
屬性
標頭Authorization: Bearer <token>
比對方式SHA-256 計時安全比對(crypto.timingSafeEqual
速率限制依 Token,可設定
curl -H "Authorization: Bearer YOUR_TOKEN" \
  https://manager.example.com/api/v1/agents
計時安全比對可防止計時攻擊,避免攻擊者逐字元猜測有效 Token。

Threat Cloud API 驗證

Threat Cloud API 使用 API 金鑰搭配依金鑰的速率限制:
屬性
標頭X-API-Key: <key>
速率限制依金鑰,預設 100 次請求/分鐘
金鑰格式64 字元十六進位字串
比對方式SHA-256 計時安全比對
curl -H "X-API-Key: YOUR_API_KEY" \
  https://threat.panguard.ai/api/v1/ioc/query?ip=203.0.113.50

安全措施摘要

措施詳情
CSRF 防護隨機狀態 Token 驗證 OAuth 回呼
回呼限制僅接受 localhost 回呼 URL
檔案權限credentials.json 建立時設為 0o600
Token 到期連線 30 天後自動過期
流程逾時待處理的驗證流程 10 分鐘後清除
靜態加密AES-256-GCM 用於敏感設定欄位
計時安全比對所有 API Token 驗證使用常數時間比對
2FA 支援可選的 TOTP 搭配備用碼

常用操作

# 登入(開啟瀏覽器)
panguard login

# 在無圖形介面伺服器上登入
panguard login --no-browser

# 查看帳號資訊
panguard whoami

# JSON 格式輸出,適用於腳本
panguard whoami --json

# 登出(本地 + 伺服器端失效)
panguard logout

# 使用自訂驗證伺服器(開發 / 自架)
panguard login --api-url http://localhost:3100

相關內容