
Enclave crittografica centralizzata per identità supportata da hardware TPM 2.0 e bridge multi-protocollo per Linux (FIDO2/CTAP2 WebAuthn Passkeys, OpenSSH Agent, GnuPG LibAssuan, age-plugin, archivio configurazione cifrato).
.. image:: https://gitlab.com/renich/gpasskey/-/raw/master/assets/logo.svg :width: 140px :align: center :alt: gpasskey logo
L'enclave di identità crittografica centralizzata per 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: Donate using Liberapay
.. caution::
PRE-ALPHA SOFTWARE — UTILIZZO A PROPRIO RISCHIO!
Nonostante la numerazione delle release, gpasskey è attualmente un software sperimentale pre-alpha in fase di rapido sviluppo architetturale. Gli schemi crittografici, i formati del vault e i bridge di protocollo possono cambiare senza compatibilità retroattiva.
gpasskey fornisce un'enclave di sicurezza basata su hardware che archivia le chiavi private in un vault crittografato.
Funge da bridge multi-protocollo, supportando SSH Agent, il protocollo plugin di crittografia age e l'emulazione della firma dei commit GnuPG.
/dev/uhid per l'autenticazione Passkey nativa nel browser (Firefox, Chrome, Chromium) e nel sistema operativo.age (v1).mlock).mmap/mlock e una strategia "Wrap and Clear" per impedire che il materiale chiave venga disperso nello swap o nell'heap del GC.gpasskey-cli) per l'amministrazione del vault e la gestione di segreti crittografati.gpasskey supporta la sicurezza basata su hardware tramite TPM 2.0. Ciò garantisce che la tua chiave principale non lasci mai il TPM non crittografata e sia vincolata allo stato di avvio del sistema.
Requisiti
* Un dispositivo compatibile con TPM 2.0 (o ``swtpm`` per lo sviluppo).
* ``tpm2-tools`` installato sul sistema.
Inizializzazione
Lo storage TPM viene inizializzato automaticamente quando crei una nuova identità. Per verificare lo stato del TPM:
.. code-block:: bash
gpasskey-cli status
Utilizzo
Una volta inizializzato, il TPM viene usato in modo trasparente dal demone. Tutti i dati sensibili sono sigillati contro **PCR 0** (firmware di sistema core) e **PCR 7** (stato Secure Boot). Qualsiasi modifica al firmware o alla configurazione di Secure Boot impedirà lo sblocco del vault, proteggendo da attacchi offline e manomissioni non autorizzate del sistema operativo.
Avvio Rapido
------------
Compila e installa per il tuo account utente (consigliato, non root)::
make clean && make all
make install-user # Installs to ~/.local/bin, ~/.config/systemd/user, ~/.local/share/dbus-1
Oppure installa a livello di sistema (richiede root)::
sudo make install # Installs to /usr/local/bin
Abilita e avvia l'attivazione via socket::
systemctl --user enable --now gpasskey-ssh.socket gpasskey-gpg.socket
Inizializza il tuo vault e verifica lo stato::
gpasskey-cli status
# Identities are enrolled automatically on first use by clients
# (WebAuthn passkeys, SSH, age, GPG) or via the portal API.
Passkey WebAuthn nel Browser::
# 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!
Gestisci i segreti crittografati nell'archivio di configurazione basato su TPM::
gpasskey-cli set-secret my-api-key "super-secret-value"
gpasskey-cli get-secret my-api-key
Documentazione e Specifiche
---------------------------
La nostra documentazione ingegneristica completa è organizzata in specifiche modulari, record di architettura e roadmap:
* **Specifiche Funzionali**: `Indice delle Specifiche Funzionali`_ — Definisce i requisiti utente e i modelli di autorizzazione.
* **Blueprint Tecnici**: `Indice delle Specifiche Tecniche`_ — Architettura Go dettagliata, primitive crittografiche e design delle enclave.
* **Architecture Decision Records (ADR)**: `Indice ADR`_ — Registro immutabile delle scelte architetturali, crittografiche e di sicurezza.
* **API e Protocolli Wire**: `Indice delle Specifiche API`_ — Socket di gestione, portali D-Bus e schemi wire dei bridge.
* **Roadmap di Esecuzione del Progetto**: `Indice della Roadmap`_ — Tempistiche ingegneristiche a fasi e deliverable di tappa.
Guide Utente
Avvio Rapido Utente_ - Per iniziare in 5 minuti.Guida all'Installazione_ - Configurazione dettagliata di build, udev e systemd.Guida alla Sicurezza_ - Enclave hardware TPM 2.0 e isolamento della memoria "Wrap and Clear".Guida alla Configurazione_ - Variabili d'ambiente e opzioni di servizio... _Indice delle Specifiche Funzionali: docs/functional/spec.rst .. _Indice delle Specifiche Tecniche: docs/technical/spec.rst .. _Indice ADR: docs/adrs/index.rst .. _Indice delle Specifiche API: docs/api/spec.rst .. _Indice della Roadmap: docs/project/roadmap.rst .. _Avvio Rapido Utente: docs/user/quickstart.rst .. _Guida all'Installazione: docs/user/installation.rst .. _Guida alla Sicurezza: docs/user/security.rst .. _Guida alla Configurazione: docs/user/configuration.rst
Stiamo attualmente specificando e architettando Fase 7: Motore Quorum Multi-Fattore e Multi-Parte Pluggabile:
\mathcal{O}(1) (buffer di :math:\le 64\,\text{KB}).\text{GF}(2^8) con tag di verifica HMAC, che abilita l'autorizzazione con chiave suddivisa :math:k-di-:math:n.hmac-secret) e biometria Linux (fprintd).gpk rekey) per cambiare al volo la policy dei fattori di un'identità senza ricreare le chiavi.gpk (/usr/local/bin/gpk).Vedi Roadmap della Fase 7_ e ADR-006_ per le specifiche complete.
.. _Roadmap della Fase 7: docs/project/roadmaps/phase-7-pluggable-factors.rst .. _ADR-006: docs/adrs/2026-08-25-pluggable-auth-factors.rst
age.Esegui i test unitari::
make test
Esegui la suite di integrazione completa Go-native (richiede swtpm)::
make integration-test
Se trovi gpasskey utile e vorresti supportare il suo sviluppo continuo, valuta di fare una donazione tramite Liberapay:
.. image:: https://liberapay.com/assets/widgets/donate.svg :target: https://liberapay.com/Renich/donate :alt: Donate using Liberapay
Copyright 2026 EVALinux
Questo progetto è concesso in licenza secondo la GNU General Public License v3.0 o successive. Vedi il file LICENSE per i dettagli.
org.freedesktop.secrets