« Authentification » : différence entre les versions

De Wiki JabberFR
Aller à la navigation Aller à la recherche
(→‎Authentification du client : ajout auth_anonyme)
 
(15 versions intermédiaires par 6 utilisateurs non affichées)
Ligne 3 : Ligne 3 :


=== Authentification du client ===
=== Authentification du client ===
Lorsque vous vous connectez à votre serveur, ce dernier doit vérifier que vous avez le droit d'accéder au compte auquel vous tentez de vous connecter. Sans quoi, n'importe qui pourrait se connecter à votre place, se faire passer pour vous auprès de vos contacts, changer votre mot de passe, etc. Pour prouver que vous avez bien le droit d'accéder à un compte, vous devez fournir un mot de passe. Plusieurs méthodes existent pour transmettre ce mot de passe :
Lorsque vous vous connectez à votre serveur, ce dernier doit vérifier que vous avez le droit d'accéder au compte auquel vous tentez de vous connecter. Sans quoi, n'importe qui pourrait se connecter à votre place, se faire passer pour vous auprès de vos contacts, changer votre mot de passe, etc. Pour prouver que vous avez bien le droit d'accéder à un compte, vous devez fournir un mot de passe. Plusieurs méthodes existent pour transmettre ce mot de passe :
;Authentification en clair :
;Authentification en clair :
Votre mot de passe est transmis au serveur sans aucune protection. C'est généralement ce qui se passe pour les réseaux propriétaires de type MSN, Yahoo!, AIM ou ICQ mais c'est un mode à éviter car toute personne écoutant le réseau au moment où vous vous connectez à votre serveur peut lire votre mot de passe. Il est à noter que si votre connexion est chiffrée, il n'est plus possible de lire directement votre mot de passe ;
Votre mot de passe est transmis au serveur sans aucune protection. C'est généralement ce qui se passe pour les réseaux propriétaires de type MSN, Yahoo!, AIM ou ICQ mais c'est un mode à éviter car toute personne écoutant le réseau au moment où vous vous connectez à votre serveur peut lire votre mot de passe. Il est à noter que si votre connexion est chiffrée, il n'est plus possible de lire directement votre mot de passe ;
;Authentification cryptée :
;Authentification chiffrée :
Le mode de passe est crypté avant d'être envoyé au serveur. Le résultat de ce cryptage s'appelle un hash. Grâce à cette méthode, il devient très difficile à un attaquant de pouvoir se connecter à votre place ;
Le mode de passe est chiffré avant d'être envoyé au serveur. Le résultat de ce chiffrement s'appelle un hash. Grâce à cette méthode, il devient très difficile à un attaquant de pouvoir se connecter à votre place ;
;SASL :
;SASL :
C'est la méthode préconnisée par XMPP. Elle définit une série d'échanges entre client et serveur sensés assurer une grande sécurité. C'est la méthode que vous devriez choisir si votre client et votre serveur le permettent.
C'est la méthode préconnisée par Jabber. Elle définit une série d'échanges entre client et serveur sensés assurer une grande sécurité. C'est la méthode que vous devriez choisir si votre client et votre serveur le permettent.
;Authentification anonyme :
Cette fonctionnalité permet d'accéder aux fonctions d'un serveur XMPP de manière temporaire, sans avoir de compte. Vous recevrez alors JID généré aléatoirement, ne nécessitant pas de mot de passe.
Peu de [[Serveurs]] proposent cette fonctionnalité mais JabberFR la propose à l'adresse <code>anon.jabberfr.org</code>.
Cette fonction peut être intéressante par exemple pour certains cas de protection de la vie privée mais aussi pour permettre à des visiteurs d'un site web d'interagir sur un salon XMPP en ayant qu'à renseigner un pseudo.


=== Authentification du serveur ===
=== Authentification du serveur ===
Comment être sûr que vous vous connectez bien à votre serveur et pas à l'ordinateur d'un attaquant&nbsp;? Le seul moyen d'en être certain est de se connecter en TLS ou en SSL. Le serveur propose alors un certificat. Le principe du certificat est le suivant&nbsp;:
Comment être sûr que vous vous connectez bien à votre serveur et pas à l'ordinateur d'un attaquant ? Le seul moyen d'en être certain est de se connecter en TLS ou en SSL. Le serveur propose alors un certificat. Le principe du certificat est le suivant :
* vous avez confiance en une entité appelée tiers de confiance (généralement une entreprise ou une association spécialisée dans la sécurité et la validation de certificats)&nbsp;;
* vous avez confiance en une entité appelée tiers de confiance (généralement une entreprise ou une association spécialisée dans la sécurité et la validation de certificats) ;
* ce tiers de confiance certifie l'authenticité de votre serveur en signant son certificat&nbsp;;
* ce tiers de confiance certifie l'authenticité de votre serveur en signant son certificat ;
* vous avez confiance en un tiers de confiance qui a, lui, confiance en votre serveur&nbsp;: vous avez donc confiance en votre serveur.
* vous avez confiance en un tiers de confiance qui a, lui, confiance en votre serveur : vous avez donc confiance en votre serveur.


== Pratiques courantes ==
== Pratiques courantes ==
La plupart des serveurs permettent une authentifation en clair et une authentification cryptée. Tous les serveurs ne permettent pas encore l'authentification par SASL. Idem pour les clients. Dans tous les cas, évitez l'authentification en clair si votre connexion n'est pas chiffrée par SSL ou TLS.
La plupart des serveurs permettent une authentifation en clair et une authentification chiffrée. Tous les serveurs ne permettent pas encore l'authentification par SASL. Idem pour les clients. Dans tous les cas, évitez l'authentification en clair si votre connexion n'est pas chiffrée par SSL ou TLS.


Les serveurs publiques disposent généralement d'un certificat auto-signé. C'est à dire qu'ils sont leur propre tiers de confiance. Un certificat auto-signé ne permet pas d'assurer l'authentification du serveur mais il permet d'assurer malgré tout le chiffrement de la connexion. Ces certificats sont auto-signés car les tiers de confiance sont généralement des entreprises de sécurité qui facturent très cher la signature d'un certificat. Si vous avez un message d'erreur à propos d'un certificat auto-signé, ne faîtes pas attention. Il y a peu de chances que quelqu'un tente d'usurper l'identité de votre serveur (et réussisse). Accepter le certificat, même auto-signé, vous permettra au moins de bénéficier d'une connexion chiffrée.
Les serveurs publiques disposent généralement d'un certificat auto-signé. C'est à dire qu'ils sont leur propre tiers de confiance. Un certificat auto-signé ne permet pas d'assurer l'authentification du serveur mais il permet d'assurer malgré tout le chiffrement de la connexion. Ces certificats sont auto-signés car les tiers de confiance sont généralement des entreprises de sécurité qui facturent très cher la signature d'un certificat. Si vous avez un message d'erreur à propos d'un certificat auto-signé, ne faîtes pas attention. Il y a peu de chances que quelqu'un tente d'usurper l'identité de votre serveur (et réussisse). Accepter le certificat, même auto-signé, vous permettra au moins de bénéficier d'une connexion chiffrée.


== Clients supportant ce protocole ==
== Clients supportant ce protocole ==
* [[Gaim]] 1.5.0&nbsp;:
* [[Coccinella]] 0.95.11 :
** permet l'authentification en clair, cryptée et par SASL.
** permet l'authentification en clair, chiffrée et par SASL.
* [[Kopete]] 0.9.2&nbsp;:
* [[Pidgin]] 2.1.0 (ex [[Gaim]]) :
** permet l'authentification en clair, cryptée&nbsp;;
** permet l'authentification en clair, chiffrée et par SASL (depuis Gaim 1.5.0).
* [[Kopete]] 0.9.2 :
** permet l'authentification en clair, chiffrée ;
** ne permet pas l'authentification par SASL.
** ne permet pas l'authentification par SASL.
* [[Psi]] 0.9.3&nbsp;:
* [[Psi]] 0.9.3 :
** permet l'authentification en clair et cryptée&nbsp;;
** permet l'authentification en clair et chiffrée ;
** ne permet pas l'authentification par SASL.
** ne permet pas l'authentification par SASL.


== Serveurs supportant ce protocole ==
== Serveurs supportant ce protocole ==
* [[ejabberd]]&nbsp;:
* [[ejabberd]] :
** permet l'authentification en clair, cryptée et par SASL.
** permet l'authentification en clair, chiffrée et par SASL.
** possible d'obliger une authentification cryptée
** possible d'obliger une authentification chiffrée
* [[jabberd14]] :
** permet l'authentification en clair et chiffrée ;
** permet l'authentification par SASL à partir de jabberd14 v1.6.0 et en utilisant jadc2s.
** possible d'obliger une authentification chiffrée
* [[jabberd2]] :
** permet l'authentification en clair, chiffrée et par SASL.
* [[Openfire]] :
** permet l'authentification en clair, chiffrée et par SASL.


* [[jabberd 1.4]].*&nbsp;:
[[Catégorie:Fonctionnalité Jabber]]
** permet l'authentification en clair et cryptée&nbsp;;
** ne permet pas l'authentification par SASL.
** possible d'obliger une authentification cryptée
 
* [[jabberd 2|jabberd2]]&nbsp;:
** permet l'authentification en clair, cryptée et par SASL.
 
* [[Wildfire]]&nbsp;:
** permet l'authentification en clair, cryptée et par SASL.

Dernière version du 28 février 2021 à 16:09

En bref

Jabber propose plusieurs moyens d'authentification. Nous ne parlerons ici que de l'authentification client-serveur.

Authentification du client

Lorsque vous vous connectez à votre serveur, ce dernier doit vérifier que vous avez le droit d'accéder au compte auquel vous tentez de vous connecter. Sans quoi, n'importe qui pourrait se connecter à votre place, se faire passer pour vous auprès de vos contacts, changer votre mot de passe, etc. Pour prouver que vous avez bien le droit d'accéder à un compte, vous devez fournir un mot de passe. Plusieurs méthodes existent pour transmettre ce mot de passe :

Authentification en clair

Votre mot de passe est transmis au serveur sans aucune protection. C'est généralement ce qui se passe pour les réseaux propriétaires de type MSN, Yahoo!, AIM ou ICQ mais c'est un mode à éviter car toute personne écoutant le réseau au moment où vous vous connectez à votre serveur peut lire votre mot de passe. Il est à noter que si votre connexion est chiffrée, il n'est plus possible de lire directement votre mot de passe ;

Authentification chiffrée

Le mode de passe est chiffré avant d'être envoyé au serveur. Le résultat de ce chiffrement s'appelle un hash. Grâce à cette méthode, il devient très difficile à un attaquant de pouvoir se connecter à votre place ;

SASL

C'est la méthode préconnisée par Jabber. Elle définit une série d'échanges entre client et serveur sensés assurer une grande sécurité. C'est la méthode que vous devriez choisir si votre client et votre serveur le permettent.

Authentification anonyme

Cette fonctionnalité permet d'accéder aux fonctions d'un serveur XMPP de manière temporaire, sans avoir de compte. Vous recevrez alors JID généré aléatoirement, ne nécessitant pas de mot de passe. Peu de Serveurs proposent cette fonctionnalité mais JabberFR la propose à l'adresse anon.jabberfr.org. Cette fonction peut être intéressante par exemple pour certains cas de protection de la vie privée mais aussi pour permettre à des visiteurs d'un site web d'interagir sur un salon XMPP en ayant qu'à renseigner un pseudo.

Authentification du serveur

Comment être sûr que vous vous connectez bien à votre serveur et pas à l'ordinateur d'un attaquant ? Le seul moyen d'en être certain est de se connecter en TLS ou en SSL. Le serveur propose alors un certificat. Le principe du certificat est le suivant :

  • vous avez confiance en une entité appelée tiers de confiance (généralement une entreprise ou une association spécialisée dans la sécurité et la validation de certificats) ;
  • ce tiers de confiance certifie l'authenticité de votre serveur en signant son certificat ;
  • vous avez confiance en un tiers de confiance qui a, lui, confiance en votre serveur : vous avez donc confiance en votre serveur.

Pratiques courantes

La plupart des serveurs permettent une authentifation en clair et une authentification chiffrée. Tous les serveurs ne permettent pas encore l'authentification par SASL. Idem pour les clients. Dans tous les cas, évitez l'authentification en clair si votre connexion n'est pas chiffrée par SSL ou TLS.

Les serveurs publiques disposent généralement d'un certificat auto-signé. C'est à dire qu'ils sont leur propre tiers de confiance. Un certificat auto-signé ne permet pas d'assurer l'authentification du serveur mais il permet d'assurer malgré tout le chiffrement de la connexion. Ces certificats sont auto-signés car les tiers de confiance sont généralement des entreprises de sécurité qui facturent très cher la signature d'un certificat. Si vous avez un message d'erreur à propos d'un certificat auto-signé, ne faîtes pas attention. Il y a peu de chances que quelqu'un tente d'usurper l'identité de votre serveur (et réussisse). Accepter le certificat, même auto-signé, vous permettra au moins de bénéficier d'une connexion chiffrée.

Clients supportant ce protocole

  • Coccinella 0.95.11 :
    • permet l'authentification en clair, chiffrée et par SASL.
  • Pidgin 2.1.0 (ex Gaim) :
    • permet l'authentification en clair, chiffrée et par SASL (depuis Gaim 1.5.0).
  • Kopete 0.9.2 :
    • permet l'authentification en clair, chiffrée ;
    • ne permet pas l'authentification par SASL.
  • Psi 0.9.3 :
    • permet l'authentification en clair et chiffrée ;
    • ne permet pas l'authentification par SASL.

Serveurs supportant ce protocole

  • ejabberd :
    • permet l'authentification en clair, chiffrée et par SASL.
    • possible d'obliger une authentification chiffrée
  • jabberd14 :
    • permet l'authentification en clair et chiffrée ;
    • permet l'authentification par SASL à partir de jabberd14 v1.6.0 et en utilisant jadc2s.
    • possible d'obliger une authentification chiffrée
  • jabberd2 :
    • permet l'authentification en clair, chiffrée et par SASL.
  • Openfire :
    • permet l'authentification en clair, chiffrée et par SASL.