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

Martin Rex <mrex@sap.com> Wed, 04 August 2010 19:58 UTC

Return-Path: <mrex@sap.com>
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 E33293A687C; Wed, 4 Aug 2010 12:58:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.676
X-Spam-Level:
X-Spam-Status: No, score=-9.676 tagged_above=-999 required=5 tests=[AWL=0.573, 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 Heujl9HWqJ7P; Wed, 4 Aug 2010 12:58:18 -0700 (PDT)
Received: from smtpde01.sap-ag.de (smtpde01.sap-ag.de [155.56.68.170]) by core3.amsl.com (Postfix) with ESMTP id 64C9E3A6855; Wed, 4 Aug 2010 12:58:18 -0700 (PDT)
Received: from mail.sap.corp by smtpde01.sap-ag.de (26) with ESMTP id o74JwlWP001132 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 4 Aug 2010 21:58:47 +0200 (MEST)
From: Martin Rex <mrex@sap.com>
Message-Id: <201008041958.o74JwjlN012045@fs4113.wdf.sap.corp>
To: tmiller@mitre.org
Date: Wed, 04 Aug 2010 21:58:45 +0200
In-Reply-To: <17FD76C1ECD0AB49817637E21809ABF908A316DF7D@IMCMBX2.MITRE.ORG> from "Miller, Timothy J." at Aug 4, 10 03:31:50 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: pkix@ietf.org, tls@ietf.org
Subject: Re: [TLS] [pkix] New version of Multiple OCSP mode of Certificate
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: mrex@sap.com
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 19:58:20 -0000

Miller, Timothy J. wrote:
> 
> >As far as the AIA vulnerability is concerned, you're 0wnd as soon
> >as your software connects to the crafted URL in the crafted server
> >certificate.  It doesn't matter that whether you discard the reply
> >and abort the original browser connection at that point.  If you're
> >attacked, that URL is often not going to result in a certificate anyway.
> 
> First, real browsers already allow mixed content frames with silent
> renegotiation *and* late-binding of request authentication, and you're
> worried about exploiting AIA retrieval?

There is a significant difference between being vulnerable to a content
from a site one has chosen to access through HTTPS and being vulnerable
to an arbitrary active attacker on every connect.

> 
> Second, having identified a problem behavior, what's the fix?
> Path discovery is critically important in bridged PKIs, so if
> chasing AIAs is a Bad Thing, what do we do instead?

I don't know who invented the concept of automatic AIA retrieval, but
my personal intuition points to the S/Mime camp.  S/Mime is notoriously
broken as far as the inclusion of certificates is concerned (being a
heritage from PKCS#7).

SSL & TLS on the other hand have had the clear requirement to send only
complete certification chains from the beginning.  So there this issue
does not exist unless the server is misconfigured and the server PKI
software is defective because it does not refuse to perform SSL handshakes
with incomplete certificate chains, something that the SSL & TLS specs
have never allowed and which is fairly trivial for the server software,
the credential management part in particular, to verify and report
to the admin upfront when setting up that server.

> 
> >How about warning on first encounter and offer the User to download
> >and memorize the intermediate cert -- or to NOT download?
> 
> I fail to see how this improves the situation, since we already know
> users are ill-equipped to make these decisions anyway.


This is a clear TLS protocol violation, so if anything deserves
a scary page to be presented to a user, this is such a situation.

>
> In addition, components without a UI do what?

Fail unconditionally.  That is the only safe reaction, and since
it is a clear TLS protocol violation, it is quite appropriate.


> 
> >As previously described, the certificate path validation algorithm
> >specified in rfc-5280 works from the trust anchor downwards to
> >the End Entity cert, and will reliably protect you from accessing
> >OCSP or CRL information from untrusted/unverified certificates.
> 
> Only when the pool used by the PVM contains all the certificates
> identified in the path.  When the pool is incomplete, or the protocol
> provides no path (e.g., CMS allows SignedData to elide any and all
> certificates if the relying party can be expected to have *or discover*
> them), what does the PVM do?

S/Mime and CMS are foobar.  An implementation of TLS should not try
to work around design flaws of a non-TLS protocol in such an insecure
and questionable fashion.

The sitation for TLS is clear, the server needs to provide a full
certificate chain and may omit only the self-signed root.

There is more flexibility in the TLS protocol (although not explicitly
written out) for verifying the client certificate.  The CertificateRequest	handshake message includes a list of certification authorities which
the server indicates to trust (i.e. being able to verify certs issued
by these CAs), so the client could build a certificate chain up to
one of the certification authorities announced by the server.


PKIs with bridge CAs are not natively supported by TLS for the server
certificate.  Adding support would be possible through a ClientHello
extension where the client announces the names of those bridge CAs.

> 
> Failing is "safe" from a security standpoint, but I'd contend that
> if you put that into a real system it would simply fail to meet any
> practical definition of the term "functional."

AIA is a pretty dangerous idea designed to work around design flaws
of an installed base of PKCS#7/CMS/SMime.  Ignoring the security
implications of such a hack is a bad idea, in particular for protocols
that originally do not suffer from such a design flaw.  And doing it
in a secretive fashion out of sight from the user of the technology
is a particularly bad idea!


-Martin