2013-01-24 6 views

Répondre

1

Si vous avez une API à laquelle votre client peut accéder, vous ne serez pas en mesure d'empêcher une personne expérimentée déterminée d'utiliser également votre API (car l'utilisateur peut identifier tous les secrets stockés dans le client). Si vous souhaitez simplement éviter une utilisation occasionnelle, un moyen relativement simple d'authentifier un client serait d'avoir un secret statique partagé stocké dans le client et d'utiliser par exemple un HMAC based API authentication scheme.

1

Voici la question qui est interne similaire à ce que vous demandez:

Provide secure Facebook authentication with my Server

Voici ce que je lui répondis là-bas:

Il est appelé attestation à distance. Il y a beaucoup de problèmes avec cela.

Avant d'aller dans cette direction, vous devez vous poser deux questions

  • Qui protégez-vous contre?

  • Combien suis-je prêt à investir?

Si vous vous protégez contre un étudiant ayant une connaissance très limitée, qui peut écrire une application mobile qui utilisera votre sever alors vous êtes très bien avec un secret partagé.

Si vous protégez contre un ingénieur logiciel un peu plus sophistiqué (qui peut faire de l'ingénierie inverse de votre application) - ce ne sera pas suffisant. Cet ingénieur peut extraire une secert de votre application et l'utiliser dans son application.

Vous pouvez lire à propos de l'attestation à distance here et here.

Les solutions qui peuvent vous protéger de la rétro-ingénierie simple sont assez complexes.

Questions connexes