GeekSpeak: June 10, 2002

Privilege separation makes openssh more secure.

OpenSSH, the secure shell server (and one of the worlds most important pieces of security software), has been redesigned to add privilege separation for increased resistance to attacks.

Niels Provos, an OpenSSH developer, has pulled out all the code that performs user authentication and put it into a much simpler (and easier-to-secure) separate process. "The privileged parent can be modeled by a very small finite-state machine so that it is easy to reason about the code that is being executed with privileges," Provos wrote (accessible via OpenSSH 3.2.2, released May 17, includes this code as an experimental feature.

OpenSSHs new trusted authentication kernel hands off most network interaction to a process containing the bulk of the OpenSSH code, which now can run in unprivileged (nonroot) mode. This change would have prevented OpenSSHs recent off-by-one channel bug or its token-passing-bug security holes (fixed in OpenSSH 3.1 and 3.2.2, respectively).