Skip to content

Tatu Ylönen and SSH

Abstract

Tatu Ylönen (born 1968), a researcher at the Helsinki University of Technology, wrote the Secure Shell (SSH) in the spring of 1995 after a password sniffer was found on his university’s network. Telnet, rlogin and FTP, the standard ways of logging into a remote computer, sent passwords across the network in plain text; SSH encrypted the whole session, authenticated the server with a public key and let users log in without ever sending a password. On 10 July 1995 he asked the Internet Assigned Numbers Authority for a port number and was assigned port 22 the same day; on 12 July he released ssh 1.0 as free software. By the end of 1995 it had about 20,000 users in 50 countries. That December he founded SSH Communications Security, whose increasingly restrictive licences led OpenBSD developers to build the free OpenSSH in 1999, which became the version almost everyone uses. The protocol, revised as SSH-2, became an Internet standard in 2006 and is how system administrators, developers and automated systems reach most of the world’s servers.

Helsinki University of Technology Main Building
The main building of the Helsinki University of Technology (now Aalto University) in Otaniemi, Espoo, where SSH was written. Image: Markus Säynevirta, CC BY-SA 4.0, via Wikimedia Commons.

Otaniemi

Tatu Ylönen was born in Finland in 1968. While still a student he founded a software company, New Generation Software. He studied computer science at the Helsinki University of Technology (Teknillinen korkeakoulu) in Otaniemi, Espoo, received his master’s degree in 1992 with a thesis that won the Finnish Society of Computer Science’s prize for the best thesis of the year, and a licentiate of technology in 1994. He stayed on as a researcher.

The university’s network in the early 1990s worked like nearly every network of the time. To use a computer elsewhere, one ran telnet or rlogin, and to move files, ftp or rcp. All of them transmitted the user name and password, and everything typed afterwards, as plain text. Anyone who could watch the traffic on a network segment, with a program that copied every packet it saw, could collect them. The Internet was growing quickly, and its protocols had been designed for a community of researchers who knew one another (see Hubert Zimmermann and the Seven Layers).

The Sniffer

SSH Public Key Login
Public-key login with SSH: the server checks the client’s proof of possession of a private key, so no password crosses the network. Image: And1mu, CC BY-SA 4.0, via Wikimedia Commons.

Early in 1995 such a password sniffer was discovered on the network backbone of the Helsinki University of Technology. It had collected a large number of user names and passwords before it was found, by later accounts thousands, among them credentials of employees of a company Ylönen ran. Ylönen, who said in a 2021 interview that the incident sent him into cryptography, decided to write a replacement for the insecure tools that nobody could eavesdrop on. “Necessity is the mother of security” was the title the podcast gave the conversation.

He wrote the first version in the spring of 1995. It was meant to replace rsh, rlogin, rcp, rdist and telnet, and worked the same way from the user’s point of view. Underneath, the client and server first agreed on a session key using RSA public-key cryptography, so that everything afterwards, including any password, travelled encrypted; the server proved its identity with a host key, so that an attacker could not impersonate it; and data were protected by symmetric ciphers such as IDEA or triple DES, with integrity checks against tampering (see Public Key Cryptography and Rivest, Shamir, Adleman and RSA). Users could also log in with their own key pair instead of a password. SSH forwarded X11 windows from the remote machine automatically and could tunnel arbitrary TCP connections through the encrypted channel.

Port 22

As release approached, Ylönen wanted an official port number, the address on which a server listens. The telnet port was 23 and the FTP port 21; port 22, between them, was unassigned, and he had been using it in his beta test. He hoped, he wrote later, that the number would give the project “some aura of credibility.” On the morning of 10 July 1995 he e-mailed the Internet Assigned Numbers Authority, run by Jon Postel, whom he found “outright scary,” describing a program for logging into one machine from another over an insecure network and asking for a privileged port in the range 1 to 255 so that it could appear in name-server records. The answer came the same day, in the afternoon California time: Joyce Reynolds replied for IANA, assigning port 22 to ssh with Ylönen as the contact. “There we were! SSH port was 22!!!”

In the early morning of 12 July he sent a final beta to testers at the university, announced the ssh-1.0.0 packages in the afternoon, and at 5:51 p.m. posted the public announcement to the cypherpunks mailing list, followed by Usenet newsgroups and other lists. The software was free, with source code. By the end of 1995 it had about 20,000 users in 50 countries.

SSH Communications Security

In December 1995 Ylönen founded SSH Communications Security in Helsinki to develop and sell the software. He described the protocol at the USENIX Security Symposium in San Jose in July 1996, by which time SSH was in use “at thousands of sites in at least 50 countries,” and submitted it to the Internet Engineering Task Force for standardization. Sun Microsystems became an early customer. Under his leadership the company grew to 190 employees and $20 million in annual sales and went public in 2000 on the exchange now called Nasdaq Helsinki; he served at different times as its chief executive, chief technology officer and chairman.

Commercial success changed the licence. Later versions of SSH were increasingly proprietary, and the first version of the protocol had design weaknesses. An IETF working group, secsh, redesigned the protocol as SSH-2, incompatible with SSH-1, with a cleaner layering into a transport protocol, user authentication and a connection protocol for multiple channels, and key exchange based on Diffie-Hellman (see Whitfield Diffie and Martin Hellman).

OpenSSH

In 1999 developers of the OpenBSD operating system, led by Theo de Raadt, took OSSH, a free fork of Ylönen’s early code by the Swedish programmer Björn Grönvall, and turned it into OpenSSH, which shipped with OpenBSD 2.6 in 1999 (see The BSD Family). It was ported to Linux and other Unix systems, added SSH-2, and became the standard implementation.

In February 2001, as chairman and CTO of his company, Ylönen wrote to the OpenSSH developers demanding that they stop using “SSH” in their product’s name, which his company had registered as a trademark in 1996. “Unauthorised use of the SSH mark by the OpenSSH group is threatening to destroy everything I have built on it during the last several years,” he wrote. De Raadt replied that Ylönen’s own original licence had allowed independent versions and asked why the trademark was being enforced only after five years; a University of Alberta survey at the time found 80 percent of SSH users on the company’s software and 17 percent on OpenSSH. The name stayed.

In January 2006 the IETF published SSH-2 as RFCs 4250 to 4254, with Ylönen and Chris Lonvick as authors of the core documents.

Keys

SSH changed the default of remote access from plaintext to encryption and became the means by which administrators manage servers, developers push code to repositories and automated systems copy data between machines. It also created a problem that Ylönen spent much of his later career on. Public-key login made it easy for scripts and programs to connect without passwords, so large organizations accumulated great numbers of SSH keys granting access to their servers, often undocumented and never removed. In October 2015 the US National Institute of Standards and Technology published NIST IR 7966, Security of Interactive and Automated Access Management Using Secure Shell (SSH), written by Ylönen with Paul Turner, Karen Scarfone and Murugiah Souppaya, on how enterprises should manage SSH user keys, a problem its abstract said had been “largely ignored to date.”

In December 2023 Fabian Bäumer and colleagues disclosed the Terrapin attack, which allowed an attacker in the network path to delete messages at the start of an SSH-2 session with some cipher modes, one of very few practical attacks on the protocol in its history. Ylönen is now a senior fellow of the company, whose website calls him “the original inventor of SSH.” He is the author of several RFCs and received the Finnish engineering award Suomalainen insinöörityö in 2000.


📚 Sources