सुरक्षा एवं डेटा
भरोसेमंद होस्ट (known_hosts)
किसी होस्ट से पहला कनेक्शन उसके सार्वजनिक-कुंजी फ़िंगरप्रिंट (SHA-256) को पकड़ता है और आपकी पुष्टि के बाद इसे संग्रहित करता है। बाद के कनेक्शन फ़िंगरप्रिंट की तुलना करते हैं — यदि यह कभी बदलता है तो आपको एक स्पष्ट अलर्ट मिलता है।
सूची को सेटिंग्स → सुरक्षा → विश्वसनीय होस्ट में प्रबंधित करें — हर प्रविष्टि होस्ट, कुंजी एल्गोरिदम (Ed25519, RSA, ECDSA…) और फ़िंगरप्रिंट दिखाती है, और उसे हटाया जा सकता है।
कनेक्शन को कैसे सुरक्षित किया जाता है
DR-Terminal अपना स्वयं का SSH कार्यान्वयन उपयोग करता है, जो सक्रिय हमलावरों और शत्रुतापूर्ण सर्वरों के विरुद्ध सशक्त है:
- होस्ट कुंजी की जाँच हैंडशेक के दौरान की जाती है, किसी भी गोपनीय चीज़ को भेजे जाने से पहले। यदि कोई मैन-इन-द-मिडल गलत कुंजी प्रस्तुत करता है, तो कनेक्शन कुंजी विनिमय पर ही रोक दिया जाता है — आपका पासवर्ड या निजी कुंजी कभी डिवाइस से बाहर नहीं जाती।
- डिफ़ॉल्ट रूप से केवल मजबूत एल्गोरिदम। पुराने, डाउनग्रेड-प्रवण एल्गोरिदम — SHA-1 हस्ताक्षर और MAC,
ssh-rsa, 1024-बिट Diffie-Hellman — बंद रहते हैं। कनेक्शन आधुनिक कुंजी विनिमय (पहले पोस्ट-क्वांटम हाइब्रिडsntrup761x25519-sha512औरmlkem768x25519-sha256, फिर Curve25519, ECDH, Diffie-Hellman ≥ 2048-बिट), सिफर (AES-GCM, ChaCha20-Poly1305, AES-CTR) और होस्ट-कुंजी प्रकार (Ed25519, ECDSA, RSA-SHA2) का उपयोग करते हैं। जो सर्वर केवल कुछ कमज़ोर प्रस्तुत करता है, वह कनेक्ट नहीं हो सकता — जब तक आप जानबूझकर SSH एल्गोरिद्म (नीचे) में कोई पुराना एल्गोरिदम फिर से सक्षम न करें। - कोई मौन डाउनग्रेड नहीं। सर्वर जो हस्ताक्षर उपयोग करता है वह उससे मेल खाना चाहिए जिस पर बातचीत हुई थी, इसलिए वह आपकी जानकारी के बिना किसी कमज़ोर विकल्प पर वापस नहीं जा सकता।
- Terrapin (CVE-2023-48795) को कम किया गया है सख्त कुंजी विनिमय के माध्यम से।
- शत्रुतापूर्ण या दोषपूर्ण सर्वर के प्रति प्रतिरोधी। नेटवर्क से आने वाली पैकेट लंबाई, संदेश फ़ील्ड और चैनल विंडो सभी की सीमा-जाँच होती है, इसलिए कोई दुर्भावनापूर्ण सर्वर ऐप को क्रैश नहीं कर सकता या उसकी मेमोरी समाप्त नहीं कर सकता — प्रमाणीकरण से पहले भी नहीं।
ये सुरक्षाएँ स्वतः चालू रहती हैं। आप उनसे केवल ऊपर दिए भरोसेमंद-होस्ट संकेत के माध्यम से संपर्क करते हैं।
SSH एल्गोरिद्म (उन्नत)
सेटिंग्स → सुरक्षा → SSH एल्गोरिद्म आपको यह ट्यून करने देता है कि क्लाइंट सर्वरों को क्या प्रस्तावित करता है — किसी पुराने उपकरण के लिए जो केवल पुराना सिफर बोलता है, या उस क्रम को पिन करने के लिए जिस पर आप भरोसा करते हैं। पृष्ठ में प्रति बातचीत श्रेणी एक खंड है:
- कुंजी विनिमय, सिफर, MAC (अखंडता) — हर एल्गोरिदम को चालू या बंद करें और उसे ऊपर या नीचे ले जाएँ; क्रम वही वरीयता क्रम है जो सर्वर को भेजा जाता है (पहला एल्गोरिदम जिसका दोनों पक्ष समर्थन करते हैं, जीतता है)।
- होस्ट कुंजियाँ — केवल चालू/बंद।
- संपीड़न — एक हाँ/नहीं स्विच (डिफ़ॉल्ट रूप से बंद)। हाँ पहले
[email protected]प्रस्तावित करता है और zlib रहित सर्वरों के लिएnoneको फ़ॉलबैक के रूप में; नहीं केवलnoneप्रस्तावित करता है, ताकि सर्वर संपीड़न चालू न कर सके। संपीड़न धीमे लिंक पर मदद करता है और दोनों सिरों पर CPU खर्च करता है।
जिन एल्गोरिदम को लाइब्रेरी अक्षम स्थिति में देती है, उन पर एक छोटा एम्बर legacy टैग होता है — जब तक आप उन्हें चालू न करें, वे बंद रहते हैं। कोई श्रेणी कभी खाली नहीं हो सकती: अंतिम सक्षम एल्गोरिदम को बंद नहीं किया जा सकता। खंड शीर्षक के बगल वाला रीसेट उसे लाइब्रेरी डिफ़ॉल्ट पर लौटा देता है।
हर सहेजा गया कनेक्शन वैश्विक चयन को ओवरराइड कर सकता है: कनेक्शन फ़ॉर्म में, SSH एल्गोरिद्म → कस्टम वही संपादक केवल उस होस्ट के लिए खोलता है (डिफ़ॉल्ट वैश्विक सेटिंग का पालन करता है)। संपादक की पुष्टि करने से फ़ॉर्म अपडेट होता है — उसके बाद कनेक्शन को सहेजें। वास्तव में जिस पर बातचीत हुई — कुंजी विनिमय, होस्ट कुंजी, सिफर, MAC, संपीड़न — वह सत्र मेनू के कनेक्शन जानकारी में दिखता है।
नई सेटिंग्स बाद में खोले गए कनेक्शनों पर लागू होती हैं। उसी होस्ट का दूसरा टैब लाइव SSH कनेक्शन का और इसलिए उसके एल्गोरिदम का पुन: उपयोग करता है — फिर से बातचीत के लिए डिस्कनेक्ट करके दोबारा कनेक्ट करें।
पोस्ट-क्वांटम चेतावनी
एक "अभी संग्रहित करो, बाद में डिक्रिप्ट करो" हमलावर आज का ट्रैफ़िक रिकॉर्ड करता है और जैसे ही क्वांटम कंप्यूटर क्लासिकल कुंजी विनिमय तोड़ने लगें, उसे डिक्रिप्ट कर लेता है। DR-Terminal पोस्ट-क्वांटम हाइब्रिड कुंजी विनिमय (sntrup761x25519-sha512, mlkem768x25519-sha256 — वही जो OpenSSH देता है) को प्राथमिकता देता है और, OpenSSH की तरह, तब चेतावनी देता है जब कोई सत्र क्लासिकल विनिमय पर पहुँच जाए: प्रति कनेक्शन एक बार एक डायलॉग दिखता है जो बताता है कि कुंजी विनिमय पोस्ट-क्वांटम नहीं है और सर्वर को अपग्रेड की ज़रूरत हो सकती है। दोबारा न दिखाएँ चेतावनी को हमेशा के लिए बंद कर देता है; यह सेटिंग्स → सुरक्षा → पोस्ट-क्वांटम चेतावनी में रहती है (डिफ़ॉल्ट रूप से चालू)।
निर्यात की गई कुंजियाँ
जब आप किसी निजी कुंजी को रूपांतरित या निर्यात करते हैं (SSH कुंजियाँ → कनवर्ट करें) और एक passphrase सेट करते हैं, तो एन्क्रिप्शन प्रति प्रारूप चुने गए एक मजबूत कुंजी-व्युत्पत्ति फलन का उपयोग करता है — OpenSSH के लिए bcrypt, PKCS#8 के लिए PBKDF2, PuTTY PPK v3 के लिए Argon2id — और हर salt और IV एक क्रिप्टोग्राफ़िक रूप से सुरक्षित रैंडम जनरेटर से आता है। कनवर्टर OpenSSH, PKCS#8, PKCS#1 और PuTTY PPK (v2/v3) को पढ़ता और लिखता है, PEM और बाइनरी DER दोनों से।
रहस्य कहाँ रहते हैं
पासवर्ड, निजी कुंजियाँ और passphrase कभी कनेक्शन JSON में सीरियलाइज़ नहीं होते। वे सीधे प्लेटफ़ॉर्म के सुरक्षित संग्रह में जाते हैं:
- Android — EncryptedSharedPreferences, हार्डवेयर Keystore द्वारा समर्थित।
- iOS — Keychain (यदि आपने सक्षम किया हो तो बायोमेट्री-संरक्षित)।
- Desktop — AES-256-GCM एन्क्रिप्टेड फ़ाइल, कुंजी उपयोगकर्ता प्रोफ़ाइल से व्युत्पन्न।
एन्क्रिप्टेड कॉन्फ़िगरेशन बैकअप
सेटिंग्स → कॉन्फ़िगरेशन → Export backup एक पासवर्ड-संरक्षित .drterminal फ़ाइल बनाता है। इसमें शामिल है: कनेक्शन (क्रेडेंशियल्स सहित), समूह, भरोसेमंद होस्ट, SSH कुंजियाँ, SFTP बुकमार्क, कमांड इतिहास, हाइलाइट नियम, स्निपेट, serial और Telnet प्रोफ़ाइल, SSH एल्गोरिदम प्राथमिकताएँ, टर्मिनल रूप-रंग और सेटिंग्स, और (मोबाइल पर) DevOps कीबोर्ड का कॉन्फ़िगरेशन। Import backup उसी बंडल को बहाल करता है — मशीनों के बीच जाने पर उपयोगी।
प्रारूप: AES-256-GCM से एन्क्रिप्टेड JSON। पासवर्ड कभी फ़ाइल में संग्रहित नहीं होता — वह केवल एन्क्रिप्शन कुंजी व्युत्पन्न करता है (PBKDF2, SHA-256 के 100 000 चक्र)।
~/.ssh/config आयात करें
Desktop पर आप किसी मौजूदा OpenSSH कॉन्फ़िग से होस्ट थोक में आयात कर सकते हैं। आयातक Host, HostName, User, Port, IdentityFile और ProxyJump प्रविष्टियों को पार्स करता है और उन्हें सहेजे गए कनेक्शन के रूप में जोड़ता है। IdentityFile द्वारा संदर्भित कुंजी फ़ाइलें डिस्क से SecureStorage में लोड की जाती हैं।
लॉग स्तर
सेटिंग्स → टर्मिनल → फ़ाइल लॉग स्तर में चुनें कि क्या ~/.dr-terminal/logs/ (Desktop) या मोबाइल पर समकक्ष तक पहुँचता है। डिफ़ॉल्ट: ERROR — न्यूनतम शोर। निदान के लिए DEBUG पर स्विच करें।