• [^] # Re: TLS external

    Posté par (site web personnel) . En réponse à la dépêche XMPP au printemps, le grand rafraîchissement. Évalué à 7.

    Bon, renseignements pris, TLS external ça n'existe pas, il s'agit de TLS + SASL EXTERNAL.

    S2S dialback est un mécanisme permettant à un serveur recevant une connexion de la part d'un autre de vérifier que celui-ci est joignable au nom de domaine qu'il prétend représenter :

    1. le serveur 1 se connecte au serveur 2, et se présente comme example.com ;
    2. le serveur 2 lui répond « dialback » et le met en attente ;
    3. le serveur 2 se connecte à example.com — qui est normalement le serveur 1, ou en relation avec lui dans le cas d'un service rendu par plusieurs serveurs en lien — et y envoie un identifiant secret ;
    4. le serveur 1 reçoit normalement cet identifiant et le transmet à serveur 2 sur sa connexion existante ;
    5. le serveur accepte de continuer.

    Ce système est inspiré d'une précaution qu'on peut prendre au téléphone, quand on reçoit un appel d'un inconnu :

    • « Bonjour, je suis M. Planet, de la Société Générale, je vous téléphone à propose de votre compte courant... »,
    • Attendez une seconde, je vous rappelle — et là, on cherche le numéro de la Société Générale dans l'annuaire et on les appelle pour vérifier qu'ils ont bien un M. Planet.

    SASL EXTERNAL maintenant, c'est un pseudo-mécanisme d'identification, qui indique que l'identification a en fait déjà été faite par un autre moyen, ici TLS. En gros ça doit donner quelque chose comme :

    1. le serveur 1 se connecte au serveur 2 ;
    2. ils mettent en route une session TLS qui permet au serveur 1 de s'identifer avec un certificat à son nom ;
    3. le serveur 2 exige une identification SASL, et suggère le mécanisme EXTERNAL ;
    4. le serveur 1 choisit le mécanisme EXTERNAL, et ne s'identifie pas du tout puisque ce mécanisme signifie que c'est déjà fait ;
    5. le serveur 2 accepte de continuer.

    Donc ça n'a strictement rien à voir avec S2S dialback, puisque ça ne répond pas au même problème. S2S dialback, ça fait implicitement confiance au réseau et ça permet de vérifier la responsabilité d'un nom de domaine : quelqu'un me contacte en se présentant comme example.com, est-ce qu'il est vraiment joignable à ce nom-là ou est-ce que c'est un sale spammeur qui ne prend pas la responsabilité de ce qu'il envoie ? SASL EXTERNAL, ça ne sert à rien en tant que tel, ça délègue tout à TLS qui permet de vérifier l'identité d'un nom de domaine, pas sa responsabilité : quelqu'un me contacte en se présentant comme example.com, est-ce que c'est vraiment example.com — qui pourra tout à fait être malgré tout un spammeur irresponsable ?

    Soit dit en passant, je ne comprends pas l'intérêt de SASL EXTERNAL. TLS, ok, ça sert, mais à quoi cela peut-il bien servir pour un serveur d'exiger que son correspondant fasse semblant de s'identifier avec un mécanisme qui indique juste que c'est déjà fait ? Comme la session TLS est déjà établie, si ça ne lui convient pas il a déjà eu l'occasion de la refuser...