UStackUStack
AxKeyStore icon

AxKeyStore

AxKeyStore 是安全的開源 CLI,可在用戶端加密機密與密碼,僅將加密資料儲存到你的私人 GitHub 版本庫。

AxKeyStore

AxKeyStore 是什麼?

AxKeyStore 是一款安全的開源命令列介面 (CLI) 工具,用於管理機密、金鑰與密碼。其核心目的是讓你使用自己的私人 GitHub 儲存庫作為加密儲存空間,同時將 GitHub 視為不可信任的儲存空間。

使用 AxKeyStore,加密在用戶端進行。遠端 GitHub 儲存庫僅儲存加密資料,儲存庫中不會保留明文機密。該工具也避免在本地檔案系統中以未加密形式儲存機密、主金鑰或密碼。

主要功能

  • GitHub 私人儲存庫作為加密後端:將機密儲存在你控制的私人儲存庫中,使用加密二進位 blob。
  • 所有機密處理均採用用戶端加密:機密在上傳前在你的機器上加密;不會傳送明文機密。
  • 零信任 / 多層加密模型:使用本地主金鑰 (LMK) 加密本地設定檔(包含 GitHub 存取權杖與儲存庫名稱),以及遠端主金鑰 (RMK) 加密實際儲存的機密。
  • 現代化認證加密與金鑰衍生:LMK 加密使用 Argon2id 與 XChaCha20-Poly1305;三層架構設計確保僅加密文物傳至 GitHub。
  • 透過 GitHub Apps 與裝置流程統一認證:使用 GitHub Apps 結合裝置流程進行安全認證。
  • CLI 工作流程用於初始化與操作:包含登入、初始化儲存庫,以及透過簡單指令集管理機密的指令。
  • 階層式分類組織:以如 api/production/internal 等分類組織機密。
  • 多設定檔支援:管理不同登入、主密碼與 GitHub 儲存庫的多個保險庫。

如何使用 AxKeyStore

  1. 安裝 CLI:在 macOS/Linux 上,執行提供的 shell 安裝腳本。在 Windows 上,執行提供的 PowerShell 安裝腳本。腳本會下載二進位檔、置於 $HOME/.axkeystore/bin 下,並設定你的 PATH。
  2. 使用 GitHub 帳戶登入:執行 axkeystore login。首次登入時,設定主密碼;此密碼用於加密敏感的本地 GitHub 存取權杖。
  3. 安裝必要的 GitHub App:登入期間,CLI 提供連結以安裝適用於你的使用者或組織的 GitHub App。你必須安裝該 App 以授予儲存庫存取權限。
  4. 初始化儲存庫:執行 axkeystore init --repo <repo-name>(或包含組織/擁有者,如 my-org/my-secret-store)。若儲存庫先前已在另一台機器初始化,AxKeyStore 會在初始化時提示。

初始化後,你即可使用 CLI 儲存與擷取存在私人 GitHub 儲存庫中之加密 blob 的認證資料。

使用案例

  • 儲存 GitHub 託管認證而不保留明文:在僅儲存加密資料的私人儲存庫中保存 API 金鑰、密碼及其他機密。
  • 使用分類依環境或領域分隔機密:以如 api/production/internal 等階層分類組織機密,便於不同環境導覽。
  • 跨不同 GitHub 儲存庫管理多個保險庫:為不同儲存庫與主密碼維護獨立設定檔,適用於跨多專案或組織工作。
  • 鎖定本地認證儲存:確保 GitHub 存取權杖與儲存庫名稱(本地認證)使用本地主金鑰加密,並由使用者主密碼保護。
  • 跨機器使用不可信任遠端儲存:在另一台機器初始化相同加密儲存庫(初始化時提示),遠端僅持有加密 blob,而每個用戶端處理加密。

常見問題

  • AxKeyStore 會在 GitHub 中以未加密形式儲存機密嗎?

    不會。機密在用戶端加密,僅加密二進位 blob 儲存在私人 GitHub 儲存庫中。

  • 加密金鑰或主密碼會傳送過網路嗎?

    專案說明不會有明文機密、主金鑰或密碼接觸網路。加密完全在你的機器上進行。

  • AxKeyStore 使用什麼認證方式?

    使用 GitHub Apps 與裝置流程進行認證。

  • AxKeyStore 如何保護本地資料?

    使用本地主金鑰 (LMK),以你的主密碼透過 Argon2id 與 XChaCha20-Poly1305 加密 LMK,並用 LMK 加密本地設定如 GitHub 存取權杖與儲存庫名稱。

  • 哪些作業系統支援安裝?

    儲存庫提供 macOS/Linux(透過 install.sh)與 Windows(透過 install.ps1)的安裝腳本。

替代方案

  • 其他具客戶端加密的 CLI 祕密管理工具:尋找在本地加密祕密、僅將密文儲存至遠端後端的工具(類似不受信任儲存模型),通常使用 S3、Git 或其他儲存。
  • 專用密碼管理器(金庫式應用程式):使用本地應用程式或桌面/行動金庫來管理加密與同步;工作流程不同,因為後端由密碼管理器管理,而非你控制的私人 GitHub 版本庫。
  • 具加密工具的 Git 祕密儲存:有些方法將加密檔案儲存至 Git,並依賴你的加密工具;相較 AxKeyStore,你需自行管理加密工作流程,而非使用專用 CLI 及其金鑰模型。
  • 具託管加密的雲端祕密管理服務:在託管系統中儲存祕密的服务;不同於 AxKeyStore 所述模型,客戶端不受信任儲存方式可能非主要設計模式。
AxKeyStore | UStack