10 पॉइंट द्वारा GN⁺ 2025-03-27 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Cloudflare ने OPKSSH(OpenPubkey SSH) को ओपन सोर्स के रूप में जारी किया है
  • OPKSSH, OpenID Connect-आधारित SSO लॉगिन के जरिए SSH keys को अपने-आप generate और use करने देता है
  • अब users को SSH public/private keys को सीधे manage करने या servers पर deploy करने की ज़रूरत नहीं है
  • SSH protocol में बदलाव किए बिना भी SSH authentication में ID-आधारित approach लाई जा सकती है

SSO और OpenID Connect की पृष्ठभूमि

  • SSO(Single Sign-On) एक authentication तरीका है, जिसमें user एक बार login करके कई systems तक access कर सकता है
  • OpenID Connect एक protocol है जो मुख्य रूप से SSO के लिए इस्तेमाल होता है, और user information वाला ID token जारी करता है
  • ID token में user email जैसी जानकारी होती है, लेकिन public key शामिल नहीं होती → इसलिए इसे SSH जैसे security protocols में सीधे इस्तेमाल नहीं किया जा सकता

OpenPubkey परिचय

  • OpenPubkey, ID token में user public key शामिल करके उसे PK Token में बदल देता है
  • इससे “Google यह प्रमाणित कर सकता है कि alice@example.com user public key 0x123 का उपयोग कर रहा है”
  • इसे मौजूदा OpenID Connect protocol में बिना किसी बदलाव के लागू किया जा सकता है

OPKSSH की भूमिका और फायदे

  • OPKSSH, OpenPubkey को SSH में इंटीग्रेट करके SSO login के जरिए one-time SSH keys generate करता है
  • यह मौजूदा SSH protocol में किसी बदलाव के बिना काम करता है, और config file में सिर्फ दो लाइनें जोड़कर लागू किया जा सकता है
  • सुरक्षा में सुधार

    • long-term keys की जगह one-time SSH keys का उपयोग → key leak होने पर नुकसान कम होता है और key lifetime सीमित की जा सकती है
    • default रूप से 24 घंटे में expire, और setting से बदला जा सकता है
  • user convenience में सुधार

    • सिर्फ opkssh login command चलाकर SSH key generate और login किया जा सकता है
    • SSH private key को कई computers पर copy करने की ज़रूरत नहीं है
  • management visibility में सुधार

    • key-based access की जगह email address-आधारित access → कौन user है, इसे अधिक स्पष्ट रूप से track किया जा सकता है
    • bob@example.com जैसे email को access allow file में जोड़ते ही access दिया जा सकता है

OPKSSH कैसे काम करता है

  • जब user opkssh login चलाता है:
    • अस्थायी SSH public/private key generate होती है
    • browser के जरिए OpenID Provider(Google आदि) में login किया जाता है
    • सफल होने पर OpenPubkey protocol के जरिए public key और user identity वाला PK Token generate होता है
    • .ssh directory में PK Token शामिल public key file और private key file save होती है
  • SSH connection के समय:
    • SSH client, PK Token शामिल public key को SSH server पर भेजता है
    • server, AuthorizedKeysCommand से configured OpenPubkey verifier के जरिए public key की validity verify करता है
    • PK Token valid हो और email access allow list में हो, तो connection approve हो जाता है

तकनीकी समस्याओं का समाधान

  • PK Token transmission: SSH certificate के extension field का उपयोग करके PK Token को SSH public key में शामिल किया जाता है
  • server पर validity verification: AuthorizedKeysCommand का उपयोग करके public key validation को custom program(OpenPubkey verifier) को सौंपा जाता है
  • public key matching verification: यह सुनिश्चित किया जाता है कि SSH session को सुरक्षित करने वाली public key, PK Token के भीतर मौजूद key से मेल खाती है

ओपन सोर्स होने का महत्व

  • OPKSSH को Apache 2.0 license के तहत GitHub पर जारी किया गया है
  • पहले यह prototype स्तर पर था, लेकिन अब stable release के रूप में पूरा SSH functionality प्रदान करता है
  • Cloudflare इसे maintain या guarantee नहीं करता, लेकिन उसने code को OpenPubkey community को donate किया है

प्रमुख सुधार

  • production use के लिए उपयुक्त SSH functionality जोड़ी गई
  • automatic installation script प्रदान की गई
  • बेहतर configuration tools शामिल किए गए

1 टिप्पणियां

 
GN⁺ 2025-03-27
Hacker News राय
  • SSH certificates काफ़ी पहले से मौजूद हैं, और अपना SSH CA बनाकर short-lived certificates जारी किए जा सकते हैं
    • certificates को अपने-आप प्राप्त करने के लिए कई विकल्प हैं, जिनमें से एक step-ca project है
    • step-ca OAUTH/OIDC systems और cloud providers के साथ communicate कर सकता है
    • commercial solutions भी मौजूद हैं
  • SSH CA और hardware का उपयोग करने वाला तरीका अधिक पसंद है
    • SSHD में third-party code call करने की ज़रूरत नहीं पड़ती, जिससे attack surface और vectors कम से कम रहते हैं
    • key leakage या reuse attacks को पूरी तरह रोका जा सकता है
    • default ssh-keygen command से सब कुछ किया जा सकता है, इसलिए administrator के नज़रिए से यह फायदेमंद है
  • इस दावे पर संदेह है कि ID token में user public key शामिल नहीं होती, इसलिए वह सीधे SSH protocol की सुरक्षा नहीं कर सकता
    • SSH authentication का key-based होना अनिवार्य नहीं है
    • यह जानने की जिज्ञासा है कि क्या इसे GSSAPI के ज़रिए implement किया जा सकता था
  • Teleport का उपयोग करके certificate-based SSH authentication किया जाता है, और SSO authentication से short-lived certificates जारी किए जाते हैं
    • access control और audit logs के फ़ायदे हैं
  • Terminalwire नाम का एक SSH alternative विकसित किया जा रहा है
    • यह developer workstations से SaaS पर one-off commands चलाने के लिए उपयुक्त है
    • यह SSH की तरह server से client तक stdio stream करता है, लेकिन अतिरिक्त commands भी देता है
  • Userify की SSH key technology से इसकी तुलना की गई
    • Userify distributed plain keys का उपयोग करता है, और केवल central control plane को केंद्रीकृत करता है
    • authentication server offline होने पर भी server में login किया जा सकता है
    • user sessions को terminate करने और accounts delete करने की सुविधा है
  • ब्लॉग पोस्ट के लेखक और opkssh के प्रमुख contributor के रूप में, सवालों के जवाब देने के लिए तैयार हैं
  • OIDC support करने वाले SSH CA को चलाने की तुलना में अंतर समझना मुश्किल है
    • server को केवल CA की key पर trust करना होता है
  • X.509 certificate CA को support करने वाला एक OpenSSH fork मौजूद है
    • public key को token के रूप में लौटाने वाले standard और उसका उपयोग करके SSH में login कराने वाले server-side authentication binary को जिस तरह innovative बताया गया, वह दिलचस्प लगा