Repository navigation
KeyValet v0.3.0 adds native Linux distribution and implements the Windows credential broker preview. This release includes macOS arm64 and Linux x64/ARM64 packages; Windows code is included in the source, with public Windows binaries deferred until production signing is configured.
Highlights
- Native Linux. A systemd service runs as the non-login
keyvaletuser, authenticates clients through kernel peer credentials and uses polkit for approvals. TPM 2.0 protection, explicit software protection on hosts without a TPM, MCP, CLI, hooks, proxy calls and streaming gateways are implemented. - Windows implementation preview. The SYSTEM service, protected Windows Hello agent and MCP worker, native dialogs, recovery commands, configuration merging and x64/ARM64 packaging are implemented. Native Windows CI includes service lifecycle and PowerShell checks. Real Hello/hardware acceptance and production signing remain separate requirements; no Windows archive is attached to this release.
- Hardware protection and recovery. macOS requires Secure Enclave; the installer initializes a hardware vault or migrates an older file-key vault. Shared device binding, authenticated provider metadata, recovery passphrases and key rotation preserve encrypted credentials without silently falling back when hardware fails.
- Exact per-use approval. A one-time approval is bound to the complete operation and current credential configuration. Changed requests or credentials cannot reuse it. Reusable SDK gateways are disabled in
per_usemode. - Session cleanup. Ending or locking a session revokes gateway tokens, cancels requests and closes the listener. Pending approvals and temporary exports are cleaned up; idle gateway connections are bounded.
- Protocol hardening. OAuth cancellation closes callbacks, token lifetimes are validated, and remote errors and streamed responses are filtered to avoid exposing credentials.
- Protection status.
keyvalet status --summaryandcredential_statusdistinguish the selected provider, hardware evidence, agent trust and current TPM detection without unlocking the vault. - Release verification. macOS binaries retain Developer ID signing and Apple notarization. Native Linux packages are checked alongside the macOS archive before the combined
SHA256SUMSand release draft are created.
Install or upgrade
macOS and Linux:
curl -fsSL https://keyvalet.dev/install.sh | shLinux without TPM, explicitly choosing software protection:
curl -fsSL https://keyvalet.dev/install.sh | sh -s -- --softwaremacOS hardware setup and migration ask for a recovery passphrase privately. Keep that passphrase separately from the encrypted vault. Linux installation must run as the intended vault owner, with sudo available for the system installation phase.
Requirements and limits
- macOS: macOS 14+, Apple Silicon release package, Secure Enclave and Touch ID or system-password approval. Intel/T2 installations remain source builds with hardware compatibility unverified.
- Linux x64: GNU/Linux with glibc 2.35+; the archive is built on Ubuntu 22.04. Linux ARM64: glibc 2.39+; the archive is built on Ubuntu 24.04. Both need systemd, polkit and sudo; TPM mode also needs
tpm2-tools. Older distributions can build from source. - Linux SSH approval needs a polkit agent in the owner's terminal; see Linux setup and recovery.
- Windows remains a source/development preview; see Windows installation and acceptance. ARM64 hardware acceptance, desktop/client matrices and the WSL-to-Windows vault bridge remain open.
- Proxy isolation does not prevent misuse within an approved scope or protect against a compromised OS/service. Organization sharing, cloud KMS/enclave execution and persistent task-scoped delegation remain planned work.
中文
KeyValet v0.3.0 新增 Linux 原生发行包,并完成 Windows 凭证代理开发预览实现。本次提供 macOS arm64、Linux x64/ARM64 包;Windows 全部代码包含在源码中,正式 Windows 二进制等待生产签名配置后发布。
主要变化
- Linux 原生支持。 systemd 服务使用独立的非登录
keyvalet用户,通过内核身份识别客户端,并使用 polkit 审批。实现 TPM 2.0、无 TPM 时显式选择的软件保护,以及 MCP、CLI、hooks、代理请求和流式网关。 - Windows 开发预览。 已实现 SYSTEM 服务、受保护的 Windows Hello agent 和 MCP worker、原生对话框、恢复命令、配置合并及 x64/ARM64 打包。Windows 原生 CI 检查服务生命周期和 PowerShell;真实 Hello/硬件验收与生产签名仍需单独完成,本次不附 Windows 包。
- 硬件保护与恢复。 macOS 必须使用 Secure Enclave;安装器初始化硬件 vault 或迁移旧文件密钥 vault。共享设备绑定、受认证的 provider 元数据、恢复口令和密钥轮换,硬件失败不会自动降级。
- 逐次授权绑定完整操作。 一次批准绑定操作内容及当前凭证配置;请求或凭证改变后不能复用。
per_use模式关闭可复用 SDK 网关。 - 会话结束即清理。 锁定或断开会话会撤销网关 token、取消请求、关闭监听器,并清理待批准操作和临时导出;限制空闲网关连接数。
- 协议处理加固。 OAuth 取消会关闭回调,检查 token 有效期,过滤远端错误和流式响应中的凭证。
- 保护状态可查。
keyvalet status --summary和credential_status无需解锁即可区分保护方案、硬件证据、agent 信任与 TPM 检测。 - 统一发行校验。 macOS 保留 Developer ID 签名和 Apple 公证;校验 Linux 原生包及 macOS 包后生成统一
SHA256SUMS和发布草稿。
安装、升级与要求
macOS 和 Linux 使用上方在线安装命令;无 TPM 的 Linux 明确选择软件保护时加 sh -s -- --software。
macOS 初始化或迁移时会私下要求恢复口令,应与加密 vault 分开保存;Linux 安装须以 vault 所有者的普通账号运行,系统安装阶段使用 sudo。
macOS 需要 14+ 和 Secure Enclave;发行包适用于 Apple Silicon。Linux x64 包需要 glibc 2.35+,ARM64 包需要 glibc 2.39+;都需要 systemd、polkit、sudo,TPM 模式还需要 tpm2-tools。旧发行版可从源码构建。
Windows 正式签名包、ARM64 硬件及桌面/客户端矩阵、WSL 到 Windows vault 的桥仍待完成。
代理隔离不能防止已授权范围内的滥用或被攻破的系统/服务;组织共享、云 KMS/enclave 执行和持久任务授权、子代理委派仍属规划。