
Enclave d'identité cryptographique centralisée, adossée au matériel TPM 2.0, et pont multi-protocole pour Linux (clés d'accès FIDO2/CTAP2 WebAuthn, agent OpenSSH, GnuPG LibAssuan, age-plugin, magasin de configuration chiffré).
.. image:: https://gitlab.com/renich/gpasskey/-/raw/master/assets/logo.svg :width: 140px :align: center :alt: gpasskey logo
.. 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::
LOGICIEL PRÉ-ALPHA — UTILISATION À VOS PROPRES RISQUES !
Malgré la numérotation des versions, gpasskey est actuellement un logiciel expérimental de pré-alpha en cours de développement architectural rapide. Les schémas cryptographiques, les formats de coffre-fort et les ponts de protocoles peuvent changer sans rétrocompatibilité.
gpasskey fournit une enclave de sécurité adossée au matériel qui stocke les clés privées dans un coffre-fort chiffré.
Il agit comme un pont multi-protocole, prenant en charge l'agent SSH, le protocole de plugin de chiffrement age et l'émulation de signature de commits GnuPG.
/dev/uhid pour l'authentification native par clé d'accès dans les navigateurs (Firefox, Chrome, Chromium) et les systèmes d'exploitation.age (v1).mlock).mmap/mlock et une stratégie « Wrap and Clear » (envelopper puis effacer) pour empêcher le matériel de clé de fuir vers le swap ou le tas du GC.gpasskey-cli) pour l'administration du coffre-fort et la gestion des secrets chiffrés.gpasskey prend en charge la sécurité adossée au matériel via TPM 2.0. Cela garantit que votre clé maîtresse ne quitte jamais le TPM en clair et qu'elle est liée à l'état de démarrage du système.
Prérequis
* Un périphérique compatible TPM 2.0 (ou ``swtpm`` pour le développement).
* ``tpm2-tools`` installé sur le système.
Initialisation
Le stockage TPM est initialisé automatiquement lors de la création d'une nouvelle identité. Pour vérifier l'état du TPM :
.. code-block:: bash
gpasskey-cli status
Utilisation
Une fois initialisé, le TPM est utilisé de manière transparente par le démon. Toutes les données sensibles sont scellées à **PCR 0** (micrologiciel principal du système) et **PCR 7** (état du démarrage sécurisé). Toute modification du micrologiciel ou de la configuration du Secure Boot empêchera le déverrouillage du coffre-fort, protégeant ainsi contre les attaques hors ligne et les altérations non autorisées du système d'exploitation.
Démarrage rapide
----------------
Compilez et installez pour votre compte utilisateur (recommandé, sans root)::
make clean && make all
make install-user # Installs to ~/.local/bin, ~/.config/systemd/user, ~/.local/share/dbus-1
Ou installez à l'échelle du système (nécessite root)::
sudo make install # Installs to /usr/local/bin
Activez et démarrez l'activation par socket::
systemctl --user enable --now gpasskey-ssh.socket gpasskey-gpg.socket
Initialisez votre coffre-fort et vérifiez son état::
gpasskey-cli status
# Identities are enrolled automatically on first use by clients
# (WebAuthn passkeys, SSH, age, GPG) or via the portal API.
Clés d'accès WebAuthn dans le navigateur::
# 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!
Gérez les secrets chiffrés dans le magasin de configuration adossé au TPM::
gpasskey-cli set-secret my-api-key "super-secret-value"
gpasskey-cli get-secret my-api-key
Documentation et spécifications
-------------------------------
Notre documentation d'ingénierie complète est organisée en spécifications modulaires, registres d'architecture et feuilles de route :
* **Spécifications fonctionnelles** : `Index des spécifications fonctionnelles`_ — Définit les exigences utilisateur et les modèles d'autorisation.
* **Plans techniques** : `Index des spécifications techniques`_ — Architecture Go détaillée, primitives cryptographiques et conceptions d'enclaves.
* **Registres de décisions d'architecture (ADR)** : `Index des ADR`_ — Journal immuable des choix d'architecture, cryptographiques et de sécurité.
* **API et protocoles filaires** : `Index des spécifications API`_ — Socket de gestion, portails D-Bus et schémas filaires des ponts.
* **Feuille de route d'exécution du projet** : `Index de la feuille de route`_ — Calendriers d'ingénierie par phases et livrables jalons.
Guides utilisateur
Guide de démarrage rapide_ - Lancez-vous en 5 minutes.Guide d'installation_ - Configuration détaillée de la compilation, de udev et de systemd.Guide de sécurité_ - Enclave matérielle TPM 2.0 et isolation mémoire « Wrap and Clear ».Guide de configuration_ - Variables d'environnement et options de service... _Index des spécifications fonctionnelles: docs/functional/spec.rst .. _Index des spécifications techniques: docs/technical/spec.rst .. _Index des ADR: docs/adrs/index.rst .. _Index des spécifications API: docs/api/spec.rst .. _Index de la feuille de route: docs/project/roadmap.rst .. _Guide de démarrage rapide: docs/user/quickstart.rst .. _Guide d'installation: docs/user/installation.rst .. _Guide de sécurité: docs/user/security.rst .. _Guide de configuration: docs/user/configuration.rst
Nous sommes actuellement en train de spécifier et d'architecturer la phase 7 : moteur de quorum enfichable multi-facteurs et multi-parties :
\mathcal{O}(1) (tampon de :math:\le 64\,\text{KB}).\text{GF}(2^8) avec étiquettes de vérification HMAC, permettant une autorisation par clé fragmentée de type :math:k-of-:math:n.hmac-secret) et biométrie Linux (fprintd).gpk rekey) pour changer à la volée la politique de facteurs d'une identité sans recréer les clés.gpk (/usr/local/bin/gpk).Voir Feuille de route de la phase 7_ et ADR-006_ pour les spécifications complètes.
.. _Feuille de route de la phase 7: docs/project/roadmaps/phase-7-pluggable-factors.rst .. _ADR-006: docs/adrs/2026-08-25-pluggable-auth-factors.rst
age.Exécutez les tests unitaires::
make test
Exécutez la suite d'intégration complète en Go natif (nécessite swtpm)::
make integration-test
Si vous trouvez gpasskey utile et souhaitez soutenir son développement continu, pensez à faire un don via Liberapay :
.. image:: https://liberapay.com/assets/widgets/donate.svg :target: https://liberapay.com/Renich/donate :alt: Donate using Liberapay
Copyright 2026 EVALinux
Ce projet est sous licence GNU General Public License v3.0 ou ultérieure. Consultez le fichier LICENSE pour plus de détails.
org.freedesktop.secrets).