Authentification

De Wiki JabberFR
Aller à la navigation Aller à la recherche

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.