隱私:git-ai的Prompt安全存儲與密鑰脫敏機(jī)制詳解)
AI代碼追蹤還能保護(hù)隱私git-ai的Prompt安全存儲與密鑰脫敏機(jī)制詳解【免費(fèi)下載鏈接】git-aiA Git extension for tracking the AI-generated code in your repos項(xiàng)目地址: https://gitcode.com/gh_mirrors/git/git-ai還在擔(dān)心 AI 代碼追蹤工具會偷偷上傳你的對話內(nèi)容嗎開源項(xiàng)目git-ai是一個(gè)用于追蹤倉庫中 AI 生成代碼的 Git 擴(kuò)展它一邊幫你精確記錄“哪幾行代碼來自 AI、哪幾行來自人類”一邊用本地 Prompt 安全存儲和密鑰脫敏Secret Redaction機(jī)制守住你的隱私未登錄時(shí) Prompt 永不外傳API Key、Token 等高熵密鑰在數(shù)據(jù)離開機(jī)器前會被自動(dòng)打碼。一、為什么“追蹤 AI 代碼”必須談隱私使用 Claude Code、Cursor、Copilot 等 AI 編程助手時(shí)你的 Prompt 里經(jīng)常夾帶敏感信息粘貼進(jìn)去的API Key、數(shù)據(jù)庫密碼內(nèi)部接口地址、Token、配置文件片段尚未公開的業(yè)務(wù)邏輯描述git-ai 的原理是在每次 commit 前對 AI 與人類的編輯做Diff 檢查點(diǎn)Checkpoint把歸屬信息寫入 Git Notes之后git blame就能看到逐行歸屬。這套機(jī)制天然會接觸你的對話數(shù)據(jù)——所以“數(shù)據(jù)存哪、傳不傳、傳之前處理什么”就是隱私設(shè)計(jì)的核心問題。二、第一道防線Prompt 只存本地 SQLitegit-ai 把完整的 Prompt 記錄存放在你電腦上的本地 SQLite 數(shù)據(jù)庫中對應(yīng)的prompts表包含工具、模型、消息體、提交哈希等字段建表語句見 internal_db.rs。關(guān)鍵隱私承諾見 />四、第二道防線基于信息熵的密鑰檢測算法那如果數(shù)據(jù)真的要上傳比如你開啟了個(gè)人儀表盤密鑰怎么辦git-ai 的答案是一個(gè)基于統(tǒng)計(jì)熵的密鑰探測器核心代碼在 secrets.rs。它不依賴“AWS Key 必須以 AKIA 開頭”這類脆弱的正則而是像指紋學(xué)家一樣分析字符串本身長度篩選只掃描 1590 個(gè)字符的連續(xù) token太短太長直接忽略字符分布分析統(tǒng)計(jì)不同字符數(shù)、大小寫/數(shù)字比例越“均勻隨機(jī)”越可疑二元組Bigram檢測自然代碼和英文里高頻出現(xiàn)的字符組合如er、on、st會顯著降低“隨機(jī)性得分”雙重閾值判定隨機(jī)概率低于 1/100000 的字符串直接放行不含數(shù)字的字符串要求更嚴(yán)格的閾值1/10000效果是——真正的密鑰sk_test_4eC39HqLyjWDarjtT1zdp7dc、AKIAIOSFODNN7EXAMPLE會被穩(wěn)定命中而普通變量名my_application_name、database_host幾乎零誤報(bào)。五、脫敏方式打碼但不全遮命中密鑰后redact_secret() 只保留首尾各 4 個(gè)字符中間用星號替換sk_live_abc123xyz→sk_l********xyz這樣既杜絕了密鑰泄露又保留了“這是哪一類 Key”的上下文線索方便排查問題。六、JSON 深度掃描一條 transcript 都不放過Agent 會話transcript是一棵復(fù)雜的 JSON 樹。transcript_redaction.rs 中的redact_json_secrets()會遞歸遍歷整棵樹深度上限 32 層對每個(gè)字符串葉子節(jié)點(diǎn)做熵檢測同時(shí)維護(hù)一份鍵名排除清單保護(hù)這些元數(shù)據(jù)字段不被誤傷id/session_id/parentId/uuid等標(biāo)識符字段timestamp、type、role、model、version、branch、path等元信息規(guī)則很簡單存“身份”的字段不脫敏存“內(nèi)容”的字段content、text、message、output一律過一遍熵檢測。設(shè)計(jì)方案全文見 transcript-secret-redaction-design.md。七、脫敏發(fā)生在哪幾個(gè)“關(guān)口”關(guān)口位置作用會話事件讀取時(shí)stream_worker.rs原始事件進(jìn)入指標(biāo)管道前先redact_json_secrets守護(hù)進(jìn)程日志daemon_log_layer.rs日志字符串字段先脫敏再截?cái)嘀卦囮?duì)列脫敏發(fā)生在 SQLite 重試隊(duì)列入隊(duì)之前密鑰永遠(yuǎn)不會以明文落盤到重試隊(duì)列一句話總結(jié)密鑰在任何一條“出機(jī)器”的路徑上都被攔在源頭。八、新手快速自查清單 安裝 git-ai 后可以這樣驗(yàn)證隱私設(shè)置不登錄 零上傳開源模式下唯一默認(rèn)外發(fā)的是錯(cuò)誤遙測把配置項(xiàng)telemetry_oss設(shè)為off即可徹底關(guān)閉檢查倉庫git log后查看 notes只會看到哈希與元數(shù)據(jù)看不到你的 Prompt 原文本地查 Prompt用git-ai show-prompt prompt_id按需查看數(shù)據(jù)不出本地看脫敏效果secrets.rs 內(nèi)置了完整測試用例覆蓋 .env 文件、JSON 配置、代碼誤報(bào)等場景九、延伸閱讀核心模塊路徑密鑰檢測與脫敏算法src/authorship/secrets.rsJSON 遞歸脫敏src/daemon/transcript_redaction.rs本地 Prompt 存儲SQLitesrc/authorship/internal_db.rsAuthorship Log 序列化元數(shù)據(jù)格式src/authorship/authorship_log_serialization.rs隱私政策說明data-privacy.md脫敏機(jī)制設(shè)計(jì)文檔docs/superpowers/specs/2026-05-19-transcript-secret-redaction-design.mdgit-ai 的思路很清晰能不留就不留能不打碼就不打碼必須出門時(shí)先過安檢。對于既想用 AI 提效、又想守住密鑰與對話隱私的開發(fā)者來說這套“本地優(yōu)先 熵檢測脫敏”的組合拳是一個(gè)值得借鑒的隱私工程范本?!久赓M(fèi)下載鏈接】git-aiA Git extension for tracking the AI-generated code in your repos項(xiàng)目地址: https://gitcode.com/gh_mirrors/git/git-ai創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考