
Enclave de identidad criptográfica centralizado respaldado por hardware TPM 2.0 y puente multiprotocolo para Linux (FIDO2/CTAP2 WebAuthn Passkeys, OpenSSH Agent, GnuPG LibAssuan, age-plugin, almacén de configuración cifrado).
.. image:: https://gitlab.com/renich/gpasskey/-/raw/master/assets/logo.svg :width: 140px :align: center :alt: logotipo de gpasskey
El enclave de identidad criptográfica centralizado para Linux.
.. 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: Dona usando Liberapay
.. caution::
SOFTWARE PRE-ALPHA — ¡ÚSELO BAJO SU PROPIO RIESGO!
A pesar de la numeración de versiones, gpasskey es actualmente un software pre-alpha experimental que está experimentando un rápido desarrollo arquitectónico. Los esquemas criptográficos, los formatos de bóveda y los puentes de protocolo pueden cambiar sin compatibilidad con versiones anteriores.
gpasskey proporciona un enclave de seguridad respaldado por hardware que almacena las claves privadas en una bóveda cifrada.
Actúa como puente multiprotocolo, con soporte para SSH Agent, el protocolo de plugin de cifrado age y la emulación de firma de commits de GnuPG.
/dev/uhid para la autenticación nativa con passkeys en navegadores (Firefox, Chrome, Chromium) y en el sistema operativo.age (v1).mlock).mmap/mlock y una estrategia de "Wrap and Clear" (envolver y borrar) para evitar que el material de claves se filtre al swap o al heap del recolector de basura.gpasskey-cli) para la administración de la bóveda y la gestión de secretos cifrados.gpasskey admite seguridad respaldada por hardware mediante TPM 2.0. Esto garantiza que su clave maestra nunca salga del TPM sin cifrar y que esté vinculada al estado de arranque del sistema.
Requisitos
* Un dispositivo compatible con TPM 2.0 (o ``swtpm`` para desarrollo).
* ``tpm2-tools`` instalado en el sistema.
Inicialización
El almacenamiento TPM se inicializa automáticamente cuando crea una nueva identidad. Para verificar el estado del TPM:
.. code-block:: bash
gpasskey-cli status
Uso
Una vez inicializado, el daemon utiliza el TPM de forma transparente. Todos los datos sensibles se sellan contra **PCR 0** (firmware del sistema central) y **PCR 7** (estado de Secure Boot). Cualquier modificación del firmware o de la configuración de Secure Boot impedirá que la bóveda se desbloquee, lo que protege contra ataques sin conexión y la manipulación no autorizada del sistema operativo.
Inicio rápido
-----------
Compile e instale para su cuenta de usuario (recomendado, sin root)::
make clean && make all
make install-user # Instala en ~/.local/bin, ~/.config/systemd/user, ~/.local/share/dbus-1
O instale en todo el sistema (requiere root)::
sudo make install # Instala en /usr/local/bin
Active e inicie la activación por socket::
systemctl --user enable --now gpasskey-ssh.socket gpasskey-gpg.socket
Inicialice su bóveda y verifique el estado::
gpasskey-cli status
# Las identidades se inscriben automáticamente en el primer uso por parte de los clientes
# (passkeys WebAuthn, SSH, age, GPG) o mediante la API del portal.
Passkeys WebAuthn en el navegador::
# Abra Firefox o Chrome, vaya a https://webauthn.io/
# Haga clic en "Register" -> introduzca su PIN en la solicitud de gpasskey -> ¡Passkey creada!
# Haga clic en "Authenticate" -> introduzca su PIN -> ¡Inicio de sesión verificado al instante!
Gestione secretos cifrados en el almacén de configuración respaldado por TPM::
gpasskey-cli set-secret my-api-key "super-secret-value"
gpasskey-cli get-secret my-api-key
Documentación y especificaciones
------------------------------
Nuestra exhaustiva documentación de ingeniería está organizada en especificaciones modulares, registros de arquitectura y hojas de ruta:
* **Especificaciones funcionales**: `Índice de especificaciones funcionales`_ — Define los requisitos de usuario y los modelos de autorización.
* **Planos técnicos**: `Índice de especificaciones técnicas`_ — Arquitectura Go detallada, primitivas criptográficas y diseños de enclave.
* **Registros de decisiones de arquitectura (ADR)**: `Índice de ADR`_ — Registro inmutable de las decisiones de arquitectura, criptografía y seguridad.
* **API y protocolos wire**: `Índice de especificaciones de API`_ — Socket de administración, portales D-Bus y esquemas wire de los puentes.
* **Hoja de ruta de ejecución del proyecto**: `Índice de hojas de ruta`_ — Cronogramas de ingeniería por fases y entregables por hitos.
Guías de usuario
Inicio rápido para usuarios_ - Póngase en marcha en 5 minutos.Guía de instalación_ - Configuración detallada de compilación, udev y systemd.Guía de seguridad_ - Enclave de hardware TPM 2.0 y aislamiento de memoria "Wrap and Clear" (envolver y borrar).Guía de configuración_ - Variables de entorno y opciones de servicio... _Índice de especificaciones funcionales: docs/functional/spec.rst .. _Índice de especificaciones técnicas: docs/technical/spec.rst .. _Índice de ADR: docs/adrs/index.rst .. _Índice de especificaciones de API: docs/api/spec.rst .. _Índice de hojas de ruta: docs/project/roadmap.rst .. _Inicio rápido para usuarios: docs/user/quickstart.rst .. _Guía de instalación: docs/user/installation.rst .. _Guía de seguridad: docs/user/security.rst .. _Guía de configuración: docs/user/configuration.rst
Actualmente estamos especificando y diseñando la arquitectura de la Fase 7: Motor de quórum multifactor y multipartito conectable:
\mathcal{O}(1) (buffer de :math:\le 64\,\text{KB}).\text{GF}(2^8) con etiquetas de verificación HMAC, que permite la autorización de clave dividida :math:k-de-:math:n.hmac-secret) y biometría de Linux (fprintd).gpk rekey) para cambiar la política de factores de una identidad sobre la marcha sin recrear las claves.gpk canónico (/usr/local/bin/gpk).Consulte la Hoja de ruta de la Fase 7_ y ADR-006_ para ver las especificaciones completas.
.. _Hoja de ruta de la Fase 7: docs/project/roadmaps/phase-7-pluggable-factors.rst .. _ADR-006: docs/adrs/2026-08-25-pluggable-auth-factors.rst
age.Ejecute las pruebas unitarias::
make test
Ejecute el conjunto completo de pruebas de integración nativas de Go (requiere swtpm)::
make integration-test
Si le resulta útil gpasskey y desea apoyar su desarrollo continuo, considere donar a través de Liberapay:
.. image:: https://liberapay.com/assets/widgets/donate.svg :target: https://liberapay.com/Renich/donate :alt: Dona usando Liberapay
Copyright 2026 EVALinux
Este proyecto está licenciado bajo la GNU General Public License v3.0 o posterior. Consulte el archivo LICENSE para más detalles.
org.freedesktop.secrets).