पहले Vault को उसके मास्टर पासवर्ड से बनाएँ या अनलॉक करें। Settings → Security (सेटिंग्स → सुरक्षा) खोलें, प्रदाता की स्थिति जाँचें और बायोमेट्रिक अनलॉक सक्षम करें। पंजीकरण के समय नए सिरे से सिस्टम प्रमाणीकरण माँगा जाता है। इसके बाद लॉगिन स्क्रीन पर मास्टर-पासवर्ड फ़ॉर्म के साथ Touch ID, Windows Hello या फ़िंगरप्रिंट अनलॉक भी दिखता है। Disable and remove enrollment (अक्षम करें और पंजीकरण हटाएँ) केवल इस ऐप्लिकेशन की कैश की गई कुंजी हटाता है, ऑपरेटिंग सिस्टम में दर्ज फ़िंगरप्रिंट कभी नहीं।
मास्टर पासवर्ड संभालकर रखें: रद्द करने, टाइमआउट, हार्डवेयर/कीरिंग उपलब्ध न होने और अमान्य हो चुके पंजीकरण, इन सभी स्थितियों में पासवर्ड का विकल्प ज़रूरी है। बायोमेट्रिक पंजीकरण केवल इसी उपयोगकर्ता, डिवाइस और Vault तक सीमित है। यह न तो रिकवरी का तरीका है और न ही बैकअप। Vault रीसेट करने पर पंजीकरण रद्द होता है और मौजूदा एन्क्रिप्टेड प्रोफ़ाइल तथा होस्ट फ़िंगरप्रिंट हटाए जाते हैं, लेकिन केवल मौजूदा SMAZAT पुष्टि के बाद।
| प्लेटफ़ॉर्म | प्रमाणीकरण और भंडारण | आवश्यकताएँ और सीमाएँ |
|---|---|---|
| macOS Apple Silicon | नेटिव LocalAuthentication / Touch ID; biometryCurrentSet और WhenUnlockedThisDeviceOnly वाला Security.framework Keychain आइटम |
दर्ज Touch ID, उपलब्ध सेंसर और उपयोग योग्य लॉगिन Keychain। फ़िंगरप्रिंट बदलने पर आइटम अमान्य हो जाता है। प्रोडक्शन अपडेट के लिए स्थिर Developer ID साइनिंग का उपयोग करें; ad hoc Alpha साइनिंग Keychain ट्रस्ट और लोकल-नेटवर्क अनुमति की ट्रैकिंग बिगाड़ सकती है। |
| Windows x64 | मुख्य HWND से जुड़ा नेटिव WinRT Windows Hello डेस्कटॉप इंटरऑप; Windows Credential Manager में मौजूदा उपयोगकर्ता की DPAPI से एन्क्रिप्टेड कुंजी | कॉन्फ़िगर किया गया Hello फ़िंगरप्रिंट, चेहरा या PIN। यह सुविधाजनक अनलॉक है: Hello की मंज़ूरी ऐप लागू करता है, जबकि DPAPI स्वयं बायोमेट्रिक से सुरक्षित नहीं है। उसी उपयोगकर्ता के रूप में चल रहा अन्य कोड क्रेडेंशियल को डिक्रिप्ट कर सकता है। |
| Ubuntu x64 | fprintd D-Bus के ज़रिए मौजूदा उपयोगकर्ता का दर्ज फ़िंगरप्रिंट; स्पष्ट libsecret / Secret Service क्रेडेंशियल भंडारण | समर्थित रीडर, दर्ज फ़िंगरप्रिंट, चल रही डेस्कटॉप Secret Service और डिफ़ॉल्ट कीरिंग। सुविधाजनक अनलॉक: कीरिंग का क्रेडेंशियल क्रिप्टोग्राफ़िक रूप से फ़िंगरप्रिंट सत्यापन से जुड़ा नहीं है। basic_text या सादे-पाठ फ़ाइल का कोई विकल्प नहीं। |
Ubuntu पर वैकल्पिक रनटाइम पैकेज python3-gi, gir1.2-secret-1, gnome-keyring (या कोई अन्य संगत Secret Service) और fprintd हैं। छूटे हुए पैकेज सामान्य OS पैकेज मैनेजर से इंस्टॉल करें, फिर OS सेटिंग्स में फ़िंगरप्रिंट दर्ज करें। प्रमाणीकरण मौजूदा उपयोगकर्ता से होता है और इसके लिए root की ज़रूरत नहीं होती, न ही PAM बदलता है। डेस्कटॉप कीरिंग के बिना हेडलेस SSH सेशन "उपलब्ध नहीं" रिपोर्ट करता है; वह चुपचाप कुंजी कहीं और नहीं सहेजता।
लॉकिंग नियम
मौजूदा इंस्टॉलेशन के लिए स्वचालित लॉकिंग बंद रहती है। इसे सक्षम करने पर डिफ़ॉल्ट रूप से 15 मिनट चुना जाता है; समर्थित मान Never, 1, 5, 10, 15, 30 और 60 मिनट हैं। ऐप्लिकेशन विंडो में कीबोर्ड और माउस इनपुट गतिविधि माने जाते हैं; आने वाला SSH आउटपुट नहीं। वैकल्पिक फ़ोकस लॉकिंग ऐप्लिकेशन की प्लगइन विंडो को ऐप का हिस्सा मानती है और चल रहे सिस्टम प्रमाणीकरण संकेत को पूरा होने देती है। इन नियमों को बदलने के लिए मास्टर पासवर्ड ज़रूरी है।
हर Vault लॉक, जिसमें निष्क्रियता और फ़ोकस लॉकिंग भी शामिल हैं, सक्रिय SSH सेशन को डिस्कनेक्ट करता है, प्लगइन बंद करता है और डायग्नोस्टिक्स रोकता है। लॉक करने से पहले रिमोट संपादन सहेज लें। यह मौजूदा मैन्युअल-लॉक व्यवहार को बनाए रखता है; लॉक के बाद कोई भी SSH क्रेडेंशियल बैकग्राउंड प्लगइन के लिए उपलब्ध नहीं रहता।
वैकल्पिक संवेदनशील-कार्य नीति प्रोफ़ाइल हटाने, प्लगइन इंस्टॉल/हटाने, इंस्टॉलर शुरू करने और अनलॉक किए गए Vault को रीसेट करने पर नए सिरे से सिस्टम प्रमाणीकरण माँगती है। रिमोट टर्मिनल कमांड और प्लगइन द्वारा फ़ाइल संपादन इस नीति के दायरे से बाहर हैं। यह नीति SSH सर्वर के प्राधिकरण की जगह नहीं लेती। अगर प्रदाता काम करना बंद कर दे, तो मास्टर पासवर्ड से अनलॉक करें और उसी पासवर्ड से नीति बदलें। लॉक की गई रिकवरी स्क्रीन से विनाशकारी कार्रवाई की पुष्टि के बाद रीसेट उपलब्ध रहता है।
Vault और IPC डिज़ाइन
मौजूदा v1 Vault अब भी scrypt के साथ AES-256-GCM ही है; पंजीकरण उसकी फ़ाइलों को दोबारा नहीं लिखता और न ही उसका स्कीमा बदलता है। OS क्रेडेंशियल भंडारण में केवल उसकी व्युत्पन्न 32-बाइट कुंजी की एक प्रति जाती है। सादा मास्टर पासवर्ड कभी सहेजा नहीं जाता। स्थानीय पंजीकरण मेटाडेटा में यादृच्छिक क्रेडेंशियल ID, प्रदाता और Vault के अपरिवर्तनीय मेटाडेटा से जुड़ा SHA-256 होता है। पुनः प्राप्त कुंजी को सेशन खुलने से पहले प्रमाणित डिक्रिप्शन पास करना होता है। मुख्य प्रोसेस के बफ़र उपयोग के बाद साफ़ कर दिए जाते हैं; नेटिव प्रोटोकॉल स्ट्रिंग अस्थायी प्रोसेस मेमोरी में रहती हैं, यह प्रबंधित रनटाइम में मेमोरी के पूरी तरह मिटाए जाने का दावा नहीं है।
हेल्पर सीमित निजी stdin/stdout पाइप से संवाद करता है, कोई शेल कमांड स्वीकार नहीं करता, प्रमाणीकरण टाइमआउट रखता है और साफ़ किए गए त्रुटि कोड लौटाता है। हेल्पर ASAR के बाहर resources/biometrics में पैकेज किए जाते हैं; ये स्वतंत्र नेटिव एक्ज़िक्यूटेबल हैं, इसलिए किसी Electron ABI नेटिव मॉड्यूल की ज़रूरत नहीं है। Linux हेल्पर सिस्टम Python और GI का उपयोग करता है। नेटिव ऑब्जेक्ट और व्युत्पन्न कुंजियाँ कभी रेंडरर/प्लगइन ब्रिज पार नहीं करतीं। बायोमेट्रिक IPC सक्रिय मुख्य विंडो और उसके मुख्य फ़्रेम को सत्यापित करता है; प्लगइन इसे नहीं बुला सकते। स्पष्ट लॉकिंग लंबित बायोमेट्रिक और पासवर्ड अनलॉक कार्य रद्द कर देती है, ताकि देर से आई मंज़ूरी Vault को फिर से न खोल सके। पंजीकरण हटाने से उसका स्थानीय बंधन रद्द हो जाता है, भले ही OS स्टोर ऑफ़लाइन हो; पहुँच से बाहर स्टोर में एक अनुपयोगी अनाथ क्रेडेंशियल रह सकता है।
बिल्ड और सत्यापन
npm run biometrics:build होस्ट प्लेटफ़ॉर्म के लिए हेल्पर तैयार करता है; डेवलपमेंट स्टार्ट और रिलीज़ की तैयारी इसे अपने-आप चलाते हैं। macOS के लिए Security और LocalAuthentication वाला Swift/Apple SDK ज़रूरी है; Windows के लिए Visual Studio C++ Build Tools, Windows SDK और C++/WinRT; Linux Python हेल्पर कॉपी करता है। कोई नई npm डिपेंडेंसी नहीं जोड़ी जाती। हर लक्ष्य OS पर नेटिव रूप से बिल्ड करें। macOS हेल्पर रिकर्सिव बंडल साइनिंग में शामिल है; इसे App Sandbox एंटाइटलमेंट की ज़रूरत नहीं है, क्योंकि यह डेस्कटॉप ऐप सैंडबॉक्स में नहीं चलता। प्रोडक्शन macOS वितरण के लिए OpenPGP रिलीज़ हस्ताक्षरों से अलग, Developer ID साइनिंग और नोटराइज़ेशन अब भी ज़रूरी हैं।
npm test, npm run test:biometrics:ui और npm run test:diagnostics:ui चलाएँ। बायोमेट्रिक Node परीक्षण और अलग-थलग UI स्मोक टेस्ट एक मॉक OS एडेप्टर का उपयोग करते हैं, जो सफलता, अस्वीकृति/रद्दीकरण, गलत कुंजी, हार्डवेयर/पंजीकरण न होना, रीसेट, टाइमआउट और देर से आए परिणाम, अनुपलब्ध Linux कीरिंग, OS क्रेडेंशियल विफलता, PIN से मंज़ूर Windows प्रतिक्रिया, macOS पंजीकरण में बदलाव, मौजूदा Vault संगतता, IPC अलगाव और SSH सफ़ाई को कवर करता है। इससे सफल हार्डवेयर प्रमाणीकरण सिद्ध नहीं होता।
नेटिव कंपाइलेशन macOS arm64 और Windows x64 पर सत्यापित किया गया। macOS Touch ID उपलब्ध बताता है; Windows VM Hello को अनुपलब्ध बताता है। फ़िंगरप्रिंट/चेहरा/PIN पंजीकरण, सुरक्षित कुंजी की वास्तविक प्राप्ति, OS संवाद रद्द करना और पंजीकरण बदलने पर अमान्य होना, इन सबके लिए हर समर्थित सिस्टम पर इंटरैक्टिव हार्डवेयर परीक्षण अब भी ज़रूरी है। Linux हेल्पर का परीक्षण समर्थित fprintd रीडर वाले डेस्कटॉप पर भी करना होगा; हेडलेस VM इस सत्यापन को सिद्ध नहीं कर सकता।
प्लेटफ़ॉर्म संदर्भ: Apple बायोमेट्रिक एक्सेस कंट्रोल, Windows डेस्कटॉप Hello इंटरऑप, fprintd डिवाइस जीवनचक्र, Secret Service विनिर्देश।
macOS पर SSH की लोकल-नेटवर्क पहुँच
अगर हर स्थानीय SSH प्रोफ़ाइल connect EHOSTUNREACH के साथ विफल हो, लेकिन वही कनेक्शन टर्मिनल में काम करे, तो System Settings → Privacy & Security → Local Network → CH-J Server Manager (सिस्टम सेटिंग्ज़ → गोपनीयता और सुरक्षा → लोकल नेटवर्क → CH-J Server Manager) जाँचें, पहुँच की अनुमति दें, ऐप को पूरी तरह बंद करें और फिर से खोलें। अगर यह पहले से सक्षम हो, तो अनुमति को एक बार बंद-चालू करें और रीस्टार्ट करें। रूटिंग, Wi-Fi/Ethernet और VPN भी जाँचें: केवल यह त्रुटि गोपनीयता अस्वीकृति का प्रमाण नहीं है। इस त्रुटि के कारण Vault रीसेट न करें और विश्वसनीय SSH फ़िंगरप्रिंट न हटाएँ।
ऐप NSLocalNetworkUsageDescription घोषित करता है और macOS नेटवर्क अनुमति/रूट त्रुटियों के लिए स्थानीयकृत मार्गदर्शन देता है। यह स्वयं को अनुमति नहीं दे सकता। Apple सलाह देता है कि Apple द्वारा जारी साइनिंग पहचान का उपयोग करें, ताकि macOS अलग-अलग बिल्ड में नेटवर्क गोपनीयता को भरोसेमंद रूप से ट्रैक कर सके; मौजूदा ad hoc Alpha बिल्ड में यह सीमा बनी हुई है। देखें लोकल-नेटवर्क गोपनीयता पर Apple का मार्गदर्शन।
Ubuntu ऐप्लिकेशन आइकन
Debian पैकेज मौजूदा CH-J आइकन को मानक hicolor आकारों (16–512 px) में इंस्टॉल करते हैं, साथ में मेल खाती डेस्कटॉप एंट्री और Electron विंडो क्लास भी। मुख्य विंडो दोबारा बनने पर भी आइकन पाती है। पहले से पिन किए गए पुराने लॉन्चर को अपडेट करने के बाद उसे अनपिन करें और नए इंस्टॉल किए गए ऐप्लिकेशन को पिन करें; डेस्कटॉप से लॉगआउट/लॉगिन करने से पुराना GNOME लॉन्चर कैश ताज़ा हो सकता है।