Aller au contenu

Cryptage TLS et certificats


m.borghesi

Recommended Posts

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.

Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...

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é par eric.taix
Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...