Re: [Trans] #70 (rfc6962-bis): STH spec needs to define top-levelextension syntax

Rob Stradling <rob.stradling@comodo.com> Tue, 14 July 2015 21:32 UTC

Return-Path: <rob.stradling@comodo.com>
X-Original-To: trans@ietfa.amsl.com
Delivered-To: trans@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 12D091B2BC0 for <trans@ietfa.amsl.com>; Tue, 14 Jul 2015 14:32:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] 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 6iT3nxCorkr5 for <trans@ietfa.amsl.com>; Tue, 14 Jul 2015 14:31:54 -0700 (PDT)
Received: from mmextmx2.mcr.colo.comodoca.net (mmextmx2.mcr.colo.comodoca.net [IPv6:2a02:1788:402:c00::c0a8:9cd6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 27EEA1B2CE6 for <trans@ietf.org>; Tue, 14 Jul 2015 14:31:54 -0700 (PDT)
Received: (qmail 16473 invoked by uid 1004); 14 Jul 2015 21:31:52 -0000
Received: from ian.brad.office.comodo.net (HELO ian.brad.office.comodo.net) (192.168.0.202) by mmextmx2.mcr.colo.comodoca.net (qpsmtpd/0.84) with ESMTP; Tue, 14 Jul 2015 22:31:52 +0100
Received: (qmail 26511 invoked by uid 1000); 14 Jul 2015 21:31:52 -0000
Received: from and0004.comodo.net (HELO [192.168.0.58]) (192.168.0.58) (smtp-auth username rob, mechanism plain) by ian.brad.office.comodo.net (qpsmtpd/0.40) with (AES128-SHA encrypted) ESMTPSA; Tue, 14 Jul 2015 22:31:52 +0100
Message-ID: <55A57FC7.7040700@comodo.com>
Date: Tue, 14 Jul 2015 22:31:51 +0100
From: Rob Stradling <rob.stradling@comodo.com>
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.7.0
MIME-Version: 1.0
To: Stephen Kent <kent@bbn.com>, "trans@ietf.org" <trans@ietf.org>
References: <55A51E3D.3070608@bbn.com>
In-Reply-To: <55A51E3D.3070608@bbn.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/trans/wgONe2W75SGOlBOc00VmwZQNB38>
Subject: Re: [Trans] #70 (rfc6962-bis): STH spec needs to define top-levelextension syntax
X-BeenThere: trans@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Public Notary Transparency working group discussion list <trans.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/trans>, <mailto:trans-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/trans/>
List-Post: <mailto:trans@ietf.org>
List-Help: <mailto:trans-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/trans>, <mailto:trans-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Jul 2015 21:32:00 -0000

Steve, though I disagree with the thing you want to use an extension 
for, I completely agree that we need to define the top-level extension 
syntax.  Your proposed text mostly looks good to me.  Just a few 
nits/questions...

'The "CtExtensions" type is a vector of 0 or more extensions'
   - Isn't that clear from the "CtExtension CtExtensions<0..2^16-1>;" 
definition?  Why restate it?

'All of the extensions in the vector MUST appear in order of increasing 
IDs.'
   - Why?  And what would a CT client do if it encountered a violation 
of this proposed MUST?

'If an implementation sees an extension that it does not understand, it 
SHOULD ignore that extension.'
   - Wouldn't it be better to include a "critical" flag that has the 
same semantics as the "critical" flag for X.509v3 extensions?

Are you planning to submit a pull request on GitHub for your proposed 
text?  Or shall I?

On 14/07/15 15:35, Stephen Kent wrote:
> As promised, here is some proposed text for the required additional
> syntax for SCT extensions.
>
> Add to Section 3.3:
>
>           uint16 CtExtensionId;
>
>           opaque CtExtensionValue<0..2^16-1>;
>
>           struct {
>               CtExtensionId id;
>               CtExtensionValue value;
>           } CtExtension;
>
>           CtExtension CtExtensions<0..2^16-1>;
>
>     The "id" field identifies a single extension from the IANA registry
> in Section 7.3. The interpretation of the "value" field is determined
> solely by the value of the id field, and each document that registers a
> new extension ID must describe how to interpret the corresponding
> extension value.
>
>     The "CtExtensions" type is a vector of 0 or more extensions.
> This vector MUST NOT include more than one extension with the same ID.
> All of the extensions in the vector MUST appear in order of increasing IDs.
>
> Change the last paragraph of Section 3.3 to:
>
>     "extensions" are future extensions to SignedCertificateTimestamp v2.
> Currently, no extensions are specified. If an implementation sees an
> extension that it does not understand, it SHOULD ignore that extension.
> Furthermore, an implementation MAY choose to ignore any extension(s)
> that it does understand.
>
>
> Add a new Section, "7.3.  CT Extension IDs":
>
>     IANA is asked to establish a registry of CT extension IDs, initially
>     consisting of:
>
>           +-------+-----------+
>           | ID    | Extension |
>           +-------+-----------+
>           | 65535 | reserved  |
>           +-------+-----------+
>
>     TBD: policy for adding to the registry
>
>
> _______________________________________________
> Trans mailing list
> Trans@ietf.org
> https://www.ietf.org/mailman/listinfo/trans
>

-- 
Rob Stradling
Senior Research & Development Scientist
COMODO - Creating Trust Online