सुरक्षा एवं डेटा
भरोसेमंद होस्ट (known_hosts)
किसी होस्ट से पहला कनेक्शन उसके सार्वजनिक-कुंजी फ़िंगरप्रिंट (SHA-256) को पकड़ता है और आपकी पुष्टि के बाद इसे संग्रहित करता है। बाद के कनेक्शन फ़िंगरप्रिंट की तुलना करते हैं — यदि यह कभी बदलता है तो आपको एक स्पष्ट अलर्ट मिलता है।
सूची को Settings → Security → Trusted hosts में प्रबंधित करें — हर प्रविष्टि होस्ट, कुंजी एल्गोरिदम (Ed25519, RSA, ECDSA…) और फ़िंगरप्रिंट दिखाती है, और उसे हटाया जा सकता है।
कनेक्शन को कैसे सुरक्षित किया जाता है
DR-Terminal अपना स्वयं का SSH कार्यान्वयन उपयोग करता है, जो सक्रिय हमलावरों और शत्रुतापूर्ण सर्वरों के विरुद्ध सशक्त है:
- होस्ट कुंजी की जाँच हैंडशेक के दौरान की जाती है, किसी भी गोपनीय चीज़ को भेजे जाने से पहले। यदि कोई मैन-इन-द-मिडल गलत कुंजी प्रस्तुत करता है, तो कनेक्शन कुंजी विनिमय पर ही रोक दिया जाता है — आपका पासवर्ड या निजी कुंजी कभी डिवाइस से बाहर नहीं जाती।
- डिफ़ॉल्ट रूप से केवल मजबूत एल्गोरिदम। पुराने, डाउनग्रेड-प्रवण एल्गोरिदम — SHA-1 हस्ताक्षर और MAC,
ssh-rsa, 1024-बिट Diffie-Hellman — बंद रहते हैं। कनेक्शन आधुनिक कुंजी विनिमय (Curve25519, ECDH, Diffie-Hellman ≥ 2048-बिट), सिफर (AES-GCM, ChaCha20-Poly1305, AES-CTR) और होस्ट-कुंजी प्रकार (Ed25519, ECDSA, RSA-SHA2) का उपयोग करते हैं। जो सर्वर केवल कुछ कमज़ोर प्रस्तुत करता है, वह कनेक्ट नहीं हो सकता। - कोई मौन डाउनग्रेड नहीं। सर्वर जो हस्ताक्षर उपयोग करता है वह उससे मेल खाना चाहिए जिस पर बातचीत हुई थी, इसलिए वह आपकी जानकारी के बिना किसी कमज़ोर विकल्प पर वापस नहीं जा सकता।
- Terrapin (CVE-2023-48795) को कम किया गया है सख्त कुंजी विनिमय के माध्यम से।
- शत्रुतापूर्ण या दोषपूर्ण सर्वर के प्रति प्रतिरोधी। नेटवर्क से आने वाली पैकेट लंबाई, संदेश फ़ील्ड और चैनल विंडो सभी की सीमा-जाँच होती है, इसलिए कोई दुर्भावनापूर्ण सर्वर ऐप को क्रैश नहीं कर सकता या उसकी मेमोरी समाप्त नहीं कर सकता — प्रमाणीकरण से पहले भी नहीं।
ये सुरक्षाएँ स्वतः चालू रहती हैं। आप उनसे केवल ऊपर दिए भरोसेमंद-होस्ट संकेत के माध्यम से संपर्क करते हैं।
निर्यात की गई कुंजियाँ
जब आप किसी निजी कुंजी को रूपांतरित या निर्यात करते हैं (SSH keys → Convert) और एक 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 एन्क्रिप्टेड फ़ाइल, कुंजी उपयोगकर्ता प्रोफ़ाइल से व्युत्पन्न।
एन्क्रिप्टेड कॉन्फ़िगरेशन बैकअप
Settings → Configuration → Export backup एक पासवर्ड-संरक्षित .drterminal फ़ाइल बनाता है। इसमें शामिल है: कनेक्शन (क्रेडेंशियल्स सहित), समूह, भरोसेमंद होस्ट, SSH कुंजियाँ, SFTP बुकमार्क, कमांड इतिहास, हाइलाइट नियम, स्निपेट, serial और Telnet प्रोफ़ाइल, टर्मिनल रूप-रंग और सेटिंग्स, और (मोबाइल पर) DevOps कीबोर्ड का कॉन्फ़िगरेशन। Import backup उसी बंडल को बहाल करता है — मशीनों के बीच जाने पर उपयोगी।
प्रारूप: AES-256-GCM से एन्क्रिप्टेड JSON। पासवर्ड कभी फ़ाइल में संग्रहित नहीं होता — वह केवल एन्क्रिप्शन कुंजी व्युत्पन्न करता है (PBKDF2, SHA-256 के 100 000 चक्र)।
~/.ssh/config आयात करें
Desktop पर आप किसी मौजूदा OpenSSH कॉन्फ़िग से होस्ट थोक में आयात कर सकते हैं। आयातक Host, HostName, User, Port, IdentityFile और ProxyJump प्रविष्टियों को पार्स करता है और उन्हें सहेजे गए कनेक्शन के रूप में जोड़ता है। IdentityFile द्वारा संदर्भित कुंजी फ़ाइलें डिस्क से SecureStorage में लोड की जाती हैं।
लॉग स्तर
Settings → Terminal → File log level में चुनें कि क्या ~/.dr-terminal/logs/ (Desktop) या मोबाइल पर समकक्ष तक पहुँचता है। डिफ़ॉल्ट: ERROR — न्यूनतम शोर। निदान के लिए DEBUG पर स्विच करें।