FIDO/U8.2F दुई-कारक प्रमाणीकरण टोकनहरूको लागि समर्थन सहित OpenSSH 2 को रिलीज

चार महिनाको विकास पछि प्रस्तुत रिलीज ओपनएसएच .8.2..XNUMX, SSH 2.0 र SFTP प्रोटोकलहरू मार्फत काम गर्नको लागि खुला ग्राहक र सर्भर कार्यान्वयन।

OpenSSH 8.2 को रिलीज मा एक प्रमुख सुधार प्रोटोकल समर्थन गर्ने यन्त्रहरू प्रयोग गरी दुई-कारक प्रमाणीकरण प्रयोग गर्ने क्षमता थियो। U2F, गठबन्धन द्वारा विकसित fiDo। U2F ले प्रयोगकर्ताको भौतिक उपस्थिति प्रमाणित गर्न, USB, ब्लुटुथ वा NFC मार्फत तिनीहरूसँग अन्तरक्रिया गर्न कम लागतको हार्डवेयर टोकनहरू सिर्जना गर्न अनुमति दिन्छ। त्यस्ता यन्त्रहरूलाई वेबसाइटहरूमा दुई-कारक प्रमाणीकरणको माध्यमको रूपमा प्रचार गरिएको छ, पहिले नै प्रमुख ब्राउजरहरूद्वारा समर्थित छन् र Yubico, Feitian, Thetis र Kensington लगायत विभिन्न निर्माताहरूले उत्पादन गरेका छन्।

प्रयोगकर्ताको उपस्थिति पुष्टि गर्ने यन्त्रहरूसँग अन्तर्क्रिया गर्न, नयाँ कुञ्जी प्रकारहरू "ecdsa-sk" र "ed25519-sk" OpenSSH मा थपिएका छन्, जसले SHA-25519 ह्याससँग मिलाएर ECDSA र Ed256 डिजिटल हस्ताक्षर एल्गोरिदमहरू प्रयोग गर्दछ। टोकनहरूसँग अन्तरक्रिया गर्नका लागि प्रक्रियाहरू मध्यवर्ती पुस्तकालयमा राखिन्छ, जुन PKCS#11 समर्थनको लागि पुस्तकालयमा समान रूपमा लोड हुन्छ र पुस्तकालयको शीर्षमा र्यापर हो। libfido2, जसले USB मार्फत टोकनहरूसँग सञ्चार गर्न उपकरणहरू प्रदान गर्दछ (FIDO U2F/CTAP 1 र FIDO 2.0/CTAP 2 प्रोटोकलहरू समर्थित छन्)। मध्यवर्ती पुस्तकालय libsk-libfido2 OpenSSH विकासकर्ताहरू द्वारा तयार गरिएको समावेश कोर libfido2 मा, साथै HID चालक OpenBSD को लागी।

प्रमाणीकरण गर्न र कुञ्जी उत्पन्न गर्न, तपाईंले सेटिङहरूमा "SecurityKeyProvider" प्यारामिटर निर्दिष्ट गर्नुपर्छ वा SSH_SK_PROVIDER वातावरण चर सेट गर्नुपर्छ, बाह्य पुस्तकालय libsk-libfido2.so (निर्यात SSH_SK_PROVIDER=/path/to/libdo2.so) को मार्ग संकेत गर्दै। त्यसैले)। लेयर लाइब्रेरी (--with-security-key-builtin) को लागि निर्मित समर्थनको साथ openssh निर्माण गर्न सम्भव छ, यस अवस्थामा तपाईंले "SecurityKeyProvider=internal" प्यारामिटर सेट गर्न आवश्यक छ।
अर्को तपाईंले "ssh-keygen -t ecdsa-sk" चलाउन आवश्यक छ वा, यदि कुञ्जीहरू पहिले नै सिर्जना र कन्फिगर गरिएको छ भने, "ssh" प्रयोग गरेर सर्भरमा जडान गर्नुहोस्। जब तपाइँ ssh-keygen चलाउनुहुन्छ, उत्पन्न गरिएको कुञ्जी जोडा "~/.ssh/id_ecdsa_sk" मा बचत हुनेछ र अन्य कुञ्जीहरू जस्तै प्रयोग गर्न सकिन्छ।

सार्वजनिक कुञ्जी (id_ecdsa_sk.pub) लाई आधिकारिक_कुञ्जी फाइलमा सर्भरमा प्रतिलिपि गरिनुपर्छ। सर्भर साइडमा, डिजिटल हस्ताक्षर मात्र प्रमाणित हुन्छ, र टोकनहरूसँग अन्तर्क्रिया ग्राहक पक्षमा गरिन्छ (तपाईंले सर्भरमा libsk-libfido2 स्थापना गर्न आवश्यक छैन, तर सर्भरले "ecdsa-sk" कुञ्जी प्रकारलाई समर्थन गर्नुपर्छ) । उत्पन्न गरिएको निजी कुञ्जी (id_ecdsa_sk) अनिवार्य रूपमा कुञ्जी ह्यान्डल हो, U2F टोकन साइडमा भण्डार गरिएको गोप्य अनुक्रमसँग संयोजनमा मात्र वास्तविक कुञ्जी बनाउँछ। यदि id_ecdsa_sk कुञ्जी आक्रमणकारीको हातमा पर्यो भने, प्रमाणीकरण पास गर्नको लागि उसले हार्डवेयर टोकनमा पहुँच प्राप्त गर्न आवश्यक पर्दछ, जस बिना id_ecdsa_sk फाइलमा भण्डार गरिएको निजी कुञ्जी बेकार छ।

थप रूपमा, पूर्वनिर्धारित रूपमा, कुञ्जीहरूसँग कुनै पनि अपरेसनहरू प्रदर्शन गर्दा (दुवै पुस्ता र प्रमाणीकरणको समयमा), प्रयोगकर्ताको भौतिक उपस्थितिको स्थानीय पुष्टिकरण आवश्यक छ, उदाहरणका लागि, टोकनमा सेन्सर छोइने प्रस्ताव गरिएको छ, जसले यसलाई गाह्रो बनाउँछ। जडान गरिएको टोकनको साथ प्रणालीहरूमा रिमोट आक्रमणहरू गर्नुहोस्। सुरक्षाको अर्को रेखाको रूपमा, कुञ्जी फाइलमा पहुँच गर्न ssh-keygen को स्टार्टअप चरणमा पासवर्ड पनि निर्दिष्ट गर्न सकिन्छ।

OpenSSH को नयाँ संस्करणले SHA-1 ह्यासहरू प्रयोग गरेर एल्गोरिदमहरूको आगामी ह्रासको घोषणा पनि गर्‍यो। पदोन्नति दिइएको उपसर्गको साथ टक्कर आक्रमणको प्रभावकारिता (एक टक्कर चयनको लागत लगभग 45 हजार डलर अनुमान गरिएको छ)। आगामी रिलीजहरू मध्ये एकमा, तिनीहरूले सार्वजनिक कुञ्जी डिजिटल हस्ताक्षर एल्गोरिदम "ssh-rsa" प्रयोग गर्ने क्षमतालाई पूर्वनिर्धारित रूपमा असक्षम गर्ने योजना बनाएका छन्, जुन SSH प्रोटोकलको लागि मूल RFC मा उल्लेख गरिएको छ र व्यवहारमा व्यापक रहन्छ (प्रयोग परीक्षण गर्न। तपाईको प्रणालीमा ssh-rsa को, तपाईले "-oHostKeyAlgorithms=-ssh-rsa" विकल्पको साथ ssh मार्फत जडान गर्ने प्रयास गर्न सक्नुहुन्छ।

OpenSSH मा नयाँ एल्गोरिदमहरूमा ट्रान्जिसनलाई सहज बनाउन, भविष्यमा रिलिजमा UpdateHostKeys सेटिङ पूर्वनिर्धारित रूपमा सक्षम हुनेछ, जसले स्वचालित रूपमा ग्राहकहरूलाई थप भरपर्दो एल्गोरिदमहरूमा स्थानान्तरण गर्नेछ। माइग्रेसनका लागि सिफारिस गरिएका एल्गोरिदमहरूमा RFC2 RSA SHA-256 मा आधारित rsa-sha512-8332/2 (OpenSSH 7.2 बाट समर्थित र पूर्वनिर्धारित रूपमा प्रयोग गरिएको), ssh-ed25519 (OpenSSH 6.5 देखि समर्थित) र ecdsa-sha2-nistp256/384/आधारित RFC521 ECDSA मा (OpenSSH 5656 देखि समर्थित)।

OpenSSH 8.2 मा, "ssh-rsa" को प्रयोग गरेर जडान गर्ने क्षमता अझै पनि उपलब्ध छ, तर यो एल्गोरिदम CASignatureAlgorithms सूचीबाट हटाइएको छ, जसले नयाँ प्रमाणपत्रहरूमा डिजिटल हस्ताक्षर गर्न अनुमति दिने एल्गोरिदमहरू परिभाषित गर्दछ। त्यसै गरी, डिफि-हेलम्यान-समूह14-शा१ एल्गोरिदम समर्थित पूर्वनिर्धारित कुञ्जी विनिमय एल्गोरिदमहरूबाट हटाइएको छ। यो नोट गरिएको छ कि प्रमाणपत्रहरूमा SHA-1 को प्रयोग अतिरिक्त जोखिमसँग सम्बन्धित छ, किनकि आक्रमणकारीसँग अवस्थित प्रमाणपत्रको लागि टक्कर खोज्न असीमित समय छ, जबकि होस्ट कुञ्जीहरूमा आक्रमणको समय जडान टाइमआउट (LoginGraceTime) द्वारा सीमित छ। )।

चलिरहेको ssh-keygen अब rsa-sha2-512 एल्गोरिथ्ममा पूर्वनिर्धारित छ, जुन OpenSSH 7.2 बाट समर्थित छ, जसले पुरानो OpenSSH रिलीजहरू चलिरहेको प्रणालीहरूमा OpenSSH 8.2 मा साइन इन गरिएका प्रमाणपत्रहरू प्रशोधन गर्ने प्रयास गर्दा अनुकूलता समस्याहरू सिर्जना गर्न सक्छ (जब मुद्दाको वरिपरि काम गर्न। हस्ताक्षर उत्पन्न गर्दै, तपाइँ स्पष्ट रूपमा "ssh-keygen -t ssh-rsa" निर्दिष्ट गर्न सक्नुहुन्छ वा ecdsa-sha2-nistp256/384/521 एल्गोरिदम प्रयोग गर्न सक्नुहुन्छ, OpenSSH 5.7 देखि समर्थित)।

अन्य परिवर्तनहरू:

  • sshd_config मा समावेश निर्देशन थपिएको छ, जसले तपाईंलाई कन्फिगरेसन फाइलको हालको स्थितिमा अन्य फाइलहरूको सामग्री समावेश गर्न अनुमति दिन्छ (फाइल नाम निर्दिष्ट गर्दा ग्लोब मास्कहरू प्रयोग गर्न सकिन्छ);
  • ssh-keygen मा "नो-टच-आवश्यक" विकल्प थपिएको छ, जसले कुञ्जी उत्पन्न गर्दा टोकनमा भौतिक रूपमा पहुँच पुष्टि गर्ने आवश्यकतालाई असक्षम पार्छ;
  • PubkeyAuthOptions निर्देशन sshd_config मा थपिएको छ, जसले सार्वजनिक कुञ्जी प्रमाणीकरणसँग सम्बन्धित विभिन्न विकल्पहरू संयोजन गर्दछ। हाल, टोकन प्रमाणीकरणको लागि भौतिक उपस्थिति जाँचहरू छोड्नको लागि "नो-टच-आवश्यक" झण्डा मात्र समर्थित छ। समानता अनुसार, "नो-टच-आवश्यक" विकल्प अधिकृत_कुञ्जी फाइलमा थपिएको छ;
  • कुञ्जीहरू सिर्जना गर्दा थप FIDO प्रमाणीकरण प्रमाणपत्रहरू लेख्न अनुमति दिन ssh-keygen मा "-O write-attestation=/path" विकल्प थपियो। OpenSSH ले अझै यी प्रमाणपत्रहरू प्रयोग गर्दैन, तर तिनीहरू पछि प्रमाणित गर्न प्रयोग गर्न सकिन्छ कि कुञ्जी विश्वसनीय हार्डवेयर स्टोरमा राखिएको छ;
  • ssh र sshd सेटिङहरूमा, अब IPQoS निर्देशन मार्फत ट्राफिक प्राथमिकता मोड सेट गर्न सम्भव छ। LE DSCP (लोअर-प्रयास प्रति-हप व्यवहार);
  • ssh मा, "AddKeysToAgent=yes" मान सेट गर्दा, यदि कुञ्जीले टिप्पणी क्षेत्र समावेश गर्दैन भने, यसलाई टिप्पणीको रूपमा कुञ्जीमा जाने बाटो संकेत गर्ने ssh-एजेन्टमा थपिनेछ। IN
    ssh-keygen र ssh-agent ले पनि PKCS#11 लेबलहरू र X.509 विषयको नामलाई पुस्तकालय मार्गको सट्टा कुञ्जीमा टिप्पणीहरूको रूपमा प्रयोग गर्दछ;

  • ssh-keygen मा DSA र ECDSA कुञ्जीहरूको लागि PEM निर्यात गर्ने क्षमता थपियो;
  • FIDO/U2F टोकन पहुँच पुस्तकालयलाई अलग गर्न प्रयोग गरिने नयाँ कार्यान्वयनयोग्य, ssh-sk-helper थपियो;
  • zlib लाइब्रेरी समर्थनको साथ संकलनको लागि ssh र sshd मा "--with-zlib" निर्माण विकल्प थपियो;
  • RFC4253 को आवश्यकता अनुसार, MaxStartups सीमा नाघेको कारणले पहुँच अवरुद्ध गर्ने बारे चेतावनी जडानको समयमा प्रदर्शित ब्यानरमा प्रदान गरिएको छ। निदानलाई सरल बनाउनको लागि, sshd प्रक्रिया हेडर, ps उपयोगिता प्रयोग गर्दा देखिने, अब हालको प्रमाणिकरण जडानहरूको संख्या र MaxStartups सीमाको स्थिति प्रदर्शन गर्दछ;
  • ssh र ssh-एजेन्टमा, $SSH_ASKPASS मार्फत तोकिएको स्क्रिनमा निमन्त्रणा देखाउनको लागि कार्यक्रमलाई कल गर्दा, निमन्त्रणाको प्रकारसहितको झण्डा अब थप रूपमा पठाइन्छ: "पुष्टि गर्नुहोस्" - पुष्टिकरण संवाद (हो/होइन), "कुनै पनि छैन। " - सूचना सन्देश, "खाली" - पासवर्ड अनुरोध;
  • निर्दिष्ट डिजिटल हस्ताक्षरसँग सम्बन्धित प्रयोगकर्ताका लागि अनुमति-हस्ताक्षरकर्ता फाइल खोज्न ssh-keygen मा नयाँ डिजिटल हस्ताक्षर सञ्चालन "find-principals" थपियो;
  • seccomp मेकानिजम प्रयोग गरेर लिनक्समा sshd प्रक्रिया अलगावका लागि सुधारिएको समर्थन: IPC प्रणाली कलहरू असक्षम गर्दै, clock_gettime64(), clock_nanosleep_time64 र clock_nanosleep() लाई अनुमति दिँदै।

स्रोत: opennet.ru

एक टिप्पणी थप्न