[certid] Bad certificate handling

Matt McCutchen <matt@mattmccutchen.net> Fri, 24 September 2010 06:24 UTC

Return-Path: <matt@mattmccutchen.net>
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 BA2403A6844 for <certid@core3.amsl.com>; Thu, 23 Sep 2010 23:24:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.584
X-Spam-Level:
X-Spam-Status: No, score=-2.584 tagged_above=-999 required=5 tests=[AWL=0.015, BAYES_00=-2.599]
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 vgz3BXDnlZzX for <certid@core3.amsl.com>; Thu, 23 Sep 2010 23:24:11 -0700 (PDT)
Received: from homiemail-a14.g.dreamhost.com (caiajhbdcahe.dreamhost.com [208.97.132.74]) by core3.amsl.com (Postfix) with ESMTP id 65DD33A6A9B for <certid@ietf.org>; Thu, 23 Sep 2010 23:24:11 -0700 (PDT)
Received: from homiemail-a14.g.dreamhost.com (localhost [127.0.0.1]) by homiemail-a14.g.dreamhost.com (Postfix) with ESMTP id E86858C06A; Thu, 23 Sep 2010 23:24:40 -0700 (PDT)
DomainKey-Signature: a=rsa-sha1; c=nofws; d=mattmccutchen.net; h=subject:from :to:cc:in-reply-to:references:content-type:date:message-id :mime-version:content-transfer-encoding; q=dns; s= mattmccutchen.net; b=TBMU5WBLyQNHlL12qElJPnipp2qEGP1J/GeXk20bIGM woN1AmhuTUtlgCW2KQrFW05I6+APZZfg9yKKOarhd99D63SXgHEP2K+NeT2Aj/vy TWyhOljr4QTz0IoxfG5YbfAk6vTCS08NzR2xv7kZ+wz0JxtY1gCMMmkJ5kKrGTFA =
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=mattmccutchen.net; h= subject:from:to:cc:in-reply-to:references:content-type:date :message-id:mime-version:content-transfer-encoding; s= mattmccutchen.net; bh=qdA0JPIfKF2VOUqPUURJT9Rxfog=; b=MqrT3cucgH Pn/rdqJ5UM+MscmvJ+Dr2879ilwEzIH/Es6noDVGDOucFWX11OLaOW5tNSxo6Lvt IQ71XH3ZoiQ7erLwXpqf4dmRfJE4kZOt2aCVgC24uhDO7ysOUIDXuDYtr/RqUC3V dv3ETGWJ9jd8+og2YYQi1h6/dy0F6pfGw=
Received: from [129.2.249.209] (ml2.student.umd.edu [129.2.249.209]) (Authenticated sender: matt@mattmccutchen.net) by homiemail-a14.g.dreamhost.com (Postfix) with ESMTPA id A22128C063; Thu, 23 Sep 2010 23:24:40 -0700 (PDT)
From: Matt McCutchen <matt@mattmccutchen.net>
To: Peter Saint-Andre <stpeter@stpeter.im>
In-Reply-To: <4C9A27D0.7030909@stpeter.im>
References: <AANLkTin6qXBOEJheaG8+SU=3k63Ed+3qXvoLHF5_hb6x@mail.gmail.com> <4C9A27D0.7030909@stpeter.im>
Content-Type: text/plain; charset="UTF-8"
Date: Fri, 24 Sep 2010 02:24:39 -0400
Message-ID: <1285309479.1939.430.camel@mattlaptop2.local>
Mime-Version: 1.0
X-Mailer: Evolution 2.30.4
Content-Transfer-Encoding: 7bit
Cc: IETF cert-based identity <certid@ietf.org>
Subject: [certid] Bad certificate handling
X-BeenThere: certid@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
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: Fri, 24 Sep 2010 06:24:12 -0000

On Wed, 2010-09-22 at 09:59 -0600, Peter Saint-Andre wrote:
> The part of the text that you have not quoted does say that this
> practice is typically offered only to advanced users (and I don't think
> that Barry's mother counts as an advanced user). However, we've
> provisionally made the text even more scary, as follows:
> 
>       Security Note: Some existing interactive user agents give advanced
>       users the option of proceeding despite an identity mismatch.
>       Although this behavior can be appropriate in certain specialized
>       circumstances, in general it needs to be exposed only to advanced
>       users and even then needs to be handled with extreme caution, for
>       example by first encouraging even an advanced user to terminate
>       the connection and, if the advanced user chooses to proceed
>       anyway, by forcing the user to view the entire certification path
>       and only then allowing the user to accept the certificate on a
>       temporary basis (i.e., for this connection attempt and all
>       subsequent connection attempts for the life of the application
>       session, but not for connection attempts during future application
>       sessions).
> 
> Jeff still needs to review that text before we finalize it.

There is a trade-off in making the acceptance temporary.  If the
certificate belongs to a MITM attacker, the user avoids becoming
permanently vulnerable to that particular attacker.  If it belongs to
the desired server, he misses an opportunity to cache it permanently and
avoid developing a habit of accepting a bad certificate on every
session, which would make him vulnerable to MITM every time.  Of course,
there is no way to know which is the case.

If the user provides a password after accepting the certificate, one can
argue that he has already lost everything in the case of an attack, and
hence he should focus on securing the other case by accepting the
certificate permanently.  It can also be useful to cache the certificate
received over a relatively more trustworthy network connection for later
use on a less trustworthy one (e.g., the proverbial public wireless
access point).

The current remark about temporary acceptance might suggest to readers
that it is better than permanent acceptance, which is at best an
oversimplification and possibly untrue.  Thus, I propose that the remark
be removed.

Separately, I wonder if it makes sense for server-id-check to
specifically discuss the handling of certificates that don't match a
reference identifier when the considerations are essentially the same
for certificates with other problems (most commonly, expired or
untrusted issuer) and, indeed, modern browsers tend to provide a single
UI for these three most common problems.  I'm not sure where would be
the right place to standardize handling of bad certificates in general.
There is a W3C document, but it only applies to interactive user agents:

http://www.w3.org/TR/wsc-ui/#def-pinned-cert

-- 
Matt