Versie 1 van het SSH-protocol heeft een aantal ontwerpfouten waardoor het kwetsbaar is voor man-in-the-middle aanvallen. Daarom gebruiken de meeste SSH-servers en -clients al lang de veiliger opvolger SSH-2, maar om compatibiliteitsredenen bleef OpenSSH standaard versie 1 toestaan. Met OpenSSH 5.4 komt een einde aan deze lange overgangsfase: SSH-protocol 1 wordt standaard uitgeschakeld. Clients en servers die het verouderde protocol toch nog willen gebruiken, moeten het nu expliciet inschakelen in de configuratiebestanden ssh_config respectievelijk sshd_config.

Sleutelbeheer

OpenSSH 5.4 heeft de mogelijkheid toegevoegd om sleutels in te trekken. Sleutels van gebruikers kunnen ingetrokken worden dankzij de optie "RevokedKeys" in sshd_config. Sleutels van computers worden ingetrokken met een regel in het bestand known_hosts van de gebruiker. Ingetrokken sleutels kunnen niet meer gebruikt worden voor authenticatie van een gebruiker of computer.

Er is nu ook ondersteuning toegevoegd voor authenticatie van gebruikers en computers door middel van een nieuw, eenvoudig OpenSSH-certificaatformaat. Certificaten bevatten een publieke sleutel en informatie over de identiteit, en worden ondertekend door een CA-sleutel met behulp van het commando ssh-keygen. CA-sleutels zijn gewone publieke SSH-sleutels en kunnen als vertrouwde sleutels opgegeven worden.

Als een sleutel van een computer ondertekend is door een CA-sleutel die in het bestand known_hosts als vertrouwd staat aangeduid, wordt de nieuwe sleutel van de computer automatisch aanvaard. Als een sleutel van een gebruiker ondertekend is door een CA-sleutel die in het bestand authorized_keys als vertrouwd staat aangeduid, dan kan de gebruiker met deze sleutel inloggen.

Betere bestandsoverdracht

Het subsysteem sftp voor bestandsoverdracht is ook onder handen genomen. De sftp-server heeft nu een read-only mode en laat toe om een expliciete umask in te stellen met voorrang op de umask van de gebruiker. De sftp-client heeft heel wat verbeteringen gekregen dankzij een Google Summer of Code-project. Het sftp-commando ls heeft nu een optie -h die eenheden in door mensen leesbare vorm toont, er is tab completion voor commando's en lokale en remote bestandsnamen, en de commando's get en put ondersteunen nu ook recursieve bestandsoverdrachten. Bovendien zijn de meeste commandline-argumenten van scp nu ook in sftp geïmplementeerd, wat een eerste stap is in een project om van sftp een drop-in vervanger van scp te maken.

Onder de motorkap

Met de syntax "ssh -W host:port" heeft OpenSSH nu ook een netcat-modus toegevoegd. Onder de motorkap zijn er ook een aantal wijzigingen gebeurd. Nieuwe RSA-sleutels worden bijvoorbeeld gegenereerd met een publieke exponent van 65537 in plaats van de voorgaande waarde 35. Bovendien worden privésleutels die in SSH-protocol 2 met een passphrase beschermd zijn nu versleuteld met AES-128 in plaats van 3DES. Verder zijn er ook heel wat fouten verbeterd. Een volledige lijst met veranderingen is te vinden in de release notes van OpenSSH 5.4.

Bron: Techworld