Aller au contenu

Sécurisation des données


Unpassant

Recommended Posts

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

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

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

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

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

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

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...