a perfectly valid - at first - AS may get compromised later and used to attack other ASes; that attacj does not require code changes or control over the authorization endpoint: a rogue employee that happens to have access to log files (granted those include GET & POST data) on the AS can mount the attack if only he can phish the user

we can't expect that Clients are able to judge whether an AS will become compromised in the future; in fact that pushes the problems to the really good AS who now needs to decide if it accepts Clients that are able to make that judgement call about other ASes that it connects to

Hans.

On 1/27/16 8:48 PM, Justin Richer wrote:
I propose we rename this the “Random ASs Attack”.

  — Justin (only half joking)

On Jan 27, 2016, at 8:07 AM, Nat Sakimura <sakim...@gmail.com
<mailto:sakim...@gmail.com>> wrote:

Yup.

For the RPs that would deal with valuable data, I also recommend it to
become HTTPS only. This will effectively close the hole for the AS
Mix-Up.
Also, I would recommend to the clients to think twice before accepting
random ASs.
To prevent the code phishing, it is a good idea to require the same
authority restriction. Otherwise, use some variant of discovery to get
the authoritative token endpoints.


2016年1月27日(水) 21:49 George Fletcher <gffle...@aol.com
<mailto:gffle...@aol.com>>:

    Based on Hans' response to Nat I understand why this doesn't solve
    all the use cases. It does still seem like a good idea from a
    client perspective that would address the dynamic client
    registration cases where the Bad AS is returning mixed endpoints.


    On 1/27/16 7:43 AM, George Fletcher wrote:
    Following up on Nat's last paragraph... did the group in
    Darmstadt discuss this option? Namely, to require that the
    authority section of the AuthZ and Token endpoints be the same?
    Are there known implementations already deployed where the
    authority sections are different? It seems like a simple check
    that would address the endpoint mix-up cases.

    Thanks,
    George

    On 1/26/16 8:58 PM, Nat Sakimura wrote:
    John,

    Nov is not talking about the redirection endpoint. I just
    noticed that 3.1.2.1 of RFC 6749 is just asking TLS by "SHOULD"
    and I think it needs to be changed to "MUST" but that is not
    what he is talking about.

    Instead, he is talking about before starting the RFC 6749 flow.

    In many cases, a non TLS protected sites have "Login with HIdP"
    button linked to a URI that initiates the RFC 6749 flow. This
    portion is not within  RFC 6749 and this endpoint has no name or
    no requirement to be TLS protected. Right, it is very stupid,
    but there are many sites like that.
    As a result, the attacker can insert itself as a proxy, say by
    providing a free wifi hotspot, and either re-write the button or
    the request so that the RP receives "Login with AIdP" instead of
    "Login with HIdP".

    I have add a note explaining this to
    
<http://nat.sakimura.org/2016/01/15/idp-mix-up-attack-on-oauth-rfc6749/>http://nat.sakimura.org/2016/01/15/idp-mix-up-attack-on-oauth-rfc6749/

    I also have added a bit of risk analysis on it and considered
    other risk control measures as well.

    It does not seem to be worthwhile to introduce a new
    wire-protocol element to deal with this particular attack. (I
    regard code cut-and-paste attack a separate attack.) I am
    inclining to think that just to TLS protect the pre-RFC6749 flow
    portion and add a check to disallow the ASs that has different
    authority section for the Auhtz EP and Token EP would be adequate.

    Nat

    2016年1月27日(水) 2:18 John Bradley
    <<mailto:ve7...@ve7jtb.com>ve7...@ve7jtb.com
    <mailto:ve7...@ve7jtb.com>>:

        Nov,

        Are you referring to Sec 3.1.2.1 of RFC 6749.

        Stating that the the redirection endpoint SHOULD require
        TLS, and that the AS should warn the user if the redirect
        URI is not over TLS (Something I have never seen done in the
        real world)

        Not using TLS is reasonable when the redirect URI is using a
        custom scheme for native apps.

        It might almost be reasonable for the token flow where the
        JS page itself is not loaded over TLS so the callback to
        extract the fragment would not be as well.
        Note that the token itself is never passed over a non https
        connection in tis case.
        I would argue now that it is irresponsible to have a non TLS
        protected site, but not everyone is going to go along with
        that.

        Using a http scheme URI for the redirect is allowed but is
        really stupid.   We did have a large debate about this when
        profiling OAuth for Connect.
        We did tighten connect to say that if you are using the code
        flow then a http scheme redirect URI is only allowed if the
        client is confidential.

        John B.
        On Jan 26, 2016, at 1:14 AM, Phil Hunt (IDM)
        <phil.h...@oracle.com <mailto:phil.h...@oracle.com>> wrote:

        Still don't see it. Though i think the diagram is wrong
        (the rp should redirct to the ua and not call the authz
        direct), the IDP should either return an error or redirect
        the RP to TLS.

        I don't see this as proper oauth protocol since the RP is
        MITM the UA rather than acting as a client.

        Phil

        On Jan 25, 2016, at 19:57, nov matake
        <<mailto:mat...@gmail.com>mat...@gmail.com
        <mailto:mat...@gmail.com>> wrote:

        In this flow, AuthZ endpoint is forced to be TLS-protected.
        http://nat.sakimura.org/wp-content/uploads/2016/01/oauth-idp-mixup.png

        However, RP’s redirect response which causes following
        AuthZ request is still not TLS-protected, and modified on
        the attacker’s proxy.

        Section 3.2 of this report also describes the same flow.
        http://arxiv.org/pdf/1601.01229v2.pdf

        On Jan 26, 2016, at 12:37, Phil Hunt (IDM)
        <<mailto:phil.h...@oracle.com>phil.h...@oracle.com
        <mailto:phil.h...@oracle.com>> wrote:

        Also the authz endpoint is required to force tls. So if
        the client doesn't do it the authz should reject (eg by
        upgrading to tls).

        Phil

        On Jan 25, 2016, at 19:29, Phil Hunt (IDM)
        <<mailto:phil.h...@oracle.com>phil.h...@oracle.com
        <mailto:phil.h...@oracle.com>> wrote:

        When the RP acting as the client issues a authorize
        redirect to the UA it has to make it with TLS

        Phil

        On Jan 25, 2016, at 17:53, Nov Matake
        <<mailto:mat...@gmail.com>mat...@gmail.com
        <mailto:mat...@gmail.com>> wrote:

        It doen't say anything about the first request which
        initiate the login flow.
        It is still a reasonable assumption that RP puts a
        "login with FB" button on a non TLS-protected page.

        nov

        On Jan 26, 2016, at 10:45, Phil Hunt
        <<mailto:phil.h...@oracle.com>phil.h...@oracle.com
        <mailto:phil.h...@oracle.com>> wrote:

        I would find it hard to believe that is true.

        From 6749 Sec 3.1
            Since requests to the authorization endpoint result in user
            authentication and the transmission of clear-text credentials (in 
the
            HTTP response), the authorization server MUST require the use of TLS
            as described inSection 1.6
        <https://tools.ietf.org/html/rfc6749#section-1.6>  when sending 
requests to the
            authorization endpoint.

        Sec 3.1.2.1
            The redirection endpoint SHOULD require the use of TLS as described
            inSection 1.6
        <https://tools.ietf.org/html/rfc6749#section-1.6>  when the requested response type is 
"code" or "token",
            or when the redirection request will result in the transmission of
            sensitive credentials over an open network.  This specification does
            not mandate the use of TLS because at the time of this writing,
            requiring clients to deploy TLS is a significant hurdle for many
            client developers.  If TLS is not available, the authorization 
server
            SHOULD warn the resource owner about the insecure endpoint prior to
            redirection (e.g., display a message during the authorization
            request).

            Lack of transport-layer security can have a severe impact on the
            security of the client and the protected resources it is authorized
            to access.  The use of transport-layer security is particularly
            critical when the authorization process is used as a form of
            delegated end-user authentication by the client (e.g., third-party
            sign-in service).

        Section 10.5 talks about transmission of authorization
        codes in connection with redirects.

        Also see 6819, Sec 4.4.1.1 regarding eavesdropping or
        leaking of authz codes.


        Phil

        @independentid
        <http://www.independentid.com/>www.independentid.com
        <http://www.independentid.com/>
        <mailto:phil.h...@oracle.com>phil.h...@oracle.com
        <mailto:phil.h...@oracle.com>





        On Jan 25, 2016, at 4:52 PM, nov matake
        <<mailto:mat...@gmail.com>mat...@gmail.com
        <mailto:mat...@gmail.com>> wrote:

        The first assumption is coming from the original
        security report at
        <http://arxiv.org/abs/1601.01229>http://arxiv.org/abs/1601.01229.

        RFC 6749 requires TLS between RS and AS, and also
        between UA and AS, but not between UA and RS.

        The blog post is based on my Japanese post, and it
        describes multi-AS case.
        Nat's another post describes the case which can
        affect single-AS case too.
        
<http://nat.sakimura.org/2016/01/22/code-phishing-attack-on-oauth-2-0-rfc6749/>http://nat.sakimura.org/2016/01/22/code-phishing-attack-on-oauth-2-0-rfc6749/

        nov

        On Jan 26, 2016, at 08:22, Phil Hunt
        <<mailto:phil.h...@oracle.com>phil.h...@oracle.com
        <mailto:phil.h...@oracle.com>> wrote:

        Sorry, meant to reply-all.

        Phil

        @independentid
        <http://www.independentid.com/>www.independentid.com
        <http://www.independentid.com/>
        <mailto:phil.h...@oracle.com>phil.h...@oracle.com
        <mailto:phil.h...@oracle.com>





        Begin forwarded message:

        *From: *Phil Hunt <phil.h...@oracle.com
        <mailto:phil.h...@oracle.com>>
        *Subject: **Re: [OAUTH-WG] Call for Adoption: OAuth
        2.0 Mix-Up Mitigation*
        *Date: *January 25, 2016 at 3:20:19 PM PST
        *To: *Nat Sakimura <sakim...@gmail.com
        <mailto:sakim...@gmail.com>>

        I am having trouble with the very first assumption.
        The user-agent sets up a non TLS protected
        connection to the RP? That’s a fundamental
        violation of 6749.

        Also, the second statement says the RP (assuming it
        acts as OAuth client) is talking to two IDPs.
        That’s still a multi-AS case is it not?

        Phil

        @independentid
        <http://www.independentid.com/>www.independentid.com 
<http://www.independentid.com/>
        <mailto:phil.h...@oracle.com>phil.h...@oracle.com
        <mailto:phil.h...@oracle.com>





        On Jan 25, 2016, at 2:58 PM, Nat Sakimura
        <<mailto:sakim...@gmail.com>sakim...@gmail.com
        <mailto:sakim...@gmail.com>> wrote:

        Hi Phil,

        Since I was not in Darmstadt, I really do not know
        what was discussed there, but with the compromised
        developer documentation described in
        
<http://nat.sakimura.org/2016/01/15/idp-mix-up-attack-on-oauth-rfc6749/>http://nat.sakimura.org/2016/01/15/idp-mix-up-attack-on-oauth-rfc6749/,
        all RFC6749 clients with a naive implementer will
        be affected. The client does not need to be
        talking to multiple IdPs.

        Nat

        2016 年1月26日(火) 3:58 Phil Hunt (IDM)
        <<mailto:phil.h...@oracle.com>phil.h...@oracle.com
        <mailto:phil.h...@oracle.com>>:

            I recall making this point in Germany. 99% of
            existing use is fine. OIDC is probably the
            largest community that *might* have an issue.

            I recall proposing a new security document
            that covers oauth security for dynamic
            scenarios. "Dynamic" being broadly defined to
            mean:
            * clients who have configured at runtime or
            install time (including clients that do discovery)
            * clients that communicate with more than one
            endpoint
            * clients that are deployed in large volume
            and may update frequently (more discussion of
            "public" cases)
            * clients that are script based (loaded into
            browser on the fly)
            * others?

            Phil

            > On Jan 25, 2016, at 10:39, George Fletcher
            <<mailto:gffle...@aol.com>gffle...@aol.com
            <mailto:gffle...@aol.com>> wrote:
            >
            > would

            _______________________________________________
            OAuth mailing list
            <mailto:OAuth@ietf.org>OAuth@ietf.org
            <mailto:OAuth@ietf.org>
            
<https://www.ietf.org/mailman/listinfo/oauth>https://www.ietf.org/mailman/listinfo/oauth



        _______________________________________________
        OAuth mailing list
        <mailto:OAuth@ietf.org>OAuth@ietf.org
        <mailto:OAuth@ietf.org>
        
<https://www.ietf.org/mailman/listinfo/oauth>https://www.ietf.org/mailman/listinfo/oauth


        _______________________________________________
        OAuth mailing list
        <mailto:OAuth@ietf.org>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

        _______________________________________________
        OAuth mailing list
        OAuth@ietf.org <mailto:OAuth@ietf.org>
        https://www.ietf.org/mailman/listinfo/oauth



    _______________________________________________
    OAuth mailing list
    OAuth@ietf.org <mailto:OAuth@ietf.org>
    https://www.ietf.org/mailman/listinfo/oauth

    --
    Chief Architect
    Identity Services Engineering     Work:george.fletc...@teamaol.com 
<mailto:george.fletc...@teamaol.com>
    AOL Inc.                          AIM:  gffletch
    Mobile: +1-703-462-3494           Twitter:http://twitter.com/gffletch
    Office: +1-703-265-2544           Photos:http://georgefletcher.photography
    <http://georgefletcher.photography/>


    _______________________________________________
    OAuth mailing list
    OAuth@ietf.org <mailto:OAuth@ietf.org>
    https://www.ietf.org/mailman/listinfo/oauth

    --
    Chief Architect
    Identity Services Engineering     Work:george.fletc...@teamaol.com 
<mailto:george.fletc...@teamaol.com>
    AOL Inc.                          AIM:  gffletch
    Mobile: +1-703-462-3494           Twitter:http://twitter.com/gffletch
    Office: +1-703-265-2544           Photos:http://georgefletcher.photography 
<http://georgefletcher.photography/>

_______________________________________________
OAuth mailing list
OAuth@ietf.org <mailto:OAuth@ietf.org>
https://www.ietf.org/mailman/listinfo/oauth



_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth


--
Hans Zandbelt              | Sr. Technical Architect
hzandb...@pingidentity.com | Ping Identity

_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to