FIDO/U8.2F రెండు-కారకాల ప్రమాణీకరణ టోకెన్లకు మద్దతుతో OpenSSH 2 విడుదల

నాలుగు నెలల అభివృద్ధి తర్వాత సమర్పించారు విడుదల OpenSSH 8.2, SSH 2.0 మరియు SFTP ప్రోటోకాల్‌ల ద్వారా పని చేయడానికి ఓపెన్ క్లయింట్ మరియు సర్వర్ అమలు.

OpenSSH 8.2 విడుదలలో కీలకమైన మెరుగుదల ప్రోటోకాల్‌కు మద్దతు ఇచ్చే పరికరాలను ఉపయోగించి రెండు-కారకాల ప్రమాణీకరణను ఉపయోగించగల సామర్థ్యం. యు 2 ఎఫ్, కూటమి ద్వారా అభివృద్ధి చేయబడింది ఫిడో. U2F తక్కువ-ధర హార్డ్‌వేర్ టోకెన్‌ల సృష్టిని వినియోగదారు భౌతిక ఉనికిని ధృవీకరించడానికి అనుమతిస్తుంది, USB, బ్లూటూత్ లేదా NFC ద్వారా వారితో పరస్పర చర్య చేస్తుంది. ఇటువంటి పరికరాలు వెబ్‌సైట్‌లలో రెండు-కారకాల ప్రమాణీకరణ సాధనంగా ప్రచారం చేయబడ్డాయి, ఇప్పటికే ప్రధాన బ్రౌజర్‌లచే మద్దతు ఇవ్వబడ్డాయి మరియు యుబికో, ఫీటియన్, థెటిస్ మరియు కెన్సింగ్టన్‌తో సహా వివిధ తయారీదారులచే ఉత్పత్తి చేయబడ్డాయి.

వినియోగదారు ఉనికిని నిర్ధారించే పరికరాలతో పరస్పర చర్య చేయడానికి, SHA-25519 హాష్‌తో కలిపి ECDSA మరియు Ed25519 డిజిటల్ సిగ్నేచర్ అల్గారిథమ్‌లను ఉపయోగించే OpenSSHకి కొత్త కీ రకాలు “ecdsa-sk” మరియు “ed256-sk” జోడించబడ్డాయి. టోకెన్‌లతో పరస్పర చర్య చేసే విధానాలు ఇంటర్మీడియట్ లైబ్రరీలో ఉంచబడతాయి, ఇది PKCS#11 మద్దతు కోసం లైబ్రరీకి సమానమైన రీతిలో లోడ్ చేయబడుతుంది మరియు లైబ్రరీ పైన ఒక రేపర్‌గా ఉంటుంది. లిబ్ఫిడో2, ఇది USB ద్వారా టోకెన్‌లతో కమ్యూనికేట్ చేయడానికి సాధనాలను అందిస్తుంది (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/libsk-libsk-libsk-tobtob)కి మార్గాన్ని సూచిస్తుంది. కాబట్టి). లేయర్ లైబ్రరీ (--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/n256 ఆధారిత RFC384 ECDSAలో (OpenSSH 521 నుండి మద్దతు ఉంది).

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కి Include డైరెక్టివ్ జోడించబడింది, ఇది కాన్ఫిగరేషన్ ఫైల్ యొక్క ప్రస్తుత స్థానంలో ఇతర ఫైల్‌ల కంటెంట్‌లను చేర్చడానికి మిమ్మల్ని అనుమతిస్తుంది (ఫైల్ పేరును పేర్కొనేటప్పుడు గ్లోబ్ మాస్క్‌లను ఉపయోగించవచ్చు);
  • "no-touch-required" ఎంపిక ssh-keygenకి జోడించబడింది, ఇది కీని రూపొందించేటప్పుడు టోకెన్‌కు ప్రాప్యతను భౌతికంగా నిర్ధారించవలసిన అవసరాన్ని నిలిపివేస్తుంది;
  • PubkeyAuthOptions డైరెక్టివ్ sshd_configకి జోడించబడింది, ఇది పబ్లిక్ కీ ప్రమాణీకరణకు సంబంధించిన వివిధ ఎంపికలను మిళితం చేస్తుంది. ప్రస్తుతం, టోకెన్ ప్రమాణీకరణ కోసం భౌతిక ఉనికి తనిఖీలను దాటవేయడానికి "నో-టచ్-అవసరం" ఫ్లాగ్‌కు మాత్రమే మద్దతు ఉంది. సారూప్యత ద్వారా, "no-touch-required" ఎంపిక authorized_keys ఫైల్‌కు జోడించబడింది;
  • కీలను రూపొందించేటప్పుడు అదనపు FIDO ధృవీకరణ ధృవీకరణ పత్రాలను వ్రాయడానికి అనుమతించడానికి ssh-keygenకి "-O రైట్-అటెస్టేషన్=/path" ఎంపిక జోడించబడింది. OpenSSH ఇంకా ఈ సర్టిఫికేట్‌లను ఉపయోగించలేదు, అయితే కీ విశ్వసనీయ హార్డ్‌వేర్ స్టోర్‌లో ఉంచబడిందో లేదో ధృవీకరించడానికి వాటిని తర్వాత ఉపయోగించవచ్చు;
  • ssh మరియు sshd సెట్టింగ్‌లలో, ఇప్పుడు IPQoS డైరెక్టివ్ ద్వారా ట్రాఫిక్ ప్రాధాన్యత మోడ్‌ను సెట్ చేయడం సాధ్యపడుతుంది. LE DSCP (లోయర్-ఎఫర్ట్ పర్-హాప్ బిహేవియర్);
  • sshలో, “AddKeysToAgent=yes” విలువను సెట్ చేస్తున్నప్పుడు, కీ వ్యాఖ్య ఫీల్డ్‌ను కలిగి ఉండకపోతే, అది కీకి మార్గాన్ని వ్యాఖ్యగా సూచించే ssh-agentకి జోడించబడుతుంది. IN
    ssh-keygen మరియు ssh-agent కూడా ఇప్పుడు కీలో వ్యాఖ్యలుగా లైబ్రరీ పాత్‌కు బదులుగా PKCS#11 లేబుల్‌లు మరియు X.509 సబ్జెక్ట్ పేరును ఉపయోగిస్తున్నాయి;

  • DSA మరియు ECDSA కీల కోసం PEMని ssh-keygenకి ఎగుమతి చేసే సామర్థ్యం జోడించబడింది;
  • FIDO/U2F టోకెన్ యాక్సెస్ లైబ్రరీని వేరుచేయడానికి ఉపయోగించే కొత్త ఎక్జిక్యూటబుల్, ssh-sk-helper జోడించబడింది;
  • zlib లైబ్రరీ మద్దతుతో సంకలనం కోసం ssh మరియు sshdకి “--with-zlib” బిల్డ్ ఎంపిక జోడించబడింది;
  • RFC4253 యొక్క ఆవశ్యకతకు అనుగుణంగా, కనెక్షన్ సమయంలో ప్రదర్శించబడే బ్యానర్‌లో MaxStartups పరిమితులను అధిగమించడం వలన యాక్సెస్ నిరోధించడం గురించి హెచ్చరిక అందించబడింది. డయాగ్నస్టిక్స్‌ను సులభతరం చేయడానికి, ps యుటిలిటీని ఉపయోగిస్తున్నప్పుడు కనిపించే sshd ప్రాసెస్ హెడర్, ప్రస్తుతం ప్రామాణీకరించబడిన కనెక్షన్‌ల సంఖ్యను మరియు MaxStartups పరిమితి యొక్క స్థితిని ఇప్పుడు ప్రదర్శిస్తుంది;
  • ssh మరియు ssh-agentలో, స్క్రీన్‌పై ఆహ్వానాన్ని ప్రదర్శించడానికి ప్రోగ్రామ్‌కి కాల్ చేస్తున్నప్పుడు, $SSH_ASKPASS ద్వారా పేర్కొనబడినప్పుడు, ఆహ్వాన రకంతో కూడిన ఫ్లాగ్ ఇప్పుడు అదనంగా ప్రసారం చేయబడుతుంది: “నిర్ధారించు” - నిర్ధారణ డైలాగ్ (అవును/కాదు), “ఏదీ లేదు ” - సమాచార సందేశం, “ఖాళీ” — పాస్‌వర్డ్ అభ్యర్థన;
  • నిర్దిష్ట డిజిటల్ సంతకంతో అనుబంధించబడిన వినియోగదారు కోసం అనుమతించబడిన సంతకం చేసిన ఫైల్‌ను శోధించడానికి ssh-keygenకి కొత్త డిజిటల్ సంతకాల ఆపరేషన్ "ఫైండ్-ప్రిన్సిపల్స్" జోడించబడింది;
  • seccomp మెకానిజం ఉపయోగించి Linuxలో sshd ప్రాసెస్ ఐసోలేషన్‌కు మెరుగైన మద్దతు: IPC సిస్టమ్ కాల్‌లను నిలిపివేయడం, clock_gettime64(), clock_nanosleep_time64 మరియు clock_nanosleep()లను అనుమతిస్తుంది.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి