
केंद्रीकृत, TPM 2.0 हार्डवेयर-समर्थित क्रिप्टोग्राफिक पहचान एन्क्लेव और Linux के लिए बहु-प्रोटोकॉल ब्रिज (FIDO2/CTAP2 WebAuthn Passkeys, OpenSSH Agent, GnuPG LibAssuan, age-plugin, एन्क्रिप्टेड कॉन्फ़िग स्टोर)।
.. image:: https://gitlab.com/renich/genclave/-/raw/master/assets/banner.svg :width: 100% :align: center :alt: gEnclave बैनर
|
.. image:: https://gitlab.com/renich/genclave/badges/master/pipeline.svg :target: https://gitlab.com/renich/genclave/-/commits/master :alt: पाइपलाइन स्थिति .. image:: https://img.shields.io/gitlab/v/release/renich/genclave?logo=gitlab&label=release :target: https://gitlab.com/renich/genclave/-/releases :alt: GitLab रिलीज़ .. image:: https://img.shields.io/badge/Go-1.26+-00ADD8?style=flat&logo=go :target: https://golang.org/ :alt: Go संस्करण .. image:: https://img.shields.io/badge/License-GPLv3-blue.svg?logo=gnu :target: https://www.gnu.org/licenses/gpl-3.0 :alt: लाइसेंस
|
.. 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: बहु-प्रोटोकॉल ब्रिज .. image:: https://img.shields.io/badge/Donate-Liberapay-f6c915.svg?logo=liberapay&logoColor=black :target: https://liberapay.com/Renich/donate :alt: Liberapay के माध्यम से दान करें
.. caution::
प्री-अल्फा सॉफ़्टवेयर — उपयोग अपने जोखिम पर करें!
रिलीज़ क्रमांकन के बावजूद, gEnclave (पूर्व में gpasskey) वर्तमान में एक प्रयोगात्मक प्री-अल्फा सॉफ़्टवेयर है जो तीव्र आर्किटेक्चरल विकास के दौर से गुज़र रहा है। क्रिप्टोग्राफ़िक स्कीमा, वॉल्ट फ़ॉर्मेट और प्रोटोकॉल ब्रिज बैकवर्ड कम्पैटिबिलिटी के बिना बदल सकते हैं।
gEnclave एक एकीकृत हार्डवेयर-समर्थित सुरक्षा एन्क्लेव प्रदान करता है जो निजी कुंजियों और रहस्यों को TPM-सील्ड एन्क्रिप्टेड वॉल्ट में संग्रहीत करता है।
यह एक बहु-प्रोटोकॉल ब्रिज के रूप में कार्य करता है, जो WebAuthn/FIDO2 पासकीज़, OpenSSH Agent, age एन्क्रिप्शन प्लगइन प्रोटोकॉल, GnuPG कमिट साइनिंग इम्युलेशन और एन्क्रिप्टेड सीक्रेट कॉन्फ़िगरेशन का समर्थन करता है।
बहु-प्रोटोकॉल समर्थन:
/dev/uhid पर वर्चुअल USB सुरक्षा कुंजी एमुलेटर।age (v1) फ़ाइल एन्क्रिप्शन के लिए नेटिव समर्थन (age-plugin-ge/age-plugin-gpasskey)।genclave-gpg/gpasskey-gpg) का एमुलेशन।हार्डवेयर-समर्थित सुरक्षा: निजी कुंजियाँ AES-256-GCM से एन्क्रिप्टेड, मुख्य रूप से SRK कैशिंग के साथ TPM 2.0 में सील की गई और स्वचालित Argon2id सॉफ़्टवेयर फ़ॉलबैक।
क्रिप्टोग्राफ़िक PIN बाइंडिंग और ऑथ कैश: प्रत्येक ऑपरेशन PIN-व्युत्पन्न सबकी से बंधा होता है, साथ में कर्नेल-लॉक्ड RAM (mlock) में इन-मेमोरी प्राधिकरण कैश होता है। कॉन्फ़िगर करने योग्य बर्स्ट अवधि (डिफ़ॉल्ट 5s) या स्थायी/असीमित कैशिंग (vault में कॉन्फ़िगर या GENCLAVE_SSH_CACHE_TTL के माध्यम से) का समर्थन करता है, सिस्टम सस्पेंड या मैन्युअल लॉक पर तत्काल ज़ीरोइज़ेशन के साथ।
CLI प्री-ऑथेंटिकेशन और लॉक नियंत्रण: स्वचालित बैच स्क्रिप्ट और हेडलेस वर्कफ़्लो के लिए सीधे टर्मिनल से इन-मेमोरी कैश को अनलॉक या लॉक करें (ge unlock [--stdin], ge lock)।
Argon2id KDF: मास्टर पासफ़्रेज़, रिकवरी और सबकीज़ के लिए मेमोरी-हार्ड कुंजी व्युत्पत्ति।
ब्रूट-फ़ोर्स सुरक्षा: विफल प्राधिकरण प्रयासों के लिए स्वचालित एक्सपोनेंशियल बैकऑफ़।
इंटेलिजेंट UI रूटिंग: प्राधिकरण प्रॉम्प्ट के लिए स्वचालित सत्र पहचान (ग्राफ़िकल बनाम TTY)।
सुरक्षित मेमोरी: कुंजी सामग्री को स्वैप या GC हीप में लीक होने से रोकने के लिए mmap/mlock और "Wrap and Clear" रणनीति का उपयोग करता है।
पहचान प्रबंधन: vault प्रशासन और एन्क्रिप्टेड सीक्रेट प्रबंधन के लिए मज़बूत CLI (ge)।
हार्डवेयर और कर्नेल
* **TPM 2.0**: Hardware TPM 2.0 device (``/dev/tpmrm0`` or ``/dev/tpm0``), or ``swtpm`` for software-emulated development.
* **Linux Kernel with /dev/uhid**: Native kernel support for user-space HID devices (enabled by default in modern distributions) to support virtual FIDO2/CTAP2 browser passkeys.
Runtime Dependencies
wl-copy): आपदा रिकवरी संवाद में एक-क्लिक क्लिपबोर्ड प्रतिलिपि के लिए अनुशंसित।बिल्ड और विकास निर्भरताएँ
* **Go 1.26** or later
* **GNU Make**
* **swtpm** (optional, required to execute the full integration test suite)
Package Manager Installation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
On Fedora/RHEL/AlmaLinux:
.. code-block:: bash
sudo dnf install golang make tpm2-tools zenity pinentry wl-clipboard swtpm
On Arch Linux:
.. code-block:: bash
sudo pacman -S go make tpm2-tools zenity pinentry wl-clipboard swtpm
On Debian/Ubuntu:
.. code-block:: bash
sudo apt install golang-go make tpm2-tools zenity pinentry-curses wl-clipboard swtpm
Quick Start
-----------
Build and install for your user account (recommended, non-root):
.. code-block:: bash
make
make install-user # Installs binaries, systemd units, man pages, and activates services
Or install system-wide (requires root):
.. code-block:: bash
sudo make install # Installs to /usr/local/bin, /usr/share/man, etc.
Inspect enclave and daemon status:
.. code-block:: bash
ge status
Pre-authenticate the cache for automated scripts or headless sessions:
.. code-block:: bash
# Unlock cache interactively via TTY:
ge unlock
# Or pre-authenticate via pipeline in scripts:
echo "$PIN" | ge unlock --stdin
# Purge and lock immediately when finished:
ge lock
Manage OpenSSH keys in the vault:
.. code-block:: bash
# Generate a new hardware-sealed Ed25519 SSH key:
ge ssh generate --name personal-github
# Or import your existing keys from ~/.ssh/:
ge ssh import ~/.ssh/
# Export OpenSSH public key for GitHub/GitLab:
ge ssh public personal-github
Manage GnuPG identities & Git commit signing:
.. code-block:: bash
# Generate an OpenPGP signing key:
ge gpg generate --user-name "Your Name" --email "[email protected]"
# List registered keys and Libgcrypt keygrips:
ge gpg list
Manage WebAuthn Passkeys in Browser:
.. code-block:: bash
# Open Firefox or Chrome, go to https://webauthn.io/
# Click "Register" -> enter your PIN in the gEnclave prompt -> Passkey is created!
# Click "Authenticate" -> enter your PIN -> Instant login verified!
Manage encrypted secrets in the hardware-bound configuration store:
.. code-block:: bash
ge secret set my-api-key "super-secret-value"
ge secret get my-api-key
Documentation & Specifications
------------------------------
Our comprehensive engineering documentation is organized into modular specifications, architecture records, and roadmaps: