org.apache.catalina.authenticator.SSLAutheticator

2004-11-08 Thread Ken Sims
I am curious why SSLAuthenticator does not/cannot compare some attribute
of the client cert with the remote address (requestor)?  Without such a
check, it seems to me that certificates are as easily shared as the
credentials used in basic authentication.

Also, why do the realm implementations always return null for
getPrincipal?  Couldn't they lookup the user on the  users database,
ignoring password, to establish authorized roles?

The combination of these two things seems to me to really limit the
usefulness of client certificate authentication because authentication
provides little guarantee of who the client is, and even if it did, the
client is denied access to any protected resources.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: org.apache.catalina.authenticator.SSLAutheticator

2004-11-08 Thread Bill Barker

- Original Message -
From: Ken Sims [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Monday, November 08, 2004 8:25 AM
Subject: org.apache.catalina.authenticator.SSLAutheticator


I am curious why SSLAuthenticator does not/cannot compare some attribute
of the client cert with the remote address (requestor)?  Without such a
check, it seems to me that certificates are as easily shared as the
credentials used in basic authentication.

There are plenty of tutorials on CLIENT-CERT auth out there.  I suggest that
you read one :).

Also, why do the realm implementations always return null for
getPrincipal?  Couldn't they lookup the user on the  users database,
ignoring password, to establish authorized roles?

Usually when you seriously want CLIENT-CERT, you find that you need a custom
Realm anyway.  There isn't really a one-size-fits-all solution.  Where it is
implemented in TC (MemoryRealm, and UDBRealm in 5.5.x), it authenticates
against the Subject.  In a lot of cases, you really only want the CN, or the
CN+EMAIL fields.  In other cases (e.g. JNDI, JAAS) you might want the entire
cert.  You can look through BZ for TC 4 to find several examples of proposed
implementations.

That said, patches are always welcome :).


The combination of these two things seems to me to really limit the
usefulness of client certificate authentication because authentication
provides little guarantee of who the client is, and even if it did, the
client is denied access to any protected resources.





This message is intended only for the use of the person(s) listed above as the 
intended recipient(s), and may contain information that is PRIVILEGED and 
CONFIDENTIAL.  If you are not an intended recipient, you may not read, copy, or 
distribute this message or any attachment. If you received this communication 
in error, please notify us immediately by e-mail and then delete all copies of 
this message and any attachments.

In addition you should be aware that ordinary (unencrypted) e-mail sent through 
the Internet is not secure. Do not send confidential or sensitive information, 
such as social security numbers, account numbers, personal identification 
numbers and passwords, to us via ordinary (unencrypted) e-mail.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

RE: org.apache.catalina.authenticator.SSLAutheticator

2004-11-08 Thread Ken Sims
Thank you for your thoughts.  I have done a lot of reading on the topic
of CLIENT-CERT/SSL and Tomcat from Google searches as well as the source
code of SSLAuthenticator.  However I see nothing to indicate how a
server would know you from me if I gave you my keystore and keystore
password.  The server would authenticate you as me.  Many tests on my
part indicate that is so.  Funny that the client does this against the
server's cert by default.

I modified a version of SSLAuthenticator to do hostname verification
with success, but it seemed to me like something that is either a real
omission in Tomcat (perhaps on the basis of adherence to a standards
spec.?) or some conceptual misunderstanding on my part.  In deference to
the thought that I was missing something, I was hoping to hear what I
might look at specifically to revert to stock code for SSLAuthenticator.

-Original Message-
From: Bill Barker [mailto:[EMAIL PROTECTED] 
Sent: Monday, November 08, 2004 12:05 PM
To: Tomcat Developers List
Subject: Re: org.apache.catalina.authenticator.SSLAutheticator



- Original Message -
From: Ken Sims [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Monday, November 08, 2004 8:25 AM
Subject: org.apache.catalina.authenticator.SSLAutheticator


I am curious why SSLAuthenticator does not/cannot compare some 
attribute of the client cert with the remote address (requestor)?  
Without such a check, it seems to me that certificates are as easily 
shared as the credentials used in basic authentication.

There are plenty of tutorials on CLIENT-CERT auth out there.  I suggest
that you read one :).

Also, why do the realm implementations always return null for 
getPrincipal?  Couldn't they lookup the user on the  users database, 
ignoring password, to establish authorized roles?

Usually when you seriously want CLIENT-CERT, you find that you need a
custom Realm anyway.  There isn't really a one-size-fits-all solution.
Where it is implemented in TC (MemoryRealm, and UDBRealm in 5.5.x), it
authenticates against the Subject.  In a lot of cases, you really only
want the CN, or the
CN+EMAIL fields.  In other cases (e.g. JNDI, JAAS) you might want the 
CN+entire
cert.  You can look through BZ for TC 4 to find several examples of
proposed implementations.

That said, patches are always welcome :).


The combination of these two things seems to me to really limit the 
usefulness of client certificate authentication because authentication 
provides little guarantee of who the client is, and even if it did, the

client is denied access to any protected resources.





This message is intended only for the use of the person(s) listed above
as the intended recipient(s), and may contain information that is
PRIVILEGED and CONFIDENTIAL.  If you are not an intended recipient, you
may not read, copy, or distribute this message or any attachment. If you
received this communication in error, please notify us immediately by
e-mail and then delete all copies of this message and any attachments.

In addition you should be aware that ordinary (unencrypted) e-mail sent
through the Internet is not secure. Do not send confidential or
sensitive information, such as social security numbers, account numbers,
personal identification numbers and passwords, to us via ordinary
(unencrypted) e-mail.



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]