
Централизованный криптографический анклав идентичности с аппаратной поддержкой TPM 2.0 и многопротокольный мост для Linux (FIDO2/CTAP2 WebAuthn Passkeys, OpenSSH Agent, GnuPG LibAssuan, age-plugin, зашифрованное хранилище конфигурации).
.. image:: https://gitlab.com/renich/gpasskey/-/raw/master/assets/logo.svg :width: 140px :align: center :alt: gpasskey logo
Централизованный криптографический анклав идентичности для 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 — ИСПОЛЬЗУЙТЕ НА СВОЙ СТРАХ И РИСК!
Несмотря на нумерацию релизов, gpasskey в настоящее время является экспериментальным программным обеспечением стадии pre-alpha, находящимся в процессе стремительного архитектурного развития. Криптографические схемы, форматы хранилищ и мосты протоколов могут меняться без обратной совместимости.
gpasskey предоставляет аппаратно-поддерживаемый защищённый анклав, который хранит закрытые ключи в зашифрованном хранилище. Он действует как многопротокольный мост, поддерживая SSH Agent, протокол плагина шифрования age и эмуляцию подписи коммитов GnuPG.
/dev/uhid для нативной аутентификации Passkey в браузерах (Firefox, Chrome, Chromium) и ОС.age (v1).mlock).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** (состояние Secure Boot). Любое изменение прошивки или конфигурации Secure Boot предотвратит разблокировку хранилища, защищая от офлайн-атак и несанкционированного вмешательства в ОС.
Быстрый старт
-------------
Сборка и установка для вашей учётной записи (рекомендуется, без 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
Включите и запустите активацию сокетов::
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 Passkeys в браузере::
# 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
Документация и спецификации
------------------------------
Наша обширная инженерная документация организована в виде модульных спецификаций, записей об архитектуре и дорожных карт:
* **Функциональные спецификации**: `Functional Spec Index`_ — Определяет пользовательские требования и модели авторизации.
* **Технические проекты**: `Technical Spec Index`_ — Подробная архитектура на Go, криптографические примитивы и конструкции анклава.
* **Записи об архитектурных решениях (ADR)**: `ADR Index`_ — Неизменяемый журнал архитектурных, криптографических решений и решений в области безопасности.
* **API и сетевые протоколы**: `API Spec Index`_ — Управляющий сокет, порталы D-Bus и сетевые схемы мостов.
* **Дорожная карта выполнения проекта**: `Roadmap Index`_ — Поэтапные инженерные сроки и контрольные результаты.
Руководства пользователя
User Quick Start_ - Начало работы за 5 минут.Installation Guide_ - Подробная настройка сборки, udev и systemd.Security Guide_ - Аппаратный анклав TPM 2.0 и изоляция памяти «Wrap and Clear».Configuration Guide_ - Переменные окружения и параметры службы... _Functional Spec Index: docs/functional/spec.rst .. _Technical Spec Index: docs/technical/spec.rst .. _ADR Index: docs/adrs/index.rst .. _API Spec Index: docs/api/spec.rst .. _Roadmap Index: docs/project/roadmap.rst .. _User Quick Start: docs/user/quickstart.rst .. _Installation Guide: docs/user/installation.rst .. _Security Guide: docs/user/security.rst .. _Configuration Guide: docs/user/configuration.rst
В настоящее время мы специфицируем и проектируем Фазу 7: Подключаемый движок многофакторной и многосторонней кворумной аутентификации:
\mathcal{O}(1) (буфер :math:\le 64\,\text{KB}).\text{GF}(2^8) с тегами проверки HMAC, обеспечивающий авторизацию с разделением ключа :math:k-из-:math:n.hmac-secret) и биометрия Linux (fprintd).gpk rekey) для переключения политики факторов идентичности на лету без пересоздания ключей.gpk (/usr/local/bin/gpk).Полные спецификации см. в Phase 7 Roadmap_ и ADR-006_.
.. _Phase 7 Roadmap: 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
Copyright 2026 EVALinux
Этот проект лицензирован под GNU General Public License v3.0 или более поздней версией. Подробности см. в файле LICENSE.
org.freedesktop.secrets