Re: [certid] section 4.6 rewrite (aka: Bad certificate handling)
Martin Rex <mrex@sap.com> Mon, 04 October 2010 19:28 UTC
Return-Path: <mrex@sap.com>
X-Original-To: certid@core3.amsl.com
Delivered-To: certid@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix)
with ESMTP id 7210F3A6E40 for <certid@core3.amsl.com>;
Mon, 4 Oct 2010 12:28:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.845
X-Spam-Level:
X-Spam-Status: No, score=-9.845 tagged_above=-999 required=5 tests=[AWL=0.404,
BAYES_00=-2.599, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com
[127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LFFJSMn6IGhx for
<certid@core3.amsl.com>; Mon, 4 Oct 2010 12:28:09 -0700 (PDT)
Received: from smtpde02.sap-ag.de (smtpde02.sap-ag.de [155.56.68.140]) by
core3.amsl.com (Postfix) with ESMTP id C83CD3A6C1C for <certid@ietf.org>;
Mon, 4 Oct 2010 12:28:08 -0700 (PDT)
Received: from mail.sap.corp by smtpde02.sap-ag.de (26) with ESMTP id
o94JT01g015298 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256
verify=OK); Mon, 4 Oct 2010 21:29:00 +0200 (MEST)
From: Martin Rex <mrex@sap.com>
Message-Id: <201010041928.o94JSwa7017455@fs4113.wdf.sap.corp>
To: ietf@augustcellars.com (Jim Schaad)
Date: Mon, 4 Oct 2010 21:28:58 +0200 (MEST)
In-Reply-To: <00a601cb610a$dc119c60$9434d520$@augustcellars.com> from "Jim
Schaad" at Sep 30, 10 06:49:16 pm
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Scanner: Virus Scanner virwal05
X-SAP: out
Cc: certid@ietf.org
Subject: Re: [certid] section 4.6 rewrite (aka: Bad certificate handling)
X-BeenThere: certid@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: mrex@sap.com
List-Id: Representation and verification of identity in certificates
<certid.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/certid>,
<mailto:certid-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/certid>
List-Post: <mailto:certid@ietf.org>
List-Help: <mailto:certid-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/certid>,
<mailto:certid-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Oct 2010 19:28:10 -0000
I wrote about two issues:
(1) lack of rationale why the cert chain should be cached
rather than only the server certificate
(2) support for server certs that do not succeed certificate
path validation to one of the (pre-)configured trust anchors
You did not provide any arguments for (1) and inappropriately
dismiss (2) for the scope of the current document.
I think that (1) is seriously underspecified. With the existing
matching procedure, caching the entire cert chain does NOT make
any sense at all (and does not provide security benefit).
Jim Schaad wrote:
>
> There is no need to remember that path validation has passed or failed - by
> definition it has passed or you would never even get here. The document
> does not "permit" the case of using a certificate if path validation has
> failed.
The previous document (rfc-2818) certainly did allow arbitrary certs
and left the notion when a server cert is acceptable completely out-of-scope
(it does NOT say PKIX certificate path validation anywhere):
http://tools.ietf.org/html/rfc2818#section-3.1
If the client has external information as to the expected identity of
the server, the hostname check MAY be omitted. (For instance, a
client may be connecting to a machine whose address and hostname are
dynamic but the client knows the certificate that the server will
present.)
This document here sensibly explains why you may want to allow
server certs that do not chain to pre-trusted roots:
http://www.w3.org/TR/wsc-ui/#selfsignedcerts
>
> This document makes absolutely no statements about ever doing anything
> positive with untrusted certificates. If the certificate is untrusted -
> i.e. fails path validation -- then all bets are off and the document does
> not apply in any way. After all if you don't trust the certificate why
> would you believe anything that the certificate says about the identity that
> is associated with the certificate. This is a complete non-issue for the
> document.
If this documents engages at all into discussion when a server cert is
valid/acceptable for performing server-id-check, then it should _not_
limit the scope to trust anchors preconfigured by software distributors.
The current wording about NAGGING end users when the server cert does
not map to a pre-configured trust anchor and offering the "pinning"
of server-certs to advanced users only is inappropriate for an
IETF specification. The W3C spec is much more reasonable in that
respect.
>
> >
> > Pinning server certs protects you from attackers that manage to get a cert
> > issued from any of the CAs operating under any of your (pre-)trusted
> > roots. Performing certificate path validation even for "pinned" certs
> > protects you from missing revocations.
>
> Remember this only discussing the case of being unable to complete the logic
> dealing with comparing the reference and the presented names. This is not
> dealing any cases where path validation either fails or is not performed.
> Thus the idea of pinning a certificate that passes (or does not pass
> validation) is not part of the concepts we are discussing here.
The document discusses the situation of a "cached server cert", without
going into details about why the certificate was cached, what
meta-information was cached along with it (giving more context to
the decision to cache/pin the server certificate), and it talks about
how to perform server-id-check when a cached/pinned certificate
exists.
The current description is artificially limited to be applicable to
the pre-configured commercial CA trust anchors, and doesn't even
mention that it is crippled like this, and that there be other
more sensible and more secure reasons for caching/pinning certs
that require a different "override" strategy or more fine-grained
control over server certificate caching/pinning.
Pinning of EE server certs (no matter whether self-signed,
from untrusted CAs, or from "common TLS PKI") interferes with
server cert rollover. Security-wise, pinning the server cert
(effectively pinning the servers public key) is certainly the
strongest of all because it cuts most of the points-of-failures
completely out of the loop.
A "pinning" of server certs from CA-hierarchies (trusted AND untrusted)
that allows hidden key/cert-rollover might be useful to the public at
large -- which does neither care nor understand the technical details.
There, the server-cert issuing CA cert would be pinned along with
a set of client-applied constraints like the host or DNS domain to
which this pinning applies and whether a server-id-check should
still be performed on the server cert.
Allowing organizations to run their own CAs makes IMHO a lot of
sense (and several companies are doing it already). Having to
make every CA from some other organization a full-blown trust anchor
is just as bad as an unduly requiring for any such organizational CAs
to get signed by a pre-configured commercial trust anchor.
ISO specified the ASN.1 OIDs so that they can lease "OID arcs" on
a subscription basis to organizations for a significant recurring
premium so that they can rake in extra revenues.
Fortunately, IANA has been giving out OID arcs under SNMP private
enterprises for free, and OIDs from that OID space is used
heavily for non-SNMP purposes. :)
The existing "TLS PKI", which, for the server identity matching keys
off the existing DNS space and DNS delegations, represents close to
zero value to the IETF community and the public at large. From
a technical perspective, both offer comparable security, so I
can understand the motivations behind trying to move to DNSSEC-based
distribution of trust.
Technically, the existing TLS PKI scheme of matching DNS delegations
for server endpoint identification in combination with the complete
mind-block for past encounters with a peer has always been a
primitive "better-than-nothing" approach to security.
Limiting acceptable certs to those distributed by the DNS domain
admin himself though DNSSEC signed zones would give those DNS admins
some of the control back that they're entitled to have (about
assignments and use of DNS domain names), something which is
very ill-designed in the existing "TLS PKI".
-Martin
- [certid] section 4.6 rewrite (aka: Bad certificat… =JeffH
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Jim Schaad
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Peter Saint-Andre
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Jim Schaad
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Peter Saint-Andre
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Matt McCutchen
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Matt McCutchen
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Martin Rex
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Jim Schaad
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Jim Schaad
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Martin Rex
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Jim Schaad
- Re: [certid] section 4.6 rewrite (aka: Bad certif… =JeffH
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Martin Rex
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Jim Schaad
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Martin Rex
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Peter Saint-Andre
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Jim Schaad
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Peter Saint-Andre