Re: [OAUTH-WG] OAuth Security Topics -- Recommend authorization code instead of implicit

Nat Sakimura <n-sakimura@nri.co.jp> Tue, 04 December 2018 00:59 UTC

Return-Path: <sakimura@gmail.com>
X-Original-To: oauth@ietfa.amsl.com
Delivered-To: oauth@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 57446130DCE for <oauth@ietfa.amsl.com>; Mon, 3 Dec 2018 16:59:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.647
X-Spam-Level:
X-Spam-Status: No, score=-1.647 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
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 0TY247Ppfqcq for <oauth@ietfa.amsl.com>; Mon, 3 Dec 2018 16:59:30 -0800 (PST)
Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (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 0F797130DBE for <oauth@ietf.org>; Mon, 3 Dec 2018 16:59:30 -0800 (PST)
Received: by mail-wm1-f44.google.com with SMTP id n190so5353919wmd.0 for <oauth@ietf.org>; Mon, 03 Dec 2018 16:59:29 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=D2jW0z7VJYoKIlNIXXJtIzROqibRnufMGMnSuALTuS4=; b=q+PL6CSNkm1R2j5el+sD0OMDs744wyyfAzvh7lagfspGojewiMKSxgKRF5aLkLaIXN N4W9dGYNVBeJtsC+PIAScW9tZktzT8ZALDs5xPRDYWDDQ4A+yb+gWAcNpC/aBkOpAO9c o5Enw5ICAUeBGl7oi9dU64rcwta7NvZxbytzD5lofPnubVVqCjfihD8pcAoauYvXwTnr u7fOERTlaBCbbDSeVHXHtyW9CYG6aiZpBEKCapwWUQGKDUsmXMQl6a59TwEbDO2M859c LN9FI35ik/v5mc5ve9B9zJIxARB4s2b7p6IRmBFW/HrJ6sqjJuIb1VKMLmXBpBd5A9EC eVNw==
X-Gm-Message-State: AA+aEWZGoou87Z2wbzShRyNZ1OLRsnXw7GrcOZwbZ3mwjy2F9IFkv8+s W3eRJgTgN0KEV3NlP1QXhfRPwAtMmCaki+DrU9Y=
X-Google-Smtp-Source: AFSGD/Wb4KTYFMKX4CwQM5bonsRDyITqnjZSl8qu5oa4SnbotbJf9N8ohTXjJOFRQfgUWsz7nenlI3lC3O1uA71r/QY=
X-Received: by 2002:a1c:16ce:: with SMTP id 197mr964219wmw.126.1543885168067; Mon, 03 Dec 2018 16:59:28 -0800 (PST)
MIME-Version: 1.0
References: <VI1PR0801MB211266BA6F6E06FFB3081425FAD80@VI1PR0801MB2112.eurprd08.prod.outlook.com> <CAD9ie-v3onmKc498cg_-a0AD58ZV=aZANtz=UV+Q0f=9N3nSzQ@mail.gmail.com> <OSBPR01MB2869E83F37046C7FCD4463DDF9D10@OSBPR01MB2869.jpnprd01.prod.outlook.com> <9FF3F589-0423-4CBC-B323-481F771D097C@lodderstedt.net> <OSBPR01MB28690F77DFFB2A85BDB83FBAF9D10@OSBPR01MB2869.jpnprd01.prod.outlook.com> <D6C66E6A-687B-4997-B830-980BE25994C2@lodderstedt.net> <CAANoGhL9aD75AV9QQRdeGE1=4ynjTnULNVr0PXXvt20ipsb4Rw@mail.gmail.com> <FE51CE20-7A49-4A13-A180-6A7C481F3965@lodderstedt.net> <CAGBSGjrzeeR5QQ=nA=gTj0q7sRvRVc0DDacbxB+ED87ymHSOuA@mail.gmail.com> <VI1PR0801MB21120AA6CC9437E237F481A2FAAC0@VI1PR0801MB2112.eurprd08.prod.outlook.com> <TY2PR01MB2876FAC5642380820BCD4BCCF9AC0@TY2PR01MB2876.jpnprd01.prod.outlook.com> <VI1PR0801MB211297F33296CA377A40BFFEFAAE0@VI1PR0801MB2112.eurprd08.prod.outlook.com>
In-Reply-To: <VI1PR0801MB211297F33296CA377A40BFFEFAAE0@VI1PR0801MB2112.eurprd08.prod.outlook.com>
From: Nat Sakimura <n-sakimura@nri.co.jp>
Date: Tue, 04 Dec 2018 09:59:15 +0900
Message-ID: <CABzCy2Dj63YhuumhW+-HSPBDujD6ogs2Q_WLkVxQ+D8cFneRng@mail.gmail.com>
To: Hannes Tschofenig <Hannes.Tschofenig@arm.com>
Cc: Aaron Parecki <aaron@parecki.com>, Torsten Lodderstedt <torsten@lodderstedt.net>, fett@danielfett.de, oauth <oauth@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000044b05057c27c7d3"
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/Ps8HsrIobIPc5eUM0t1NjBfsu8k>
Subject: Re: [OAUTH-WG] OAuth Security Topics -- Recommend authorization code instead of implicit
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: OAUTH WG <oauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/oauth>, <mailto:oauth-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/oauth/>
List-Post: <mailto:oauth@ietf.org>
List-Help: <mailto:oauth-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/oauth>, <mailto:oauth-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 04 Dec 2018 00:59:35 -0000

Hannes,

As long as the client is a server-based application, MTLS works fine, and
my use-case is exactly that.

On the side note: perhaps we may want to take the remaining portion of JPOP
up in the near future, as its usefulness is there as Tony pointed out at
the time we ported the certs based sender constraint to MTLS in the WG,
e.g., when the network after TLS has been terminated cannot be entirely
trusted.

Best,

Nat

On Mon, Dec 3, 2018 at 6:39 PM Hannes Tschofenig <Hannes.Tschofenig@arm.com>
wrote:

> (chair hat off)
>
>
>
> Hi Nat,
>
>
>
> Section 3.8.1.2
> <https://tools.ietf.org/html/draft-ietf-oauth-security-topics-10#section-3.8.1.2>
> of draft-ietf-oauth-security-topics-10  lists the following options for
> implementing sender constraint tokens:
>
>    - Token Binding
>    - MTLS
>    - Signed HTTP Requests
>    - JPOP
>
>
>
> JPOP is an individual submission. The work on signed HTTP requests
> stalled. Token Binding, as we learned at the last IETF meeting, has serious
> deployment problems.
>
> That essentially leaves us with MTLS. I am, however, not entirely sure
> MTLS works well with the implicit grant.
>
>
>
> My conclusion so far from the discussion is that implicit grant cannot be
> secured practically.
>
>
>
> For IoT, as I mentioned, the story does not look so grim since with IoT
> protocols, CoAP or MQTT, one can still use TLS as well as application layer
> security. (At least that’s the current understanding.)
>
>
>
> I am happy to get corrected.
>
>
>
> Ciao
>
> Hannes
>
>
>
>
>
>
>
> *From:* n-sakimura <n-sakimura@nri.co.jp>
> *Sent:* Saturday, December 1, 2018 10:44 AM
> *To:* Hannes Tschofenig <Hannes.Tschofenig@arm.com>; Aaron Parecki <
> aaron@parecki.com>; Torsten Lodderstedt <torsten@lodderstedt.net>
> *Cc:* Daniel Fett <fett@danielfett.de>; IETF oauth WG <oauth@ietf.org>
> *Subject:* Re: [OAUTH-WG] OAuth Security Topics -- Recommend
> authorization code instead of implicit
>
>
>
> OAuth MTLS has been implemented in Banking industry so we have at least an
> alternative.
>
>
>
> Sender Constrained includes cases where it is not key bound but name bound
> as I understand and it may have some utility so we f there are doubts,
> mentioning the both may be good.
>
>
>
> Outlook for iOS <https://aka.ms/o0ukef> を入手
>
>
> ------------------------------
>
> *差出人**:* OAuth <oauth-bounces@ietf.org> (Hannes Tschofenig <
> hannes.tschofenig@arm.com> の代理)
> *送信日時**:* 土曜日, 12月 1, 2018 6:07 午後
> *宛先**:* Aaron Parecki; Torsten Lodderstedt
> *Cc:* Daniel Fett; IETF oauth WG
> *件名**:* Re: [OAUTH-WG] OAuth Security Topics -- Recommend authorization
> code instead of implicit
>
>
> I agree with Aaron here and I think Section 3.8.1.2
> <https://tools.ietf.org/html/draft-ietf-oauth-security-topics-10#section-3.8.1.2>
> of draft-ietf-oauth-security-topics-10  already does a pretty good job.
>
> I was, however, wondering about the subtle implication of the requirement
> for sender constrained tokens. My understanding of the token binding
> discussion, which is one of the ways to provide sender-constrained tokens,
> is that we don’t have good faith in seeing deployment anytime soon. Hence,
> we are essentially (reading in between the lines of Section 3.8.1.2) saying
> that you cannot use implicit grant in a practical setup for the web*.
>
>
>
> Am I misunderstanding it?
>
>
>
> Ciao
>
> Hannes
>
>
>
> PS: The IoT case is likely different.
>
>
>
> *From:* OAuth <oauth-bounces@ietf.org> *On Behalf Of *Aaron Parecki
> *Sent:* Saturday, December 1, 2018 3:18 AM
> *To:* Torsten Lodderstedt <torsten@lodderstedt.net>
> *Cc:* Daniel Fett <fett@danielfett.de>; IETF oauth WG <oauth@ietf.org>
> *Subject:* Re: [OAUTH-WG] OAuth Security Topics -- Recommend
> authorization code instead of implicit
>
>
>
> +1
>
>
>
> I would also like to ensure there is a clear definition of "sender
> constrained" tokens in this BCP.
>
>
>
> Aaron
>
>
>
>
>
> On Thu, Nov 29, 2018 at 10:06 AM Torsten Lodderstedt <
> torsten@lodderstedt.net> wrote:
>
> Hi all,
>
> based on your feedback on the list and off list, Daniel and I polished the
> text. That’s our proposal:
>
> —
> In order to avoid these issues, clients MUST NOT use the implicit
> grant (response type "token") or any other response type issuing access
> tokens in the authorization response, such as "token id_token" and "code
> token id_token“,
> unless the issued access tokens are sender-constrained and access token
> injection in
> the authorization response is prevented.
> —
>
> Explantation:
> - we wanted to have the right balance between a generic definition of the
> response types we do not recommend/allow to be used and a
> concrete/actionable list of the affected response types.
> - we changed from SHOULD NOT to MUST NOT as suggested by Nat and supported
> by William
>
> We look forward to seeing your feedback.
>
> kind regards,
> Torsten.
>
> > Am 29.11.2018 um 15:15 schrieb John Bradley <ve7jtb@ve7jtb.com>:
> >
> > I am ok with that.
> >
> > On Wed, Nov 28, 2018, 8:03 PM Torsten Lodderstedt <
> torsten@lodderstedt.net wrote:
> >
> > > Am 28.11.2018 um 23:50 schrieb n-sakimura <n-sakimura@nri.co.jp>:
> > >
> > > That works.
> >
> > Good!
> >
> > I just realized this text has an issue with „token“ (only). It would
> allow „token“ to be used if the token would sender constrained. This
> completely ignores the fact implicit also shall be abandoned because of its
> vulnerability for access token injection.
> >
> > I therefore propose a modified text:
> >
> >    In order to avoid these issues, Clients SHOULD NOT use the implicit
> >    grant. Furthermore, clients SHOULD only use other response types
> causing the authorization server to
> >    issue an access token in the authorization response, if the
> particular response type detects access token
> >    injection and the issued access tokens are sender-constrained.
> >
> > Or we just state:
> >
> >   In order to avoid these issues, Clients SHOULD NOT use the response
> type „token". The response types
> > „token id_token“ and „code token id_token“ SOULD NOT be used, if the
> issued access tokens are not
> > sender-constrained.
> >
> > >
> > > In fact, I would further go and say MUST NOT but that probably is too
> much for a security consideration.
> > >
> >
> > Mike suggested to go with a SHOULD NOT to get the message out but give
> implementors time to move/change.
> >
> > > Best,
> > >
> > > Nat
> > >
> > > Nat Sakimura / n-sakimura@nri.co.jp / +81-90-6013-6276
> > >
> > >
> このメールには、本来の宛先の方のみに限定された機密情報が含まれている場合がございます。お心あたりのない場合は、誠に申し訳ございませんが、送信者までお知らせ頂き、また受信されたメールは削除してくださいますようお願い申し上げます。
> > >
> > > PLEASE READ :This e-mail is confidential and intended for the named
> recipient only.
> > > If you are not an intended recipient, please notify the sender and
> delete this e-mail.
> > >
> > > 差出人: Torsten Lodderstedt <torsten@lodderstedt.net>
> > > 送信日時: 水曜日, 11月 28, 2018 11:38 午後
> > > 宛先: n-sakimura
> > > Cc: Dick Hardt; Hannes Tschofenig; oauth@ietf.org
> > > 件名: Re: [OAUTH-WG] OAuth Security Topics -- Recommend authorization
> code instead of implicit
> > >
> > > Hi Nat,
> > >
> > >> Am 28.11.2018 um 21:10 schrieb n-sakimura <n-sakimura@nri.co.jp>:
> > >>
> > >> I would support
> > >>
> > >> 1) clearly defining Implicit as the flow that returns access token
> from the authorization endpoint ( some people confuses implicit as the flow
> that returns ID Token in the front channel)
> > >
> > > That’s the current text:
> > >
> > > In order to avoid these issues, Clients SHOULD NOT use the implicit
> > >    grant or any other response type causing the authorization server to
> > >    issue an access token in the authorization response.
> > >
> > > What would you like to modify?
> > >
> > >>
> > >> 2) Banning the returning of the access token that are not sender
> constrained from the authorization endpoint
> > >
> > > In order to avoid these issues, Clients SHOULD NOT use the implicit
> > >    grant or any other response type causing the authorization server to
> > >    issue an access token in the authorization response, if this access
> tokens is not sender-constraint.
> > >
> > > What about this?
> > >
> > > kind regards,
> > > Torsten.
> > >
> > >>
> > >> Best,
> > >>
> > >> Nat
> > >>
> > >>
> > >> Outlook for iOS を入手
> > >>
> > >> 差出人: OAuth <oauth-bounces@ietf.org> (Dick Hardt <dick.hardt@gmail.com>
> の代理)
> > >> 送信日時: 水曜日, 11月 28, 2018 8:58 午後
> > >> 宛先: Hannes Tschofenig
> > >> Cc: oauth@ietf.org
> > >> 件名: Re: [OAUTH-WG] OAuth Security Topics -- Recommend authorization
> code instead of implicit
> > >>
> > >> +1
> > >>
> > >> While there are various mechanisms to alleviate some of the issues of
> implicit, I don't think we can recommend specifics, and there may be future
> ones in the future. I think we all agree that implicit without any
> mitigation is problematic.
> > >>
> > >> How about we recommend against using implicit alone?
> > >>
> > >>
> > >> On Mon, Nov 19, 2018 at 2:34 AM Hannes Tschofenig <
> Hannes.Tschofenig@arm.com> wrote:
> > >> Hi all,
> > >>
> > >> The authors of the OAuth Security Topics draft came to the conclusion
> that it is not possible to adequately secure the implicit flow against
> token injection since potential solutions like token binding or JARM are in
> an early stage of adoption. For this reason, and since CORS allows
> browser-based apps to send requests to the token endpoint, Torsten
> suggested to use the authorization code instead of the implicit grant in
> call cases in his presentation (see
> https://datatracker.ietf.org/meeting/103/materials/slides-103-oauth-sessb-draft-ietf-oauth-security-topics-01
> ).
> > >>
> > >> A hum in the room at IETF#103 concluded strong support for his
> recommendations. We would like to confirm the discussion on the list.
> > >>
> > >> Please provide a response by December 3rd.
> > >>
> > >> Ciao
> > >>
> > >> Hannes & Rifaat
> > >>
> > >>
> > >>
> > >> IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose the
> contents to any other person, use it for any purpose, or store or copy the
> information in any medium. Thank you.
> > >> _______________________________________________
> > >> OAuth mailing list
> > >> OAuth@ietf.org
> > >> https://www.ietf.org/mailman/listinfo/oauth
> > >> _______________________________________________
> > >> OAuth mailing list
> > >> OAuth@ietf.org
> > >> https://www.ietf.org/mailman/listinfo/oauth
> > >
> >
> > _______________________________________________
> > OAuth mailing list
> > OAuth@ietf.org
> > https://www.ietf.org/mailman/listinfo/oauth
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
>
> --
>
> ----
>
> Aaron Parecki
>
> aaronparecki.com
>
> @aaronpk <http://twitter.com/aaronpk>
>
>
>
> IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose the
> contents to any other person, use it for any purpose, or store or copy the
> information in any medium. Thank you.
> IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose the
> contents to any other person, use it for any purpose, or store or copy the
> information in any medium. Thank you.
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
>


-- 
Nat Sakimura (=nat)
http://www.sakimura.org/en/
http://twitter.com/_nat_en