J'ai un doute fondamental ou je manque apparemment quelque chose de fondamental. Lorsque vous parlez d'une application Android qui parle au backend à l'aide d'API, l'accès aux ressources/API est protégé à l'aide de jetons d'accès et de jetons d'actualisation (un peu comme OAuth = 2,0).
D'après ce que je comprends, voici comment cela fonctionne:
Maintenant ma question est:
comment cela résout-il notre problème initial d'empêcher tout accès non autorisé aux API? À mon avis, cela le facilite davantage.
Si le jeton d'accès est compromis, il est fort probable que le jeton d'actualisation soit également compromis de la même manière, n'est-ce pas? Et parce que le jeton d'actualisation est un jeton à très longue durée de vie, l'attaquant pourrait l'utiliser (jusqu'à ce que le jeton d'actualisation n'expire pas) pour continuer à générer de nouveaux jetons d'accès autorisés. Est-ce exact ?
Veuillez m'aider à comprendre cela.
Le principal avantage d'un jeton d'actualisation est qu'il est plus facile de détecter s'il est compromis.
Considérez ces deux scénarios:
Dans le scénario 1, si le jeton d'authentification est compromis, il serait difficile pour quiconque de le détecter, et l'accès non autorisé pourrait se poursuivre indéfiniment.
Dans le scénario 2, si seul le jeton d'authentification est compromis (le jeton d'actualisation n'est pas compromis lui aussi), il ne peut continuer que jusqu'à l'expiration du jeton.
Dans le scénario 2, si le jeton d'actualisation est compromis, une fois le jeton d'actualisation invoqué, tous les autres jetons d'authentification générés à l'aide de ce jeton d'actualisation sont invalidés, de sorte qu'une seule partie peut utiliser l'api (par jeton d'actualisation) à la fois. Il en résulte que plusieurs utilisateurs invalident à plusieurs reprises leurs jetons d'authentification respectifs en en générant de nouveaux. L'API pourrait détecter la violation car des rafraîchissements sont effectués avant l'expiration du jeton d'authentification, et saurait révoquer immédiatement le jeton de rafraîchissement.