OpenSSH 8.2 جو رليز FIDO/U2F ٻن عنصر جي تصديق واري ٽوڪن جي مدد سان

ترقي جي چئن مهينن کان پوء پيش ڪيو ڇڏڻ اوپن ايس ايس ايڇ 8.2، SSH 2.0 ۽ SFTP پروٽوڪول ذريعي ڪم ڪرڻ لاءِ کليل ڪلائنٽ ۽ سرور تي عمل درآمد.

OpenSSH 8.2 جي رليز ۾ هڪ اهم سڌارو، پروٽوڪول کي سپورٽ ڪندڙ ڊوائيسز استعمال ڪندي ٻه عنصر جي تصديق کي استعمال ڪرڻ جي صلاحيت هئي. U2F، اتحاد پاران تيار ڪيل ايف آء. U2F استعمال ڪندڙ جي جسماني موجودگي جي تصديق ڪرڻ لاءِ گھٽ قيمت هارڊويئر ٽوڪن ٺاهڻ جي اجازت ڏئي ٿو، انهن سان USB، بلوٽوٿ يا NFC ذريعي رابطو ڪري. اهڙيون ڊوائيس ويب سائيٽن تي ٻن عنصر جي تصديق جي طور تي ترقي يافته آهن، اڳ ۾ ئي وڏن برائوزرن جي حمايت ڪئي وئي آهي ۽ مختلف ٺاهيندڙن پاران ٺاهيا ويا آهن، جن ۾ يوبيڪو، فيٽين، ٿيٽس ۽ ڪينسنگٽن شامل آهن.

ڊوائيسز سان رابطو ڪرڻ لاءِ جيڪي صارف جي موجودگي جي تصديق ڪن ٿيون، نوان ڪيئي قسم ”ecdsa-sk“ ۽ ”ed25519-sk“ OpenSSH ۾ شامل ڪيا ويا آهن، جيڪي SHA-25519 hash سان گڏ ECDSA ۽ Ed256 ڊجيٽل دستخطي الگورتھم استعمال ڪن ٿا. ٽوڪن سان رابطي لاءِ طريقا هڪ وچولي لائبريري ۾ رکيا ويا آهن، جيڪا ساڳئي طرح PKCS#11 سپورٽ لاءِ لائبريري ۾ لوڊ ڪئي وئي آهي ۽ لائبريري جي مٿي تي هڪ لفافي آهي. libfido2، جيڪو USB تي ٽوڪن سان رابطي لاءِ اوزار مهيا ڪري ٿو (FIDO U2F/CTAP 1 ۽ FIDO 2.0/CTAP 2 پروٽوڪول سپورٽ آهن). OpenSSH ڊولپرز پاران تيار ڪيل وچولي لائبريري libsk-libfido2 شامل بنيادي libfido2 ۾، گڏوگڏ HID ڊرائيور OpenBSD لاءِ.

ڪي جي تصديق ڪرڻ ۽ ٺاھڻ لاءِ، توھان کي سيٽنگن ۾ ”SecurityKeyProvider“ پيٽرول بيان ڪرڻ گھرجي يا SSH_SK_PROVIDER ماحوليات جي متغير کي سيٽ ڪرڻ گھرجي، جيڪو خارجي لائبريري libsk-libfido2.so ڏانھن رستو ڏيکاريندو آھي (Export SSH_SK_PROVIDER=/path/to/libdo. تنهن ڪري). پرت لائبريري لاءِ بلٽ-ان سپورٽ سان Openssh ٺاهڻ ممڪن آهي (-with-security-key-builtin)، ان صورت ۾ توهان کي ”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 جو، توهان ssh ذريعي ڳنڍڻ جي ڪوشش ڪري سگهو ٿا اختيار سان "-oHostKeyAlgorithms=-ssh-rsa").

OpenSSH ۾ نئين الگورتھم جي منتقلي کي هموار ڪرڻ لاءِ، مستقبل ۾ رليز ڪيو ويندو UpdateHostKeys سيٽنگ ڊفالٽ طور تي فعال ٿي ويندي، جيڪا خودڪار طريقي سان ڪلائنٽ کي وڌيڪ قابل اعتماد الگورتھم ڏانھن منتقل ڪندي. لڏپلاڻ لاءِ تجويز ڪيل الگورتھم شامل آھن RFC2 RSA SHA-256 جي بنياد تي rsa-sha512-8332/2 (سپورٽ ٿيل آھي OpenSSH 7.2 کان ۽ ڊفالٽ طور استعمال ڪيو ويو آھي)، ssh-ed25519 (OpenSSH 6.5 کان وٺي سپورٽ ٿيل) ۽ ecdsa-sha2-nistp256/384/521 تي ٻڌل RFC5656 ECDSA تي (OpenSSH 5.7 کان سپورٽ ٿيل).

OpenSSH 8.2 ۾، "ssh-rsa" استعمال ڪندي ڳنڍڻ جي صلاحيت اڃا تائين موجود آهي، پر هن الگورتھم کي CASignatureAlgorithms لسٽ مان ڪڍيو ويو آهي، جيڪو نئين سرٽيفڪيشن کي ڊجيٽل طور تي دستخط ڪرڻ جي اجازت ڏنل الگورتھم جي وضاحت ڪري ٿو. اهڙي طرح، diffie-hellman-group14-sha1 الگورٿم کي ڊفالٽ ڪيئي مٽاسٽا الورورٿم مان هٽايو ويو آهي سپورٽ ڪيل. ياد رهي ته سرٽيفڪيٽن ۾ 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 ۾ "no-touch-required" آپشن شامل ڪيو ويو آھي، جيڪو ٽوڪن تائين پھچڻ جي جسماني طور تي تصديق ڪرڻ جي ضرورت کي غير فعال ڪري ٿو جڏھن چاٻي ٺاھيندي؛
  • هڪ PubkeyAuthOptions ھدايت sshd_config ۾ شامل ڪئي وئي آھي، جيڪا عوامي ڪيئي جي تصديق سان لاڳاپيل مختلف اختيارن کي گڏ ڪري ٿي. في الحال، ٽوڪن جي تصديق لاءِ جسماني موجودگي جي چڪاس کي ڇڏڻ لاءِ صرف ”ن-ٽچ-گهربل“ پرچم جي مدد ڪئي وئي آهي. قياس سان، "no-touch-required" اختيار اختيار ڪيو ويو آهي authorized_keys فائل ۾؛
  • شامل ڪيو ويو "-O write-attestation=/path" آپشن ssh-keygen ۾ اضافي FIDO تصديق واري سرٽيفڪيٽ کي اجازت ڏيڻ جي اجازت ڏيڻ لاءِ جڏهن چاٻيون ٺاهي رهيا آهن. OpenSSH اڃا تائين انهن سرٽيفڪيٽن کي استعمال نٿو ڪري، پر اهي بعد ۾ استعمال ڪري سگهجن ٿيون تصديق ڪرڻ لاءِ ته ڪنجي هڪ قابل اعتماد هارڊويئر اسٽور ۾ رکيل آهي؛
  • ssh ۽ sshd سيٽنگون ۾، اهو هاڻي ممڪن آهي ته ٽرئفڪ جي ترجيح واري موڊ کي IPQoS هدايت ذريعي ترتيب ڏيو LE DSCP (لوئر ڪوشش في-هاپ رويي)؛
  • ssh ۾، "AddKeysToAgent=yes" جو قدر مقرر ڪرڻ وقت، جيڪڏھن چاٻي ۾ تبصرو فيلڊ شامل نه آھي، اھو ssh-agent ۾ شامل ڪيو ويندو جيڪو اشارو طور ڪيڏي ڏانھن رستو ڏيکاريندو. IN
    ssh-keygen ۽ ssh-agent پڻ ھاڻي استعمال ڪندا آھن PKCS#11 ليبل ۽ X.509 مضمون جو نالو لائبريري جي رستي جي بدران ڪي ۾ تبصرن جي طور تي؛

  • شامل ڪيو ويو PEM لاءِ DSA ۽ ECDSA ڪنجيون ssh-keygen ڏانهن برآمد ڪرڻ جي صلاحيت؛
  • شامل ڪيو ويو ھڪڙو نئون قابل عمل، ssh-sk-helper، FIDO/U2F ٽوڪن رسائي لائبريري کي الڳ ڪرڻ لاء استعمال ڪيو ويو؛
  • شامل ڪيو ويو “--with-zlib” بلڊ آپشن کي ssh ۽ sshd لاءِ zlib لائبريري سپورٽ سان گڏ ڪرڻ لاءِ؛
  • RFC4253 جي گهرج جي مطابق، MaxStartups جي حدن کان وڌڻ جي ڪري رسائي کي بلاڪ ڪرڻ جي باري ۾ خبردار ڪيو ويو آھي ڪنيڪشن دوران ڏيکاريل بينر ۾. تشخيص کي آسان ڪرڻ لاء، sshd پروسيس هيڊر، ظاهر ٿئي ٿو جڏهن ps يوٽيلٽي استعمال ڪندي، هاڻي ڏيکاري ٿو موجوده تصديق ٿيل ڪنيڪشن جو تعداد ۽ MaxStartups جي حد جي حالت؛
  • ssh ۽ ssh-ايجنٽ ۾، جڏهن اسڪرين تي هڪ دعوت نامو ڏيکارڻ لاءِ هڪ پروگرام کي ڪال ڪري، $SSH_ASKPASS ذريعي بيان ڪيو ويو آهي، دعوت جي قسم سان هڪ جھنڊو هاڻي اضافي طور تي منتقل ڪيو ويندو آهي: "تصديق" - تصديق واري ڊائلاگ (ها/نه)، "ڪو به نه "- معلوماتي پيغام، "خالي" - پاسورڊ جي درخواست؛
  • شامل ڪيو ويو نئون ڊجيٽل دستخط آپريشن "find-principals" ssh-keygen ۾ هڪ مخصوص ڊجيٽل دستخط سان لاڳاپيل صارف لاءِ اجازت ڏنل-سائنرز فائل ڳولڻ لاءِ؛
  • لينڪس تي sshd پروسيس آئسوليشن لاءِ بهتر سپورٽ seccomp ميڪانيزم استعمال ڪندي: IPC سسٽم ڪالن کي بند ڪرڻ، اجازت ڏيڻ clock_gettime64()، clock_nanosleep_time64 ۽ clock_nanosleep().

جو ذريعو: opennet.ru

تبصرو شامل ڪريو