.. image:: https://gitlab.com/renich/gpasskey/-/raw/master/assets/logo.svg :width: 140px :align: center :alt: gpasskey logo
面向 Linux 的集中式加密身份安全飞地(enclave)。
.. image:: https://gitlab.com/renich/gpasskey/badges/master/pipeline.svg :target: https://gitlab.com/renich/gpasskey/-/commits/master :alt: pipeline status .. image:: https://img.shields.io/gitlab/v/release/renich/gpasskey?logo=gitlab&label=release :target: https://gitlab.com/renich/gpasskey/-/releases :alt: GitLab Release .. image:: https://img.shields.io/badge/Go-1.26+-00ADD8?style=flat&logo=go :target: https://golang.org/ :alt: Go Version .. image:: https://img.shields.io/badge/License-GPLv3-blue.svg?logo=gnu :target: https://www.gnu.org/licenses/gpl-3.0 :alt: License .. image:: https://img.shields.io/badge/FIDO2-CTAP2%20Virtual%20HID-4285F4?logo=fido :target: docs/technical/specs/ctap2-virtual-hid.rst :alt: FIDO2 CTAP2 .. image:: https://img.shields.io/badge/Hardware-TPM%202.0%20Sealed-4CAF50?logo=security :target: docs/technical/specs/tpm-binding.rst :alt: TPM 2.0 .. image:: https://img.shields.io/badge/Bridges-SSH%20%7C%20GPG%20%7C%20Age%20%7C%20D--Bus-8b5cf6 :target: docs/technical/specs/protocol-bridges.rst :alt: Multi-Protocol Bridges .. image:: https://img.shields.io/liberapay/receives/Renich.svg?logo=liberapay :target: https://liberapay.com/Renich/donate :alt: Liberapay .. image:: https://liberapay.com/assets/widgets/donate.svg :target: https://liberapay.com/Renich/donate :alt: Donate using Liberapay
.. caution::
预 Alpha 软件——使用风险自负!
尽管有发布版本号,gpasskey 目前仍是实验性的预 Alpha 软件,正在进行快速的架构开发。加密方案、保险库格式和协议桥可能会在不保证向后兼容的情况下发生变化。
gpasskey 提供硬件支撑的安全飞地,将私钥存储在加密保险库中。它充当多协议桥,支持 SSH Agent、age 加密插件协议,以及 GnuPG 提交签名模拟。
/dev/uhid 模拟虚拟 USB 安全密钥,用于原生浏览器(Firefox、Chrome、Chromium)及操作系统的 Passkey 认证。age(v1)文件加密。mlock)中提供 15 秒的安全会话缓存。mmap/mlock 和“封装并清除”(Wrap and Clear)策略,防止密钥材料泄漏到交换分区或 GC 堆。gpasskey-cli),用于保险库管理和加密机密管理。gpasskey 通过 TPM 2.0 提供硬件支撑的安全性。这确保您的主密钥绝不会以未加密形式离开 TPM,并且与系统的启动状态绑定。
要求
* 兼容 TPM 2.0 的设备(开发环境可使用 ``swtpm``)。
* 系统已安装 ``tpm2-tools``。
初始化
当您创建新身份时,TPM 存储会自动初始化。要验证 TPM 状态:
.. code-block:: bash
gpasskey-cli status
使用方法
初始化后,守护进程会透明地使用 TPM。所有敏感数据都密封至 **PCR 0**(核心系统固件)和 **PCR 7**(安全启动状态)。固件或安全启动配置的任何修改都会阻止保险库解锁,从而防范离线攻击和未经授权的操作系统篡改。
快速入门
-----------
为您的用户账户构建并安装(推荐,非 root)::
make clean && make all
make install-user # Installs to ~/.local/bin, ~/.config/systemd/user, ~/.local/share/dbus-1
或进行系统级安装(需要 root)::
sudo make install # Installs to /usr/local/bin
启用并启动 socket 激活::
systemctl --user enable --now gpasskey-ssh.socket gpasskey-gpg.socket
初始化您的保险库并验证状态::
gpasskey-cli status
# Identities are enrolled automatically on first use by clients
# (WebAuthn passkeys, SSH, age, GPG) or via the portal API.
在浏览器中使用 WebAuthn 通行密钥::
# Open Firefox or Chrome, go to https://webauthn.io/
# Click "Register" -> enter your PIN in the gpasskey prompt -> Passkey is created!
# Click "Authenticate" -> enter your PIN -> Instant login verified!
管理 TPM 支撑的配置存储中的加密机密::
gpasskey-cli set-secret my-api-key "super-secret-value"
gpasskey-cli get-secret my-api-key
文档与规范
------------------------------
我们全面的工程文档按模块化的规范、架构记录和路线图组织:
* **功能规范**:`功能规范索引`_ — 定义用户需求和授权模型。
* **技术蓝图**:`技术规范索引`_ — 详细的 Go 架构、加密原语和飞地设计。
* **架构决策记录(ADR)**:`ADR 索引`_ — 架构、加密和安全决策的不可变日志。
* **API 与线路协议**:`API 规范索引`_ — 管理 socket、D-Bus 门户和桥接线路模式。
* **项目执行路线图**:`路线图索引`_ — 分阶段的工程时间线和里程碑交付物。
用户指南
用户快速入门_ - 5 分钟内上手。安装指南_ - 详细的构建、udev 和 systemd 配置。安全指南_ - 硬件 TPM 2.0 安全飞地及“封装并清除”内存隔离。配置指南_ - 环境变量和服务选项。.. _功能规范索引: docs/functional/spec.rst .. _技术规范索引: docs/technical/spec.rst .. _ADR 索引: docs/adrs/index.rst .. _API 规范索引: docs/api/spec.rst .. _路线图索引: docs/project/roadmap.rst .. _用户快速入门: docs/user/quickstart.rst .. _安装指南: docs/user/installation.rst .. _安全指南: docs/user/security.rst .. _配置指南: docs/user/configuration.rst
我们目前正在规范和架构设计 第 7 阶段:可插拔多因素与多方仲裁引擎:
\mathcal{O}(1)(:math:\le 64\,\text{KB} 缓冲区)。\text{GF}(2^8) 的 密钥封装 Shamir 秘密共享,带 HMAC 验证标签,实现 :math:k-of-:math:n 拆分密钥授权。hmac-secret)以及 Linux 生物识别(fprintd)。gpk rekey),无需重新创建密钥即可即时切换身份的因素策略。gpk(/usr/local/bin/gpk)。org.freedesktop.secrets)无缝集成。完整规范请参阅 第 7 阶段路线图_ 和 ADR-006_。
.. _第 7 阶段路线图: docs/project/roadmaps/phase-7-pluggable-factors.rst .. _ADR-006: docs/adrs/2026-08-25-pluggable-auth-factors.rst
age 加密工具的插件。运行单元测试::
make test
运行完整的 Go 原生集成测试套件(需要 swtpm)::
make integration-test
如果您觉得 gpasskey 有用并希望支持其持续开发,欢迎通过 Liberapay 捐赠:
.. image:: https://liberapay.com/assets/widgets/donate.svg :target: https://liberapay.com/Renich/donate :alt: Donate using Liberapay
版权所有 2026 EVALinux
本项目采用 GNU 通用公共许可证 v3.0 或更高版本授权。 详情请参阅 LICENSE 文件。