Hi Thierry,
On 3/05/12 00:34 AM, Thierry Moreau wrote:
Thanks for this info, very interesting to see deployment experience for
successful client PK key pairs.
PKP instead of PKI? Now you're talking. For my money, any serious
security has to replace PKI totally.
But the big assumption that a lot of business models start with is 1.
imagine the user has a browser....
With that, we're stuck with SSL/certs/medium security ... which one can
improve somewhat by going to client certs, but only a little as all the
other components are out of boundary, out of control.
...
This web server can have an immediate potential user base if it
negotiates the TLS session with a long list of CA distinguished names
(in the CertificateRequest message).
ah. In my work, I have discovered that it is far better to turn off
all decision making in the TLS/apache side, to simply set the cert
request to optional and pass the result in variables to the application.
SSLVerifyClient optional
SSLOptions +StdEnvVars +FakeBasicAuth +ExportCertData
SSLUserName SSL_CLIENT_S_DN_Email
Well, hum, I must confess something that might look like
"not-invented-here" syndrome, but I got rid of the apache server
altogether.
The system model is TLS-protected-web-server in an HSM (derived from the
web-server-in-embedded-system and the more classical HSM).
Security assurance is obtained by having
*only*the*required*software*logic* in the system boundary (e.g. not
losing sleep with protocol downgrade attacks).
Absolutely, I hear you. The reason I would not have done that is
because it is quite hard (say I) to do the whole server-side SSL & web
stack without using apache. It's a whole lotta work. Indeed, it's more
work than doing a custom protocol (I guess). So the notion is to use
httpd in dumb-pass-thru mode, and write the application code to manage
the security context (which you have to do anyway).
So the question is: how did you do the TLS/web stack in the HSM? How
compatible with browsers/certs/CAs/etc did you get it? Ok, no need to
answer if it is proprietary but it is an interesting idea.
There are other rationales/excuses for getting rid of apache, but they
are out of scope in this list.
Then, in the application code, read all the cert variables and make an
application level decision.
My application model is a little different. Mine is not a CA context,
and "all the cert variables" reduces to *only* the client public key.
Right. You're using TLS and certs as carriers for PKs only. Are you
even assuming a browser? If you're not, I'm wondering why you're using
any of the rest.
The management tools for the contemplated web server scheme would
include an issuer DN extraction utility from end-user or CA certificates
so that the list may be augmented based on casual observations. Also,
the SSL debugging tools will report the contents of CertificateRequest
messages from public servers supporting client certs.
Anyone went through such data collection before?
Well, to the extent above. My db has a table for all certs, and a
table for all users, with a join by cert identifiers between the two
tables.
As you may infer from the above, my join (or equivalent in the ID
management database schema) is on the client public key.
Nod. I should add that my project was within the context of a CA, so it
is as much an experiment in making the CA do CA-like things as anything.
Even more so than any perceived security benefits. Hence my focus on
reading the cert to extract "claims" and "rely" on those claims to the
extent that I can. Security problems? Surely, and I'm waiting to be
hit by them...
iang
_______________________________________________
cryptography mailing list
[email protected]
http://lists.randombit.net/mailman/listinfo/cryptography