Po štirih mesecih razvoja izdaja OpenSSH 8.4, odprte različice odjemalca in strežnika za delovanje po protokolih SSH 2.0 in SFTP.
Glavne spremembe:
- Spremembe, povezane z varnostjo:
- V ssh-agentu pri uporabi FIDO ključev, ki niso bili ustvarjeni za avtentikacijo prek SSH (identifikator ključev se ne začne s naborom »ssh:«), zdaj poteka preverjanje, ali bo sporočilo podpisano z metodami, uporabljenimi v protokolu SSH. Sprememba ne bo omogočila preusmeritve ssh-agenta na oddaljene gostitelje, ki imajo FIDO ključe, kar blokira možnost uporabe teh ključev za oblikovanje podpisov za zahteve spletne avtentikacije (obratni primer, ko lahko brskalnik podpiše SSH zahtevo, je sprva izključen z uporabo predpone »ssh:« v identifikatorju ključev).
- V ssh-keygenu je ob generiranju rezidentnega ključa vključena podpora za dodatek credProtect, opisan v specifikaciji FIDO 2.1, ki zagotavlja dodatno zaščito za ključe z obveznim zahtevkom za vnos PIN kode pred izvajanjem katere koli operacije, ki bi lahko privedla do pridobitve rezidentnega ključa iz toka.
- Spremembe, ki lahko potencialno kršijo združljivost:
- Za podporo FIDO/U2F je priporočljivo uporabiti knjižnico libfido2 različice vsaj 1.5.0. Delno je bila omogočena uporaba tudi starejših različic, vendar bodo v tem primeru nedostopne funkcije, kot so rezidentni ključi, zahteva za PIN in povezovanje več tokenov.
- V ssh-keygenu so v format potrditvenih informacij, ki se opcijsko shranjujejo ob generiranju FIDO ključa, dodani podatki za avtentikator, potrebni za preverjanje potrditvenih digitalnih podpisov.
- API, uporabljen pri interakciji OpenSSH s plastjo za dostop do FIDO tokenov, je bil spremenjen.
- Pri gradnji prenosne različice OpenSSH je zdaj potreben automake za oblikovanje konfiguracijskega skripta in spremljajočih gradbenih datotek (če se gradnja izvaja iz objavljenega tar datoteke s kodo, preusmeritev konfiguracije ni potrebna).
- V ssh in ssh-keygenu je bila dodana podpora za FIDO ključe, ki zahtevajo potrditev z PIN kodo. Za generiranje ključev s PIN v ssh-keygenu je bila dodana možnost »verify-required«. V primeru uporabe takšnih ključev uporabnik pred izvedbo operacije ustvarjanja podpisa dobi poziv za potrditev svojih dejanj z vnosom PIN kode.
- V sshd je v nastavitvi authorized_keys implementirana možnost „verify-required“, ki zahteva uporabo funkcij za preverjanje prisotnosti uporabnika med operacijami s tokenom. Standard FIDO predvideva več možnosti takšnega preverjanja, trenutno pa OpenSSH podpira le preverjanje na osnovi PIN-kode.
- V sshd in ssh-keygen je dodana podpora za preverjanje digitalnih podpisov, ki ustrezajo standardu FIDO Webauthn, kar omogoča uporabo FIDO ključev v spletnih brskalnikih.
- V ssh v nastavitvah CertificateFile,
ControlPath, IdentityAgent, IdentityFile, LocalForward in
RemoteForward je omogočena zamenjava vrednosti iz okolijskih spremenljivk v formatu „${ENV}“. - V ssh in ssh-agentu je dodana podpora za okolijsko spremenljivko $SSH_ASKPASS_REQUIRE, ki jo lahko uporabite za vključitev ali izključitev klica ssh-askpass.
- V ssh v ssh_config je v direktivi AddKeysToAgent dodana možnost omejitve časa veljavnosti ključa. Po preteku določenega limita se ključi samodejno izbrišejo iz ssh-agenta.
- V scp in sftp je zdaj mogoče s zastavico „-A“ izrecno dovoliti preusmeritev v scp in sftp z uporabo ssh-agenta (preusmeritev je po privzetku prepovedana).
- V nastavitvah ssh je dodana podpora za zamenjavo ‘%k’, ki določa ime ključa gostitelja. To možnost lahko uporabite za razdelitev ključev v ločene datoteke (na primer, „UserKnownHostsFile ~/ .ssh/known_hosts.d/%k“).
- Dovoljeno je uporabljati operacijo „ssh-add -d -“ za branje iz stdin ključev, ki jih je potrebno odstraniti.
- V sshd je zagotavljena beleženje v dnevniku začetka in konca postopka omejevanja povezav, ki ga upravlja parameter MaxStartups.
Razvijalci OpenSSH so tudi opozorili na prihajajočo uvrstitev v razred zastare algoritmov, ki uporabljajo hash SHA-1, v povezavi z učinkovitosti kolizionih napadov s prednastavljenim prefiksom (strošek iskanja kolizije je ocenjen na približno 45 tisoč dolarjev). V enem od prihodnjih izdaj nameravajo privzeto onemogočiti možnost uporabe algoritma digitalnih podpisov z odprtim ključem „ssh-rsa“, ki je omenjen v izvirnem RFC za protokol SSH in ostaja široko razširjen v praksi (za preverjanje uporabe ssh-rsa v svojih sistemih lahko poskusite povezati po ssh z možnostjo „-oHostKeyAlgorithms=-ssh-rsa“).
Za lažje prehod na nove algoritme v OpenSSH bo v naslednji izdaji privzeto vključena nastavitev UpdateHostKeys, ki bo omogočila samodejno preusmeritev strank na bolj zanesljive algoritme. Med priporočanimi algoritmi za migracijo so omenjeni rsa-sha2-256/512 na osnovi RFC8332 RSA SHA-2 (podprt od OpenSSH 7.2 in uporabljen privzeto), ssh-ed25519 (podprt od OpenSSH 6.5) ter ecdsa-sha2-nistp256/384/521 na osnovi RFC5656 ECDSA (podprt od OpenSSH 5.7).
Izvor: opennet.ru
