本卡屬 FR-076(母卡 CM-1566),掃 License 鏈的第 3 棒:License Center 簽發核心與模組(license_center)。只掃不修。
用 Claude Code 的 claude-security plugin,掃 license_center 的「License Center 簽發核心與模組」這一塊(約 32 個檔),找出資安問題並產出報告。只找問題、不修問題——修正是後續另外開卡的事。
簽發端的核心:私鑰怎麼被載入與使用、照怎麼被簽出來、API token 怎麼驗、竄改回報怎麼收。這是整條授權鏈的信任根——私鑰外洩或簽發邏輯被繞過,所有客戶的照都失去意義。
這些是給你的思考起點,不是檢查清單——掃描工具會自己找,這裡列的是首腦讀過程式碼後認為最容易出事的地方:
core/crypto/keys.py):私鑰從哪載入、passphrase 怎麼取得、會不會被寫進 log 或錯誤訊息、記憶體中有沒有多餘的副本?⚠️ 不要把私鑰內容寫進報告或任何檔案(見下方紀律)。core/crypto/engine.py、manifest.py):簽發時的 canonical JSON 是否與驗證端一致(見 L1 同一項)?能不能誘使它簽出非預期內容?modules/auth):token 怎麼產(亂數來源)、怎麼存(雜湊還是明文)、怎麼比對(時序安全)、有沒有效期與撤銷、驗證失敗有沒有次數限制?modules/licensing/service.py):誰能簽照、誰能展延、誰能重綁機器?這些操作的權限檢查在哪一層?modules/tamper_report):客戶端回報的資料未經驗證就落庫?會不會被灌假事件或注入?modules/integrity):manifest 怎麼產與怎麼比對?cli/main.py):有沒有會把敏感值印到終端的子命令?(產品側鐵律:不給客戶印明文密碼的 CLI)(本 repo 從未被掃過。相關背景:FR-062 曾因 passphrase 遺失重產 STG 簽發鑰)
第一步:確認 plugin 在,並讀掃描 job 的作業書,照它的步驟走:
ls /Users/chouraymond/.claude/plugins/cache/claude-plugins-official/claude-security/0.10.2.3/skills/claude-security/
cat /Users/chouraymond/.claude/plugins/cache/claude-plugins-official/claude-security/0.10.2.3/skills/claude-security/jobs/scan-codebase.md
第二步:驗 scope 檔數,對上 32 才啟動(避免整包誤掃):