It's "confidential" in that the shared secret is unique to that app instance registration (as Dennis described in his response). If an attacker gets my phone and compromises the data stored on my device, they only get the secret for my device. This is no different than a server side client having their client secret compromised through an attack (and in some ways is better because it's instance specific).

The main point I was trying to make, is that the 'client_secret_jwt' method allows the client to never send the shared secret across the wire as is created in the default OAuth2 HTTP Basic Authentication method.

Thanks,
George

On 11/28/18 11:03 AM, Filip Skokan wrote:
Hi George,

#2 doesn't seem confidential, it's still a secret shared amongst installations and anyone reverse engineering the apk, extracting the secret, can form the client_secret_jwt client_assertion with it just fine.

Best,
Filip

On Wed, Nov 28, 2018 at 4:48 PM George Fletcher <gffletch=40aol....@dmarc.ietf.org <mailto:40aol....@dmarc.ietf.org>> wrote:

    In addition, a few additional patterns are enabled...

    1. The native app can generate a public/private key pair and then
    use private_secret_jwt as the client credential validation method
    via the client credentials flow (defined in OpenID Connect).

    2. Maybe more simply, if the native app is issued a shared secret,
    the app can use client_secret_jwt method for client authentication
    which ensures the shared secret never leaves the device. (Again
    defined in the OpenID Connect spec).

    3. Once the native app instance has credentials, they can be used
    for additional securing of app API transactions in addition to
    just the OAuth2/OpenID Connect flows.

    Thanks,
    George

    On 11/27/18 3:28 PM, William Denniss wrote:
    If the secret is dynamically provisioned then you have a
    confidential client. Anyone reverse engineering their own
    installation of the native app would only extract their own
    client's credentials, as opposed to the shared secret of all
    installations. Having a confidential client means that requests
    to the token endpoint (code, refresh) are client authenticated,
    so PKCE wouldn't be needed.

    On Tue, Nov 27, 2018 at 1:44 AM, Christian Mainka
    <Christian.Mainka=40rub...@dmarc.ietf..org
    <mailto:Christian.Mainka=40rub...@dmarc.ietf.org>> wrote:

        Hi,

        we just stumbled upon this [1] statement:
        "Except when using a mechanism like Dynamic Client Registration
           [RFC7591] to provision per-instance secrets, native apps are
           classified as public clients ..."

        What does this mean for us? Native App + Dynamic Client
        Registration =
        Confidential Client?
        Which threats are covered if Dynamic Client Registration is
        used on
        Native Apps?

        Best Regards,
        Vladi/Christian

        [1]: https://tools.ietf.org/html/rfc8252#section-8.4

-- Dr.-Ing. Christian Mainka
        Horst Görtz Institute for IT-Security
        Chair for Network and Data Security
        Ruhr-University Bochum, Germany

        Universitätsstr. 150, ID 2/463
        D-44801 Bochum, Germany

        Telefon: +49 (0) 234 / 32-26796
        Fax: +49 (0) 234 / 32-14347
        http://nds.rub.de/chair/people/cmainka/
        @CheariX


        _______________________________________________
        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



_______________________________________________
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

Reply via email to