TinySSH एक छोटा SSH सर्वर है जो NaCl, TweetNaCl का उपयोग करता है
परियोजना का दायरा और लक्ष्य
- TinySSH एक न्यूनतम SSH सर्वर है जो छोटे आकार, स्थिर मेमोरी उपयोग, और कम अटैक सरफेस पर केंद्रित है।
- यह क्रिप्टोग्राफी के लिए NaCl/TweetNaCl का उपयोग करता है और जानबूझकर SSH फीचर्स का केवल एक उपसमुच्चय लागू करता है।
Dropbear और OpenSSH के साथ तुलना
- Dropbear की तुलना में:
- TinySSH अधिक सीमित है: केवल key-based auth, एक AEAD cipher, एक elliptic-curve KEX, RSA नहीं, password auth नहीं, X11/agent/port forwarding नहीं, OpenSSH जैसी key restrictions नहीं।
- Dropbear छोटा होने का लक्ष्य रखता है, लेकिन फिर भी “featureful” है और RFC-compliant SSH के अधिक करीब है।
- TinySSH स्पष्ट रूप से मानक कवरेज और फीचर्स को सरलता और छोटे attack surface के बदले में छोड़ देता है।
- कुछ लोग तर्क देते हैं कि OpenSSH पहले से ही अधिकांश ज़रूरतें पूरी कर सकता है, और आधुनिक प्रणालियों, जिसमें initrd भी शामिल है, के लिए उसका अतिरिक्त आकार नगण्य है।
सुरक्षा गुण और डिज़ाइन
- TinySSH कोई dynamic memory allocation उपयोग नहीं करता और इसकी सारी मेमोरी statically allocated है (<1 MB), जिससे जोखिम कम होने का दावा किया जाता है।
- यह password या hostbased authentication जैसी “unsafe features” को डिज़ाइन के स्तर पर ही टालता है।
- इस पर संदेह भी व्यक्त किया गया है:
- क्या लगभग 60–100k “words of code” वास्तव में “easily auditable” है।
- प्रोजेक्ट का अपनी “own crypto library” का उपयोग।
उपयोग के मामले: initrd, remote unlocking, embedded
- कई टिप्पणियाँ TinySSH (और Dropbear/OpenSSH variants) का उपयोग इन मामलों के लिए बताती हैं:
- प्रारंभिक boot के दौरान encrypted disks को remote तरीके से unlock करना (initramfs/dracut/mkinitcpio hooks)।
- छोटे static userlands और embedded devices।
- automated या remote unlock के लिए कई tools और approaches का उल्लेख किया गया है (Dropbear-आधारित unlockers, Mandos, Clevis+Tang, TPM-आधारित schemes), साथ ही boot chain पर भरोसे और threat models को लेकर बहस भी हुई है।
- port forwarding की कमी कुछ embedded/remote scenarios के लिए एक नुकसान मानी गई है।
पासवर्ड और device enrollment
- password auth की कमी shared या constrained devices (printers, routers, cars) के लिए व्यावहारिक सवाल खड़े करती है।
- सुझाया गया workaround: device-generated keys जिन्हें QR या इसी तरह दिखाया जाए, फिर user अपनी keys install करे।
लाइसेंसिंग चर्चा
- TinySSH का लाइसेंस CC0 1.0 है।
- कई टिप्पणियों में कहा गया कि software के लिए CC0 आदर्श नहीं है क्योंकि यह patent/trademark rights को स्पष्ट रूप से बाहर करता है।
- बहुत permissive software licenses जैसे विकल्प सुझाए गए; कुछ ने dual/multi-licensing का प्रस्ताव दिया।
- पहले के Creative Commons “termination” मुद्दे का उल्लेख किया गया, लेकिन टिप्पणियों के अनुसार यह CC0 पर विशेष रूप से लागू नहीं होता।
व्यापक दृष्टिकोण
- कुछ लोग TinySSH को विशिष्ट niches के लिए एक आकर्षक “small and beautiful” tool मानते हैं।
- अन्य तर्क देते हैं कि सामान्य रूप से OpenSSH की जगह लेना असंभव है, इसकी परिपक्वता, deployment scale, और security track record को देखते हुए।