Nakon četiri mjeseca razvoja, predstavljena je verzija OpenSSH 8.7, otvorene implementacije klijenta i poslužitelja za rad putem protokola SSH 2.0 i SFTP.
Glavne promjene:
- U scp je dodan eksperimentalni način prijenosa podataka koristeći protokol SFTP umjesto tradicionalno primjenjivanog protokola SCP/RCP. U SFTP-u se koriste predvidljivije metode obrade imena i ne koristi se obrada glob-šablona preko shell-a na strani drugog hosta, što stvara probleme s sigurnošću. Za uključivanje SFTP-a u scp predložen je zastavica «-s», ali u budućnosti se planira preći na ovaj protokol kao zadani.
- U sftp-serveru implementirana su proširenja protokola SFTP za otkrivanje putanja ~/ i ~user/, što je potrebno za scp.
- U utiliti scp promijenjeno je ponašanje pri kopiranju datoteka između dva udaljena hosta (na primjer, «scp host-a:/putanja host-b:»), koje se sada po defaultu izvodi putem posredničkog lokalnog hosta, kao kada se koristi zastavica «-3». Ovaj pristup omogućava izbjegavanje prijenosa suvišnih vjerodajnica na prvi host i trostruke interpretacije imena datoteka u shell-u (na strani izvora, odredišta i lokalnog sustava), a također korištenjem SFTP-a omogućuje korištenje svih metoda autentifikacije prilikom pristupanja udaljenim hostovima, a ne samo neinteraktivnih metoda. Za vraćanje starog ponašanja dodana je opcija «-R».
- U ssh je dodana postavka ForkAfterAuthentication, koja odgovara zastavici «-f».
- U ssh je dodana postavka StdinNull, koja odgovara zastavici «-n».
- U ssh je dodana postavka SessionType, preko koje se mogu postaviti modusi koji odgovaraju zastavicama «-N» (bez sesije) i «-s» (subsystem).
- U ssh-keygen u datotekama s ključevima dopušteno je određivanje razdoblja važenja ključa.
- U ssh-keygen dodana je zastavica «-Oprint-pubkey» za ispis potpune javne ključe u sklopu potpisa sshsig.
- U ssh i sshd, kako klijent, tako i poslužitelj, prebačeni su na korištenje strožeg parsera datoteke konfiguracije, u kojem se koriste pravila slična shell-u za obradu navodnika, razmaka i escape-simbolâ. Novi parser također ne propušta ranije prihvaćene pretpostavke, kao što su propuštanje argumenata u opcijama (na primjer, sada nije moguće ostaviti praznu direktivu DenyUsers), otvoreni navodnici i navođenje više simbola «=».
- Kada se koriste DNS zapisi SSHFP za verifikaciju ključeva, ssh sada proverava sve podudarne zapise, a ne samo one koji sadrže određeni tip digitalnog potpisa.
- U ssh-keygen prilikom generisanja FIDO ključa s opcijom -Ochallenge za heširanje sada se koristi ugrađena međuslojna komponenta, a ne alati libfido2, što omogućava korišćenje challenge sekvenci većih ili manjih od 32 bajta.
- U sshd pri obradi direktive environment=‘…’ u datotekama authorized_keys sada se prihvata prvo podudaranje i primenjuje se ograničenje od 1024 imena promenljivih okruženja.
Razvijači OpenSSH su takođe upozorili na prebacivanje u kategoriju zastare algoritama koji koriste SHA-1 heševe, zbog povećane efikasnosti kolizionih napada sa zadatim prefiksom (trošak pronalaženja kolizije je procenjen na oko 50 hiljada dolara). U sledećem izdanju planira se onemogućavanje po defaultu korišćenja algoritma digitalnog potpisa sa javnim ključem 'ssh-rsa', koji se pominje u originalnom RFC-u za SSH protokol i ostaje široko rasprostranjen u praksi.
Za provjeru primjene ssh-rsa u svojim sustavima možete pokušati spojiti se putem ssh s opcijom '-oHostKeyAlgorithms=-ssh-rsa'. Pri tome, onemogućavanje digitalnih potpisa 'ssh-rsa' prema zadanim postavkama ne znači potpuno odbacivanje korištenja RSA ključeva, jer protokol SSH, osim SHA-1, dopušta korištenje drugih algoritama za izračun heša. Konkretno, osim 'ssh-rsa', ostaje mogućnost korištenja parova 'rsa-sha2-256' (RSA/SHA256) i 'rsa-sha2-512' (RSA/SHA512).
Da bi se olakšao prelaz na nove algoritme, OpenSSH je ranije po defaultu uključio opciju UpdateHostKeys, koja automatski prebacuje klijente na pouzdanije algoritme. Ova opcija uključuje posebno proširenje protokola 'hostkeys@openssh.com', koje omogućava poslužitelju nakon autentifikacije da obavesti klijenta o svim dostupnim ključevima domaćina. Klijent može reflektovati te ključeve u svom fajlu ~/ .ssh/known_hosts, što omogućava organizovanje ažuriranja ključeva domaćina i olakšava promenu ključeva na serveru.
Korištenje UpdateHostKeys ograničeno je nekoliko uvjeta koji se u budućnosti mogu ukinuti: ključ mora biti spomenut u UserKnownHostsFile i ne smije se koristiti u GlobalKnownHostsFile; ključ mora biti prisutan samo pod jednim imenom; ne smije se koristiti certifikat hostovog ključa; u known_hosts ne smiju se koristiti maske po imenu hosta; postavka VerifyHostKeyDNS mora biti isključena; parametar UserKnownHostsFile mora biti aktivan.
Među preporučenim algoritmima za migraciju spominju se rsa-sha2-256/512 temeljen na RFC8332 RSA SHA-2 (podržan od OpenSSH 7.2 i koristi se prema zadanim postavkama), ssh-ed25519 (podržan od OpenSSH 6.5) i ecdsa-sha2-nistp256/384/521 temeljen na RFC5656 ECDSA (podržan od OpenSSH 5.7).
Izvor: opennet.ru
