Re: [OAUTH-WG] Call for Adoption - AS Issuer Identifier in Authorization Response
Karsten Meyer zu Selhausen <karsten.meyerzuselhausen@hackmanit.de> Wed, 09 December 2020 10:40 UTC
Return-Path: <karsten.meyerzuselhausen@hackmanit.de>
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 713C73A1CA7 for <oauth@ietfa.amsl.com>; Wed, 9 Dec 2020 02:40:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.088
X-Spam-Level:
X-Spam-Status: No, score=-2.088 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_FONT_LOW_CONTRAST=0.001, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=hackmanit.de
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 1DvE7ooPTNxk for <oauth@ietfa.amsl.com>; Wed, 9 Dec 2020 02:40:19 -0800 (PST)
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com [IPv6:2a00:1450:4864:20::329]) (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 71E783A1CA5 for <oauth@ietf.org>; Wed, 9 Dec 2020 02:40:18 -0800 (PST)
Received: by mail-wm1-x329.google.com with SMTP id k10so1006846wmi.3 for <oauth@ietf.org>; Wed, 09 Dec 2020 02:40:18 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hackmanit.de; s=google; h=to:cc:references:from:subject:message-id:date:user-agent :mime-version:in-reply-to; bh=uuTJpiZS8FpsiCaslCPl2CgNUN4NTGPYU56kZvWIZeI=; b=gtpWltpSf/ZQpoEYmVjDlcpJs6GByMedTm0B6HunSTg14GioyE1+VApYeWQqRS+1i6 3Ok8SyeTl+Lg9vnCSzlaM5ctdygufoOvZ0rXcOBNGDUXN1eseYtTFIC6UDkJ7cpvslm/ iYzO8Ns9T1UuM2CpTsBQdrQBn33ibNPOxIn0kpHXoOuUdjJLQZOBUkLSh6XDgDdJtGe6 BKXLQ2f7tJwXRKCwTSOxfa5ecsFZv+6XER0QrUY4rPn3S5hpWCzG51Tf5MdY0uJb0Hc6 kvnips+HF33AVc+PHcKYUNMbU/XjPceKS1RA13ckPicJUil4ShFsl1l3iXOvH/qoTwfi sOLg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:cc:references:from:subject:message-id:date :user-agent:mime-version:in-reply-to; bh=uuTJpiZS8FpsiCaslCPl2CgNUN4NTGPYU56kZvWIZeI=; b=pqVwb4pO0HLBXUBOfUeJReF0mBKl7nuOuz7mEyAJDNdKAg0sB9JPFhuIfhRq0xuN59 IO1JR46pN9oQ/E9DpCata0kt7wX3We5+fuOVeHL4aMyT/uDdjIS40nn6/3Rdv7kfdUQN kBrdrbdndnbCC29s/QrTBWKWSWm2LnA26/QXXlYaVRolcXSlpy7hl1kGNj5kRPq5xDY5 88UwK2ffyTSSmxDIb/HjjMMy9D9M9TsQgQ49F9rgrFWKW80w6JjWHJ3z+qSckLm2O4Rc 1QFhMqJOCvR7VfQ+cmUC3Qsu13HyKGqYJC+A5aQyewplL5UnDbNMzF2lBJsNaj9JGeDN 3poA==
X-Gm-Message-State: AOAM532eOzScrr0Mb4FiFUhNPXucJVQZFhtXKKYKRSIZRRYi0dgTeuCs IQRdKWci8zsnRy98kqabTLzdmxaRLUkbvQ==
X-Google-Smtp-Source: ABdhPJxfmGXqNa0YoZzVNUcBpMv/N7uOW735vrkW9ucmIQM4nM/wD5KkrZf2wdrUGGu4I993evPs3A==
X-Received: by 2002:a7b:c40b:: with SMTP id k11mr2095411wmi.36.1607510416091; Wed, 09 Dec 2020 02:40:16 -0800 (PST)
Received: from [192.168.178.22] (b2b-37-24-87-133.unitymedia.biz. [37.24.87.133]) by smtp.gmail.com with ESMTPSA id i9sm2917564wrs.70.2020.12.09.02.40.14 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 09 Dec 2020 02:40:14 -0800 (PST)
To: Warren Parad <wparad@rhosys.ch>
Cc: oauth <oauth@ietf.org>
References: <CADNypP9D1G94LuPcgczSVYL+0KyMYoAK_s3H4JZK80Bj2mJKtA@mail.gmail.com> <CAD9ie-t7OroYwPrTQtwTS3Reem9bM5PHcVZ7D_N=jSmd6O7UGw@mail.gmail.com> <CAJot-L1-dYLy_m_WZv=bEC=r0zWSdKNXBMOV6b9SD8VR-dZvJg@mail.gmail.com> <09d3639d-7d7e-9582-d728-cc223d21bcb6@hackmanit.de> <CAJot-L2FrMrxBGATVHd1DVwbqyMGoH7Dy1stP46vUVpEWrq21Q@mail.gmail.com>
From: Karsten Meyer zu Selhausen <karsten.meyerzuselhausen@hackmanit.de>
Message-ID: <7dacfb6c-4fca-5dda-8b4f-db5c8dadade1@hackmanit.de>
Date: Wed, 09 Dec 2020 11:40:13 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.5.1
MIME-Version: 1.0
In-Reply-To: <CAJot-L2FrMrxBGATVHd1DVwbqyMGoH7Dy1stP46vUVpEWrq21Q@mail.gmail.com>
Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="3D2K66SGM5183wG5pE72XF5wbTYVMBoa2"
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/uL1wPyuegi5DMYd1KYDuQzNx1PI>
Subject: Re: [OAUTH-WG] Call for Adoption - AS Issuer Identifier in Authorization Response
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: Wed, 09 Dec 2020 10:40:23 -0000
The attacker being able to manipulate the first request is an additional precondition for the mix-up attack variant we used as an example. The precondition is based on the attacker A2 defined in section 3 <https://tools.ietf.org/html/draft-ietf-oauth-security-topics-16#section-3> of the security BCP. There are other mix-up variants which work without this precondition. One variant is described in the security BCP <https://tools.ietf.org/html/draft-ietf-oauth-security-topics-16#section-4.4.1>, for example: > *Mix-Up Without Interception*: A variant of the above attack works > even if the first request/response pair cannot be intercepted, for > example, because TLS is used to protect these messages: Here, it > is assumed that the user wants to start the grant using A-AS (and > not H-AS, see Attacker A1). After the client redirected the user > to the authorization endpoint at A-AS, the attacker immediately > redirects the user to H-AS (changing the client ID to "7ZGZldHQ"). > Note that a vigilant user might at this point detect that she > intended to use A-AS instead of H-AS. On 09.12.2020 10:47, Warren Parad wrote: > Okay, it wasn't clear that the user agent was required to be > compromised for this to be a problem. Here's where it breaks down for > me, if the attacker can manipulate the first request, why would they > not be able to manipulate the AS where the Auth Response code is > sent? Unless we can guarantee there is an attack surface that would > only affect the authorization request AS selection and not the auth > response, the solution the draft lacks purpose for me. > > > > Warren Parad > > Founder, CTO > > Secure your user data and complete your authorization architecture. > Implement Authress <https://bit.ly/37SSO1p>. > > > On Wed, Dec 9, 2020 at 8:55 AM Karsten Meyer zu Selhausen > <karsten.meyerzuselhausen@hackmanit.de > <mailto:karsten.meyerzuselhausen@hackmanit.de>> wrote: > > Hi Warren, > > I think there is some misunderstanding on how mix-up attacks work. > I will try to clear things up. > > Have a look at the following mix-up attack example (slide 4 > <https://datatracker.ietf.org/meeting/interim-2020-oauth-17/materials/slides-interim-2020-oauth-17-sessa-as-issuer-identifier-in-authorization-response-00#page=4> > from the interim meeting): > > I marked the important parts: > > * In step 1 the client stores the attacker's AS (A-AS) as the > selected AS. > * Step 5: The authorization response is issued by the honest *(= > not compromised)* AS, not by the attacker's AS. The H-AS will > use its own correct issuer identifier as the value for the AS > parameter. > o In a mix-up attack the attacker cannot directly influence > the value of the iss parameter in the authorization > response as it is issued by the H-AS. > * Step 6: The client sends the token request to the token > endpoint of the A-AS, because it stored the A-AS as the > selected AS in step 1. This leaks the authorization code to > the attacker who can use it in a code injection attack, for > example. > > With an iss parameter present in step 5 the client would be able > to recognize that the code was issued by the H-AS, not by the > A-AS. The client would be able to abort the authorization grant > instead of leaking the code to the A-AS. > > I hope this addresses your concerns. > > Best regards, > Karsten > > On 08.12.2020 20:15, Warren Parad wrote: >> As an implementer on both sides of the issue I'm struggling to >> understand how this problem would occur. I'm finding issues with >> the proposed problems: >> >> 1. Honest AS is compromised, assuming this does happen details >> on why adding iss to the AS response would prevent attacks is >> necessary for me. In other words, how would an AS be >> compromised in a way that would be identifiable through the >> issuer value? (my ignorant assumption is that a compromised >> AS is compromised enough that an attacker would be able to >> send the correct ISS) >> 2. Attacker AS is registered. I fully support the idea that this >> can and will happen, however from attempting to >> test-implement this proposal, I can't see how the >> authorization would be sent to the wrong token endpoint. >> Since there is no information in the AS auth code response, >> the client must already have the knowledge of where they are >> going to send the token, no mix-up can be executed. I would >> argue, if anything, adding the ISS parameter would open a new >> attack surface by providing clients an opportunity to >> blatantly trust the ISS parameter as the honest AS and thus >> actually sending the code there instead of sending it to one >> specified in the metadata document. >> >> My confusion is the following: >> >> * Are multi AS services utilizing authorization codes in a way >> where there could be a mix up attack for #2. >> * Is there a #3 that I'm missing which even in light of #1 & #2 >> I brought up that would still make this change valuable? >> >> >> >> Warren Parad >> >> Founder, CTO >> >> Secure your user data and complete your authorization >> architecture. Implement Authress <https://bit.ly/37SSO1p>. >> >> >> On Tue, Dec 8, 2020 at 8:01 PM Dick Hardt <dick.hardt@gmail.com >> <mailto:dick.hardt@gmail.com>> wrote: >> >> +1 >> ᐧ >> >> On Tue, Dec 8, 2020 at 4:51 AM Rifaat Shekh-Yusef >> <rifaat.s.ietf@gmail.com <mailto:rifaat.s.ietf@gmail.com>> wrote: >> >> All, >> >> This is a call for adoption for the following AS Issuer >> Identifier in Authorization Response as a WG document: >> https://datatracker.ietf.org/doc/draft-meyerzuselhausen-oauth-iss-auth-resp/ >> <https://datatracker.ietf.org/doc/draft-meyerzuselhausen-oauth-iss-auth-resp/> >> >> Please, provide your feedback on the mailing list by Dec >> 22nd. >> >> Regards, >> Rifaat & Hannes >> _______________________________________________ >> OAuth mailing list >> OAuth@ietf.org <mailto:OAuth@ietf.org> >> https://www.ietf.org/mailman/listinfo/oauth >> <https://www.ietf.org/mailman/listinfo/oauth> >> >> _______________________________________________ >> OAuth mailing list >> OAuth@ietf.org <mailto:OAuth@ietf.org> >> https://www.ietf.org/mailman/listinfo/oauth >> <https://www.ietf.org/mailman/listinfo/oauth> >> > -- > Karsten Meyer zu Selhausen > IT Security Consultant > Phone: +49 (0)234 / 54456499 > Web: https://hackmanit.de <https://hackmanit.de> | IT Security Consulting, Penetration Testing, Security Training > > Nehmen Sie an unserer nächsten Live Online-Schulung zur Sicherheit von OAuth und OpenID Connect am 27.01 + 28.01.2021 teil: > https://www.hackmanit.de/de/schulungen/127-live-online-schulung-single-sign-on-sicherheit-oauth-openid-connect-am-27-01-28-01-2021 <https://www.hackmanit.de/de/schulungen/127-live-online-schulung-single-sign-on-sicherheit-oauth-openid-connect-am-27-01-28-01-2021> > > 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 > -- Karsten Meyer zu Selhausen IT Security Consultant Phone: +49 (0)234 / 54456499 Web: https://hackmanit.de | IT Security Consulting, Penetration Testing, Security Training Nehmen Sie an unserer nächsten Live Online-Schulung zur Sicherheit von OAuth und OpenID Connect am 27.01 + 28.01.2021 teil: https://www.hackmanit.de/de/schulungen/127-live-online-schulung-single-sign-on-sicherheit-oauth-openid-connect-am-27-01-28-01-2021 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-WG] Call for Adoption - AS Issuer Identifi… Rifaat Shekh-Yusef
- Re: [OAUTH-WG] Call for Adoption - AS Issuer Iden… Neil Madden
- Re: [OAUTH-WG] Call for Adoption - AS Issuer Iden… Torsten Lodderstedt
- Re: [OAUTH-WG] Call for Adoption - AS Issuer Iden… Daniel Fett
- Re: [OAUTH-WG] Call for Adoption - AS Issuer Iden… Takahiko Kawasaki
- Re: [OAUTH-WG] Call for Adoption - AS Issuer Iden… Karsten Meyer zu Selhausen
- Re: [OAUTH-WG] Call for Adoption - AS Issuer Iden… Brian Campbell
- Re: [OAUTH-WG] Call for Adoption - AS Issuer Iden… Dave Tonge
- Re: [OAUTH-WG] [EXT] Call for Adoption - AS Issue… Michael A Peck
- Re: [OAUTH-WG] Call for Adoption - AS Issuer Iden… Vladimir Dzhuvinov
- Re: [OAUTH-WG] Call for Adoption - AS Issuer Iden… Dick Hardt
- Re: [OAUTH-WG] Call for Adoption - AS Issuer Iden… Warren Parad
- Re: [OAUTH-WG] Call for Adoption - AS Issuer Iden… Daniel Fett
- Re: [OAUTH-WG] Call for Adoption - AS Issuer Iden… Karsten Meyer zu Selhausen
- Re: [OAUTH-WG] Call for Adoption - AS Issuer Iden… Warren Parad
- Re: [OAUTH-WG] Call for Adoption - AS Issuer Iden… Jim Willeke
- Re: [OAUTH-WG] Call for Adoption - AS Issuer Iden… Karsten Meyer zu Selhausen
- Re: [OAUTH-WG] Call for Adoption - AS Issuer Iden… Warren Parad
- Re: [OAUTH-WG] Call for Adoption - AS Issuer Iden… Kevin Gaynor
- Re: [OAUTH-WG] Call for Adoption - AS Issuer Iden… Dominick Baier
- Re: [OAUTH-WG] Call for Adoption - AS Issuer Iden… Rifaat Shekh-Yusef