Ertugrul Soeylemez <never@drwxr-xr-x.org> writes:
> That also helps exploiting the full potential of SSL. For example, you
> can't just authenticate the server, you can also authenticate the client
> or anything else via a certificate. So no more username/password pairs
> are needed. Users don't need to login manually, they just present their
> certificate, which is straightforward in today's modern browsers.
actually, client authentication/authorization can be done straight
forwardly using registered public keys and digital signatures w/o
requiring any digital certificate what-so-ever. misc. past posts
mentioning certificateless operation
http://www.garlic.com/~lynn/subpubkey.html#certless
the first place that became especially evident was when we were
brought in to do some consulting with this small client/server startup
that had this technology called SSL and wanted to do payment
transactions ... for something that has since come to be called
e-commerce. previous post in this thread:
http://www.garlic.com/~lynn/2007.html#7 SSL info
at the time SSL didn't have mutual authentication ... but we required
it for the payment gateway (the webservers authenticated the payment
gateway using installed public key ... and the payment gateway
authenticate the webservers using on-file public keys). The addition
code had to be added to SSL to do mutual authentication and since it
was already heavily certificate-based orientation there still were
digital certificates that were passed back-and-forth ... but in
actuality ... each authorized webserver had the information about the
payment gateway preloaded as part of the payment processing software
.... and the payment gateway had onfile information about each
authorized webserver. it quickly became strikenly apparent that
the digital certificates were redundant and superfluous. misc.
other posts mentioning ssl digital certificates
http://www.garlic.com/~lynn/subpubkey.html#sslcert
so the dominant forms of client authentication in the world wide web
environments are KERBEROS and RADIUS. These started out being
userid/password. However, both KERBEROS and RADIUS have had
definitions and implementations were client public keys are registered
(in lieu of passwords), servers transmit some random information (as
countermeasure to replay attacks), and the clients (using their
private key) digitally sign and return the digital signature ... which
the server than verifies with the onfile public key.
The original KERBEROS PKINIT (public key) draft initially just
specified certificateless operation ... but under a great deal
of lobbying, certificate-mode operation was also added.
One of the scenarios for various webserver software is that client
authentication has frequently just been a stub model ... although
there are plugins for webserver software that provide kerberos and
radius interfaces for client authentication. In many of these typical
implementations ... the kerberos and radius implementations are done
in such a way that it is possible to specify password or digital
signature operation on a account by account basis ... again
certificateless operation. misc. past posts about kerberos operation
http://www.garlic.com/~lynn/subpubkey.html#kerberos
and radius operation
http://www.garlic.com/~lynn/subpubkey.html#radius
sort of the original idea for certificate-mode of operation was that
there was interaction between two parties that had no prior knowledge
of each other. it was necessary for the certificates to carry all the
necessary information. this also sort of gave rise to the x.509
identity certificates from the early 90s.
however, by the mid-90s it was realized that x.509 identity
certificates, typically heavily overloaded with personal information
represented significant privacy and liability issues. as a result,
you saw many institutions dropping back to what they called
relying-party-only certificates ... misc. past posts mentiong
RPO certificates:
http://www.garlic.com/~lynn/subpubkey.html#rpo
the issue here is that an RPO-certificate basically just carries a
public key and some sort of account number. the relying party, takes
the account number and retrieves the appropriate account record
.... where the actual personal information including any authorization
information is kept. however, since the public key originally had to
be registered and stored in an account record before any digital
certificate was issued, it was trivial to show that the relying party
retrieving the account record can include the registered public key.
Again, the digital certificate becomes redundant and superfluous.
basically the kerberos and radius PKI implementations with digital
certificates typically have done something similar as RPO-certificate,
the permission/authorization information is stored in an onfile
account record. if any of the client PKI digital certificates
authentication operations (kerberos, radius, or roll-your-own) at some
point have to retrieve any sort of account record as part of
permissions and authorizations ... it is then trivial to also show
(again) that the digital certificates are redundant and superfluous.
The digital certificate actually only has meaninful role ... when the
server never has to resort to really knowing who the client is and/or
anything about the client ... other than what is presented in the
digital certificates. No additional information related to things like
permissions, authorizations, billing, accounts, etc is required.
its like anybody with valid digital certificate can log into your
system and have all permissions regardless of who they are ... and
there is no userid account record for the system that is required to
provide any additional information related to the user and/or what the
user is allowed to do or not do.
as soon as the process has to resort to any additional information
(than what is provided in the digital certificate) for doing any
operation what-so-ever for the client ... then it is trivial to
show that the digital certificate is redundant and superfluous.