Jump to content

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.

Link to comment
Share on other 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/

Edited by eric.taix
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...