m.borghesi Posté(e) 16 novembre 2010 Share Posté(e) 16 novembre 2010 Salut à tous, Je vous expose mon problème: Je dispose d'une application qui permet l'échange de données avec un serveur (via les sockets). J'aimerais maintenant faire évoluer cette application de manière à ce que ce que j'envoie soit crypté en TLS et j'aimerais aussi passer par une système d'authentification (par certificats). Que dois-je faire? J'ai trouvé quelques sites qui parlent brièvement de ces méthodes mais je ne comprend pas bien c'est pourquoi je demande des précisions... http://blog.ippon.fr/2008/10/20/certificats-auto-signe-et-communication-ssl-en-java/ merci d'avance de vos réponses. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
eric.taix Posté(e) 7 janvier 2011 Share Posté(e) 7 janvier 2011 (modifié) Que ne comprends tu pas ? En gros si tu sécurises (en cryptant) tes données c'est en général que les informations sont sensibles. Pour éviter de se faire avoir le serveur doit prouver au client qu'il est le bon serveur. Pour cela il doit fournir un certificat. Le problème est que le client (une application android par exemple) doit être sûr que le certificat émis est bien émis par la bonne personne (le bon serveur). Le certificat doit donc correspondre au domaine demandé dans l'URL (voir le pb qu'il cite entre www.google.com et www.google.fr) ET être certifié par une autorité compétente (VeriSign ou autre). Ce type de certificat représente un certain coût annuel (pour l'application serveur) mais c'est obligatoire pour les paiements en ligne, etc.... Du coup pour des applications moins critique il est possible de ne pas se faire certifier (ce qui évite le coût annuel). Il te présente donc 2 solutions: 1- Tu fais en sorte d'importer ta clé dans le keystore de la JVM afin de dire aux applications Java : "Ok les gars c'est cool je connais cette clé vous pouvez lui faire confiance" 2- Tu utilises une méthode laxiste qui consiste à dire : je me fiche que le domaine ne corresponde pas au certificat et/ou que la clé soit autosignée : laisse la passer... Si tu maîtrises l'application serveur c'est peut-être possible d'utiliser la méthode 1 sous Android mais je ne connais pas la technique. Si tu ne maitrises pas l'application serveur ou qu'il y a plusieurs instances alors je te conseille la 2ème solution. Dans l'application Synodroid que j'ai réalisée, je communique avec un serveur répondant en JSON soit sur HTTP soit sur HTTPS. Cette application permet de piloter un serveur NAS de chez Synology. En HTTPS les utilisateurs peuvent soit laisser la clé par défaut soit en mettre une à eux. Cependant je doute que beaucoup d'utilisateurs se mettent à créer des clés qu'ils fassent certifier par VeriSign pour utiliser leur serveur ! Donc j'ai utilisé la méthode laxiste qui consiste (tant pis) à accepter les certificats autosigné. Tu peux jeter un coup d'oeil aux sources disponibles ici : http://code.google.com/p/synodroid-ds/ Modifié 7 janvier 2011 par eric.taix Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.