Unpassant Posté(e) 23 septembre 2009 Share Posté(e) 23 septembre 2009 Bonjour, Je suis actuellement sur l'étude pour la création d'une petite application sur android utilisant les données déjà disponible sur un site internet, mais je pense à un problème. En faite pour utiliser les données du site l'application devra aller chercher les infos par l'intermédiaire d'un petit API (en fonction des requêtes utilisateur). Mais voila, si par exemple la communication se fait par intermédiaire de fichier XML, est-il possible de garantir la sécurité des données transférées (cryptage...)? Car un petit malin pourrai étudier les données transférées et par la suite aspirer complètement toute ma base de données et la c'est la cata. J'espère que mon exemple est assez clair, je bute juste la dessus. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Androc Posté(e) 23 septembre 2009 Share Posté(e) 23 septembre 2009 Ce n'est pas hyper clair. La réponse basique est : oui SSL. En revanche je ne comprends pas pourquoi quelqu'un qui aurait accès aux paramètres de la requête du serveur Web peut aspirer toute la base. Si tu fais une recherche google et que tu regardes les paramètres envoyés, ce n'est pas pour autant que tu peux aspirer toute la base de données. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Unpassant Posté(e) 23 septembre 2009 Auteur Share Posté(e) 23 septembre 2009 En faite imaginons un site comme Wikipedia qui a pour chaque article un ID, l'application android voulant voir un article fait la requête sur cette ID, l'API renvoie l'article au format XML pour que l'application android puisse traiter les informations facilement. Imaginons maintenant qu'un malin trouve la requête qu'il doit effectuer pour avoir le retour en XML, hop suffit de faire faire la boucle sur tout les ID, mettre ca en base de données et dupliquer le site internet déjà existant. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Androc Posté(e) 23 septembre 2009 Share Posté(e) 23 septembre 2009 C'est bien ce que je pensais. Mais tu as ce risque là pour toutes les applications qui retournent des ID prévisibles. Si tu ne sais pas ou ne peux pas sécuriser ta connexion via SSL tu peux t'arranger pour retourner des ID non prévisibles. C'est à dire que dans ta base de données tu as un ID unique qui se présenterait sous forme de hash qui fait que le fait de connaître un ID ne te permet pas d'en deviner un autre. Ainsi un petit malin pour éventuellement écouter toutes les requêtes entre le serveur et le client, il pourra construire un nouveau site au fur et à mesure des nouveaux ID qu'il aura écouté mais ne pourra pas faire plus. Sinon, il faut établir tes connexions via SSL. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Unpassant Posté(e) 23 septembre 2009 Auteur Share Posté(e) 23 septembre 2009 Coté mise en place du SSL coté serveur pas de problème, mais coté android, il y a tout les composants qui faut de disponible? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Androc Posté(e) 23 septembre 2009 Share Posté(e) 23 septembre 2009 Alors ça ... aucune idée :) Mais rien ne t'empêche de cumuler les deux "sécurité" : tu songes à la connexion SSL si Android le permet (j'ai tendance à dire que oui puisqu'il existe des clients SSH sous Android) sauf que je ne sais pas comment on fait. En revanche l'ID non prédictible reste une solution viable "au cas où". Car rien n'empêche un utilisateur d'écouter sa conversation pour noter les ID. Et même sans écouter les ID, si c'est prévisible, il suffit qu'il boucle à l'aveugle et il tombera bien sur quelque chose de valide. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Unpassant Posté(e) 23 septembre 2009 Auteur Share Posté(e) 23 septembre 2009 J'aime bien l'idée de l'ID non prédictible, mais le problème qui se pose, c'est le retour des données en "clair" :P Je crois que je me complique un peu la vie. En tout cas merci pour ton aide :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Androc Posté(e) 23 septembre 2009 Share Posté(e) 23 septembre 2009 Eh bien tout dépend si les données en retour sont sensibles ou pas :) Si elles le sont, il va forcément te falloir implémenter SSL mais je pense que ça doit être déjà fait ou peut être dispo sous la forme de lib tiers. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Androc Posté(e) 24 septembre 2009 Share Posté(e) 24 septembre 2009 Petite réflexion nocturne : en fait tout dépend du type de "petit malin" que tu souhaites contrer. Si c'est un petit malin passif (il se contente d'écouter la conversation) tu pourrais implémenter un chiffrement "basique" RSA (je ne dis pas que RSA est basique, ni même qu'il faut l'implémenter à la la légère, juste qu'il faut l'utiliser en tant que chiffrement). Tu te fais une pair de clés, tu envois ta clé publique en début de requête et le serveur te chiffre la réponse. En revanche si tu veux faire face à un petit malin actif (il est capable de s'insérer entre toi et le serveur, attaque man in the middle) tu vas être un peu embêté et même une implémentation SSL pourra être vulnérable si tu ne fais pas attention. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Androc Posté(e) 24 septembre 2009 Share Posté(e) 24 septembre 2009 En cherchant un poil, j'ai trouvé une touffe (ah ah super drôle Androc) : http://developer.android.com/reference/javax/net/ssl/package-summary.html.Aucune excuse pour ne pas sécuriser ton transfert :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Unpassant Posté(e) 24 septembre 2009 Auteur Share Posté(e) 24 septembre 2009 Ce ne sont pas des données hautement sensibles, donc je pense que t'a solution est très envisageable. En tout cas merci beaucoup pour ton aide! Prochaine étape, achat d'un HTC Hero :P Lien vers le commentaire Partager sur d’autres sites More sharing options...
Unpassant Posté(e) 24 septembre 2009 Auteur Share Posté(e) 24 septembre 2009 Haaa j'étais parti manger avant de répondre, du coup j'ai pas vu ton dernier message. C'est parfait, il y a donc tout se qui faut, ca ne m'étonne pas de google :) . Merci beaucoup Androc! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Androc Posté(e) 24 septembre 2009 Share Posté(e) 24 septembre 2009 No problemo. Bien entendu je veux être cité dans le About de ton appli et que tu me reverses 10% des revenus générés :) Bon dev. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Unpassant Posté(e) 24 septembre 2009 Auteur Share Posté(e) 24 septembre 2009 L'appli sera très probablement gratuite, citation no problemo ;) Merci! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Androc Posté(e) 24 septembre 2009 Share Posté(e) 24 septembre 2009 Non mais je déconnais hein (sauf pour les 10% :)) je n'ai pas besoin de reconnaissance surtout que je n'ai fait que te donner un lien : Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.