የOpenSSH 8.2 መልቀቅ ከ FIDO/U2F ባለ ሁለት ደረጃ ማረጋገጫ ቶከኖች ጋር

ከአራት ወራት እድገት በኋላ ቀርቧል መልቀቅ OpenSSH 8.2በኤስኤስኤች 2.0 እና በኤስኤፍቲፒ ፕሮቶኮሎች ለመስራት ክፍት ደንበኛ እና አገልጋይ ትግበራ።

የOpenSSH 8.2 መለቀቅ ቁልፍ ማሻሻያ ፕሮቶኮሉን የሚደግፉ መሳሪያዎችን በመጠቀም ባለሁለት ደረጃ ማረጋገጫን መጠቀም መቻል ነው። U2F, በኅብረቱ የተገነባ FIDO. U2F በዩኤስቢ፣ በብሉቱዝ ወይም በኤንኤፍሲ አማካኝነት የተጠቃሚውን አካላዊ መገኘት ለማረጋገጥ አነስተኛ ዋጋ ያላቸውን የሃርድዌር ቶከኖች መፍጠር ያስችላል። እንደነዚህ ያሉ መሳሪያዎች በድረ-ገጾች ላይ ባለ ሁለት ደረጃ ማረጋገጫ መንገድ ሆነው ይተዋወቃሉ, ቀድሞውኑ በዋና አሳሾች የተደገፉ እና በተለያዩ አምራቾች የተሠሩ ናቸው, Yubico, Feitian, Thetis እና Kensington ን ጨምሮ.

የተጠቃሚውን መኖር ከሚያረጋግጡ መሳሪያዎች ጋር ለመገናኘት አዲስ የቁልፍ አይነቶች “ecdsa-sk” እና “ed25519-sk” ወደ OpenSSH ተጨምረዋል፣ እነዚህም ECDSA እና Ed25519 ዲጂታል ፊርማ ስልተ ቀመር ከSHA-256 ሃሽ ጋር ተጣምረው። ከቶከኖች ጋር የመግባቢያ ሂደቶች በመካከለኛው ቤተ-መጽሐፍት ውስጥ ይቀመጣሉ፣ እሱም በተመሳሳይ መልኩ ከቤተ-መጻሕፍት ጋር ለPKCS#11 ድጋፍ የሚጫነው እና በቤተ መፃህፍቱ ላይ መጠቅለያ ነው። libfido2በዩኤስቢ ከቶከኖች ጋር ለመግባባት የሚረዱ መሳሪያዎችን የሚያቀርብ (FIDO U2F/CTAP 1 እና FIDO 2.0/CTAP 2 ፕሮቶኮሎች ይደገፋሉ)። በOpenSSH ገንቢዎች የተዘጋጀ መካከለኛ ላይብረሪ libsk-libfido2 ተካትቷል ወደ ኮር libfido2, እንዲሁም HID ሹፌር ለ OpenBSD

ቁልፍን ለማረጋገጥ እና ለማመንጨት በቅንብሮች ውስጥ የ"SecurityKeyProvider" መለኪያን መግለጽ ወይም የSSH_SK_PROVIDER አካባቢን ተለዋዋጭ ማቀናበር አለቦት፣ ይህም ወደ ውጫዊ ቤተ-መጽሐፍት libsk-libfido2.so (SSH_SK_PROVIDER=/path/to/libsk-libfido2 መላክ)። ስለዚህ) Openssh ን በንብርብር ቤተ-መጽሐፍት ውስጥ አብሮ በተሰራ ድጋፍ መገንባት ይቻላል (-with-security-key-builtin) በዚህ አጋጣሚ የ "SecurityKeyProvider=internal" መለኪያ ማዘጋጀት ያስፈልግዎታል.
በመቀጠል "ssh-keygen -t ecdsa-sk" ማስኬድ ያስፈልግዎታል ወይም ቁልፎቹ ቀድሞውኑ ከተፈጠሩ እና ከተዋቀሩ "ssh" ን በመጠቀም ከአገልጋዩ ጋር ይገናኙ. ssh-keygenን ስታሄድ የተፈጠረው የቁልፍ ጥምር በ"~/.ssh/id_ecdsa_sk" ውስጥ ይቀመጣል እና ከሌሎች ቁልፎች ጋር በተመሳሳይ መልኩ ጥቅም ላይ ሊውል ይችላል።

የህዝብ ቁልፉ (id_ecdsa_sk.pub) በተፈቀደው_keys ፋይል ውስጥ ወደ አገልጋዩ መቅዳት አለበት። በአገልጋዩ በኩል ዲጂታል ፊርማ ብቻ ነው የተረጋገጠው እና ከቶከኖች ጋር ያለው መስተጋብር በደንበኛው በኩል ይከናወናል (በአገልጋዩ ላይ libsk-libfido2 ን መጫን አያስፈልግዎትም ፣ ግን አገልጋዩ የ “ecdsa-sk” ቁልፍ አይነት መደገፍ አለበት) . የመነጨው የግል ቁልፍ (id_ecdsa_sk) በመሰረቱ ቁልፍ መያዣ ነው፣ ይህም እውነተኛ ቁልፍ በU2F ማስመሰያ ጎን ላይ ከተከማቸ ሚስጥራዊ ቅደም ተከተል ጋር በማጣመር ብቻ ነው። የ id_ecdsa_sk ቁልፉ በአጥቂው እጅ ውስጥ ከወደቀ፣ ማረጋገጫውን ለማለፍ የሃርድዌር ቶከንንም ማግኘት ይኖርበታል፣ ያለዚህ በ id_ecdsa_sk ፋይል ውስጥ የተቀመጠው የግል ቁልፍ ከንቱ ነው።

በተጨማሪም ፣ በነባሪ ፣ ማንኛውንም ክዋኔዎች ከቁልፎች ጋር ሲያከናውን (በትውልድ እና በማረጋገጥ ጊዜ) የተጠቃሚውን አካላዊ መገኘት የአካባቢ ማረጋገጫ ያስፈልጋል ፣ ለምሳሌ ፣ በቶክ ላይ ያለውን ዳሳሽ መንካት ይጠበቅበታል ፣ ይህ ደግሞ አስቸጋሪ ያደርገዋል ። የተገናኘ ማስመሰያ ባላቸው ስርዓቶች ላይ የርቀት ጥቃቶችን ያካሂዱ። እንደ ሌላ የመከላከያ መስመር፣ ቁልፍ ፋይሉን ለመድረስ ssh-keygen በሚጀምርበት ወቅት የይለፍ ቃል ሊገለጽ ይችላል።

አዲሱ የOpenSSH ስሪት በ SHA-1 hashes በመጠቀም መጪውን የአልጎሪዝም መቋረጥ አስታውቋል ማስተዋወቅ የግጭት ጥቃቶች ውጤታማነት በተሰጠው ቅድመ ቅጥያ (ግጭት የመምረጥ ዋጋ በግምት 45 ሺህ ዶላር ይገመታል). ከሚለቀቁት ውስጥ በአንዱ፣ በነባሪነት ለኤስኤስኤች ፕሮቶኮል በዋናው RFC ውስጥ የተጠቀሰውን እና በተግባር በስፋት የሚቆይ (አጠቃቀሙን ለመፈተሽ) የህዝብ ቁልፍ ዲጂታል ፊርማ አልጎሪዝም “ssh-rsa” የመጠቀም ችሎታን በነባሪ ለማሰናከል አቅደዋል። በስርዓቶችዎ ውስጥ የ ssh-rsa ን በ ssh በኩል ከ“-oHostKeyAlgorithms=-ssh-rsa”) ጋር ለመገናኘት መሞከር ይችላሉ።

በOpenSSH ውስጥ ወደ አዲስ ስልተ ቀመሮች የሚደረገውን ሽግግር ለማቃለል፣በወደፊት ልቀት የ UpdateHostKeys መቼት በነባሪነት ይነቃቃል፣ይህም ደንበኞችን በራስ-ሰር ወደ አስተማማኝ ስልተ ቀመሮች ያፈልሳል። ለስደት የሚመከሩ ስልተ ቀመሮች RFC2 RSA SHA-256 (ከOpenSSH 512 ጀምሮ የተደገፈ እና በነባሪነት ጥቅም ላይ የዋለ)፣ ssh-ed8332 (ከOpenSSH 2 ጀምሮ የሚደገፍ) እና ecdsa-sha7.2-nistp25519/6.5/2 ላይ የተመሠረተ rsa-sha256-384/521 ያካትታሉ። በ RFC5656 ECDSA (ከOpenSSH 5.7 ጀምሮ የተደገፈ)።

በOpenSSH 8.2 ውስጥ፣ "ssh-rsa" ን በመጠቀም የመገናኘት ችሎታ አሁንም አለ፣ ነገር ግን ይህ ስልተ ቀመር ከ CSignatureAlgorithms ዝርዝር ተወግዷል፣ ይህም አዲስ የምስክር ወረቀቶችን በዲጂታል ለመፈረም የተፈቀደውን ስልተ ቀመሮችን ይገልጻል። በተመሳሳይ፣ diffie-helman-group14-sha1 አልጎሪዝም ከሚደገፉት ነባሪ የቁልፍ ልውውጥ ስልተ ቀመሮች ተወግዷል። SHA-1ን በእውቅና ማረጋገጫዎች ውስጥ መጠቀም ከተጨማሪ አደጋ ጋር የተቆራኘ መሆኑ ተወስቷል፣ አጥቂው ላለው የምስክር ወረቀት ግጭት ለመፈለግ ያልተገደበ ጊዜ ስላለው፣ በአስተናጋጅ ቁልፎች ላይ የሚደርሰው ጥቃት ግን በግንኙነቱ ጊዜ የተገደበ ነው (LoginGraceTime ).

ssh-keygenን ማስኬድ አሁን ወደ rsa-sha2-512 አልጎሪዝም ተቀይሯል፣ ከOpenSSH 7.2 ጀምሮ የሚደገፈው፣ በOpenSSH 8.2 የተፈረሙ የምስክር ወረቀቶችን የቆዩ የOpenSSH ልቀቶችን በሚያሄዱ ስርዓቶች ላይ ለመስራት በሚሞከርበት ጊዜ የተኳሃኝነት ችግሮች ሊፈጥር ይችላል (በጉዳዩ ዙሪያ ለመስራት መቼ መቼ ነው) ፊርማ በማመንጨት “ssh-keygen -t ssh-rsa”ን በግልፅ መግለጽ ወይም ከOpenSSH 2 ጀምሮ የሚደገፉትን ecdsa-sha256-nistp384/521/5.7 ስልተ ቀመሮችን መጠቀም ይችላሉ።

ሌሎች ለውጦች፡-

  • የማካተት መመሪያ ወደ sshd_config ተጨምሯል፣ ይህም የሌሎች ፋይሎችን ይዘቶች አሁን ባለው የውቅረት ፋይሉ ቦታ ላይ እንዲያካትቱ ያስችልዎታል (የፋይል ስሙን ሲገልጹ ግሎብ ማስክ መጠቀም ይቻላል)።
  • "ምንም-ንክኪ አያስፈልግም" የሚለው አማራጭ ወደ ssh-keygen ተጨምሯል, ይህም ቁልፉን በሚያመነጭበት ጊዜ የቶክን መዳረሻ በአካል ማረጋገጥ አስፈላጊነትን ያሰናክላል;
  • የPubkeyAuthOptions መመሪያ ወደ sshd_config ተጨምሯል፣ይህም ከህዝባዊ ቁልፍ ማረጋገጫ ጋር የተያያዙ የተለያዩ አማራጮችን ያጣምራል። በአሁኑ ጊዜ ቶከን ለማረጋገጥ የአካል መገኘት ፍተሻዎችን ለመዝለል የ"ምንም-ንክኪ አያስፈልግም" የሚለው ባንዲራ ብቻ ነው የሚደገፈው። በተመሣሣይ ሁኔታ፣ “ምንም-ንክኪ አያስፈልግም” የሚለው አማራጭ ወደ ተፈቀደለት_ቁልፍ ፋይል ተጨምሯል።
  • ቁልፎችን በሚፈጥሩበት ጊዜ ተጨማሪ የ FIDO ማረጋገጫ የምስክር ወረቀቶች እንዲጻፉ ለመፍቀድ "-O write-attestation=/path" አማራጭ ወደ ssh-keygen ታክሏል። OpenSSH እነዚህን የምስክር ወረቀቶች እስካሁን አይጠቀምም ነገር ግን ቁልፉ በታመነ የሃርድዌር መደብር ውስጥ መቀመጡን ለማረጋገጥ በኋላ ላይ መጠቀም ይቻላል፤
  • በ ssh እና sshd ቅንጅቶች ውስጥ አሁን በ IPQoS መመሪያ በኩል ለትራፊክ ቅድሚያ የሚሰጠውን ሁነታ ማዘጋጀት ይቻላል. LE DSCP (የዝቅተኛ ጥረት ፐር-ሆፕ ባህሪ);
  • በssh ውስጥ “AddKeysToAgent= yes” የሚለውን እሴት ሲያቀናብሩ ቁልፉ የአስተያየት መስክ ከሌለው ወደ ssh-agent ወደ ቁልፉ የሚወስደውን መንገድ እንደ አስተያየት ይጨመራል። ውስጥ
    ssh-keygen እና ssh-agent አሁን ደግሞ PKCS#11 መለያዎችን እና የ X.509 ርእሰ ጉዳይ ስም በቤተመፃህፍት መንገድ ምትክ በቁልፍ ውስጥ አስተያየቶችን ይጠቀማሉ።

  • PEM ለ DSA እና ECDSA ቁልፎችን ወደ ssh-keygen የመላክ ችሎታ ታክሏል፤
  • የ FIDO/U2F ማስመሰያ መዳረሻ ቤተ-መጽሐፍትን ለመለየት የሚያገለግል አዲስ ፈጻሚ፣ ssh-sk-helper ታክሏል።
  • ከዝሊብ ቤተ-መጽሐፍት ድጋፍ ጋር ለማጠናቀር ወደ ssh እና sshd "--with-zlib" የግንባታ አማራጭ ታክሏል፤
  • በ RFC4253 መስፈርት መሰረት ከ MaxStartups ገደብ በላይ በመኖሩ ምክንያት የመዳረሻ እገዳን በተመለከተ ማስጠንቀቂያ በግንኙነት ጊዜ በሚታየው ባነር ላይ ቀርቧል። ምርመራዎችን ለማቃለል, የ sshd ሂደት ራስጌ, የ ps utility ሲጠቀሙ የሚታየው, አሁን አሁን የተረጋገጡ ግንኙነቶችን ቁጥር እና የ MaxStartups ገደብ ሁኔታ ያሳያል;
  • በssh እና ssh-agent ውስጥ፣ በ$SSH_ASKPASS በኩል የተገለጸውን ግብዣ በስክሪኑ ላይ ለማሳየት ፕሮግራም ሲደውሉ፣ የግብዣው አይነት ያለው ባንዲራ አሁን ተላልፏል፡ “አረጋግጥ” - የማረጋገጫ ንግግር (አዎ/አይ)፣ “ምንም "- የመረጃ መልእክት, "ባዶ" - የይለፍ ቃል ጥያቄ;
  • ከተጠቀሰው ዲጂታል ፊርማ ጋር የተጎዳኘውን ተጠቃሚ የተፈቀደ-ፈራሚዎችን ፋይል ለመፈለግ አዲስ የዲጂታል ፊርማዎች ክወና ወደ ssh-keygen ታክሏል።
  • የተሻሻለ የኤስኤስዲ ሂደትን ማግለል በሊኑክስ ሴክኮምፕ ዘዴን በመጠቀም፡ የአይፒሲ ሲስተም ጥሪዎችን ማሰናከል፣ clock_gettime64() clock_nanosleep_time64 እና clock_nanosleep() መፍቀድ።

ምንጭ: opennet.ru

አስተያየት ያክሉ