Chris,
Vous pouvez lire sur un mécanisme appelé One Time Passwords (OTP). http://en.wikipedia.org/wiki/One-time_password
Vous pouvez concevoir votre application pour générer des OTP chaque fois qu'elle tente de se connecter à votre service Web. La responsabilité de valider l'authenticité de l'OTP réside sur le service Web. Laissez-moi entrer dans un petit détail maintenant. Imaginez que votre application intègre un algorithme qui génère et fournit un numéro de 256 bits chaque fois qu'il se connecte au service Web. Le service Web que vous concevez implémente également la partie validateur de l'OTP. Habituellement, l'algorithme OTP prend en compte "l'heure du jour" dans sa mise en œuvre (je suggère google autour de quelques implémentations gratuites). Ainsi, la fin du serveur (OTP Validator) ne fonctionne que si l'heure sur le serveur et le client est dans une fenêtre (disons + - n sec) de l'heure d'actualisation n. Généralement, le validateur OTP générera également l'OTP à sa fin et comparera simplement celui reçu. Vous pouvez en outre HASH le OTP avant d'envoyer et de comparer les hachages de OTP généré sur le serveur (ne aide pas ou est plus sécurisé si). Maintenant, la question se pose, que se passe-t-il si quelqu'un obtient l'algorithme (peut-être vous utilisez simplement un OTP open source). Eh bien, c'est censé être. Une bonne implémentation de la sécurité n'est accessible qu'avec un mot de passe correct, même si tout le reste est disponible pour l'attaquant. Pour ce faire, vous devrez peut-être ajouter une logique pour provisionner vos applications la première fois qu'ils se connectent, ce qui serait attendu par OTP. Ici, j'assume la confiance lors de la première utilisation. Vous pouvez ajouter une logique pour stocker un identifiant d'application résident unique qui est utilisé lors du calcul de l'OTP. De plus, vous devrez maintenir un mappage de "resident-id" vers "public-id" sur le serveur. C'est le "public-id" que vous pouvez attacher à OTP et envoyer au serveur pour valider l'envoi de l'application est en effet celui que vous avez provisionné. Cela vous oblige à mapper "public-id" à "resident-id" sur le serveur, puis à utiliser le "provisioned-id" de la même manière en générant l'OTP. En plus de cela, vous pouvez ajouter une logique pour simplement amuser le combo OTP + "public-id" une fois. Cela empêchera les attaques par relecture au cas où quelqu'un reniflerait et renverrait la même requête à votre service Web.
J'espère que cela vous donne une idée.
Ujjwal
Je ne suis pas sûr de comprendre votre réponse.En ce moment j'utilise le http standard pour récupérer des données du webservice. –
http://stackoverflow.com/questions/1048310/how-to-call-a-net-web-service-from-android vous pouvez voir cette question – acebisli
Je comprends parfaitement comment appeler ma webmethod, mon application le fait déjà . Je veux juste savoir comment sécuriser l'appel contre le vol de données! –