Re: [Curdle] Ben Campbell's Discuss on draft-ietf-curdle-ssh-ext-info-12: (with DISCUSS and COMMENT)

denis bider <denisbider.ietf@gmail.com> Thu, 14 September 2017 05:41 UTC

Return-Path: <denisbider.ietf@gmail.com>
X-Original-To: curdle@ietfa.amsl.com
Delivered-To: curdle@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2F2CF126E64; Wed, 13 Sep 2017 22:41:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 ZUSuyQuBp_uY; Wed, 13 Sep 2017 22:41:23 -0700 (PDT)
Received: from mail-lf0-x22f.google.com (mail-lf0-x22f.google.com [IPv6:2a00:1450:4010:c07::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4A9AB132C2A; Wed, 13 Sep 2017 22:41:23 -0700 (PDT)
Received: by mail-lf0-x22f.google.com with SMTP id m199so5582033lfe.3; Wed, 13 Sep 2017 22:41:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=xZoBmTwX75U04572r1r4E1j++k7umcHnW3sdYw3lxjI=; b=ihynof/TfqLBMCpvzOeiPNPIPEe80Y+4nqQkI+mtfdkRzRy91hELR1BTP448ESGJpl UXIYdM0NATpJVhFmv0TO98Cy7/iMyShga7BnpJDhk5P3VvEsAt9TAEhfZOI89mEaseoV pByehvZevbEpThn7kyCYCuX05Hvhk6SVlSGUHc3M7n6+I9p5MXAhXFnsZDJyV9QKY+Gv EZZTexqntOs64+d5ynZJmb9s1a2jy3Ks4FZW6Rmk9W6UZ7ckNfjiDDg9hooQVqBwbtwa nehKBgACITDYnJHUc0z7lkcAGyqeJvELpYfQEsURMbIr5OStcDfzMMirkSGlL+BAJFnZ TpXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=xZoBmTwX75U04572r1r4E1j++k7umcHnW3sdYw3lxjI=; b=uKM3h5OWU+XLWeV0ixSYlOQNRQ2ts2iIdNmBhSVTu+k27DZTgB1f1kH23oXvKGFd7i YS8vFymXZxJCRZVG4SExURlaKgsq130XjOiGTjoqlQMVFZSfqHWG4nbzdGe0XM9whAqW nVd9nKF01jr7D9d/Qg+A2C8Ssuqmm35guUeLzzybRlURKT1kGWVoC6POApONe1J9vGkK ylMAOYQhyT6+MZburjkbUi0MkX7hq7KpTyBXt72w8G/KUEPoo/6+xjKxcmDC5wDVP8Jq FmfA16lk4aGdxlq5MXkPEq8Vfd2YmiYBZLQwojDD05f5RLR1XCT1ykt8wpQPc2PkmoLN h8VA==
X-Gm-Message-State: AHPjjUh3GFUe/xwcGNyNbUgspODBYgi/8rslQSaZekLrv7fKEcJ186Ns SY6UiHNWzTByN8Y7OCSXRsZL3LfJ+1j73QDAzB4=
X-Google-Smtp-Source: AOwi7QAc7vLhsqZj+3Fcp+5zBq2a8i4KW4B/ATK2C/XDSMsQOhdgDQaLu6W49sFgbk4S+j+Or9BuAewpczXSwNvmeiM=
X-Received: by 10.46.93.215 with SMTP id v84mr1019863lje.8.1505367681638; Wed, 13 Sep 2017 22:41:21 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.179.27.209 with HTTP; Wed, 13 Sep 2017 22:41:20 -0700 (PDT)
In-Reply-To: <BCB85BDA-D77B-4493-A6E5-842876BD89E1@nostrum.com>
References: <150533102741.30467.13878869431655356929.idtracker@ietfa.amsl.com> <CADPMZDD1ApUzELbNcG-WM3-EoSxGNppWP6mA6FoFr1Ga=a7x8A@mail.gmail.com> <255F9E42-377B-43AF-AFA1-B67C9BC0F714@nostrum.com> <CADPMZDB7nS19=vzkaGa3uKnh4DSxEOVstNhopURLGMrGWXRxYQ@mail.gmail.com> <BCB85BDA-D77B-4493-A6E5-842876BD89E1@nostrum.com>
From: denis bider <denisbider.ietf@gmail.com>
Date: Wed, 13 Sep 2017 23:41:20 -0600
Message-ID: <CADPMZDAe_24e5C_SJaubOW1bGQ7FS_chXS-dTW0jEFY=2ViLfA@mail.gmail.com>
To: Ben Campbell <ben@nostrum.com>
Cc: The IESG <iesg@ietf.org>, Daniel Migault <daniel.migault@ericsson.com>, curdle-chairs <curdle-chairs@ietf.org>, curdle <curdle@ietf.org>, draft-ietf-curdle-ssh-ext-info@ietf.org
Content-Type: multipart/alternative; boundary="001a114a0ac0eba39205591fb900"
Archived-At: <https://mailarchive.ietf.org/arch/msg/curdle/_ZZOzol__TdwXfj9wCPek1ktJfY>
Subject: Re: [Curdle] Ben Campbell's Discuss on draft-ietf-curdle-ssh-ext-info-12: (with DISCUSS and COMMENT)
X-BeenThere: curdle@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "List for discussion of potential new security area wg." <curdle.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/curdle>, <mailto:curdle-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/curdle/>
List-Post: <mailto:curdle@ietf.org>
List-Help: <mailto:curdle-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/curdle>, <mailto:curdle-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Sep 2017 05:41:25 -0000

> One approach might be to say an extension MUST NOT add binary values,
> but implementations MUST NOT fail if one is present for an extension you
> don’t understand.

Unfortunately, prohibiting extensions from having binary extension-values
would have significant ramifications that would look very unsightly in the
SSH protocol.

For example, for something like the "delay-compression" extension that
needs to encode two name-lists, if extension-value cannot be binary, then
it would have to be Base64-encoded. This would be a very questionable
choice in a protocol that is otherwise binary and has no reason to
pessimize itself this way, other than that one particular implementation,
at one point in time, used the wrong function to decode a string. :)



On Wed, Sep 13, 2017 at 10:53 PM, Ben Campbell <ben@nostrum.com> wrote:

>
> > On Sep 13, 2017, at 11:47 PM, denis bider <denisbider.ietf@gmail.com>
> wrote:
> >
> > > I do not see a response to my comment on the “*” note in section 2.4.
> > > Did that change as part of the rewrite of that section that you
> mention below?
> >
> > Aye, sorry for not mentioning that. Most of the text was kept, but it
> was slightly rearranged. The sentence containing the inappropriate MUST was
> replaced with:
> >
> > "The timing of the second opportunity is chosen for the following
> reasons.”
>
> That works for me, thanks!
>
> […]
>
> > > The issue is redundant normative language, where it becomes
> > > ambiguous which piece of text is authoritative.
> >
> > Aye - it does violate the one-definition rule.
> >
> > I have changed the first mention as follows:
> >
> > "Implementers' attention is called to Section 2.5., in particular the
> requirement to tolerate any sequence of bytes - including null bytes at any
> position - in an unknown extension's extension-value.”
> >
>
> Thanks!
>
>
> > I have previously contemplated whether to add explicit mention of the
> OpenSSH behavior up to 7.5. On the one hand, it is poor practice to
> reference individual implementations. But on the other hand, this is a
> widespread implementation that everyone will want to interoperate with. If
> we provide no guidance about how to handle this bug, it will throw
> implementers for a spin, and worse, the compatibility workarounds may not
> be ideal. (E.g. people may avoid sending binary extension-values to ANY
> version of OpenSSH, instead of just versions up to 7.5.)
> >
> > For this reason, I have provisionally added the following section under
> the "delay-compression" extension:
> >
> >
> > 3.2.3.  Compatibility Note: OpenSSH up to 7.5
> >
> >   This extension uses a binary extension-value encoding. OpenSSH clients
> >   up to and including version 7.5 advertise support to receive
> >   SSH_MSG_EXT_INFO, but disconnect on receipt of an extension-value
> >   containing null bytes. This is an error fixed in OpenSSH version 7.6.
> >
> >   Implementations that wish to interoperate with OpenSSH 7.5 and earlier
> >   are advised to check the remote party's SSH version string, and omit
> >   this extension if an affected version is detected. Affected versions
> >   do not implement this extension, so there is no harm in omitting it.
> >   The extension SHOULD NOT be omitted if the detected OpenSSH version is
> >   7.6 or higher. This would make it harder for the OpenSSH project to
> >   implement this extension in a higher version, if they so choose.
> >
> >
> > This might be unusual, but since the bug exists in current versions, it
> will stay relevant for 5+ years. I think it may be worthwhile to ensure
> everyone's workarounds are consistent.
> >
> > The alternative would be to change the spec to disallow binary
> extension-values, but I think this is long-term inferior (especially since
> OpenSSH has committed to fixing the bug).
>
> I don’t have a strong opinion here. One approach might be to say an
> extension MUST NOT add binary values, but implementations MUST NOT fail if
> one is present for an extension you don’t understand. In any case, I will
> leave that to you and Ekr to decide.
>
> […]
>