Re: [OAUTH-WG] New Version Notification for draft-meyerzuselhausen-oauth-iss-auth-resp-01.txt

Takahiko Kawasaki <taka@authlete.com> Fri, 06 November 2020 21:34 UTC

Return-Path: <taka@authlete.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 902533A0EB9 for <oauth@ietfa.amsl.com>; Fri, 6 Nov 2020 13:34:42 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.896
X-Spam-Level:
X-Spam-Status: No, score=-1.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=authlete-com.20150623.gappssmtp.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 0L0Ff0XQkIiO for <oauth@ietfa.amsl.com>; Fri, 6 Nov 2020 13:34:39 -0800 (PST)
Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com [IPv6:2a00:1450:4864:20::42b]) (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 CA13E3A0E52 for <oauth@ietf.org>; Fri, 6 Nov 2020 13:34:33 -0800 (PST)
Received: by mail-wr1-x42b.google.com with SMTP id w14so2743122wrs.9 for <oauth@ietf.org>; Fri, 06 Nov 2020 13:34:33 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=authlete-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=cAxiV8IScBvxdgm/bfZlkOjnUAWN6fq10UOB/fcf5to=; b=pLPdy3OMPZyDMnMpHGOPJRu7TK6BJVYa67DlwiHw8ve/fcys7dJgKH1VD3A26dVmOv yBqpH7llHO5jASlin7qQORrY4xH/Z5wAwaqJob1NRuUE0M7HbewPXXlTkBBt3LN8ZR0T WbN80pqY+iGrodIo3rkBPX7UzQ8b+TA+rhNXwf4TuDAf8pvgJ7JzRMK9+dlVsnGeyzg+ FFsxVUNcWRkzVpuM0yX9VAnH4NJp4SwkFYLI41e9lqO2E8dPkZX3LgjJLiqIC1gFgcZL FRhZPzgyAAsU5aOXzprNqZqxCV8vzFb8Kr8vHo/t17urgwI4KxnHONOk1XwgF2yqsEfN 1QaQ==
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; bh=cAxiV8IScBvxdgm/bfZlkOjnUAWN6fq10UOB/fcf5to=; b=GQLDbvFdg1V/J+7lfJEyFXBxNldUSXZI7x0Z4eUkZUdOnFKaF0SX35hgyOblB1kT+K s6ja/kLZU1gHXiDam/Ri6ax3LgizvoKCM452Svdgkzr7dYAZRcV5gsdOGKIeQu+8GiU4 l1G1BiLO+00R9zmKhmBhUo7NSBjcCmbRevJ+2R/ds4Mfq9fkLZIL7twElRPm7AQxwKYq fkxxOWP+WQCjQJKprf0IrZ0nHVhdF4Hrk7ZToIEk9JbsTGyzaTapt/mSBEmztFe8n3Wf ojjIjERwW2oO7qAf+BmqBtE5UwGJ209INbQyhRuzZtBkxBD3E0Ez7SkEIBgiNF0Km2q8 AW4w==
X-Gm-Message-State: AOAM5302Ga16dNmidwx5Mh8Xt61X3m7t41olHiVUDC52weZVyc7KCeJo n6fZ0Hsm3YBmF2kzY0SRf7wWfYADmnoH7evHpUVFYwCR/YRSlg==
X-Google-Smtp-Source: ABdhPJwGOdFYf55Hs/pyflgxB8JgS5PZpaLK4IE3KT0nzlTletH38AhHr1ipfzdEz3tvyOfGu7ULKB7zHOeS4ukQjsE=
X-Received: by 2002:adf:ea0b:: with SMTP id q11mr4731254wrm.80.1604698471724; Fri, 06 Nov 2020 13:34:31 -0800 (PST)
MIME-Version: 1.0
References: <160430230298.9780.18195581822860811409@ietfa.amsl.com> <fc75c5d7-49b2-7760-c98a-8dd6ca3d09eb@hackmanit.de> <6f382f32-31ae-9907-4fd0-a88d5ae978bb@connect2id.com> <CAHdPCmNMTse_VJ4moYpeS+CCxrEDZTMcRL-dbNWUU_wPmMcZyw@mail.gmail.com> <ddae11a3-fbeb-ac48-0e7c-ad22056aab34@connect2id.com> <69B0850B-D863-4792-905E-54EE20823323@authlete.com> <CAHdPCmOOeRuvgJe6SPvC9bPZmZ+0hdgJbfs3tRsqY5cRvhRhKw@mail.gmail.com>
In-Reply-To: <CAHdPCmOOeRuvgJe6SPvC9bPZmZ+0hdgJbfs3tRsqY5cRvhRhKw@mail.gmail.com>
From: Takahiko Kawasaki <taka@authlete.com>
Date: Sat, 07 Nov 2020 06:34:20 +0900
Message-ID: <CAHdPCmMHh=fC+T+frKNDowPW4+U3hrCsgNhkH4NENyy1_hJ_Fw@mail.gmail.com>
To: oauth <oauth@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000006110de05b376faa1"
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/EjwKQg1uXXvNY5YPrC8umd0CtOI>
Subject: Re: [OAUTH-WG] New Version Notification for draft-meyerzuselhausen-oauth-iss-auth-resp-01.txt
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: Fri, 06 Nov 2020 21:34:48 -0000

I implemented the draft quickly and found no big hurdle for authorization
server implementations. The current snapshot of my implementation does not
add the `iss` parameter when JARM is used. However, for interoperability, I
feel that the spec should describe expected behaviors when a JWT is
included in an authorization response. The following is an implementer's
comment for some cases.

Case 1: When JARM is used

An `iss` claim is included in the response JWT as one of top-level entries
together with response parameters. It is not so unnatural to regard the
`iss` claim as a response parameter. Conclusion would be "When JARM is
used, the `iss` parameter is not necessary."

Case 2: When an ID token is issued

It is unnatural to regard the `iss` claim in an ID token as a response
parameter. However, because FAPI Part 2 has already been using an ID token
as detached signature for integrity protection, it would be difficult to
find a convincing reason to prohibit using the `iss` claim in an ID token
as a countermeasure to mix-up attacks. Conclusion would be "When an ID
token is issued, the `iss` parameter is not necessary."

Case 3: When an unencrypted JWT access token is issued

It is technically possible to use the `iss` claim in an unencrypted JWT
access token as the `iss` parameter. However, requiring the client to check
the `iss` claim means "The access token is no longer opaque to the client."
Conclusion would be "Even when an access token is issued and its format is
JWT, the `iss` parameter is necessary."

BTW, I found that a certain system raises an error when an unknown response
parameter (that is, the `iss` parameter) is included in error authorization
responses. To ask the administrator of the system to regard the `iss`
parameter as a known one, at least the spec draft needs to be adopted by
the community as a working draft. I hope that "call for adoption" for the
draft will be conducted soon.

Best Regards,
Taka

On Wed, Nov 4, 2020 at 4:46 AM Takahiko Kawasaki <taka@authlete.com> wrote:

> It sounds that the Security Considerations section or somewhere
> appropriate should have a paragraph like below.
>
> When an authorization response includes a JWT whose `iss` claim represents
> the issuer identifier of the authorization server, the `iss` claim can be
> used as a substitute for the `iss` parameter. Therefore, such authorization
> response does not have to have the `iss` parameter outside the JWT
> separately. Examples of such JWTs include the value of the `id_token`
> parameter in OIDC and the value of `response` parameter in JARM.
>
> Taka
>
> On Tue, Nov 3, 2020 at 10:46 PM Joseph Heenan <joseph@authlete.com> wrote:
>
>> I agree, it is in redundant in the JARM case.
>>
>> I find the text in
>> https://www.ietf.org/archive/id/draft-meyerzuselhausen-oauth-iss-auth-resp-01.html#name-security-considerations
>> (the 4th paragraph where JARM & JWTs) are mentioned a bit confusing - I
>> think it would be good to say something along the lines of:
>>
>> Although integrity protection is not necessary to prevent mixup, any
>> authorization response method that includes a JWT with an ‘iss' (for
>> example, JARM or OIDC hybrid flow) will prevent the attack (assuming the
>> client is validating the iss).
>>
>>
>> I’m not entirely sure I understand what "MUST NOT allow multiple
>> authorization servers to return the same issuer identifier during
>> registration” means as I don’t think https://tools.ietf.org/html/rfc7591
>> returns the issuer?
>>
>> It might be clearer to say something like “When
>> https://tools.ietf.org/html/rfc8414 is used the client MUST implement
>> the validation described in
>> https://tools.ietf.org/html/rfc8414#section-3.3. When authorization
>> server details can be manually configured in the client, the client must
>> verify that all issuer values are unique.” (Or at least something along
>> those lines, I’m sure my wording can be improved. But if the client is
>> correctly implementing rfc8414 or OIDC discovery [and does not have any
>> manually configured authorization servers] then there’s no requirement for
>> any further checks that the issuer is unique.)
>>
>> Joseph
>>
>>
>> On 3 Nov 2020, at 07:01, Vladimir Dzhuvinov <vladimir@connect2id.com>
>> wrote:
>>
>> This can potentially occur. If JARM is used "iss" becomes redundant. To
>> me JARM is an "enhanced" iss.
>>
>> If both are included a sensible client should make sure the iss and the
>> JARM iss match.
>>
>> My suggestion is to not require iss when a JARM is present, but in case
>> both do occur to have the client check both.
>>
>> Vladimir
>> On 02/11/2020 22:34, Takahiko Kawasaki wrote:
>>
>> Hi Karsten,
>>
>> The specification mentions JARM. Does this specification require the iss
>> response parameter even when JARM is used? That is, should an authorization
>> response look like below?
>>
>> HTTP/1.1 302 Found
>> Location: https://client.example.com/cb?response={JWT}&iss={ISSUER}
>>
>> Or, can the iss response parameter be omitted when JARM is used?
>>
>> A small feedback for the 3rd paragraph in Section 4:
>> s/identifes/identifies/
>>
>> Best Regards,
>> Taka
>>
>>
>> On Tue, Nov 3, 2020 at 3:13 AM Vladimir Dzhuvinov <
>> vladimir@connect2id.com> wrote:
>>
>>> Thanks Karsten, looks good to me now, no further comments.
>>>
>>> Vladimir
>>> On 02/11/2020 09:54, Karsten Meyer zu Selhausen wrote:
>>>
>>> Hi all,
>>>
>>> Daniel and I published a new version of the "iss" response parameter
>>> draft to address the feedback from the WG.
>>>
>>> Changes in -01:
>>>
>>>    - Incorporated first WG feedback
>>>    - Clarifications for use with OIDC
>>>    - Added note that clients supporting just one AS are not vulnerable
>>>    - Renamed metadata parameter
>>>    - Various editorial changes
>>>
>>>
>>> We would like to ask you for further feedback and comments on the new
>>> draft version.
>>>
>>> Best regards,
>>> Karsten
>>>
>>> -------- Forwarded Message --------
>>> Subject: New Version Notification for
>>> draft-meyerzuselhausen-oauth-iss-auth-resp-01.txt
>>> Date: Sun, 01 Nov 2020 23:31:42 -0800
>>> From: internet-drafts@ietf.org
>>> To: Karsten Meyer zu Selhausen <karsten.meyerzuselhausen@hackmanit.de>
>>> <karsten.meyerzuselhausen@hackmanit.de>, Karsten zu Selhausen
>>> <karsten.meyerzuselhausen@hackmanit.de>
>>> <karsten.meyerzuselhausen@hackmanit.de>, Daniel Fett
>>> <mail@danielfett.de> <mail@danielfett.de>
>>>
>>>
>>> A new version of I-D, draft-meyerzuselhausen-oauth-iss-auth-resp-01.txt
>>> has been successfully submitted by Karsten Meyer zu Selhausen and posted
>>> to the
>>> IETF repository.
>>>
>>> Name: draft-meyerzuselhausen-oauth-iss-auth-resp
>>> Revision: 01
>>> Title: OAuth 2.0 Authorization Server Issuer Identifier in Authorization
>>> Response
>>> Document date: 2020-11-01
>>> Group: Individual Submission
>>> Pages: 10
>>> URL:
>>> https://www.ietf.org/archive/id/draft-meyerzuselhausen-oauth-iss-auth-resp-01.txt
>>> Status:
>>> https://datatracker.ietf.org/doc/draft-meyerzuselhausen-oauth-iss-auth-resp/
>>> Html:
>>> https://www.ietf.org/archive/id/draft-meyerzuselhausen-oauth-iss-auth-resp-01.html
>>> Htmlized:
>>> https://tools.ietf.org/html/draft-meyerzuselhausen-oauth-iss-auth-resp-01
>>> Diff:
>>> https://www.ietf.org/rfcdiff?url2=draft-meyerzuselhausen-oauth-iss-auth-resp-01
>>>
>>> Abstract:
>>> This document specifies a new parameter "iss" that is used to
>>> explicitly include the issuer identifier of the authorization server
>>> in the authorization response of an OAuth authorization flow. If
>>> implemented correctly, the "iss" parameter serves as an effective
>>> countermeasure to "mix-up attacks".
>>>
>>>
>>>
>>> Please note that it may take a couple of minutes from the time of
>>> submission
>>> until the htmlized version and diff are available at tools.ietf.org.
>>>
>>> The IETF Secretariat
>>>
>>>
>>> --
>>> Karsten Meyer zu Selhausen
>>> IT Security Consultant
>>> Phone:	+49 (0)234 / 54456499
>>> Web:	https://hackmanit.de | IT Security Consulting, Penetration Testing, Security Training
>>>
>>> Does your OAuth or OpenID Connect implementation use PKCE to strengthen the security? Learn more about the procetion PKCE provides and its limitations in our new blog post:https://www.hackmanit.de/en/blog-en/123-when-pkce-cannot-protect-your-confidential-oauth-client
>>>
>>> Hackmanit GmbH
>>> Universitätsstraße 60 (Exzenterhaus)
>>> 44789 Bochum
>>>
>>> Registergericht: Amtsgericht Bochum, HRB 14896
>>> Geschäftsführer: Prof. Dr. Jörg Schwenk, Prof. Dr. Juraj Somorovsky, Dr. Christian Mainka, Dr. Marcus Niemietz
>>>
>>>
>>> _______________________________________________
>>> OAuth mailing listOAuth@ietf.orghttps://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
>>
>