Serbestberdana OpenSSH 8.2 bi piştgirîya FIDO/U2F nîşaneyên rastkirina du-faktorî

Piştî çar mehan ji pêşveçûnê pêşkêş kirin berdan OpenSSH 8.2, pêkanînek xerîdar û serverek vekirî ji bo xebitandina bi protokolên SSH 2.0 û SFTP.

Di serbestberdana OpenSSH 8.2 de çêtirbûnek sereke ew bû ku bi karanîna amûrên ku protokolê piştgirî dikin verastkirina du-faktor bikar bînin. U2F, ji hêla hevpeymaniyê ve hatî pêşxistin Fido. U2F destûrê dide afirandina tokenên hardware yên kêm-mesref ku hebûna fîzîkî ya bikarhêner verast bike, bi wan re bi USB, Bluetooth an NFC re têkilî daynin. Amûrên weha wekî navgînek rastkirina du-faktorî li ser malperan têne pêşve xistin, berê ji hêla gerokên mezin ve têne piştgirî kirin û ji hêla hilberînerên cihêreng ve têne hilberandin, di nav de Yubico, Feitian, Thetis û Kensington.

Ji bo ku bi cîhazên ku hebûna bikarhêner piştrast dikin re têkilî daynin, celebên mifteya nû "ecdsa-sk" û "ed25519-sk" li OpenSSH hatine zêdekirin, ku algorîtmayên îmzeya dîjîtal ECDSA û Ed25519 bikar tînin, bi hash SHA-256 re têne hev kirin. Pêvajoyên danûstandina bi tokenan re di pirtûkxaneyek navîn de têne danîn, ku ji bo piştgirîya PKCS#11 bi heman rengî pirtûkxaneyê tê barkirin û li ser pirtûkxaneyê pêçek e. libfido2, ku ji bo danûstendina bi nîşanekan li ser USB-ê amûran peyda dike (protokolên FIDO U2F/CTAP 1 û FIDO 2.0/CTAP 2 têne piştgirî kirin). Pirtûkxaneya navîn libsk-libfido2 ji hêla pêşdebirên OpenSSH ve hatî amadekirin tê de nav libfido2 ya bingehîn, her weha ajokerê HID ji bo OpenBSD.

Ji bo verastkirin û hilberandina miftekê, divê hûn di mîhengan de pîvana "SecurityKeyProvider" diyar bikin an guhêrbara jîngehê ya SSH_SK_PROVIDER destnîşan bikin, ku rêça pirtûkxaneya derveyî libsk-libfido2.so destnîşan dike (SSH_SK_PROVIDER=/rê/to/libsk-libfido2 derxîne. wiha). Ji bo pirtûkxaneya qatê (--bi-key-ewlehî-avakirî) vekirina openssh gengaz e, di vê rewşê de hûn hewce ne ku pîvana "SecurityKeyProvider=navxweyî" saz bikin.
Dûv re hûn hewce ne ku "ssh-keygen -t ecdsa-sk" bimeşînin an jî, heke bişkok berê hatine afirandin û mîheng kirin, bi karanîna "ssh" bi serverê ve girêdin. Dema ku hûn ssh-keygen-ê dimeşînin, cotê mifteya hatî çêkirin dê di "~/.ssh/id_ecdsa_sk" de were hilanîn û dikare mîna bişkokên din were bikar anîn.

Divê mifteya gelemperî (id_ecdsa_sk.pub) di pelê autorized_keys de li serverê were kopî kirin. Li aliyê serverê, tenê îmzeya dîjîtal tê verast kirin, û danûstendina bi nîşanan re li ser milê xerîdar tê kirin (hûn ne hewce ne ku libsk-libfido2 li ser serverê saz bikin, lê server divê celebê mifteya "ecdsa-sk" piştgirî bike) . Mifteya taybet a hilberandî (id_ecdsa_sk) bi bingehîn destekek mifteyê ye, ku tenê bi rêzika nehênî ya ku li alîyê nîşana U2F hatî hilanîn, mifteyek rastîn pêk tîne. Ger mifteya id_ecdsa_sk bikeve destê êrîşkerek, ji bo ku erêkirinê derbas bike ew ê jî hewce bike ku bigihîje tokena hardware, bêyî ku mifteya taybet a ku di pelê id_ecdsa_sk de hatî hilanîn bêkêr e.

Digel vê yekê, bi xwerû, dema ku bi bişkokan re operasyonek tê kirin (hem di dema nifşkirinê de û hem jî di dema erêkirinê de), pejirandina herêmî ya hebûna laşî ya bikarhêner hewce ye, mînakî, tê pêşniyar kirin ku meriv senzorê li ser tokenê bi dest bixe, ku ev yek dijwar dike. êrîşên ji dûr ve li ser pergalên bi tokenek girêdayî pêk bînin. Wekî xetek din a parastinê, şîfreyek jî dikare di qonaxa destpêkirina ssh-keygen de were destnîşankirin da ku bigihîje pelê mifteyê.

Guhertoya nû ya OpenSSH di heman demê de hilweşîna pêşeroj a algorîtmayên ku bi karanîna haşeyên SHA-1 bikar tînin jî ragihand. barhildanî bandorkeriya êrîşên pevçûnê yên bi pêşgirek diyarkirî (lêçûna hilbijartina pevçûnek bi qasî 45 hezar dolar tê texmîn kirin). Di yek ji weşanên pêşeroj de, ew plan dikin ku ji hêla xwerû ve şiyana karanîna algorîtmaya îmzeya dîjîtal a giştî "ssh-rsa", ya ku di RFC-ya orîjînal de ji bo protokola SSH-ê tête behs kirin û di pratîkê de berbelav dimîne (ji bo ceribandina karanîna ssh-rsa di pergalên we de, hûn dikarin bi vebijarka "-oHostKeyAlgorithms=-ssh-rsa" bi ssh-ê ve girêdayî biceribînin).

Ji bo ku di OpenSSH de veguheztina algorîtmayên nû xweş bibe, di berdanek pêşerojê de mîhenga UpdateHostKeys dê ji hêla xwerû ve were çalak kirin, ku dê bixweber xerîdaran berbi algorîtmayên pêbawertir veguhezîne. Algorîtmayên pêşniyarkirî yên ji bo koçberiyê rsa-sha2-256/512 li ser bingeha RFC8332 RSA SHA-2 (ji OpenSSH 7.2 ve tê piştgirî kirin û ji hêla xwerû ve tê bikar anîn), ssh-ed25519 (ji OpenSSH 6.5 ve hatî piştgirî kirin) û ecdsa-sha2-nistp256/384 li ser RFC521 ECDSA (ji OpenSSH 5656 ve hatî piştgirî kirin).

Di OpenSSH 8.2 de, şiyana girêdana bi karanîna "ssh-rsa" hîn jî heye, lê ev algorîtma ji navnîşa CASignatureAlgorithms hatîye rakirin, ku algorîtmayên destûr ji bo îmzakirina sertîfîkayên nû bi dîjîtal têne destûr kirin diyar dike. Bi heman rengî, algorîtmaya diffie-hellman-group14-sha1 ji algorîtmayên danûstendina mifteyê yên xwerû yên piştgirîkirî hatine rakirin. Tê destnîşan kirin ku karanîna SHA-1 di sertîfîkayan de bi xetereyek zêde ve girêdayî ye, ji ber ku êrîşkar demek bêsînor heye ku li pevçûnek ji bo sertîfîkayek heyî bigere, dema ku dema êrîşa li ser bişkokên mêvandar ji hêla dema girêdanê ve sînorkirî ye (LoginGraceTime ).

ssh-keygen dimeşîne naha algorîtmaya rsa-sha2-512, ya ku ji OpenSSH 7.2-ê ve hatî piştgirî kirin vedihewîne, ku dibe ku pirsgirêkên lihevhatinê çêbike dema ku hewl dide ku sertîfîkayên ku di OpenSSH 8.2 de hatine îmzekirin li ser pergalên ku serbestberdanên OpenSSH kevintir dimeşînin (ji bo ku li dora pirsgirêkê bixebite dema Dema ku bi afirandina îmzeyekê, hûn dikarin bi eşkere "ssh-keygen -t ssh-rsa" destnîşan bikin an algorîtmayên ecdsa-sha2-nistp256/384/521 bikar bînin, ku ji OpenSSH 5.7 ve têne piştgirî kirin).

Guhertinên din:

  • Rêbernameyek Include li sshd_config hate zêdekirin, ku destûrê dide te ku hûn naveroka pelên din li cîhê heyî ya pelê veavakirinê bihewînin (maskeyên gerdûnî dikarin dema ku navê pelê diyar bikin têne bikar anîn);
  • Vebijarka "ne-têkil-pêdivî" li ssh-keygen hate zêdekirin, ku hewcedariya piştrastkirina fizîkî ya gihîştina tokenê dema çêkirina mifteyê asteng dike;
  • Rêbernameyek PubkeyAuthOptions li sshd_config hate zêdekirin, ku vebijarkên cûrbecûr yên têkildarî rastkirina mifteya giştî berhev dike. Heya nuha, tenê ala "bê-têkil-pêdivî" tê piştgirî kirin da ku ji kontrolên hebûna laşî ji bo rastkirina tokenê derbas bibe. Bi analogî, vebijarka "ne-touch-required" li pelê authorized_keys hatiye zêdekirin;
  • Vebijarka "-O write-attestation=/path" li ssh-keygen zêde kir da ku destûr bide ku sertîfîkayên din ên erêkirinê yên FIDO dema ku bişkojan têne çêkirin werin nivîsandin. OpenSSH hîn van sertîfîkayan bikar nayîne, lê paşê ew dikarin werin bikar anîn da ku verast bikin ku kilît di firotgehek nermalava pêbawer de hatî danîn;
  • Di mîhengên ssh û sshd de, naha gengaz e ku meriv moda pêşînkirina trafîkê bi rêwerznameya IPQoS ve saz bike. LE DSCP (Kêmtir-Effor Per-Hop Behavior);
  • Di ssh-ê de, dema ku nirxa "AddKeysToAgent=erê" were danîn, heke kilît qada şîroveyê tune be, ew ê li ssh-agent were zêdekirin ku riya mifteyê wekî şîrove nîşan dide. LI
    ssh-keygen û ssh-agent jî niha etîketên PKCS#11 û navê mijarê X.509 li şûna rêça pirtûkxaneyê wekî şîroveyên di mifteyê de bikar tînin;

  • Kapasîteya hinardekirina PEM-ê ji bo bişkokên DSA û ECDSA li ssh-keygen zêde kir;
  • Karkerek nû, ssh-sk-alîkar zêde kir, ku ji bo veqetandina pirtûkxaneya gihîştina token FIDO/U2F tê bikar anîn;
  • Ji bo berhevkirina bi piştgiriya pirtûkxaneya zlib re vebijarka avakirina "--with-zlib" li ssh û sshd zêde kir;
  • Li gorî hewcedariya RFC4253, di pankarta ku di dema girêdanê de tê xuyang kirin de hişyariyek di derbarê astengkirina gihîştinê de ji ber derbaskirina sînorên MaxStartups tê peyda kirin. Ji bo hêsankirina tespîtê, sernavê pêvajoya sshd, ku dema karanîna ps-ê bikar tîne xuya dibe, naha hejmara girêdanên ku niha hatine pejirandin û rewşa sînorê MaxStartups nîşan dide;
  • Di ssh û ssh-agent de, dema ku bang li bernameyekê dike da ku vexwendnameyek li ser ekranê nîşan bide, ku bi $SSH_ASKPASS ve hatî destnîşan kirin, alayek bi celebê vexwendinê naha wekî din tê veguheztin: "pejirandin" - diyaloga pejirandinê (erê/na), "ne tune ” - peyama agahdarî, ”vala” - daxwaza şîfreyê;
  • Operasyonek nû ya îmzeyên dîjîtal "find-prencipals" li ssh-keygen zêde kir ku ji bo bikarhênerê ku bi îmzeya dîjîtal a diyarkirî ve girêdayî ye li pelê destûr-îmzakeran bigere;
  • Piştgiriya çêtirîn ji bo veqetandina pêvajoya sshd li Linux-ê bi karanîna mekanîzmaya seccomp: neçalakkirina bangên pergala IPC, destûr dide clock_gettime64 (), clock_nanosleep_time64 û clock_nanosleep ().

Source: opennet.ru

Add a comment