From: "Goswin von Brederlow" <goswin-...@web.de>
Nicolas François <nicolas.franc...@centraliens.net> writes:
On Mon, Jul 20, 2009 at 02:01:27PM -0500, tallg...@austin.rr.com wrote:

I think that you're confusing the requirement that unknown user names
not be logged, because they might be a user's password with the
non-existent requirement that all unknown user names be treated like
"root" and not prompted for a password.

No, I was not mentioning the case where an user types her password instead
of her username.

If you still think you're right, I'd like to see the source for the
requirement.  I've been through a number of formal evaluations as the
vendor lead (IBM) and we never had that requirement under any evaluation
scheme.

I cannot point you to any source of requirements, except mine:
 1. root's password should not be transmitted on insecure lines
=> The password should not be prompted if login is on an insecure line
       and login thinks the user might be root.
 2. root can mistype her username
    => Any invalid user might be a mistyped "root"

You can run some heuristic:
1) if user exists and is not root then it is probably not mistyped
2) if user is similar to root (like rot) then assume mistyped
3) assume normal user otherwise

What do you do when "rot", "roto", "rott", et alia, exist? Again, you're leaking user name information and leaving the system open to a (slightly more limited) User Enumeration attack. In a real evaluation, which is the claimed justification for this behavior, you don't get to slack off on one requirement to make up for another.

If root mistypes his user name as kfgerjhfgsdgfvedj I think then we
can blame root itself. Same if root allows a user rot to be created
and then mistypes his name. In the end the user name is clearly
visible. Watch what you type.

The user name in only visible to the user and anyone sniffing the connection. Since the user knows what they've typed, that leaves packet sniffers. Conveniently the problem at hand is one of a legitimate root user entering their password and having it sniffed. This leaves two choices --

1). You prevent the packet sniffer from knowing, with certainty, that they have the correct root password, by denying access, regardless of the password.

2). You prevent the packet sniffer from having an opportunity to sniff the packet by refusing the connection. While this satisfies Nicholas' requirement, it fails on Human Factors because users tend to type their name and password in very quick succession. Which now results in the password being in the "user name" location in the sign on dialog.

In either instance, the layered security of the system protects itself -- unless the attacker has access to a secure TTY, they can get a million root passwords and they will still be denied access.

 3. login should not leak information about the valid usernames on the
    system.
=> The user should be prompted a password whether the username is valid
       or not.

We all know there is a root user already so no information is leaked. :)

Not at all -- there are protection profiles where the privileged user must have the ability to change their name. In those profiles, the name of the super-user is considered to be privileged information, and having it be public by making it "root" violates the profile.

I do not think those requirements can be satisfied at the same time.

But near enough.

Well ... I think what's being described is Security Through Obscurity. I'd still like to see a protection profile which requires the described behavior. As it stands, the alternatives all permit a User Enumeration attack of some form or another.

-- Julie.



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to