
Linux向けの一元管理型TPM 2.0ハードウェア連携暗号アイデンティティエンクレーブ、およびマルチプロトコルブリッジ(FIDO2/CTAP2 WebAuthnパスキー、OpenSSHエージェント、GnuPG LibAssuan、age-plugin、暗号化設定ストア)
.. image:: https://gitlab.com/renich/gpasskey/-/raw/master/assets/logo.svg :width: 140px :align: center :alt: gpasskey logo
Linux 向けの中央集権型暗号 ID エンクレーブ。
.. 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::
プレアルファ版ソフトウェア — ご自身の責任でご使用ください!
リリース番号にかかわらず、gpasskey は現在、急速なアーキテクチャ開発が進行中の実験的なプレアルファ版ソフトウェアです。暗号スキーマ、ボールト形式、プロトコルブリッジは、後方互換性なしに変更される可能性があります。
gpasskey は、暗号化されたボールトに秘密鍵を格納する、ハードウェア支援型のセキュリティエンクレーブを提供します。
SSHエージェント、age 暗号化プラグインプロトコル、GnuPGコミット署名エミュレーションをサポートするマルチプロトコルブリッジとして機能します。
/dev/uhid 上の仮想USBセキュリティキーエミュレータ。age (v1) ファイル暗号化のネイティブサポート。mlock)内に15秒間のセキュアセッションキャッシュを保持します。mmap/mlock と「Wrap and Clear」戦略を使用して、鍵素材がスワップやGCヒープに漏れるのを防ぎます。gpasskey-cli)。gpasskey はTPM 2.0によるハードウェア支援型セキュリティをサポートします。これにより、マスターキーが暗号化されずにTPMの外部に出ることはなく、システムのブート状態にバインドされることが保証されます。
要件
* TPM 2.0互換デバイス(開発用には ``swtpm`` でも可)。
* システムに ``tpm2-tools`` がインストールされていること。
初期化
TPMストレージは、新しいIDを作成すると自動的に初期化されます。TPMの状態を確認するには:
.. code-block:: bash
gpasskey-cli status
使用方法
初期化後、TPMはデーモンによって透過的に使用されます。すべての機密データは **PCR 0**(コアシステムファームウェア)および **PCR 7**(セキュアブート状態)に対してシールされます。ファームウェアまたはセキュアブート設定に変更が加えられるとボールトのロックを解除できなくなり、オフライン攻撃や不正なOS改ざんから保護されます。
クイックスタート
-----------
ユーザーアカウント用にビルドしてインストール(推奨、非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パスキー::
# 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) 上の キーラップ型シャミア秘密分散 により、:math:k-of-:math:n 分割鍵認証を実現します。hmac-secret)、Linux生体認証(fprintd)。gpk rekey)。gpk(/usr/local/bin/gpk)に合理化します。org.freedesktop.secrets)とのシームレスな統合。完全な仕様については 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ファイルを参照してください。