Tuuina atu o le OpenSSH 8.2 faʻatasi ma le lagolago mo FIDO/U2F faʻamaoniga faʻamaonia e lua

Ina ua uma le fa masina o atinae tuuina atu tatala OpenSSH 8.2, o le fa'atinoina o le tagata fa'atau ma le server mo le galue e ala i le SSH 2.0 ma le SFTP protocols.

O se faʻaleleia atili i le tatalaina o OpenSSH 8.2 o le mafai lea ona faʻaogaina faʻamaoniga e lua e faʻaaoga ai masini e lagolagoina ai le protocol. U2F, atiina ae e le soofaatasi Fido. U2F fa'ataga le fa'atupuina o fa'ailoga o meafaigaluega e fa'amaonia ai le iai o le tagata fa'aoga, fegalegaleai ma i latou e ala i le USB, Bluetooth po'o le NFC. O ia masini o loʻo faʻalauiloaina e avea o se auala o faʻamaoniga e lua i luga o upega tafaʻilagi, ua uma ona lagolagoina e tagata suʻesuʻe tetele ma gaosia e le tele o gaosiga, e aofia ai Yubico, Feitian, Thetis ma Kensington.

Ina ia fegalegaleai ma masini e faʻamaonia ai le i ai o le tagata faʻaoga, o ituaiga autu fou "ecdsa-sk" ma le "ed25519-sk" ua faʻaopoopoina i OpenSSH, lea e faʻaogaina ai le ECDSA ma Ed25519 numera numera algorithms, faʻatasi ma le SHA-256 hash. O fa'atonuga mo le fegalegaleai ma fa'ailoga o lo'o tu'uina i totonu o se faletusi vaeluagalemu, lea o lo'o utaina i se auala tutusa ma le faletusi mo le PKCS#11 lagolago ma o se afifi i luga o le faletusi libfido2, lea e maua ai meafaigaluega mo fesoʻotaʻiga ma faʻailoga i luga ole USB (FIDO U2F/CTAP 1 ma FIDO 2.0/CTAP 2 protocols e lagolagoina). Intermediate library libsk-libfido2 saunia e OpenSSH developers aofia ai i totonu o le libfido2 autu, faapea foi avetaavale HID mo OpenBSD.

Ina ia faʻamaonia ma faʻatupuina se ki, e tatau ona e faʻamaonia le "SecurityKeyProvider" parakalafa i totonu o faʻatulagaga poʻo le setiina o le SSH_SK_PROVIDER siosiomaga fesuiaiga, faʻaalia le ala i le faletusi fafo libsk-libfido2.so (faʻatau atu SSH_SK_PROVIDER=/path/to/libsk-libfido2. o lea). E mafai ona fausia openssh ma fausia-i totonu o le lagolago mo le potutusi layer (--with-security-key-builtin), i lenei tulaga e tatau ona e setiina le "SecurityKeyProvider = totonu" parakalafa.
O le isi mea e te manaʻomia e tamoʻe "ssh-keygen -t ecdsa-sk" poʻo, pe afai ua uma ona fatuina ma faʻapipiʻi ki, faʻafesoʻotaʻi i le server e faʻaaoga ai le "ssh". A e tamo'e le ssh-keygen, o le a fa'apolopolo le pa'aga o lo'o gaosia i le "~/.ssh/id_ecdsa_sk" ma e mafai ona fa'aoga tutusa ma isi ki.

Ole ki fa'alaua'itele (id_ecdsa_sk.pub) e tatau ona kopi i le 'au'aunaga i le faila fa'atagaina_keys. I luga o le itu o le server, e naʻo le saini numera e faʻamaonia, ma o fegalegaleaiga ma faʻailoga e faia i le itu o le kalani (e te le manaʻomia le faʻapipiʻiina o le libsk-libfido2 i luga o le 'auʻaunaga, ae e tatau i le 'auʻaunaga ona lagolagoina le ituaiga "ecdsa-sk"). . O le ki fa'apitoa na gaosia (id_ecdsa_sk) o se 'au ki, e fai ai se ki moni na'o le tu'ufa'atasia ma le fa'asologa faalilolilo o lo'o teuina i le itu U2F. Afai e pa'ū le ki id_ecdsa_sk i lima o se tagata osofaʻi, ina ia pasia le faʻamaoniga o le a manaʻomia foʻi ona ia maua le avanoa i le faʻailoga meafaigaluega, e aunoa ma le ki faʻapitoa e teuina i le faila id_ecdsa_sk e leai se aoga.

E le gata i lea, e ala i le le mafai, pe a faia soʻo se gaioiga ma ki (i le taimi o le faʻatupuina ma le taimi o le faʻamaoni), e manaʻomia le faʻamautinoaga i le lotoifale o le faʻaogaina faaletino o le tagata faʻaoga, mo se faʻataʻitaʻiga, ua fautuaina e paʻi atu i le sensor i luga o le faʻailoga, lea e faigata ai ona fai. faia osofaʻiga mamao i faiga faʻatasi ma se faʻailoga fesoʻotaʻi. I le avea ai ma se isi laina o le puipuiga, e mafai foi ona faʻamaonia se upu faʻamaonia i le taimi o le amataga o le ssh-keygen e faʻaoga ai le faila autu.

O le lomiga fou o OpenSSH na faʻasalalau ai foʻi le faʻaaogaina o algorithms e faʻaaoga ai SHA-1 hashes ona o fa'ateleina le aoga o osofaʻiga faʻalavelave faʻatasi ma se prefix ua tuʻuina atu (o le tau o le filifilia o se faʻalavelave e faʻatatau ile 45 afe tala). I se tasi o faʻasalalauga o loʻo oʻo mai, latou te fuafua e faʻamalo e ala i le le mafai ona faʻaogaina le saini numera numera numera algorithm "ssh-rsa", lea o loʻo taʻua i le uluai RFC mo le SSH protocol ma tumau lautele i le faʻatinoga (e suʻe ai le faʻaaogaina. o ssh-rsa i au faiga, e mafai ona e taumafai e faʻafesoʻotaʻi e ala i le ssh ma le filifiliga "-oHostKeyAlgorithms = -ssh-rsa").

Ina ia faʻalelei le suiga i algorithms fou i OpenSSH, i se faʻasalalauga i le lumanaʻi o le UpdateHostKeys seti o le a mafai e ala i le faaletonu, lea o le a otometi lava ona faʻafeiloaʻi tagata faʻatau i algorithms sili atu ona faatuatuaina. Fautuaina algorithms mo femalagaiga e aofia ai rsa-sha2-256/512 faʻavae ile RFC8332 RSA SHA-2 (lagolago talu mai OpenSSH 7.2 ma faʻaaogaina e ala i le faaletonu), ssh-ed25519 (lagolago talu mai OpenSSH 6.5) ma ecdsa-sha2-nistp256/384/521 faʻavae ile RFC5656 ECDSA (lagolagoina talu mai le OpenSSH 5.7).

I le OpenSSH 8.2, o loʻo avanoa pea le avanoa e faʻafesoʻotaʻi ai le "ssh-rsa", ae o lenei algorithm ua aveese mai le lisi o le CASignatureAlgorithms, lea e faʻamalamalamaina ai algorithms e faʻatagaina mo le saini numera o tusi faamaonia fou. E faapena foi, o le diffie-hellman-group14-sha1 algorithm ua aveesea mai le faaletonu o le fesuiaiga o autu algorithms lagolagoina. O loʻo maitauina o le faʻaaogaina o le SHA-1 i tusi faamaonia e fesoʻotaʻi ma faʻalavelave faʻaopoopo, talu ai e le faʻatapulaʻaina le taimi o le tagata osofaʻi e suʻe ai se faʻalavelave mo se tusi faamaonia o loʻo i ai nei, ae o le taimi o le osofaʻiga i ki talimalo e faʻatapulaʻaina e le taimi fesoʻotaʻiga (LoginGraceTime ).

O le taʻavale ssh-keygen ua le mafai nei i le rsa-sha2-512 algorithm, lea e lagolagoina talu mai le OpenSSH 7.2, lea e mafai ona faʻatupuina faʻafitauli fetaui pe a taumafai e faʻagasolo tusi pasi sainia i le OpenSSH 8.2 i luga o faiga e faʻagaoioia ai OpenSSH faʻasaʻo tuai (e galue i le mataupu pe a Afea fatuina o se saini, e mafai ona e faʻamaonia manino le "ssh-keygen -t ssh-rsa" pe faʻaaoga le ecdsa-sha2-nistp256/384/521 algorithms, lagolagoina talu mai OpenSSH 5.7).

O isi suiga:

  • O se faʻatonuga Faʻaofi ua faʻaopoopoina i le sshd_config, lea e mafai ai ona e faʻapipiʻi mea o loʻo i totonu o isi faila i le tulaga o loʻo i ai nei o le faila faʻatulagaina (e mafai ona faʻaogaina le glob masks pe a faʻamaonia le igoa faila);
  • O le filifiliga "leai se paʻi-manaʻomia" ua faʻaopoopoina i le ssh-keygen, lea e faʻamalo ai le manaʻoga e faʻamaonia faaletino le avanoa i le faʻailoga pe a fatuina le ki;
  • O le PubkeyAuthOptions faʻatonuga ua faʻaopoopoina i le sshd_config, lea e tuʻufaʻatasia ai filifiliga eseese e fesoʻotaʻi ma faʻamaoniga autu lautele. I le taimi nei, e na'o le fu'a "le'i pa'i-mana'omia" o lo'o lagolagoina e fa'amisi siaki fa'apitoa mo le fa'amaoniaina o fa'ailoga. I se fa'atusa, o le filifiliga "leai se pa'i-mana'omia" ua fa'aopoopoina i le faila fa'atagaina_keys;
  • Fa'aopoopoina le "-O write-attestation=/path" i le ssh-keygen e fa'ataga ai nisi fa'ailoga fa'amaonia FIDO e tusia pe a fa'atupu ki. OpenSSH e leʻi faʻaogaina nei tusi pasi, ae mafai ona faʻaaoga mulimuli ane e faʻamaonia ai o loʻo tuʻuina le ki i totonu o se faleoloa mea faʻalagolago;
  • I totonu o le ssh ma le sshd faʻatulagaina, ua mafai nei ona seti le faʻaogaina o le faʻamuamua o auala e ala i le IPQoS faʻatonuga LE DSCP (Uiga-Umalaga i le-Hop Amio);
  • I le ssh, pe a faʻatulagaina le tau "AddKeysToAgent = ioe", pe a fai e le o iai se faʻamatalaga i le ki, o le a faʻaopoopo i le ssh-agent e faʻaalia ai le ala i le ki o se faʻamatalaga. IN
    ssh-keygen ma ssh-agent ua fa'aaoga nei PKCS #11 igoa ma le X.509 igoa autu nai lo le ala faletusi e fai ma fa'amatalaga i le ki;

  • Faʻaopoopo le gafatia e faʻatau atu PEM mo DSA ma ECDSA ki i ssh-keygen;
  • Faʻaopoopoina se faʻaoga fou, ssh-sk-fesoasoani, faʻaaogaina e faʻaesea ai le FIDO/U2F token access library;
  • Faʻaopoopo le "--with-zlib" fausia le filifiliga i le ssh ma le sshd mo le tuʻufaʻatasia ma le lagolago a le faletusi zlib;
  • E tusa ai ma le manaʻoga o le RFC4253, o se lapataiga e uiga i le polokaina o avanoa ona o le sili atu i tapulaa MaxStartups o loʻo tuʻuina atu i le fuʻa faʻaalia i le taimi o fesoʻotaʻiga. Ina ia faʻafaigofie faʻamaʻi, o le sshd process header, faʻaalia pe a faʻaogaina le aoga ps, ua faʻaalia nei le numera o fesoʻotaʻiga faʻamaonia i le taimi nei ma le tulaga o le tapulaa MaxStartups;
  • I le ssh ma le ssh-agent, pe a valaʻau se polokalama e faʻaalia se valaaulia i luga o le lau, faʻamaonia e ala i le $SSH_ASKPASS, o se fuʻa ma le ituaiga o valaaulia ua faʻaopoopoina nei: "faʻamaonia" - faʻamatalaga faʻamaonia (ioe / leai), "leai se ” - fe'au fa'amatalaga, “fa'akomupiuta” — talosaga fa'atalatala;
  • Fa'aopoopoina se fa'agaioiga fou saini fa'akomepiuta "find-principals" i le ssh-keygen e su'e ai le faila saini fa'atagaina mo le tagata fa'aoga e feso'ota'i ma se saini numera fa'apitoa;
  • Faʻaleleia le lagolago mo le faʻaesea o le sshd i luga o Linux e faʻaaoga ai le seccomp mechanism: faʻagata le telefoni IPC, faʻatagaina clock_gettime64(), clock_nanosleep_time64 ma clock_nanosleep().

puna: opennet.ru

Faaopoopo i ai se faamatalaga