android / android/security-samples
Fido auth with Android SDK. Error from a server: invalid origin
- Langage dominant
- Kotlin
- Étoiles
- 1k
- Forks
- 450
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
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.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par décoder le clientDataJSON fourni et comparez son origine android:apk-key-hash avec la validation de origin utilisée par le serveur WebAuthn. Consultez la référence liée de l’Android FIDO SDK et la documentation du serveur WebAuthn afin de déterminer si cette origin est prise en charge et comment elle doit être vérifiée. La tâche est terminée lorsqu’une vérification prise en charge est identifiée ou que l’incompatibilité est documentée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- android
- Domaine
- authentication, security
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 25/100