Journal Organisation de tests de sécurité pour XMPP

Posté par (page perso) . Licence CC by-sa
Tags :
16
21
nov.
2013

Salut à tous,

je fais juste passer le mot pour ceux qui ont des serveurs XMPP que des tests globaux se mettent en place, suite à la volonté de rendre le chiffrement obligatoire sur XMPP (il est possible mais facultatif pour le moment, cf. http://xmpp.org/2013/11/xmpp-ubiquitous-encryption-a-manifesto/ ).

La version anglophone: http://xmpp.org/2013/11/ubiquitous-xmpp-encryption-test-day-01/ .

Le calendrier:

  • le 4 janvier est le premier jour de test d'un chiffrement global avec XMPP. Le but est de savoir ce qui casse quand tous les serveurs/clients XMPP activent la communication chiffrée.

  • 22 février 2014: deuxième jour de test

  • 22 mars 2014: troisième jour de test

  • 19 avril 2014: quatrième jour de test

  • 19 mai 2014: basculement définitif

Aussi les administrateurs de serveurs XMPP doivent vérifier sa sécurité sur http://XMPP.net

Les développeurs d'outils XMPP doivent fournir la configuration minimale pour pouvoir passer les tests sur http://wiki.xmpp.org/web/Securing_XMPP

Tout le monde peut signer le manifeste (avec une « pull request » Sign the manifesto [NDR: et si on n'a pas de compte github ???]): https://github.com/stpeter/manifesto

Le message original est de Simon Tenant sur la liste de diffusion jdev

  • # ortho

    Posté par (page perso) . Évalué à 3. Dernière modification le 21/11/13 à 13:16.

    arf, j'ai loupé le s/Organisations/Organisation/ dans le titre, si un modo pouvait corriger ça, merci :)

    et aussi s/rentre/rendre/

    • [^] # Re: ortho

      Posté par (page perso) . Évalué à 4.

      Voilà, c'est fait.

      « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

  • # Autorité de certification

    Posté par (page perso) . Évalué à 10. Dernière modification le 21/11/13 à 13:50.

    Alors qu'on discute sans arrêt des défauts du système classique de certification, il semble que pour être un bon élève (d’après le site qui vérifie la sécurité), il faille se faire adouber par un CA reconnue. C'est pas comme ça qu'on va s'en sortir. En plus a cause de ca je peux pas avoir mon A, juste un F

    (alors que se plaindre sur DLFP, ça, au moins, ça fait avancer les choses)

    • [^] # Re: Autorité de certification

      Posté par . Évalué à 3.

      tant que la clef n'est pas dans le DNS, il y aura un problème.

      "La première sécurité est la liberté"

    • [^] # Re: Autorité de certification

      Posté par . Évalué à 4.

      Le sujet m'intéresse, avez-vous utilisé un certificat auto-signé ?
      Dans le cas où l'autorité choisie (où l'auto-signature) pour votre domaine A n'est pas reconnue par un domaine tiers B (lors de la fédération), que se passe-t-il ? Les autres serveurs acceptent-ils tout de même votre certificat, ou retombent-ils sur la version sans chiffrement, ou bien refusent-ils tout simplement la connexion ?

      • [^] # Re: Autorité de certification

        Posté par . Évalué à 3.

        Je me réponds à moi même. Extrait du manifeste :

        prefer authenticated encryption (via digital certificates) for
        server-to-server connections; if authenticated encryption is not
        available, fall back to opportunistic encryption with identity
        verification using Server Dialback

        Il semblerait que la connexion soit quand même acceptée ("opportunistic encryption"), à condition que le dialback/rappel (attention, c'est un brouillon) soit validé.

    • [^] # Re: Autorité de certification

      Posté par (page perso) . Évalué à 5.

      Ils acceptent CAcert dans leurs tests.

      • [^] # Re: Autorité de certification

        Posté par (page perso) . Évalué à 5.

        CACert est une autorité de certification. Je n'en entends que du bien, parce qu'elle fait bien son boulot, est dirigée par des gens qui ont à cœur le travail bien fait, etc… Mais elle ne résout pas le problème. Pour moi, tant qu'une seule CA suffira à garantir la validité d'un certificat, le problème restera entier. Je préfère un modèle plus proche de PGP, où une identité peut être signée par un nombre indéterminé de personnes, et c'est moi qui décide manuellement de faire confiance à certains parmi ce nombre indéterminé, et seulement à ce moment là (ie quand un certain nombre de personnes de confiance me renvoie la même chose), je peux décider de faire confiance au site tiers. Le modèle de perspectives/convergence, associé à du pinning, est bien plus intéressant à mon goût que le système traditionnel.

        Mais en attendant, oui, CACert est intéressante.

        • [^] # Re: Autorité de certification

          Posté par (page perso) . Évalué à 4.

          Tu devrais t'intéresser également à DANE, dans ce cas.

          • [^] # Re: Autorité de certification

            Posté par (page perso) . Évalué à 5.

            M'ouais, je sais pas. Plutôt que de faire confiance à une CA inconnue, on doit faire confiance à la hiérarchie DNS au dessus. J'ai plutôt l'impression que le problème est juste déplacé. Surtout que ça requiert DNSSEC, c'est à dire faire confiance à tout le monde jusqu'à l'ICANN… donc tu ne peux plus prendre n'importe quel registrar, il faut que tu vérifies qu'il fait bien son boulot. Ça veut dire pas de .com, parce que c'est Verizon qui fait mal son boulot.

            Je connais pas bien DANE/DNSSEC, mais ça a l'air d'être une montagne de sophistication carrément pyramidale. J'attends juste que ça se déploie un peu, pour que je puisse trouver quelques ressources qui expliquent pour les simples d'esprit comme moi.

            • [^] # Re: Autorité de certification

              Posté par (page perso) . Évalué à 5.

              M'ouais, je sais pas. Plutôt que de faire confiance à une CA inconnue, on doit faire confiance à la hiérarchie DNS au dessus. J'ai plutôt l'impression que le problème est juste déplacé. Surtout que ça requiert DNSSEC, c'est à dire faire confiance à tout le monde jusqu'à l'ICANN…

              Ça fait déjà moins de monde, tout de même.

              donc tu ne peux plus prendre n'importe quel registrar,

              Registre.

              Ça veut dire pas de .com, parce que c'est Verizon

              Verizon ? C'est un fournisseur d'accès américain ça. Tu pensais sans doute à VeriSign, qui n'est pas un bureau d'enregistrement mais un registre.

  • # Coquille ou péssimisme ?

    Posté par (page perso) . Évalué à 2.

    Le but est de savoir ce qui casse quand tous les serveurs/clients XMPP activent la communication chiffrée.

    Parce que c'est sûr que ça va casser ?
    Dans mon esprit XMPP est un protocole assez fiable.

    Ou bien on voulait dire ce qui « se passe » ?

    • [^] # Re: Coquille ou péssimisme ?

      Posté par . Évalué à 1.

      Ou bien on voulait dire ce qui « se passe » ?

      Ou bien savoir qui utilise XMPP.

      Blague à part, je sais qu'on peut même faire le café avec XMPP mais pourquoi nos chères projets libres continuent à utiliser cet infâme IRC pour le "chat" entre devs et utilisateurs?

      • [^] # Re: Coquille ou péssimisme ?

        Posté par . Évalué à 6.

        Parce que quand tu as passé des heures à fignoler ta conf d'irssi, tu ne veux PAS l'abandonner !

        • [^] # Re: Coquille oupéssimisme ?

          Posté par (page perso) . Évalué à 5.

          Parce que quand tu as passé des heures à fignoler ta conf d'irssi,

          Il existe des solutions comme minbif pour utiliser un client irc pour tout un tas de protocoles.

        • [^] # Re: Coquille ou péssimisme ?

          Posté par . Évalué à -6. Dernière modification le 22/11/13 à 22:35.

          Parce que quand tu as passé des heures à fignoler ta conf d'irssi, tu ne veux PAS l'abandonner !

          mdr, je plusse

      • [^] # Re: Coquille ou péssimisme ?

        Posté par (page perso) . Évalué à 5. Dernière modification le 21/11/13 à 21:05.

        Parce qu'il n'y a pas d'authentification. Simple et stupide.

        http://devnewton.bci.im

        • [^] # Re: Coquille ou péssimisme ?

          Posté par . Évalué à 2.

          Parce qu'il n'y a pas d'authentification. Simple et stupide.

          C'est plus trop vrai ça, la plupart des chans de projets libres sur IRC réclame un nom d'utilisateur enregistré pour pouvoir le joindre.

          Et puis, Poezio le client xmpp console qui se veut ressemblant à Irssi permet justement cette anonymité ou plutôt de joindre un serveur et salon sans compte nominatif.

          • [^] # Re: Coquille ou péssimisme ?

            Posté par (page perso) . Évalué à 6.

            Il y a aussi les logiciels:

            • installer et administrer un serveur xmpp: c'est compliqué.
            • utiliser un serveur existant: certains gros ne proposent pas ou ne documentent pas la gestion des salons.
            • créer et administrer un salon: peu de clients le permettent et en général c'est caché sous plusieurs menus et sous menus.
            • rejoindre un salon: idem.
            • rejoindre un salon sans créer un compte: Poezio est le seul à ma connaissance à le proposer.

            Du coup la plupart des gens se contentent d'un chan sur freenode, les Élites installent une tribune et quasiment seuls les développeurs XMPP utilisent les salons XMPP…

            http://devnewton.bci.im

            • [^] # Re: Coquille ou péssimisme ?

              Posté par (page perso) . Évalué à 3.

              installer et administrer un serveur xmpp: c'est compliqué.

              Faux, prosody est merveilleusement simple à installer et configurer, propose une configuration par défaut propre et tourne sans poser de problèmes.

              • [^] # Re: Coquille ou péssimisme ?

                Posté par (page perso) . Évalué à 4.

                C'est celui que j'utilise, c'est en effet beaucoup plus simple que les autres, mais par exemple les salons ne sont pas actifs par défaut… C'est juste une ligne à rajouter, mais c'est encore un obstacle à l'adoption des salons XMPP.

                http://devnewton.bci.im

            • [^] # Re: Coquille ou péssimisme ?

              Posté par (page perso) . Évalué à 4.

              installer et administrer un serveur xmpp: c'est compliqué.

              ça je ne pense pas, OpenFire est ultra facile à installer, Prosody pas très compliqué pour qui sait utiliser un éditeur de textes.
              ejabberd est de mémoire plus compliqué mais c'est pas la mort, et je ne sais pas trop pour les autres (Tigase ?).

              utiliser un serveur existant: certains gros ne proposent pas ou ne documentent pas la gestion des salons.

              il y a un problème lié à la décentralisation de la liste des salons: c'est facile d'avoir la liste d'un service MUC en particulier, mais pas de tous ceux existants.

              Pour l'administration des salons elle-même au niveau serveur, c'est dépendant des implémentations, faut voir au cas par cas, mais a priori tu dois avoir au moins la base (liste de tous les salons, suppression de salon, etc). Quels serveurs a tu rencontré qui ne proposent pas ça ? Faut leur demander directement si ça manque.

              Il faut voir aussi qu'un service MUC peut être totalement indépendant du serveur, ça peut être un composant qui fonctionne avec tous les serveurs. Du coup si le MUC de ton serveur XMPP ne te plaît pas, tu peux en prendre un autre (je ne sais pas ce qu'il y a d'intéressant, faut chercher).

              créer et administrer un salon: peu de clients le permettent et en général c'est caché sous plusieurs menus et sous menus.

              Gajim et Psi le permettent sans soucis. Je pense que Poezio aussi. D'autre (comme SàT) ne le permettent pas encore (enfin créer si, il manque l'administration), mais ça va venir :). Encore une fois il faut demander

              rejoindre un salon: idem.

              Les clients qui ne gèrent pas MUC sont rare quand même

              rejoindre un salon sans créer un compte: Poezio est le seul à ma connaissance à le proposer.

              Jappix mini le permet il me semble. Pareil faut en faire la demande, on envisage de l'implémenter dans SàT, mais c'est pas prioritaire.

              Du coup la plupart des gens se contentent d'un chan sur freenode, les Élites installent une tribune et quasiment seuls les développeurs XMPP utilisent les salons XMPP…

              IRC est simple et efficace, et dispo partout. XMPP est beaucoup plus puissant, mais c'est pas forcément nécessaire pour un projet. De toute façon XMPP peut parler avec IRC, donc tout le monde est content :)

      • [^] # Re: Coquille ou péssimisme ?

        Posté par (page perso) . Évalué à 6.

        Parce que les salles de conférences marchent moyennement sur les client (genre KTelepathy ne permet(tait ?) pas de s'y connecter automatiquement au démarrage)

        « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

      • [^] # Re: Coquille ou péssimisme ?

        Posté par (page perso) . Évalué à 4.

        Parce que IRC est infiniment plus simple à implémenter, tant côté client que côté serveur. Parce que IRC s'adapte beaucoup mieux aux pics de popularité (IRC est web-scale, XMPP ne l'est pas)

        • [^] # Re: Coquille ou péssimisme ?

          Posté par (page perso) . Évalué à 3.

          XMPP passe plutôt bien à l'échelle, me semble-t-il, surtout avec le système de serveur à serveur (pas besoin d'être sur le même serveur pour se parler).

          • [^] # Re: Coquille ou péssimisme ?

            Posté par (page perso) . Évalué à 8.

            (pas besoin d'être sur le même serveur pour se parler)

            Ben justement, en XMPP, si. Pour parler dans le salon de discussion fictif mouling@conf.linuxfr.org, tout le monde se connecte à son serveur XMPP perso, qui va se connecter au serveur responsable des MUCs de linuxfr.org. Alors, tu me diras, si tout le monde a un compte sur le même serveur (au hasard, google.com ou facebook.com), ça ne fera qu'une seule connexion entre le gros silo et linuxfr.org… Mais c'est tout contre l'esprit de décentralisation. Dans le cas extrême où chacun a son propre serveur, linuxfr.org devra avoir une connexion ouverte avec chaque serveur. Quand j'envoie un message dans le salon, mon serveur envoie ce message à tous les autres serveurs, qui les distribuent à leurs clients. Pire: même s'il y a 36 utilisateurs sur ungrosserveur.com, linuxfr.org devra envoyer le message 36 fois (!) à ungrosserveur.com, une fois pour chaque client.

            À l'inverse, IRC fabrique un spanning tree, de manière à ce qu'il y ait le moins de trafic réseau possible. Tu te connectes au serveur le plus proche de chez toi du réseau, et quand tu envoies un message, le serveur auquel tu es connecté n'envoie le message qu'aux serveurs les plus proches, une fois par serveur, qui à leur tour distribuent le message, jusqu'à ce qu'il arrive sur tous les serveurs (et donc chez tous les clients). En pratique ça veut dire que le réseau est beaucoup plus sensible aux coupures réseau, mais quand ça marche, ça marche bien.

            Il y a eu plusieurs tentatives de résoudre ce problème de passage à l'échelle, malheureusement aucune n'est arrivée très loin. Le principal problème est qu'elles demandent plus ou moins de faire confiance aux intermédiaires, ce qui est quand même difficile.

            Je ne parle même pas du fait que XMPP soit du (presque-) XML, ce qui implique une plâtrée de problèmes quand on veut envoyer des caractères un poil exotiques comme, par exemple, du XML, ou du binaire pour signer un message.

            • [^] # Re: Coquille ou péssimisme ?

              Posté par (page perso) . Évalué à 7.

              Ce sont des conceptions très différentes, tout simplement.

              IRC est conçu avec ce que j'appelle une structure en anneau, mais parle probablement plus souvent de réseau : le service est fourni par un unique ensemble de plusieurs serveurs centraux synchronisés entre eux, comme pour Usenet ou le service de clefs publiques OpenPGP. Cette structure est efficace pour proposer un réseau unique, sauf que dans le cas d'IRC, ce réseau a éclaté et qu'on se retrouve avec plusieurs réseaux IRC sans liens entre eux. Selon le fonctionnement de l'organisation humaine qui gère le réseau fournissant un tel service, la facilité de rejoindre ce réseau avec son propre serveur peut être plus ou moins facile.

              XMPP est conçu avec une structure fédérée, avec de nombreux services fournis chacun par un ou plusieurs serveurs synchronisés, ces services étant liés entre eux de façon standard. Cette structure est également utilisée pour le courrier électronique ou la téléphonie sur Internet par exemple.

        • [^] # Re: Coquille ou péssimisme ?

          Posté par (page perso) . Évalué à 3.

          Pour ce qui est de l'implémentation, pour MUC c'est pas très compliqué et y'a quand un bon paquet de bibliothèques qui le gèrent déjà.

          Pour la mise à l'échelle, c'est déjà répondu par ailleurs, mais je pense que les cas où ça gênent sont rares pour le moment (y'a peu de salon qui dépassent la centaine de participants, et peut de services qui dépassent la centaine de salons).

          Le jour où ça sera vraiment gênant, gageons que les implémentations de solutions iront vite.

      • [^] # Re: Coquille ou péssimisme ?

        Posté par (page perso) . Évalué à 4.

        cet infâme IRC

        Il y a quoi d'infâme dans IRC ?

        * Ils vendront Usenet^W les boites noires quand on aura fini de les remplir.

    • [^] # Re: Coquille ou péssimisme ?

      Posté par . Évalué à 5.

      Parce que c'est sûr que ça va casser ?

      À l'heure actuelle, google plus/talk (qui est un des plus gros services supportant jabber) ne supporte toujours pas le chiffrement s2s.

      Et vu que les hangouts ne sont pas "compatibles" avec jabber, je me dis qu'il y a des chances qu'ils se distancient peu à peu de la fédération, et du protocole.

      Et si ça se trouve, cette annonce est en partie là pour les obliger à trancher : soit ils rentrent dans les rangs, soit on joue plus avec eux.

    • [^] # Re: Coquille ou pessimisme ?

      Posté par (page perso) . Évalué à 3.

      C'est juste une traduction et une expression, faut pas voir le mal partout :).

      De toute façon je pense que la plupart des clients/serveurs sont chiffrés, mais il y a probablement de vieux trucs qui traînent encore et qui vont toussoter. XMPP est très répandu, y'a des chance que ça casse quelques trucs.

  • # tiens!

    Posté par . Évalué à -2.

    Personne n'a parlé de metronome, sans rentrer ds les détails techniques, un fork de prosody permettant enfin l'utilisation de movim.

    http://www.lightwitch.org/metronome

    • [^] # Re: tiens!

      Posté par (page perso) . Évalué à 1.

      Metronome apporte surtout un plein support de PubSub et de toutes les XEP relatives aux fonctionnalités sociales de XMPP, ce qui le rend intéressant pour Jappix également. XMPP est un protocole qui évolue, par conséquent les implémentations sont parfois inégales. Question de temps.

      • [^] # Re: tiens!

        Posté par (page perso) . Évalué à 5.

        Question de temps.

        Jusqu'à quand? XMPP existe depuis 10 ans et la situation est toujours dramatique. Malgré ses qualités, les libristes sont toujours attachés à IRC et les pwivateurs ne l'adoptent que pour en faire des réseaux fermés.

        http://devnewton.bci.im

        • [^] # Re: tiens!

          Posté par . Évalué à 2.

          Bah pour le chat privé je suppose que la plupart des libristes utilisent Jabber…

          splash!

  • # Si on n'a pas de compte GitHub

    Posté par (page perso) . Évalué à 7.

    Tout le monde peut signer le manifeste (avec une « pull request » Sign the manifesto [NDR: et si on n'a pas de compte github ???]): https://github.com/stpeter/manifesto

    Eh bien, on fait pareil : on publie sa modification sous la forme d'une branche Git dans un dépôt de son choix, puis on écrit à l'auteur pour lui demander de faire un git pull. C'est ce qu'on appelle une demande de pull, et ça n'a pas été inventé par GitHub.

    • [^] # Re: Si on n'a pas de compte GitHub

      Posté par (page perso) . Évalué à 3.

      Il faut donc un dépôt git public.

      • [^] # Re: Si on n'a pas de compte GitHub

        Posté par (page perso) . Évalué à 4.

        Pour faire une demande de git pull ? Évidemment. Sinon tu peux envoyer un patch au format Git.

        • [^] # Re: Si on n'a pas de compte GitHub

          Posté par (page perso) . Évalué à 3.

          ce que je veux dire, c'est outre le fait de proposer un truc sur github (il est hors de question que je me fasse un compte dessus), ça complique pas mal pour signer le manifeste. Je pense qu'un simple email aurait facilité les choses.

          Alors oui peut-être qu'on peut envoyer un git-diff mais d'une ça oblige d'une à utiliser git, et de deux à chercher une adresse je ne sais où pour envoyer le patch.

          Et puis pour la forme, ça aurait été pas mal de proposer un jid pour signer.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.