[dane] An Update on Danelaw

Stephen Nightingale <night@nist.gov> Fri, 04 April 2014 18:27 UTC

Return-Path: <stephen.nightingale@nist.gov>
X-Original-To: dane@ietfa.amsl.com
Delivered-To: dane@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1CB811A022B for <dane@ietfa.amsl.com>; Fri, 4 Apr 2014 11:27:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.311
X-Spam-Level:
X-Spam-Status: No, score=-2.311 tagged_above=-999 required=5 tests=[BAYES_40=-0.001, RCVD_IN_DNSWL_MED=-2.3, 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 f5PQ2YUnBGMj for <dane@ietfa.amsl.com>; Fri, 4 Apr 2014 11:27:53 -0700 (PDT)
Received: from wsget1.nist.gov (wsget1.nist.gov [129.6.13.150]) by ietfa.amsl.com (Postfix) with ESMTP id 887741A0235 for <dane@ietf.org>; Fri, 4 Apr 2014 11:27:53 -0700 (PDT)
Received: from WSXGHUB1.xchange.nist.gov (129.6.18.96) by wsget1.nist.gov (129.6.13.150) with Microsoft SMTP Server (TLS) id 14.3.174.1; Fri, 4 Apr 2014 14:27:37 -0400
Received: from postmark.nist.gov (129.6.16.94) by WSXGHUB1.xchange.nist.gov (129.6.18.96) with Microsoft SMTP Server (TLS) id 8.3.327.1; Fri, 4 Apr 2014 14:27:46 -0400
Received: from [127.0.0.1] (31-140.antd.nist.gov [129.6.140.31]) by postmark.nist.gov (8.13.8/8.13.1) with ESMTP id s34IRWkO022694; Fri, 4 Apr 2014 14:27:33 -0400
Message-ID: <533EF994.7000009@nist.gov>
Date: Fri, 04 Apr 2014 14:27:32 -0400
From: Stephen Nightingale <night@nist.gov>
Organization: NIST
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0
MIME-Version: 1.0
To: dane@ietf.org
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-NIST-MailScanner-Information:
Archived-At: http://mailarchive.ietf.org/arch/msg/dane/GoIvyY1zxAbHIUGfCdSWwUEDoJQ
Cc: proj-had <proj-had@nist.gov>
Subject: [dane] An Update on Danelaw
X-BeenThere: dane@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: night@nist.gov
List-Id: DNS-based Authentication of Named Entities <dane.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dane>, <mailto:dane-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/dane/>
List-Post: <mailto:dane@ietf.org>
List-Help: <mailto:dane-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dane>, <mailto:dane-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 04 Apr 2014 18:27:58 -0000

An update on the HAD-Pilot 'danelaw' test system at NIST seems 
appropriate: https://www.had-pilot.com/dane/danelaw.html.

The three DANE clients based on TLSlite 0.4.6, GnuTLS 3.1.16 and OpenSSL 
1.0.1e all now incorporate Viktor Dukhovni's 'C' language dane checker 
and return consistent - though not identical - results. The three https 
servers based on the TLS implementations are accessed in conjunction 
with TLSA records that serve the full range of certificate usages. There 
are, though one or two issues with these servers (discussed at the end 
of this report).

A useful function that this 3x3 configuration allows is to serve as the 
basis for a TLS interoperability exercise. Extended to include Firefox, 
Chrome and IE web browsers, and the set of DANE servers listed on Dan 
York's ISOC DANE 360 site, this allows a full 6 client X 15 server 
interoperability matrix. While TLS interoperability is not strictly the 
bailiwick of DANE, DANE is certainly affected by it, so I will summarize 
that exercise here.  Parameter setting in these three implementations is 
very limited, so the exercise proceeds with more or less out-of-the-box 
settings for their respective Python applications: TLSlite as native 
Python, GnuTLS with python-gnutls, and OpenSSL with Twisted.

The core of the investigation with the 3x3 interoperability matrix of 
TLSlite, GnuTLS and OpenSSL clients and servers is fully successful, and 
all clients complete a TLS handshake with all servers.  Extended to the 
ISOC DANE 360, plus additional sites announced on the DANE mailgroup, 
most interoperate, but a number of failures is seen:

- Dougbarton.us works with GnuTLS, but generates handshake failures with 
TLSlite and OpenSSL.
- Kumari.net and Spodhuis.org both complete handshakes with TLSlite and 
GnuTLS, but fail against OpenSSL.
- The verified.danetest.com and broken.danetest.com sites fail for the 
reason mentioned by Paul Wouters in his March 20th DANE group posting.

A fuller interoperability exercise awaits the development of an explicit 
TLS interoperability test suite, and associated extension of the clients 
and servers to facilitate parameter setting.

For the sites that get past TLS interoperability, there are three sites 
that fail DANE:

- bad-hash.verisign and bad-params.verisign are intentionally broken and 
designed to fail.
- Kumari.net returns 403 forbidden to TLSlite and GnuTLS, but works with 
the Browsers.  I am guessing the 403 is generated because my clients do 
not send a certificate.  I will be testing for bi-directional 
verification sometime in the future.

Now that Viktor's dane checker is incorporated in the three clients, the 
number of seriously wrong issues is hopefully minimized. Robust feedback 
is of course always welcome.  There are still some issues with the 
servers, though:

The TLSlite server is running all 2xx certificate uses, serving a 
certificate chain of length 2, with a wild card end certificate. However 
the process goes 'stale' after about 24 hours of up time, and so needs 
to be restarted daily.

GnuTLS is running all 0xx and 1xx certificate uses, serving a single end 
certificate per use. It runs 24/7 robustly.  It can only be configured 
to take a single end certificate for the server handshake. When 
presented with a concatenation of PEM certs, it will send only the end 
cert in the server side handshake. This is curious, because the GnuTLS 
client will retrieve the full cert chain in communication with, e.g., 
the TLSlite server. I will be seeking enlightenment on this issue on the 
gnutls-help mailgroup.

The OpenSSL DANE server is running all 3xx certificate uses, with a 
single wild card end certificate. Whether it can serve a full PEM 
concatenated certificate chain is a question still to be investigated.

The near-future course of the DANE project at NIST will now focus on 
SMTP uses, for both MUAs and MTAs.

Stephen Nightingale, NIST.