« Chiffrement » : différence entre les versions

De Wiki JabberFR
Aller à la navigation Aller à la recherche
 
(26 versions intermédiaires par 9 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
== Pourquoi chiffrer ses données ? ==
== Pourquoi chiffrer ses données ? ==
Lorsque vous utilisez un système de messagerie propriétaire du type MSN, Yahoo!, AIM ou ICQ vos messages passent en clair sur le réseau Internet. Il est alors facile pour une personne placée à un endroit stratégique sur le réseau internet « d'écouter » votre communication. Ces écoutes peuvent notamment être utilisées :
Lorsque vous utilisez un système de messagerie propriétaire du type AIM, ICQ, MSN/WLM ou Yahoo! vos messages passent en clair sur le réseau Internet. Il est alors facile pour une personne placée à un endroit stratégique sur le réseau internet « d'écouter » votre communication. Ces écoutes peuvent notamment être utilisées :
* pour porter atteinte à votre vie privée ;
* pour porter atteinte à votre vie privée ;
* pour détourner vos identifiants de connexion.
* pour détourner vos identifiants de connexion.
Jabber permet de se prémunir facilement d'un certain nombre de ces risques.
Jabber permet de se prémunir facilement d'un certain nombre de ces risques.


== Les méthodes de chiffrement ==
== Les méthodes de chiffrement ==
Jabber permet de chiffrer les données au niveau des communications client-serveur et serveur-serveur. Deux méthodes de chiffrement sont utilisées actuellement :
Jabber permet de chiffrer les données au niveau des communications client-serveur et serveur-serveur. Deux méthodes de chiffrement sont utilisées actuellement :
;SSL (Secure Socket Layer) : c'est la méthode historique de chiffrement. C'est une méthode trés répandue, utilisée par beaucoup d'autres applications. C'est par exemple la méthode utilisée pour sécuriser les connexions sur les sites de commerce en ligne et les sites bancaires ;
<span id="SSL"></span>
;TLS (Transport Layer Security) : c'est presque la même méthode de chiffrement que SSL. Le nom est simplement différent car SSL a été introduit par la société Netscape alors que TLS est normalisé par l'[http://www.ietf.org IETF] (organisme de normalisation des standards internet). TLS est la méthode de chiffrement recommandée pour Jabber par la norme.
 
=== SSL (Secure Socket Layer) ===
C'est la méthode historique de chiffrement. C'est une méthode très répandue, utilisée par beaucoup d'autres applications. C'est par exemple la méthode utilisée pour sécuriser les connexions sur les sites de commerce en ligne et les sites bancaires ;
<span id="TLS"></span>
 
=== TLS (Transport Layer Security) ===
C'est presque la même méthode de chiffrement que SSL. Le nom est simplement différent car SSL a été introduit par la société Netscape alors que TLS est normalisé par l'[http://www.ietf.org/ IETF] (organisme de normalisation des standards internet). TLS est la méthode de chiffrement recommandée pour Jabber par la norme. '''StartTLS''' permet d'établir une connexion TLS sur le même port que la connexion en clair.


== Le chiffrement de bout en bout ==
== Le chiffrement de bout en bout ==
En utilisant ces méthodes, vos communications sont chiffrées entre vous et votre serveur. Cependant, il faut être conscient que votre serveur et le serveur de votre destinataire ont accès aux messages. De plus, vous n'avez pas de moyen de savoir si votre serveur et le serveur de votre correspondant communiquent en clair ou par communication chiffrée. Si vous voulez vous assurer que personne d'autre que votre correspondant ne pourra déchiffrer vos messages, Jabber prévoit l'utilisation de clés PGP/GPG (méthode identique au chiffrement des e-mails). Cette méthode à clés asymétriques est plus lourde à mettre en place mais vous assure que seul votre correspondant sera capable de déchiffrer vos messages. Le protocle définissant la façon d'utiliser des clés OpenPGP est le «&nbsp;[http://www.jabber.org/jeps/jep-0027.html JEP-0027: Current Jabber OpenPGP Usage]&nbsp;».
En utilisant ces méthodes, vos communications sont chiffrées entre vous et votre serveur. Cependant, il faut être conscient que votre serveur et le serveur de votre destinataire ont accès aux messages. De plus, vous n'avez pas de moyen de savoir si votre serveur et le serveur de votre correspondant communiquent en clair ou par communication chiffrée. Sauf si vous, et votre correspondant, utilisez chacun un serveur Jabber que vous contrôlez (idéalement, que chacun héberge chez soi), auquel cas vous avez confiance en vos serveurs et pouvez faire les vérifications qui s'imposent.
Si vous voulez vous assurer que personne d'autre que votre correspondant ne pourra déchiffrer vos messages, Jabber prévoit l'utilisation de clés PGP/GPG (méthode identique au chiffrement des e-mails). Cette méthode à clés asymétriques est plus lourde à mettre en place mais vous assure que seul votre correspondant sera capable de déchiffrer vos messages. Le protocole définissant la façon d'utiliser des clés OpenPGP est décrit dans la XEP 0027 : « Current Jabber OpenPGP Usage ».
 
Voir [http://www.pgpi.org/ PGP] ou [http://gnupg.org/ GnuPG]
 
''TODO : ajouter schéma couches chiffrement ?''
 
== Pratiques courantes ==
== Pratiques courantes ==
La quasi-totalité des serveurs permettent l'utilisation de SSL pour les communications client-serveur. TLS n'est pas encore supporté par tous les serveurs (notamment, il n'est pas supporté par le serveur historique [http://jabberd.jabberstudio.org/1.4/ jabberd]).
La quasi-totalité des serveurs permettent l'utilisation de SSL ou de TLS pour les communications client-serveur.


Les communications chiffrées serveur-serveur se généralisent mais restent minoritaires par rapport aux communications en clair.
Les communications chiffrées serveur-serveur se généralisent mais restent minoritaires par rapport aux communications en clair.


Par défaut&nbsp;:
Par défaut :
* les communications en clair et par TLS se font sur le port 5222&nbsp;;
* les communications en clair et par TLS se font sur le port 5222 ;
* les communications chiffrées par SSL se font sur le port 5223.
* les communications chiffrées par SSL se font sur le port 5223.
== Ajout des certificats dans les clients ==
Lors de l'utilisation des connexions chiffrés dans certains clients, il se peut qu'un avertissement apparaisse disant que le certificat n'est pas valide. Un certificat non valide peut signifier que le serveur auquel le client s'est connecté n'est pas le serveur légitime (quelqu'un essaie peut-être de s'accaparer votre mot de passe). Toutefois de plus en plus de certificats Jabber sont valides, notamment grâce à la [[Glossaire#XSF|XSF]] qui fournit gratuitement des certificats, il se peut donc qu'il s'agisse juste d'un problème de configuration du client Jabber qui ne connaît pas l'autorité de certification.
Pour reconnaître ces autorités de certification il faut que votre client Jabber dispose du certificat de ces autorités. Selon les clients cela peut être fait de manière différente, certains utilisent les certificats de votre système d'exploitation, dans ce cas il faut se reporter au mode d'emploi de celui-ci pour rajouter les certificats.
=== Sous Psi ===
Psi permet de rajouter des certificats en les mettant dans le répertoire :
* Sous linux : ~/.psi/certs
* Sous windows : C:\Documents and Settings\nom_d_utilisateur\PsiData\certs
Le certificat doit être dans le format PEM et avoir une extension .crt ou .pem.
=== Certificats courants ===
En dehors des autorités de certifications commerciales dont les certificats sont en général déjà inclus avec votre système d'exploitation, les serveurs Jabber utilisent parfois les autorités suivantes :
* [http://cacert.org CACert] : Le certificat est disponible sur [http://www.cacert.org/index.php?id=3 cette page], il faut prendre le certificat class 1, en général au format PEM.
* [http://xmpp.net XMPP.net] : certification donné par la XSF et Startcom, il nécessite deux certificat, celui de Startcom ([http://cert.startcom.org/ca.crt ici]) et celui de XMPP.net ([http://cert.startcom.org/sub.class1.xmpp.ca.crt ici]) qui doivent tous les deux être importés dans votre client.


== Clients supportant ce protocole ==
== Clients supportant ce protocole ==
* [[Coccinella]] 0.95.11&nbsp;:
* [[Coccinella]] 0.95.11 :
** permet le chiffrement par SSL et par TLS&nbsp;;
** permet le chiffrement par SSL et par TLS ;
* [[Fire]] 1.5.6&nbsp;:
* [[Fire]] 1.5.6 :
** permet le chiffrement par SSL et par TLS&nbsp;;
** permet le chiffrement par SSL et par TLS ;
** permet le chiffrement de bout en bout par OpenPGP.
** permet le chiffrement de bout en bout par OpenPGP.
* [[Gaim]] 1.5.0&nbsp;:
* [[Pidgin]] 2.1.0 (ex-[[Gaim]])  :
** permet le chiffrement par SSL et par TLS&nbsp;;
** permet le chiffrement par SSL et par TLS depuis Gaim 1.5.0 ;
* [[Gajim]] 0.8&nbsp;:
* [[Gajim]] 0.8 :
** permet le chiffrement par SSL et par TLS&nbsp;;
** permet le chiffrement par SSL et par TLS ;
** permet le chiffrement de bout en bout par OpenPGP.
** permet le chiffrement de bout en bout par OpenPGP.
* [[Gossip]] 0.11.1&nbsp;:
* [[Gossip]] 0.11.1 :
** permet le chiffrement par SSL et par TLS&nbsp;;
** permet le chiffrement par SSL et par TLS ;
* [[Kopete]] 0.12&nbsp;:
* [[Kopete]] 0.12 :
** permet le chiffrement par SSL et par TLS&nbsp;;
** permet le chiffrement par SSL et par TLS ;
** permet le chiffrement de bout en bout par OpenPGP.
** permet le chiffrement de bout en bout par OpenPGP.
* [[Pandion]] 2.5&nbsp;:
* [[Pandion]] 2.5 :
** permet le chiffrement par SSL et par TLS&nbsp;;
** permet le chiffrement par SSL et par TLS ;
* [[Psi]] 0.10&nbsp;:
* [[Psi]] 0.10 :
** permet le chiffrement par SSL et par TLS&nbsp;;
** permet le chiffrement par SSL et par TLS ;
** permet le chiffrement de bout en bout par OpenPGP&nbsp;;
** permet le chiffrement de bout en bout par OpenPGP ;
* [[Tkabber]] 2.5&nbsp;:
* [[Spark]] 1.0 :
** permet le chiffrement par SSL et par TLS&nbsp;;
** permet le chiffrement par TLS et SASL ;
* [[Tkabber]] 2.5 :
** permet le chiffrement par SSL et par TLS ;


== Serveurs supportant ce protocole ==
== Serveurs supportant ce protocole ==
* [[Djabberd]]&nbsp;:
* [[DJabberd]] :
** permet le chiffrement client-serveur par SSL et TLS&nbsp;;
** permet le chiffrement client-serveur par SSL et TLS ;
** permet le chiffrement serveur-serveur par TLS.
* [[ejabberd]] :
** permet le chiffrement client-serveur par SSL et TLS ;
** permet le chiffrement serveur-serveur par TLS.
** permet le chiffrement serveur-serveur par TLS.
 
* [[jabberd14]] :
* [[ejabberd]]&nbsp;:
** permet le chiffrement client-serveur par SSL et TLS ;
** permet le chiffrement client-serveur par SSL et TLS&nbsp;;
** permet le chiffrement serveur-serveur par SSL et TLS.
* [[jabberd2]] :
** permet le chiffrement client-serveur par SSL et TLS ;
** permet le chiffrement serveur-serveur par TLS.
** permet le chiffrement serveur-serveur par TLS.
 
* [[Openfire]] :
* [[jabberd 1.4]].*&nbsp;:
** permet le chiffrement client-serveur par SSL et TLS ;
** permet le chiffrement client-serveur par SSL&nbsp;;
 
* [[jabberd 2|jabberd2]]&nbsp;:
** permet le chiffrement client-serveur par SSL et TLS&nbsp;;
** permet le chiffrement serveur-serveur par TLS.
** permet le chiffrement serveur-serveur par TLS.


* [[Wildfire]]&nbsp;:
[[Catégorie:Fonctionnalité Jabber]]
** permet le chiffrement client-serveur par SSL et TLS&nbsp;;
** permet le chiffrement serveur-serveur par TLS.

Dernière version du 23 janvier 2021 à 22:49

Pourquoi chiffrer ses données ?

Lorsque vous utilisez un système de messagerie propriétaire du type AIM, ICQ, MSN/WLM ou Yahoo! vos messages passent en clair sur le réseau Internet. Il est alors facile pour une personne placée à un endroit stratégique sur le réseau internet « d'écouter » votre communication. Ces écoutes peuvent notamment être utilisées :

  • pour porter atteinte à votre vie privée ;
  • pour détourner vos identifiants de connexion.

Jabber permet de se prémunir facilement d'un certain nombre de ces risques.

Les méthodes de chiffrement

Jabber permet de chiffrer les données au niveau des communications client-serveur et serveur-serveur. Deux méthodes de chiffrement sont utilisées actuellement :

SSL (Secure Socket Layer)

C'est la méthode historique de chiffrement. C'est une méthode très répandue, utilisée par beaucoup d'autres applications. C'est par exemple la méthode utilisée pour sécuriser les connexions sur les sites de commerce en ligne et les sites bancaires ;

TLS (Transport Layer Security)

C'est presque la même méthode de chiffrement que SSL. Le nom est simplement différent car SSL a été introduit par la société Netscape alors que TLS est normalisé par l'IETF (organisme de normalisation des standards internet). TLS est la méthode de chiffrement recommandée pour Jabber par la norme. StartTLS permet d'établir une connexion TLS sur le même port que la connexion en clair.

Le chiffrement de bout en bout

En utilisant ces méthodes, vos communications sont chiffrées entre vous et votre serveur. Cependant, il faut être conscient que votre serveur et le serveur de votre destinataire ont accès aux messages. De plus, vous n'avez pas de moyen de savoir si votre serveur et le serveur de votre correspondant communiquent en clair ou par communication chiffrée. Sauf si vous, et votre correspondant, utilisez chacun un serveur Jabber que vous contrôlez (idéalement, que chacun héberge chez soi), auquel cas vous avez confiance en vos serveurs et pouvez faire les vérifications qui s'imposent. Si vous voulez vous assurer que personne d'autre que votre correspondant ne pourra déchiffrer vos messages, Jabber prévoit l'utilisation de clés PGP/GPG (méthode identique au chiffrement des e-mails). Cette méthode à clés asymétriques est plus lourde à mettre en place mais vous assure que seul votre correspondant sera capable de déchiffrer vos messages. Le protocole définissant la façon d'utiliser des clés OpenPGP est décrit dans la XEP 0027 : « Current Jabber OpenPGP Usage ».

Voir PGP ou GnuPG

TODO : ajouter schéma couches chiffrement ?

Pratiques courantes

La quasi-totalité des serveurs permettent l'utilisation de SSL ou de TLS pour les communications client-serveur.

Les communications chiffrées serveur-serveur se généralisent mais restent minoritaires par rapport aux communications en clair.

Par défaut :

  • les communications en clair et par TLS se font sur le port 5222 ;
  • les communications chiffrées par SSL se font sur le port 5223.

Ajout des certificats dans les clients

Lors de l'utilisation des connexions chiffrés dans certains clients, il se peut qu'un avertissement apparaisse disant que le certificat n'est pas valide. Un certificat non valide peut signifier que le serveur auquel le client s'est connecté n'est pas le serveur légitime (quelqu'un essaie peut-être de s'accaparer votre mot de passe). Toutefois de plus en plus de certificats Jabber sont valides, notamment grâce à la XSF qui fournit gratuitement des certificats, il se peut donc qu'il s'agisse juste d'un problème de configuration du client Jabber qui ne connaît pas l'autorité de certification.

Pour reconnaître ces autorités de certification il faut que votre client Jabber dispose du certificat de ces autorités. Selon les clients cela peut être fait de manière différente, certains utilisent les certificats de votre système d'exploitation, dans ce cas il faut se reporter au mode d'emploi de celui-ci pour rajouter les certificats.

Sous Psi

Psi permet de rajouter des certificats en les mettant dans le répertoire :

  • Sous linux : ~/.psi/certs
  • Sous windows : C:\Documents and Settings\nom_d_utilisateur\PsiData\certs

Le certificat doit être dans le format PEM et avoir une extension .crt ou .pem.

Certificats courants

En dehors des autorités de certifications commerciales dont les certificats sont en général déjà inclus avec votre système d'exploitation, les serveurs Jabber utilisent parfois les autorités suivantes :

  • CACert : Le certificat est disponible sur cette page, il faut prendre le certificat class 1, en général au format PEM.
  • XMPP.net : certification donné par la XSF et Startcom, il nécessite deux certificat, celui de Startcom (ici) et celui de XMPP.net (ici) qui doivent tous les deux être importés dans votre client.

Clients supportant ce protocole

  • Coccinella 0.95.11 :
    • permet le chiffrement par SSL et par TLS ;
  • Fire 1.5.6 :
    • permet le chiffrement par SSL et par TLS ;
    • permet le chiffrement de bout en bout par OpenPGP.
  • Pidgin 2.1.0 (ex-Gaim)  :
    • permet le chiffrement par SSL et par TLS depuis Gaim 1.5.0 ;
  • Gajim 0.8 :
    • permet le chiffrement par SSL et par TLS ;
    • permet le chiffrement de bout en bout par OpenPGP.
  • Gossip 0.11.1 :
    • permet le chiffrement par SSL et par TLS ;
  • Kopete 0.12 :
    • permet le chiffrement par SSL et par TLS ;
    • permet le chiffrement de bout en bout par OpenPGP.
  • Pandion 2.5 :
    • permet le chiffrement par SSL et par TLS ;
  • Psi 0.10 :
    • permet le chiffrement par SSL et par TLS ;
    • permet le chiffrement de bout en bout par OpenPGP ;
  • Spark 1.0 :
    • permet le chiffrement par TLS et SASL ;
  • Tkabber 2.5 :
    • permet le chiffrement par SSL et par TLS ;

Serveurs supportant ce protocole

  • DJabberd :
    • permet le chiffrement client-serveur par SSL et TLS ;
    • permet le chiffrement serveur-serveur par TLS.
  • ejabberd :
    • permet le chiffrement client-serveur par SSL et TLS ;
    • permet le chiffrement serveur-serveur par TLS.
  • jabberd14 :
    • permet le chiffrement client-serveur par SSL et TLS ;
    • permet le chiffrement serveur-serveur par SSL et TLS.
  • jabberd2 :
    • permet le chiffrement client-serveur par SSL et TLS ;
    • permet le chiffrement serveur-serveur par TLS.
  • Openfire :
    • permet le chiffrement client-serveur par SSL et TLS ;
    • permet le chiffrement serveur-serveur par TLS.