Skip to content

Fido auth with Android SDK. Error from a server: invalid origin #71

Open

Description

@dikiyPetr

I use a FIDO android SDK https://developers.google.com/android/reference/com/google/android/gms/fido/package-summary and
web FIDO lib https://github.com/lbuchs/WebAuthn as a server

To complete authentication I send to the server the following payload:

{"authenticatorData":"uGLTOEtQtBsB4wjhEvR0ZVayRWn/3mhUyp6dqFFY0a8BAAABDQ==","clientDataJSON":"eyJ0eXBlIjoid2ViYXV0aG4uZ2V0IiwiY2hhbGxlbmdlIjoiLW9zc3JiYXY3SmhmUWlQY1ZlMzFkdDQxMG5ZWHVvWW9kM1FYdHc5VmlIUSIsIm9yaWdpbiI6ImFuZHJvaWQ6YXBrLWtleS1oYXNoOmZiRU5UdkNTZVItQXdKVjVycnJCc2I5OHAtakV3MGM1U1NPTXVsX0t3YUkiLCJhbmRyb2lkUGFja2FnZU5hbWUiOiJjb20uYWZ0ZXJsb2dpYy5hdXJvcmEubWFpbCIsInRva2VuQmluZGluZyI6eyJzdGF0dXMiOiJwcmVzZW50IiwiaWQiOiJodHRwczpcL1wvdGVzdC5hZnRlcmxvZ2ljLmNvbSJ9fQ==","id":"LEBlQOlamqsmKzRBPQe9y0BFN5IaQ5BBB1ByiDH85HulzCYQTffqeK0RQDoZqUO7syGZY+hkfWf9P2FiQQ3eVA==","signature":"MEUCICFf8qFGiXxGTBokpstfUsCwbd7JTsLlDrFZoGMi3tZzAiEA0zAXxFDeqA7gF6YahudK+LD2gDUPtAnXqgAvvhVc/vE="}

The field clientDataJSON contains a base64-encrypted JSON object that has property "origin":"android:apk-key-hash:fbENTvCSeR-AwJV5rrrBsb98p-jEw0c5SSOMul_KwaI"

But the server responds with an error "invalid origin".

At the same time, my web FIDO auth implementation sends clientDataJSON with "origin":"https://test.afterlogic.com" and everything is working fine in this case.

How I can verify origin with android:apk-key-hash on the webserver? I will be appreciated any other ideas on how to deal with this.

Activity

  1. ValarMarkhulis commented on Dec 22, 2020

    @ValarMarkhulis

    I'm not a PHP or Laravel developer, but I had the same problem with a PHP server implementation that used https://github.com/web-auth/webauthn-framework and https://github.com/asbiin/laravel-webauthn.
    I went and had a look into the exceptions that were given back by the PHP server. There I found code that suggested, that an origin with the value of "apk-key-hash:....", would never be evaluated to a valid origin. So I had no other choice than to add code, that would approve the apk-key-hash of my specific Android app.

    Not the best solution, if even a real one, but I don't see any other way of doing it.
    Try to look at https://developers.yubico.com/U2F/App_ID.html.
    And please let me know if you figure out anything.

  2. pavlo commented on Oct 1, 2021

    @pavlo

    I am experiencing the same issue with the origin. Is there any update on the issue? Thanks!

  3. vyppN commented on Oct 20, 2023

    @vyppN

    Just add your android:apk-key-hash:fbENTvCSeR-AwJV5rrrBsb98p-jEw0c5SSOMul_KwaI in webauthn.Config in RPOrigins

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions