Re: [TLS] Certificate validation can of worms

Nikos Mavrogiannopoulos <nmav@redhat.com> Tue, 08 April 2014 08:07 UTC

Return-Path: <nmav@redhat.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E867F1A01AC for <tls@ietfa.amsl.com>; Tue, 8 Apr 2014 01:07:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.912
X-Spam-Level:
X-Spam-Status: No, score=-6.912 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id E3Omn0DxwvtP for <tls@ietfa.amsl.com>; Tue, 8 Apr 2014 01:07:11 -0700 (PDT)
Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by ietfa.amsl.com (Postfix) with ESMTP id 1160C1A01B0 for <tls@ietf.org>; Tue, 8 Apr 2014 01:07:07 -0700 (PDT)
Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s38871ma014712 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 8 Apr 2014 04:07:01 -0400
Received: from [10.34.2.127] (dhcp-2-127.brq.redhat.com [10.34.2.127]) by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s3886wkT028535 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Tue, 8 Apr 2014 04:06:59 -0400
Message-ID: <1396944418.11019.10.camel@dhcp-2-127.brq.redhat.com>
From: Nikos Mavrogiannopoulos <nmav@redhat.com>
To: Watson Ladd <watsonbladd@gmail.com>
Date: Tue, 08 Apr 2014 10:06:58 +0200
In-Reply-To: <CACsn0ckKEMTWMH=0+=Bbp8djnKtbawkcVeEujnonBB_8ND03_Q@mail.gmail.com>
References: <534320A2.5030208@comodo.com> <20140407224329.4A71F1ACAA@ld9781.wdf.sap.corp> <CACsn0ckKEMTWMH=0+=Bbp8djnKtbawkcVeEujnonBB_8ND03_Q@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"
Mime-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.11
Archived-At: http://mailarchive.ietf.org/arch/msg/tls/3pItrEH8Axe0grOHTM5eafNYHq0
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] Certificate validation can of worms
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.15
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/options/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: Tue, 08 Apr 2014 08:07:17 -0000

On Mon, 2014-04-07 at 18:20 -0700, Watson Ladd wrote:

> > And a TLS client that implements rfc2818 (HTTP-over-TLS) will look
> > exactly at rfc2818 for any checks that the client will do on the
> > Server certificate, and again *NOT* in PKIX.
> 
> This is really a problem with RFC2818. The whole idea of X509v3 is
> that you should be able to issue certificates that have meaning beyond
> assertions of identity, such as for use as code-signing. But because
> implementations don't respect the PKIX standard, we can't do that.

I think PKIX is far from being described as standard. It looks more than
a set of rules that the implementer is expected to distill and select
the relevant ones, as most of the described rules are legacy baggage
(e.g. DN comparison rules that assume that the DN is copied by a
secretary that introduces case changes and alters spaces, rather than a
memcpy).

PKIX's requirements are pretty strange to put it mildly. One example are
the key purposes that Martin described. Another is the name constraints
which is optional to implement for DNS or e-mails (that everyone uses),
and mandatory for DistinguishedNames (that no-one uses); then it becomes
an issue when people realize that no-one implements name constraints
(and the only certificates that I've seen that contained constraints,
had syntactical errors in them). There are much more issues in PKIX (and
Peter Gutmann is much better in providing a good overview). We certainly
need something better than rfc5280.

regards,
Nikos