Pagpagawas sa OpenSSH 8.2 nga adunay suporta alang sa FIDO/U2F nga duha ka hinungdan nga mga token sa pag-authenticate

Human sa upat ka bulan sa kalamboan gipresentar buhian OpenSSH 8.2, usa ka bukas nga kliyente ug pagpatuman sa server alang sa pagtrabaho pinaagi sa SSH 2.0 ug SFTP protocols.

Usa ka hinungdanon nga pag-uswag sa pagpagawas sa OpenSSH 8.2 mao ang abilidad sa paggamit sa duha ka hinungdan nga pag-authenticate gamit ang mga aparato nga nagsuporta sa protocol. U2F, gipalambo sa alyansa FIDO. Gitugotan sa U2F ang paghimo sa mga token sa hardware nga mubu nga gasto aron mapamatud-an ang pisikal nga presensya sa tiggamit, nga nakig-uban kanila pinaagi sa USB, Bluetooth o NFC. Ang ingon nga mga aparato gipasiugda ingon usa ka paagi sa pag-authenticate sa duha ka hinungdan sa mga website, gisuportahan na sa mga dagkong browser ug gihimo sa lainlaing mga tiggama, lakip ang Yubico, Feitian, Thetis ug Kensington.

Aron makig-uban sa mga himan nga nagpamatuod sa presensya sa tiggamit, ang bag-ong mga yawe nga tipo nga "ecdsa-sk" ug "ed25519-sk" gidugang sa OpenSSH, nga naggamit sa ECDSA ug Ed25519 digital signature algorithms, inubanan sa SHA-256 hash. Ang mga pamaagi sa pagpakig-uban sa mga token gibutang sa usa ka intermediate nga librarya, nga gikarga sa susama nga paagi sa librarya alang sa PKCS#11 nga suporta ug usa ka wrapper sa ibabaw sa librarya. libfido2, nga naghatag og mga himan alang sa pagpakigsulti sa mga token sa USB (FIDO U2F/CTAP 1 ug FIDO 2.0/CTAP 2 nga mga protocol gisuportahan). Intermediate library libsk-libfido2 giandam sa OpenSSH developers apil ngadto sa kinauyokan nga libfido2, ingon man usab HID driver alang sa OpenBSD.

Aron mapamatud-an ug makamugna og usa ka yawe, kinahanglan nimong itakda ang parameter nga "SecurityKeyProvider" sa mga setting o itakda ang variable sa palibot sa SSH_SK_PROVIDER, nga nagpaila sa agianan sa eksternal nga librarya libsk-libfido2.so (export SSH_SK_PROVIDER=/path/to/libsk-libfido2. mao). Posible nga magtukod og openssh nga adunay built-in nga suporta alang sa layer library (--with-security-key-builtin), sa kini nga kaso kinahanglan nimo nga ibutang ang parameter nga "SecurityKeyProvider=internal".
Sunod kinahanglan nimo nga modagan ang "ssh-keygen -t ecdsa-sk" o, kung ang mga yawe nahimo na ug na-configure, pagkonektar sa server gamit ang "ssh". Kung magpadagan ka sa ssh-keygen, ang namugna nga key pair ma-save sa "~/.ssh/id_ecdsa_sk" ug magamit parehas sa ubang mga yawe.

Ang public key (id_ecdsa_sk.pub) kinahanglang kopyahon sa server sa authorized_keys file. Sa bahin sa server, ang digital signature ra ang napamatud-an, ug ang interaksyon sa mga token gihimo sa kilid sa kliyente (dili nimo kinahanglan nga i-install ang libsk-libfido2 sa server, apan kinahanglan nga suportahan sa server ang "ecdsa-sk" key type) . Ang namugna nga pribado nga yawe (id_ecdsa_sk) sa esensya usa ka yawe nga kuptanan, nga nagporma usa ka tinuud nga yawe sa kombinasyon sa sekreto nga pagkasunod-sunod nga gitipigan sa kilid sa token sa U2F. Kung ang yawe sa id_ecdsa_sk nahulog sa mga kamot sa usa ka tig-atake, aron maipasa ang pag-authenticate kinahanglan usab niya nga maka-access sa token sa hardware, kung wala ang pribadong yawe nga gitipigan sa id_ecdsa_sk file wala’y kapuslanan.

Dugang pa, pinaagi sa default, kung maghimo sa bisan unsang mga operasyon nga adunay mga yawe (sa panahon sa henerasyon ug sa panahon sa pag-authenticate), gikinahanglan ang lokal nga kumpirmasyon sa pisikal nga presensya sa user, pananglitan, gisugyot nga hikapon ang sensor sa token, nga nagpalisud sa paghimo niini. paghimo sa hilit nga pag-atake sa mga sistema nga adunay konektado nga timaan. Ingon nga laing linya sa depensa, ang usa ka password mahimo usab nga itakda sa panahon sa pagsugod nga hugna sa ssh-keygen aron ma-access ang yawe nga file.

Gipahibalo usab sa bag-ong bersyon sa OpenSSH ang umaabot nga pagtangtang sa mga algorithm gamit ang SHA-1 nga mga hash tungod sa promosyon ang pagka-epektibo sa mga pag-atake sa pagbangga nga adunay gihatag nga prefix (ang gasto sa pagpili sa usa ka bangga gibanabana nga gibana-bana nga 45 ka libo nga dolyar). Sa usa sa mga umaabot nga pagpagawas, sila nagplano sa pag-disable pinaagi sa default ang abilidad sa paggamit sa public key digital signature algorithm "ssh-rsa", nga gihisgutan sa orihinal nga RFC alang sa SSH protocol ug nagpabilin nga kaylap sa praktis (sa pagsulay sa paggamit sa ssh-rsa sa imong mga sistema, mahimo nimong sulayan ang pagkonektar pinaagi sa ssh nga adunay kapilian nga "-oHostKeyAlgorithm=-ssh-rsa").

Aron mapahapsay ang transisyon ngadto sa bag-ong mga algorithm sa OpenSSH, sa umaabot nga pagpagawas ang UpdateHostKeys setting ma-enable pinaagi sa default, nga awtomatikong mobalhin sa mga kliyente ngadto sa mas kasaligan nga mga algorithm. Ang girekomendar nga mga algorithm alang sa paglalin naglakip sa rsa-sha2-256/512 base sa RFC8332 RSA SHA-2 (gisuportahan sukad sa OpenSSH 7.2 ug gigamit sa default), ssh-ed25519 (gisuportahan sukad sa OpenSSH 6.5) ug ecdsa-sha2-nistp256/384/521 base sa RFC5656 ECDSA (gisuportahan sukad sa OpenSSH 5.7).

Sa OpenSSH 8.2, ang abilidad sa pagkonektar gamit ang "ssh-rsa" anaa gihapon, apan kini nga algorithm gikuha gikan sa lista sa CASignatureAlgorithms, nga naghubit sa mga algorithm nga gitugotan alang sa digital nga pagpirma sa bag-ong mga sertipiko. Sa susama, ang diffie-hellman-group14-sha1 algorithm gikuha gikan sa default key exchange algorithms gisuportahan. Namatikdan nga ang paggamit sa SHA-1 sa mga sertipiko nalangkit sa dugang nga risgo, tungod kay ang tig-atake adunay walay kinutuban nga panahon sa pagpangita sa usa ka bangga alang sa usa ka kasamtangan nga sertipiko, samtang ang panahon sa pag-atake sa mga yawe sa host limitado sa panahon sa koneksyon (LoginGraceTime ).

Ang pagpadagan sa ssh-keygen karon nag-default sa rsa-sha2-512 algorithm, nga gisuportahan sukad sa OpenSSH 7.2, nga mahimong makamugna og mga isyu sa compatibility sa dihang mosulay sa pagproseso sa mga sertipiko nga gipirmahan sa OpenSSH 8.2 sa mga sistema nga nagpadagan sa mas daan nga OpenSSH releases (aron masulbad ang isyu kung kanus-a paghimo og usa ka pirma, mahimo nimong klaro nga ipiho ang "ssh-keygen -t ssh-rsa" o gamiton ang ecdsa-sha2-nistp256/384/521 nga mga algorithm, gisuportahan sukad sa OpenSSH 5.7).

Uban pang mga pagbag-o:

  • Usa ka Ilakip nga direktiba ang gidugang sa sshd_config, nga nagtugot kanimo nga ilakip ang mga sulud sa ubang mga file sa karon nga posisyon sa file sa pag-configure (ang mga maskara sa glob mahimong magamit kung gipiho ang ngalan sa file);
  • Ang opsyon nga "no-touch-required" gidugang sa ssh-keygen, nga nagpugong sa panginahanglan sa pisikal nga pagkumpirma sa pag-access sa token sa paghimo sa yawe;
  • Usa ka direktiba sa PubkeyAuthOptions ang gidugang sa sshd_config, nga naghiusa sa lainlaing mga kapilian nga may kalabotan sa panghimatuud sa yawe sa publiko. Sa pagkakaron, ang "no-touch-required" lang nga bandila ang gisuportahan aron laktawan ang pisikal nga presensya nga mga pagsusi alang sa token authentication. Pinaagi sa analohiya, ang opsyon nga "walay-paghikap-kinahanglan" gidugang sa authorized_keys file;
  • Gidugang ang "-O write-attestation=/path" nga opsyon sa ssh-keygen aron tugotan ang dugang nga FIDO nga mga sertipiko sa pagpamatuod nga masulat kung maghimo og mga yawe. Ang OpenSSH wala pa mogamit niini nga mga sertipiko, apan kini magamit sa ulahi aron mapamatud-an nga ang yawe gibutang sa usa ka kasaligan nga tindahan sa hardware;
  • Sa mga setting sa ssh ug sshd, posible na nga itakda ang mode sa prioritization sa trapiko pinaagi sa direktiba sa IPQoS LE DSCP (Lower-Effort Per-Hop Behavior);
  • Sa ssh, kung gibutang ang kantidad nga "AddKeysToAgent = oo", kung ang yawe wala’y sulud nga komentaryo, kini idugang sa ssh-agent nga nagpaila sa agianan sa yawe ingon usa ka komento. SA
    Ang ssh-keygen ug ssh-agent usab karon naggamit sa PKCS#11 nga mga label ug ang X.509 nga ngalan sa subject imbes nga ang agianan sa librarya isip mga komentaryo sa yawe;

  • Gidugang ang abilidad sa pag-eksport sa PEM para sa DSA ug ECDSA nga mga yawe sa ssh-keygen;
  • Gidugang ang bag-ong executable, ssh-sk-helper, nga gigamit sa pag-isolate sa FIDO/U2F token access library;
  • Gidugang ang "--with-zlib" nga kapilian sa pagtukod sa ssh ug sshd alang sa pag-compile sa suporta sa zlib library;
  • Nahiuyon sa kinahanglanon sa RFC4253, usa ka pasidaan bahin sa pag-block sa pag-access tungod sa sobra nga mga limitasyon sa MaxStartups gihatag sa bandila nga gipakita sa panahon sa koneksyon. Aron mapasayon ​​ang mga diagnostic, ang sshd process header, nga makita sa paggamit sa ps utility, karon nagpakita sa gidaghanon sa kasamtangan nga napamatud-an nga mga koneksyon ug ang status sa MaxStartups limit;
  • Sa ssh ug ssh-agent, kung nagtawag sa usa ka programa aron ipakita ang usa ka imbitasyon sa screen, nga gipiho pinaagi sa $SSH_ASKPASS, usa ka bandila nga adunay tipo sa imbitasyon karon dugang nga gipasa: "kumpirma" - dialog sa pagkumpirma (oo / dili), "wala ” - mensahe sa impormasyon, β€œblangko” β€” hangyo sa password;
  • Gidugang ang usa ka bag-ong digital signature nga operasyon nga "find-principals" sa ssh-keygen aron pangitaon ang gitugotan nga mga signature file alang sa user nga may kalabutan sa usa ka piho nga digital signature;
  • Gipauswag nga suporta alang sa pag-inusara sa proseso sa sshd sa Linux gamit ang mekanismo sa seccomp: pag-disable sa mga tawag sa sistema sa IPC, gitugotan ang clock_gettime64 (), clock_nanosleep_time64 ug clock_nanosleep ().

Source: opennet.ru

Idugang sa usa ka comment