Rhyddhau OpenSSH 8.2 gyda chefnogaeth ar gyfer tocynnau dilysu dau ffactor FIDO/U2F

Ar ôl pedwar mis o ddatblygiad wedi'i gyflwyno rhyddhau OpenSSH 8.2, cleient agored a gweithrediad gweinydd ar gyfer gweithio trwy'r protocolau SSH 2.0 a SFTP.

Gwelliant allweddol wrth ryddhau OpenSSH 8.2 oedd y gallu i ddefnyddio dilysiad dau ffactor gan ddefnyddio dyfeisiau sy'n cefnogi'r protocol U2F, a ddatblygwyd gan y gynghrair FIDO. Mae U2F yn caniatáu creu tocynnau caledwedd cost isel i wirio presenoldeb corfforol y defnyddiwr, gan ryngweithio â nhw trwy USB, Bluetooth neu NFC. Mae dyfeisiau o'r fath yn cael eu hyrwyddo fel ffordd o ddilysu dau ffactor ar wefannau, maent eisoes yn cael eu cefnogi gan borwyr mawr ac yn cael eu cynhyrchu gan wneuthurwyr amrywiol, gan gynnwys Yubico, Feitian, Thetis a Kensington.

Er mwyn rhyngweithio â dyfeisiau sy'n cadarnhau presenoldeb y defnyddiwr, mae mathau allweddol newydd “ecdsa-sk” ac “ed25519-sk” wedi'u hychwanegu at OpenSSH, sy'n defnyddio algorithmau llofnod digidol ECDSA ac Ed25519, ynghyd â'r hash SHA-256. Rhoddir gweithdrefnau ar gyfer rhyngweithio â thocynnau mewn llyfrgell ganolradd, sy'n cael ei llwytho mewn ffordd debyg i'r llyfrgell ar gyfer cefnogaeth PKCS #11 ac sy'n ddeunydd lapio ar ben y llyfrgell libfido2, sy'n darparu offer ar gyfer cyfathrebu â thocynnau dros USB (cefnogir protocolau FIDO U2F/CTAP 1 a FIDO 2.0/CTAP 2). Llyfrgell ganolraddol libsk-libfido2 wedi'i baratoi gan ddatblygwyr OpenSSH wedi'i gynnwys i mewn i'r libfido2 craidd, yn ogystal â gyrrwr HID ar gyfer OpenBSD.

I ddilysu a chynhyrchu allwedd, rhaid i chi nodi'r paramedr “SecurityKeyProvider” yn y gosodiadau neu osod y newidyn amgylchedd SSH_SK_PROVIDER, gan nodi'r llwybr i'r llyfrgell allanol libsk-libfido2.so (allforio SSH_SK_PROVIDER=/path/to/libsk-libfido2. felly). Mae'n bosibl adeiladu openssh gyda chefnogaeth adeiledig ar gyfer y llyfrgell haen (--with-security-key-builtin), yn yr achos hwn mae angen i chi osod y paramedr “SecurityKeyProvider=mewnol”.
Nesaf mae angen i chi redeg “ssh-keygen -t ecdsa-sk” neu, os yw'r allweddi eisoes wedi'u creu a'u ffurfweddu, cysylltu â'r gweinydd gan ddefnyddio “ssh”. Pan fyddwch yn rhedeg ssh-keygen, bydd y pâr allwedd a gynhyrchir yn cael ei gadw yn “~/.ssh/id_ecdsa_sk” a gellir ei ddefnyddio yn yr un modd ag allweddi eraill.

Dylid copïo'r allwedd gyhoeddus (id_ecdsa_sk.pub) i'r gweinydd yn y ffeil author_keys. Ar ochr y gweinydd, dim ond y llofnod digidol sy'n cael ei wirio, a pherfformir rhyngweithio â thocynnau ar ochr y cleient (nid oes angen i chi osod libsk-libfido2 ar y gweinydd, ond rhaid i'r gweinydd gefnogi'r math o allwedd “ecdsa-sk”) . Dolen allwedd yw'r allwedd breifat a gynhyrchir (id_ecdsa_sk), sy'n ffurfio allwedd go iawn yn unig mewn cyfuniad â'r dilyniant cyfrinachol sydd wedi'i storio ar ochr tocyn U2F. Os yw'r allwedd id_ecdsa_sk yn syrthio i ddwylo ymosodwr, i basio dilysiad bydd angen iddo hefyd gael mynediad i'r tocyn caledwedd, heb hynny mae'r allwedd breifat sydd wedi'i storio yn y ffeil id_ecdsa_sk yn ddiwerth.

Yn ogystal, yn ddiofyn, wrth berfformio unrhyw weithrediadau gydag allweddi (yn ystod y genhedlaeth ac yn ystod dilysu), mae angen cadarnhad lleol o bresenoldeb corfforol y defnyddiwr, er enghraifft, cynigir cyffwrdd â'r synhwyrydd ar y tocyn, sy'n ei gwneud hi'n anodd cynnal ymosodiadau o bell ar systemau gyda thocyn cysylltiedig. Fel llinell amddiffyn arall, gellir nodi cyfrinair hefyd yn ystod cyfnod cychwyn ssh-keygen i gael mynediad i'r ffeil allweddol.

Cyhoeddodd y fersiwn newydd o OpenSSH hefyd y dibrisiant sydd ar ddod o algorithmau gan ddefnyddio hashes SHA-1 oherwydd dyrchafiad effeithiolrwydd ymosodiadau gwrthdrawiad gyda rhagddodiad penodol (amcangyfrifir y gost o ddewis gwrthdrawiad tua 45 mil o ddoleri). Yn un o'r datganiadau sydd i ddod, maent yn bwriadu analluogi yn ddiofyn y gallu i ddefnyddio'r algorithm llofnod digidol allweddol cyhoeddus “ssh-rsa”, a grybwyllir yn y RFC gwreiddiol ar gyfer y protocol SSH ac sy'n parhau i fod yn eang yn ymarferol (i brofi'r defnydd o ssh-rsa yn eich systemau, gallwch geisio cysylltu trwy ssh gyda'r opsiwn “-oHostKeyAlgorithms= -ssh-rsa”).

Er mwyn llyfnhau'r newid i algorithmau newydd yn OpenSSH, mewn datganiad yn y dyfodol bydd y gosodiad UpdateHostKeys yn cael ei alluogi yn ddiofyn, a fydd yn mudo cleientiaid yn awtomatig i algorithmau mwy dibynadwy. Mae'r algorithmau a argymhellir ar gyfer mudo yn cynnwys rsa-sha2-256/512 yn seiliedig ar RFC8332 RSA SHA-2 (a gefnogir ers OpenSSH 7.2 ac a ddefnyddir yn ddiofyn), ssh-ed25519 (a gefnogir ers OpenSSH 6.5) ac ecdsa-sha2-nistp256/384/521 seiliedig ar RFC5656 ECDSA (a gefnogir ers OpenSSH 5.7).

Yn OpenSSH 8.2, mae'r gallu i gysylltu gan ddefnyddio “ssh-rsa” ar gael o hyd, ond mae'r algorithm hwn wedi'i dynnu oddi ar restr CASignatureAlgorithms, sy'n diffinio'r algorithmau a ganiateir ar gyfer llofnodi tystysgrifau newydd yn ddigidol. Yn yr un modd, mae'r algorithm diffie-hellman-group14-sha1 wedi'i ddileu o'r algorithmau cyfnewid allweddol rhagosodedig a gefnogir. Nodir bod y defnydd o SHA-1 mewn tystysgrifau yn gysylltiedig â risg ychwanegol, gan fod gan yr ymosodwr amser diderfyn i chwilio am wrthdrawiad ar gyfer tystysgrif sy'n bodoli, tra bod amser yr ymosodiad ar allweddi gwesteiwr wedi'i gyfyngu gan y terfyn amser cysylltiad (LoginGraceTime ).

Mae rhedeg ssh-keygen nawr yn rhagosodedig i'r algorithm rsa-sha2-512, sy'n cael ei gefnogi ers OpenSSH 7.2, a all greu problemau cydnawsedd wrth geisio prosesu tystysgrifau wedi'u llofnodi yn OpenSSH 8.2 ar systemau sy'n rhedeg datganiadau OpenSSH hŷn (i weithio o gwmpas y mater pan fydd Pryd cynhyrchu llofnod, gallwch nodi'n benodol “ssh-keygen -t ssh-rsa” neu ddefnyddio'r algorithmau ecdsa-sha2-nistp256/384/521, a gefnogir ers OpenSSH 5.7).

Newidiadau eraill:

  • Mae cyfarwyddeb Cynnwys wedi'i hychwanegu at sshd_config, sy'n eich galluogi i gynnwys cynnwys ffeiliau eraill yn safle presennol y ffeil ffurfweddu (gellir defnyddio masgiau glob wrth nodi enw'r ffeil);
  • Mae'r opsiwn "dim-cyffwrdd-angenrheidiol" wedi'i ychwanegu at ssh-keygen, sy'n analluogi'r angen i gadarnhau mynediad i'r tocyn yn gorfforol wrth gynhyrchu'r allwedd;
  • Mae cyfarwyddeb PubkeyAuthOptions wedi'i hychwanegu at sshd_config, sy'n cyfuno opsiynau amrywiol yn ymwneud â dilysu allwedd gyhoeddus. Ar hyn o bryd, dim ond y faner "dim-cyffwrdd-angenrheidiol" a gefnogir i hepgor gwiriadau presenoldeb corfforol ar gyfer dilysu tocyn. Trwy gyfatebiaeth, mae'r opsiwn "dim-cyffwrdd-angenrheidiol" wedi'i ychwanegu at y ffeil awdurdodedig_keys;
  • Ychwanegwyd opsiwn "-O write-attestation=/path" i ssh-keygen er mwyn caniatáu i dystysgrifau ardystio FIDO ychwanegol gael eu hysgrifennu wrth gynhyrchu allweddi. Nid yw OpenSSH yn defnyddio'r tystysgrifau hyn eto, ond gellir eu defnyddio'n ddiweddarach i wirio bod yr allwedd yn cael ei rhoi mewn storfa galedwedd ddibynadwy;
  • Yn y gosodiadau ssh a sshd, mae bellach yn bosibl gosod y modd blaenoriaethu traffig trwy'r gyfarwyddeb IPQoS LE DSCP (Ymdrech Isaf Per-Hop);
  • Yn ssh, wrth osod y gwerth “AddKeysToAgent=ie”, os nad yw'r allwedd yn cynnwys maes sylwadau, bydd yn cael ei ychwanegu at ssh-agent gan nodi'r llwybr i'r allwedd fel sylw. YN
    Mae ssh-keygen a ssh-agent hefyd bellach yn defnyddio labeli PKCS#11 ac enw pwnc X.509 yn lle llwybr y llyfrgell fel sylwadau yn yr allwedd;

  • Ychwanegwyd y gallu i allforio PEM ar gyfer allweddi DSA ac ECDSA i ssh-keygen;
  • Ychwanegwyd ssh-sk-helper gweithredadwy newydd, a ddefnyddir i ynysu'r llyfrgell mynediad tocynnau FIDO/U2F;
  • Ychwanegwyd opsiwn adeiladu “--with-zlib” i ssh a sshd i'w lunio gyda chefnogaeth llyfrgell zlib;
  • Yn unol â gofyniad RFC4253, darperir rhybudd am rwystro mynediad oherwydd mynd y tu hwnt i derfynau MaxStartups yn y faner a ddangosir yn ystod y cysylltiad. Er mwyn symleiddio diagnosteg, mae pennawd y broses sshd, sy'n weladwy wrth ddefnyddio'r cyfleustodau ps, bellach yn dangos nifer y cysylltiadau a ddilyswyd ar hyn o bryd a statws y terfyn MaxStartups;
  • Yn ssh a ssh-agent, wrth alw rhaglen i arddangos gwahoddiad ar y sgrin, a nodir trwy $SSH_ASKPASS, mae baner gyda'r math o wahoddiad bellach yn cael ei throsglwyddo hefyd: “cadarnhau” - deialog cadarnhau (ie/na), “dim ” - neges wybodaeth, “gwag” — cais cyfrinair;
  • Ychwanegwyd gweithrediad llofnodion digidol newydd "find-principals" i ssh-keygen i chwilio'r ffeil arwyddwyr a ganiateir ar gyfer y defnyddiwr sy'n gysylltiedig â llofnod digidol penodedig;
  • Gwell cefnogaeth ar gyfer ynysu proses sshd ar Linux gan ddefnyddio'r mecanwaith seccomp: analluogi galwadau system IPC, gan ganiatáu clock_gettime64(), clock_nanosleep_time64 a clock_nanosleep().

Ffynhonnell: opennet.ru

Ychwanegu sylw