
केंद्रीकृत, TPM 2.0 हार्डवेयर-समर्थित क्रिप्टोग्राफिक पहचान एन्क्लेव और Linux के लिए बहु-प्रोटोकॉल ब्रिज (FIDO2/CTAP2 WebAuthn Passkeys, OpenSSH Agent, GnuPG LibAssuan, age-plugin, एन्क्रिप्टेड कॉन्फ़िग स्टोर)।
.. image:: https://gitlab.com/renich/gpasskey/-/raw/master/assets/banner.svg :width: 100% :align: center :alt: gEnclave banner
|
.. 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/badge/Donate-Liberapay-f6c915.svg?logo=liberapay&logoColor=black :target: https://liberapay.com/Renich/donate :alt: Donate using Liberapay
.. caution::
PRE-ALPHA सॉफ़्टवेयर — अपने जोखिम पर उपयोग करें!
रिलीज़ नंबरिंग के बावजूद, gEnclave (पूर्व में gpasskey) वर्तमान में प्रायोगिक प्री-अल्फा सॉफ़्टवेयर है जो तेज़ी से आर्किटेक्चरल विकास से गुज़र रहा है। क्रिप्टोग्राफ़िक स्कीमा, वॉल्ट फ़ॉर्मेट और प्रोटोकॉल ब्रिज बैकवर्ड कम्पैटिबिलिटी के बिना बदल सकते हैं।
gEnclave एक एकीकृत हार्डवेयर-समर्थित सुरक्षा एन्क्लेव प्रदान करता है जो निजी कीज़ और सीक्रेट्स को TPM-सील्ड एन्क्रिप्टेड वॉल्ट में संग्रहीत करता है।
यह एक मल्टी-प्रोटोकॉल ब्रिज के रूप में कार्य करता है, जो WebAuthn/FIDO2 पासकीज़, OpenSSH एजेंट, 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) या पर्सिस्टेंट/असीमित कैशिंग (GENCLAVE_SSH_CACHE_TTL="infinite") का समर्थन करता है, सिस्टम सस्पेंड या मैनुअल लॉक पर तत्काल ज़ीरोइज़ेशन के साथ।
CLI प्री-ऑथेंटिकेशन और लॉक नियंत्रण: ऑटोमेटेड बैच स्क्रिप्ट और हेडलेस वर्कफ़्लो के लिए सीधे टर्मिनल से इन-मेमोरी कैश को अनलॉक या लॉक करें (ge unlock [--stdin], )।
हार्डवेयर और कर्नेल
* **TPM 2.0**: हार्डवेयर TPM 2.0 डिवाइस (``/dev/tpmrm0`` या ``/dev/tpm0``), या सॉफ़्टवेयर-एमुलेटेड डेवलपमेंट के लिए ``swtpm``।
* **/dev/uhid के साथ Linux कर्नेल**: वर्चुअल FIDO2/CTAP2 ब्राउज़र पासकीज़ का समर्थन करने के लिए यूज़र-स्पेस HID डिवाइस के लिए नेटिव कर्नेल समर्थन (आधुनिक डिस्ट्रीब्यूशन में डिफ़ॉल्ट रूप से सक्षम)।
रनटाइम निर्भरताएँ
wl-copy) या xclip: डिज़ास्टर रिकवरी डायलॉग में वन-क्लिक क्लिपबोर्ड कॉपी के लिए अनुशंसित।बिल्ड और डेवलपमेंट निर्भरताएँ
* **Go 1.26** या बाद का संस्करण
* **GNU Make**
* **swtpm** (वैकल्पिक, पूर्ण इंटीग्रेशन टेस्ट सूट चलाने के लिए आवश्यक)
पैकेज मैनेजर इंस्टॉलेशन
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Fedora/RHEL/AlmaLinux पर:
.. code-block:: bash
sudo dnf install golang make tpm2-tools zenity pinentry wl-clipboard swtpm
Arch Linux पर:
.. code-block:: bash
sudo pacman -S go make tpm2-tools zenity pinentry wl-clipboard swtpm
Debian/Ubuntu पर:
.. code-block:: bash
sudo apt install golang-go make tpm2-tools zenity pinentry-curses wl-clipboard swtpm
क्विक स्टार्ट
-----------
अपने यूज़र अकाउंट के लिए बिल्ड और इंस्टॉल करें (अनुशंसित, नॉन-रूट):
.. code-block:: bash
make clean && make all
make install-user # Installs to ~/.local/bin, ~/.config/systemd/user, ~/.local/share/dbus-1
या सिस्टम-वाइड इंस्टॉल करें (रूट आवश्यक):
.. code-block:: bash
sudo make install # Installs to /usr/local/bin
सॉकेट एक्टिवेशन सक्षम और प्रारंभ करें:
.. code-block:: bash
systemctl --user enable --now genclave-ssh.socket genclave-gpg.socket
अपना वॉल्ट इनिशियलाइज़ करें और स्थिति सत्यापित करें:
.. code-block:: bash
ge status
# Identities are enrolled automatically on first use by clients
# (WebAuthn passkeys, SSH, age, GPG) or via the portal API.
ऑटोमेटेड स्क्रिप्ट या हेडलेस सेशन के लिए कैश को प्री-ऑथेंटिकेट करें:
.. 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
ब्राउज़र में WebAuthn पासकीज़:
.. 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!
TPM-समर्थित कॉन्फ़िग स्टोर में एन्क्रिप्टेड सीक्रेट्स प्रबंधित करें:
.. code-block:: bash
ge set-secret my-api-key "super-secret-value"
ge get-secret my-api-key
दस्तावेज़ीकरण और विशिष्टताएँ
------------------------------
हमारा व्यापक इंजीनियरिंग दस्तावेज़ीकरण मॉड्यूलर विशिष्टताओं, आर्किटेक्चर रिकॉर्ड और रोडमैप में व्यवस्थित है:
* **कार्यात्मक विशिष्टताएँ**: `Functional Spec Index`_ — उपयोगकर्ता आवश्यकताओं और ऑथराइज़ेशन मॉडल को परिभाषित करता है।
* **तकनीकी ब्लूप्रिंट**: `Technical Spec Index`_ — विस्तृत Go आर्किटेक्चर, क्रिप्टो प्रिमिटिव और एन्क्लेव डिज़ाइन।
* **आर्किटेक्चर डिसीज़न रिकॉर्ड (ADRs)**: `ADR Index`_ — आर्किटेक्चरल, क्रिप्टो और सुरक्षा विकल्पों का अपरिवर्तनीय लॉग।
* **API और वायर प्रोटोकॉल**: `API Spec Index`_ — मैनेजमेंट सॉकेट, D-Bus पोर्टल और ब्रिज वायर स्कीमा।
* **प्रोजेक्ट एक्ज़ीक्यूशन रोडमैप**: `Roadmap Index`_ — चरणबद्ध इंजीनियरिंग टाइमलाइन और माइलस्टोन डिलीवरेबल।
उपयोगकर्ता गाइड
~~~~~~~~~~~
* `User Quick Start`_ - 5 मिनट में शुरू करें।
* `Installation Guide`_ - विस्तृत बिल्ड, udev और systemd सेटअप।
* `OpenSSH Guide`_ - OpenSSH एजेंट इंटीग्रेशन, जंप होस्ट और FIDO2 कीज़।
* `GnuPG & Git Signing Guide`_ - OpenPGP की प्रबंधन और Git कमिट साइनिंग।
* `Pluggable Factors Guide`_ - कीफ़ाइल, YubiKeys, बायोमेट्रिक्स और Shamir क्वोरम।
* `Security Guide`_ - हार्डवेयर TPM 2.0 एन्क्लेव और "Wrap and Clear" मेमोरी आइसोलेशन।
* `Configuration Guide`_ - एनवायरनमेंट वेरिएबल और सेवा विकल्प।
* `CLI Reference`_ - पूर्ण कमांड-लाइन इंटरफ़ेस दस्तावेज़ीकरण।
.. _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
.. _OpenSSH Guide: docs/user/ssh.rst
.. _GnuPG & Git Signing Guide: docs/user/gpg.rst
.. _Pluggable Factors Guide: docs/user/factors.rst
.. _Security Guide: docs/user/security.rst
.. _Configuration Guide: docs/user/configuration.rst
.. _CLI Reference: docs/user/cli.rst
प्लगेबल फ़ैक्टर और मल्टी-पार्टी क्वोरम (चरण 7)
------------------------------------------------
**चरण 7: प्लगेबल मल्टी-फ़ैक्टर और मल्टी-पार्टी क्वोरम इंजन** प्रदान करता है:
* **स्ट्रीमिंग आर्बिट्ररी फ़ाइल हैशर**: किसी भी फ़ाइल (एक छोटी टेक्स्ट कविता से लेकर 100GB ऑडियो मास्टर FLAC या इमेज तक) को स्थिर :math:`\mathcal{O}(1)` मेमोरी खपत (:math:`\le 64\,\text{KB}` बफ़र) के साथ ऑथराइज़ेशन फ़ैक्टर के रूप में उपयोग करें।
* **मल्टी-पार्टी क्वोरम ("द कोका-कोला रेसिपी")**: HMAC वेरिफ़िकेशन टैग के साथ :math:`\text{GF}(2^8)` पर **Key-Wrapped Shamir Secret Sharing**, जो :math:`k`-of-:math:`n` स्प्लिट-की ऑथराइज़ेशन को सक्षम करता है।
* **हार्डवेयर और बायोमेट्रिक्स**: फ़िज़िकल YubiKey (Slot 2 HMAC-SHA1), फ़िज़िकल FIDO2 कीज़ (``hmac-secret``) और Linux बायोमेट्रिक्स (``fprintd``)।
* **डायनामिक फ़ैक्टर री-कीइंग**: कीज़ को फिर से बनाए बिना किसी आइडेंटिटी की फ़ैक्टर पॉलिसी को तुरंत बदलने के लिए एटॉमिक इन-मेमोरी री-एन्क्रिप्शन (``ge rekey``)।
* **CLI आधुनिकीकरण**: कमांड-लाइन इंटरफ़ेस को कैनोनिकल ``ge`` में सुव्यवस्थित किया गया।
* **डेस्कटॉप ऑटो-अनलॉक**: Freedesktop Secret Service (``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
घटक
----------
* **genclaved**: कोर सिक्योरिटी एन्क्लेव और वर्चुअल USB CTAP2/FIDO2 सिक्योरिटी की डेमन (``man 8 genclaved``)।
* **ge**: वॉल्ट प्रशासन, OpenSSH/GnuPG की जनरेशन और एन्क्रिप्टेड कॉन्फ़िगरेशन के लिए प्राथमिक कमांड-लाइन टूल (``man 1 ge``)।
* **age-plugin-ge**: ``age`` एन्क्रिप्शन टूल के लिए प्लगइन (``man 1 age-plugin-ge``)।
* **genclave-gpg**: GnuPG-संगत साइनिंग और सत्यापन के लिए एम्युलेशन ब्रिज (``man 1 genclave-gpg``)।
* **genclave-ui**: PIN एंट्री के लिए ग्राफ़िकल हेल्पर (``man 1 genclave-ui``)।
डेवलपमेंट
-----------
यूनिट टेस्ट चलाएँ:
.. code-block:: bash
make test
पूर्ण Go-नेटिव इंटीग्रेशन सूट चलाएँ (``swtpm`` आवश्यक):
.. code-block:: bash
make integration-test
समर्थन और दान
-------------------
यदि आपको **gEnclave** उपयोगी लगता है और आप इसके चल रहे विकास का समर्थन करना चाहते हैं, तो 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 फ़ाइल देखें।
ge lockArgon2id KDF: मास्टर पासफ़्रेज़, रिकवरी और सबकीज़ के लिए मेमोरी-हार्ड की डेरिवेशन।
ब्रूट-फ़ोर्स सुरक्षा: विफल ऑथराइज़ेशन प्रयासों के लिए स्वचालित एक्सपोनेंशियल बैकऑफ़।
इंटेलिजेंट UI रूटिंग: ऑथराइज़ेशन प्रॉम्प्ट के लिए स्वचालित सेशन डिटेक्शन (ग्राफ़िकल बनाम TTY)।
सुरक्षित मेमोरी: की मटेरियल को स्वैप या GC हीप में लीक होने से रोकने के लिए mmap/mlock और "Wrap and Clear" रणनीति का उपयोग करता है।
आइडेंटिटी प्रबंधन: वॉल्ट प्रशासन और एन्क्रिप्टेड सीक्रेट प्रबंधन के लिए मज़बूत CLI (ge)।