Re: [TLS] [pkix] New version of Multiple OCSP mode of Certificate Status

"Miller, Timothy J." <tmiller@mitre.org> Wed, 04 August 2010 20:14 UTC

Return-Path: <tmiller@mitre.org>
X-Original-To: tls@core3.amsl.com
Delivered-To: tls@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 4B1793A6993; Wed, 4 Aug 2010 13:14:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Level:
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
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 JlXDQhMrTvOl; Wed, 4 Aug 2010 13:14:05 -0700 (PDT)
Received: from smtp-bedford.mitre.org (smtp-bedford.mitre.org [129.83.20.191]) by core3.amsl.com (Postfix) with ESMTP id D260E3A6960; Wed, 4 Aug 2010 13:14:04 -0700 (PDT)
Received: from smtp-bedford.mitre.org (localhost.localdomain [127.0.0.1]) by smtp-bedford.mitre.org (8.13.1/8.13.1) with ESMTP id o74KEYF6010861; Wed, 4 Aug 2010 16:14:34 -0400
Received: from imchub1.MITRE.ORG (imchub1.mitre.org [129.83.29.73]) by smtp-bedford.mitre.org (8.13.1/8.13.1) with ESMTP id o74KEXx9010789; Wed, 4 Aug 2010 16:14:33 -0400
Received: from IMCMBX2.MITRE.ORG ([129.83.29.205]) by imchub1.MITRE.ORG ([129.83.29.73]) with mapi; Wed, 4 Aug 2010 16:14:33 -0400
From: "Miller, Timothy J." <tmiller@mitre.org>
To: "'mrex@sap.com'" <mrex@sap.com>, "Yngve N. Pettersen" <yngve@opera.com>
Date: Wed, 04 Aug 2010 16:14:33 -0400
Thread-Topic: [pkix] [TLS] New version of Multiple OCSP mode of Certificate Status
Thread-Index: Acs0CXCM7gRKC2h1SxOKaOr2HIcW9AABb5QA
Message-ID: <17FD76C1ECD0AB49817637E21809ABF908A316DF7E@IMCMBX2.MITRE.ORG>
References: <op.vgxe0necqrq7tp@acorna.invalid.invalid> from "Yngve N. Pettersen" at Aug 4, 10 08:30:13 pm <201008041915.o74JFM9X009405@fs4113.wdf.sap.corp>
In-Reply-To: <201008041915.o74JFM9X009405@fs4113.wdf.sap.corp>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: "pkix@ietf.org" <pkix@ietf.org>, "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] [pkix] New version of Multiple OCSP mode of Certificate Status
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tls>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 04 Aug 2010 20:14:06 -0000

>You mean that this web-server is sending a server certificate from a
>certification path that ends at a self-signed rootCA which the browser
>already trusts, but the server does not include the intermediate CA
>certificate that is necessary to validate the server certificate?

>An implementation compliant to any of the TLS v1.x specifications
>would have to abort the handshake with such a server due to an
>clear protocol violation.  The server MAY omit the self-signed
>rootCA cert at the end of his certification path, but omitting
>any of the intermediate CA certs is not permitted.

Consider:

- Agency A and Agency B each have internal PKIs.
- Agency A and Agency B mutually cross-certify.
- An End Entity from Agency A connects to an Agency B service.
- The service provides a ServerCertificate message containing it's certificate and the complete path.
- Complying with TLS1.2, the path supplied by the service may or may not include the Agency B's root CA certificate.

>From the user's perspective, the path supplied by the service is *both* compliant with TLS *and* incomplete, because it does not terminate at the Agency A trust anchor.  The server can do nothing to help, because the server has no way to predict *which* certificate path will be acceptable to the client, and in a large bridged environment the number of possible paths can be very, very large.

On the other hand, a browser has two options.  It can fail path validation (which usually results in a warning and a click-through), or it can enter path *discovery*, find the A->B cross certificate, and validate that path instead.  (While in the simple case here this is trivial, in the broader case--e.g., the FBCA environment--it is not.)

Failure is not the correct option because a trust path *does* exist.

I think the problem here is TLS presumes a simple PKI.  To quote from TLS1.2 7.4.2, "[The Server Certificate] message conveys the server's certificate chain to the client."  This is demonstrably not true (see above); the Server Certificate message conveys *one possible* chain to the client.  If that chain is not acceptable to the client, the client *must* find one that is.

-- Tim