On Sat, Mar 21, 2009 at 1:11 PM, Nelson B Bolyard <nel...@bolyard.me> wrote:
> Kyle Hamilton wrote, On 2009-03-20 02:15:
>> This is a stupid comment.
>
> Then why post it?

Because Anders was referring to the argument as stupid, and I was
referring to his comment as stupid.  (Sometimes, just sometimes, it
helps to mirror someone's attitudes and behaviors to get them to
realize just how inappropriate they are.  Obviously, it hasn't worked
in this case, and I apologize.)

>> There are many people who think differently; I, for one, think that
>> server-auth is the *worse* part of TLS (because there's no branding of
>> what CA is responsible for the certification, there's no way to
>> identify when a session is re-used versus renegotiated,
>
> Once again, you are complaining about browser UI, but you blame the TLS
> protocol for your issues with browser UI.

No, I blame the browser UI for not exposing useful details of the TLS
protocol.  The TLS protocol explicitly does not call out the handling
of server certificates: this is the realm of PKIX.  The TLS protocol
allows for re-use of a session, but there's no UI for identifying when
a session is re-used (as opposed to renegotiated).

>> there's no way to figure out what CAs are available on the client for
>> multiple-certification strategies,
>
> But it is possible to tell the client which CAs are acceptable.  The
> server doesn't need to know more about the client than that it can be
> authenticated with a cert acceptable to the server.

It's possible for the server to tell the client -- *once the server
has authenticated to the client* -- what CAs are acceptable.  It's not
possible for a client to tell a server what CAs it finds acceptable.
This perpetuates the "all or nothing" trust problem which has
historically prevented CAs from being removed from the root store:
there's no way for a business owner to mitigate the risk by having
multiple CA certificates, choosing which one based on what the client
states it is willing to accept.

>> and there's no way -- unlike IPSEC -- to require that a connecting client
>> authenticate itself before the server decides to let its identity be
>> known, among others).
>
> Even if there was, I believe most browsers would refuse to implement it.
> Surely I need not explain why.

You are also making the assumption that TLS is *only* useful for
browsers, and *only* under the current paradigm of authentication.
IPsec requires that the client authenticate itself before the server
is required to make any reply at all; unfortunately, Comcast (and
other ISPs) filter IPsec.  This means that there's no current protocol
means to support the use-case where the client is requesting services
from a server that doesn't want to provide anonymous services, or even
announce its identity.

>> It seems pretty clear that the "common case" for authentication, as
>> implemented by banks, utility companies, phone companies, PayPal, etc
>> is to authenticate once and then let that authentication continue for
>> as long as the session holds -- and by 'session' I mean a cookie
>> either as a separate header or as a part of the URL -- and expire
>> those sessions after 10 or 15 minutes of inactivity.
>
> Right.  That's a session at the application layer, not a session at the
> transport layer.  You're trying to bind/couple the two.  You're applying
> design goals and requirements of one to the other.  You're trying to make
> TLS sessions serve double duty as also being application sessions.
>
> "Doctor, it hurts when I do this."

No, the fact that client certificates are used and re-prompted for
whenever the session expires -- interrupting the user's workflow -- is
what makes this completely unsuitable.

SSL transport sessions *are a service which is provided to the upper
clients of the protocol*.  TLS session authentication was designed to
make it possible to have a secure authentication mechanism that the
upper layer could then use without having to rely on its own
username/password application authentication.  ALL services of the
lower layers are supposed to be presented as capabilities which upper
layers can exploit, otherwise what's the reason for having them?

(Even ICMP uses the services provided by IP, even though in the OSI
model IP and ICMP are supposed to be at the same layer.)

>> The most important part to remember is that *ALL OF THIS CAN BE
>> CONFIGURED ON THE SERVER AT THE TLS LAYER WITHOUT THE CLIENT KNOWING
>> OR SUGGESTING ANYTHING ABOUT IT*.  Sessions can be reset to 0-seconds
>> idle when they're used, or not, at the server security configurator's
>> whim.
>
> Both the client and the server can impose their requirements on transport
> session duration.  Either one is free to terminate the session at any time,
> at will.

Yes.  It's just the fact that die-hard "This Is The Way The Standard
Is And This Is The Way The Standard Shall Always Be"
viewpoint-holders, like you, insist on relying on a paradigm which has
been shown to be fundamentally useless in the every-day usage of the
protocol.

Fifteen years.  A decade and a half.  1994 saw the release of the
first beta release of Netscape Navigator with SSL support.  In all
that time, the client certificate UI has never been fully tested,
never been fully utilized, and almost nobody even knows of its
existence -- because it's too hard to understand, too hard to explain
to Grandma.

Something is fundamentally broken, and it's not the code.  It's not
even the protocol design -- the protocol could be adapted to different
views, and make things better.  It's the fundamentalist viewpoints of
those who refuse to see, accept, or acknowledge the existence of
everything that says that the viewpoint -- and its attendant
assumptions/presumptions/correlations -- is wrong.

-Kyle H
-- 
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to