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]