Re: [jose] Text about applications and "alg":"none"

Richard Barnes <rlb@ipv.sx> Wed, 04 September 2013 22:51 UTC

Return-Path: <rlb@ipv.sx>
X-Original-To: jose@ietfa.amsl.com
Delivered-To: jose@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 75D6811E8127 for <jose@ietfa.amsl.com>; Wed, 4 Sep 2013 15:51:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.976
X-Spam-Level:
X-Spam-Status: No, score=-2.976 tagged_above=-999 required=5 tests=[AWL=-0.000, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Rj5yiTMNTYql for <jose@ietfa.amsl.com>; Wed, 4 Sep 2013 15:51:01 -0700 (PDT)
Received: from mail-oa0-f45.google.com (mail-oa0-f45.google.com [209.85.219.45]) by ietfa.amsl.com (Postfix) with ESMTP id C7D6011E811E for <jose@ietf.org>; Wed, 4 Sep 2013 15:51:00 -0700 (PDT)
Received: by mail-oa0-f45.google.com with SMTP id m6so1317709oag.32 for <jose@ietf.org>; Wed, 04 Sep 2013 15:50:59 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=cdNvmvLuUz5o2zT4s20b3WUYXjNw5nGHiW01twAUkrU=; b=dSobvE/DzQRipH+A2o/cbGKJbpJ/b2oJydC1OLSRz1kODF4Pf7CA+pdZHQNuzBv6+o 2t65Ewdt6loaSaTd3ST1P8xgmas5fGmjET5RgUvFRCvQ4SMGtBEfpEAQVyJMzpHlq51J AIJoiod0QFlZtP9Mi7Vb2XlVsf0cwQpn/qaBT8wzJBnGYJew2XgIrtmzYKjbV58+W+zr aSa5U62lYZfBspPuMOgZd59DQd1DpMUeu54ltmTZbBwYb46dS+OvFLLOS1995Efp1n1+ kIxBaqVOXKoqtixHTNliZoKdVyA+/x9r+HR3XlxHhjgmJa1RhRMtDge3tlBgNnrCzGZ1 7xkw==
X-Gm-Message-State: ALoCoQn1ITJpFCGAG8JyPU6C64dIat6Xco3/KL0ZSYI0SpYTAQVsMlePylqCiMr/+Yrkw3zKgUz5
MIME-Version: 1.0
X-Received: by 10.182.18.9 with SMTP id s9mr4092153obd.15.1378335059359; Wed, 04 Sep 2013 15:50:59 -0700 (PDT)
Received: by 10.60.31.74 with HTTP; Wed, 4 Sep 2013 15:50:59 -0700 (PDT)
In-Reply-To: <CAL02cgRVH4ZswzOXOCAG=g4_HtRJpKcnbPEsvP=TTadOkEuK8A@mail.gmail.com>
References: <4E1F6AAD24975D4BA5B16804296739436C2EA801@TK5EX14MBXC291.redmond.corp.microsoft.com> <CAL02cgRvnE+TwJxfxr_s5pdHjcxr5Z9zvTKxZKMTWKDvozeunQ@mail.gmail.com> <4E1F6AAD24975D4BA5B16804296739436C2EB1D4@TK5EX14MBXC291.redmond.corp.microsoft.com> <CAL02cgRVH4ZswzOXOCAG=g4_HtRJpKcnbPEsvP=TTadOkEuK8A@mail.gmail.com>
Date: Wed, 04 Sep 2013 18:50:59 -0400
Message-ID: <CAL02cgRmw8Fvs81oa_Ast41Xw7w88T7rK__tmHZN9WtE1CCQSg@mail.gmail.com>
From: Richard Barnes <rlb@ipv.sx>
To: Mike Jones <Michael.Jones@microsoft.com>
Content-Type: multipart/alternative; boundary="001a11c2d6a098405604e596a338"
Cc: "jose@ietf.org" <jose@ietf.org>
Subject: Re: [jose] Text about applications and "alg":"none"
X-BeenThere: jose@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Javascript Object Signing and Encryption <jose.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jose>, <mailto:jose-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/jose>
List-Post: <mailto:jose@ietf.org>
List-Help: <mailto:jose-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jose>, <mailto:jose-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 04 Sep 2013 22:51:11 -0000

Also, note this text needs to appear in JWS, not JWA, since it's a general
requirement on JWS implementations.  So in addition to requiring
implementations to be unnecessarily complex, it also breaks the clean
separation between those documents.


On Wed, Sep 4, 2013 at 6:45 PM, Richard Barnes <rlb@ipv.sx> wrote:

> I think it's important to emphasize that an implementation MUST NOT allow
> a global setting.  In fact, I would argue that if "none" is in the
> acceptable algorithm list, it MUST be the only thing in the list.  Any
> other way, and you end up with downgrade.
>
> --Richard
>
>
> On Tue, Sep 3, 2013 at 6:47 PM, Mike Jones <Michael.Jones@microsoft.com>wrote:
>
>>  Your proposed text seems overly verbose.  In particular, I believe
>> you’ll find that the text I proposed already means the same thing / modulo
>> the difference between RECOMMENDED and MUST.  If the WG wants a MUST we
>> could do that instead of RECOMMENDED.  We can discuss that on tomorrow’s
>> call.****
>>
>> ** **
>>
>> The correspondence is as follows:****
>>
>> Your sentence 1 is covered in my sentence 1.****
>>
>> Your sentence 2 is covered in my sentence 1.****
>>
>> Your sentence 3 is covered in my sentences 1 & 2.  In particular, the
>> “per-object basis” is already covered by “in a JWS object”.  (If it were
>> not on a per-object basis, it would have said something like “in all JWS
>> objects”.****
>>
>> ** **
>>
>>                                                                 Cheers,**
>> **
>>
>>                                                                 -- Mike**
>> **
>>
>> ** **
>>
>> *From:* Richard Barnes [mailto:rlb@ipv.sx]
>> *Sent:* Tuesday, September 03, 2013 1:33 PM
>> *To:* Mike Jones
>> *Cc:* jose@ietf.org
>> *Subject:* Re: [jose] Text about applications and "alg":"none"****
>>
>> ** **
>>
>> This text is still far too weak, and does not reflect what I remember EKR
>> saying (in particular, there is no MUST).  It does not address the attack
>> where an application may, in general, be willing to accept both signed and
>> unsigned content, but each in specific contexts.  Proposed text:****
>>
>> ** **
>>
>> """****
>>
>> JWS implementations MUST provide an interface for applications to specify
>> a list of "alg" values that are acceptable for the validation of a given
>> JWS object.  JWS implementations MUST NOT indicate that a JWS object is
>> valid if the "alg" value for the object is "none", unless the application
>> has specifically indicated that the value "none" is acceptable for the
>> particular JWS object being validated.  Applications using "none" MUST
>> indicate support on a per-object basis, in order to avoid downgrade attacks
>> that arise if more broadly-applicable preferences are specified.****
>>
>> """****
>>
>> ** **
>>
>> I continue to believe that this is far too subtle, and that applications
>> are very likely to get it wrong.  It is far simpler and safer to require
>> that a JWS implementation MUST reject an object with "alg":"none", and have
>> another content type for unsigned content.****
>>
>> ** **
>>
>> Also, if "none" is going to remain, then it needs to be OPTIONAL.  Given
>> all the above limitations, I don't see how you could justify it being
>> mandatory.****
>>
>> ** **
>>
>> --Richard****
>>
>> ** **
>>
>> ** **
>>
>> On Tue, Sep 3, 2013 at 2:02 PM, Mike Jones <Michael.Jones@microsoft.com>
>> wrote:****
>>
>> I took an action item during the last call to write text along the lines
>> suggested by ekr about applications and "alg":"none".  I propose that the
>> following text be included:****
>>
>>  ****
>>
>> It is RECOMMENDED that libraries provide applications a means of
>> specifying the list of acceptable algorithms used in a JWS object in a way
>> that causes inputs using algorithms outside the specified set to be
>> rejected.  In particular, it is intended for applications to use this
>> mechanism to exclude accepting inputs using "alg":"none" in security
>> contexts where non-integrity protected inputs are not acceptable.****
>>
>>  ****
>>
>> Feedback/proposed wording refinements welcomed.****
>>
>>  ****
>>
>>                                                                 -- Mike**
>> **
>>
>>  ****
>>
>>
>> _______________________________________________
>> jose mailing list
>> jose@ietf.org
>> https://www.ietf.org/mailman/listinfo/jose****
>>
>> ** **
>>
>
>