Re: [certid] section 4.6 rewrite (aka: Bad certificate handling)
Martin Rex <mrex@sap.com> Thu, 30 September 2010 02:31 UTC
Return-Path: <mrex@sap.com>
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 D10FE3A6D69 for <certid@core3.amsl.com>;
Wed, 29 Sep 2010 19:31:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.82
X-Spam-Level:
X-Spam-Status: No, score=-9.82 tagged_above=-999 required=5 tests=[AWL=0.429,
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 U1R1atXGNkIq for
<certid@core3.amsl.com>; Wed, 29 Sep 2010 19:31:21 -0700 (PDT)
Received: from smtpde02.sap-ag.de (smtpde02.sap-ag.de [155.56.68.140]) by
core3.amsl.com (Postfix) with ESMTP id 21FAB3A6D66 for <certid@ietf.org>;
Wed, 29 Sep 2010 19:31:20 -0700 (PDT)
Received: from mail.sap.corp by smtpde02.sap-ag.de (26) with ESMTP id
o8U2W0mN013469 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256
verify=OK); Thu, 30 Sep 2010 04:32:01 +0200 (MEST)
From: Martin Rex <mrex@sap.com>
Message-Id: <201009300232.o8U2W0UF010291@fs4113.wdf.sap.corp>
To: stpeter@stpeter.im (Peter Saint-Andre)
Date: Thu, 30 Sep 2010 04:32:00 +0200 (MEST)
In-Reply-To: <4CA3C022.8050202@stpeter.im> from "Peter Saint-Andre" at Sep 29,
10 04:39:30 pm
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Scanner: Virus Scanner virwal07
X-SAP: out
Cc: ietf@augustcellars.com, certid@ietf.org, Jeff.Hodges@KingsMountain.com
Subject: Re: [certid] section 4.6 rewrite (aka: Bad certificate handling)
X-BeenThere: certid@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: mrex@sap.com
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: Thu, 30 Sep 2010 02:31:22 -0000
Peter Saint-Andre wrote: > > >> 4.6.2. Case #2: No Match Found, Cached Certificate > >> > >> If the client does not find a presented identifier matching any of > >> the reference identifiers, and (a) a human user has previously > >> accepted and cached a certificate for this application service during > >> a previous interaction with the service or (b) a certificate has been > >> cached via configuration settings, then the client MUST verify that > >> the presented certificate matches the cached certificate. If the > >> presented certificate does not match the cached certificate then the > >> client MUST proceed as described under Section 4.6.4. > > > > There was one case in the original text here that I was expecting to be > > kept. This was the case of the chain of certificates being changed from > > when it was originally presented. Given the suggestion that the chain is > > shown for advanced users (see 4.6.4) I am wondering about the fact that we > > are no longer looking at anything more that the terminal certificate at this > > point. > > Yes, that's important. > > I think this text is a bit confusing because it uses the term "match" > for comparing the entire cached certificate against the entire presented > certificate, whereas in the rest of the document we use the term "match" > for comparing reference identifiers against presented identifiers. > > Therefore I propose the following adjusted text: > > If the client does not find a presented identifier matching any of > the reference identifiers, and (a) a human user has previously > accepted and cached a certificate for this application service during > a previous interaction with the service or (b) a certificate has been > cached via configuration settings, then the client MUST verify that > the presented certificate is the same as the cached certificate, > including verification of the entire certification path. If the > presented certificate is not the same as the cached certificate then > the client MUST proceed as described under Section 4.6.4. I do NOT see any reason to cache (and later compare) the entire chain of certificates. It is ONLY the server certificate that matters here. What could be distinguished is what kind of override the user or the application configuration is requesting. Is it only an override for the server-id-check (but otherwise a server certificate that succeeds a regular path validation), or is it an _untrusted_ server certificate, for which no certificate path validation can be performed. If it is only the former, performing regular certificate path validation and revocation checking is sensible. For the latter, a certificate path validation can not be performed. > >> > >> Security Note: Some interactive clients give advanced users the > >> option of proceeding with acceptance and caching of the presented > >> certificate despite an identity mismatch. Although this behavior > >> can be appropriate in certain specialized circumstances, in > >> general it ought to be exposed only to advanced users. Even then > >> it 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 or permanent > >> basis, at the user's option). Similarily here, "forcing the user to view the entire certification path" does not seem appropriate. It is the server's certificate that matters and which needs to be cached. When there is a lack of trust to the servers certificate (because it is a self-signed cert or issued by some private CA) then the certification path is irrelevant and can not be verified with a regular certificate path validation for "pinned" server certs. > >> > >> Otherwise, if the client is an automated application not directly > >> controlled by a human user, then it SHOULD terminate the connection > >> with a bad certificate error and log the error appropriately. An > >> automated application MAY provide a configuration setting that > >> disables this behavior, but MUST enable the behavior by default. > > > > I would like to see the MAY and MUST here be lower cased. They are implied > > by the SHOULD in the preceding sentence and do not need to be re-iterated. There appears to be a misunderstanding about rfc-2119 terminology (which is not affected by case). compare http://www.ietf.org/mail-archive/web/ietf/current/msg59589.html If the document wants to use the rfc-2119 terminology in lower case typesetting for non-rfc-2119 meaning, it should explicitly say so. Preferably, it should use different words/expressions than "must". -Martin
- [certid] section 4.6 rewrite (aka: Bad certificat… =JeffH
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Jim Schaad
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Peter Saint-Andre
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Jim Schaad
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Peter Saint-Andre
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Matt McCutchen
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Matt McCutchen
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Martin Rex
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Jim Schaad
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Jim Schaad
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Martin Rex
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Jim Schaad
- Re: [certid] section 4.6 rewrite (aka: Bad certif… =JeffH
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Martin Rex
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Jim Schaad
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Martin Rex
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Peter Saint-Andre
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Jim Schaad
- Re: [certid] section 4.6 rewrite (aka: Bad certif… Peter Saint-Andre