Ring, un logiciel de communication universel

39
22
fév.
2018
Téléphonie

Ring est un logiciel libre permettant à ses utilisateurs de communiquer de multiples façons. C’est à la fois un téléphone, une station de conférence, une plate‐forme d’échanges et de partage multimédia, un lien vers les objets connectés, le tout dans un univers où la liberté et la sécurité vont de pair. Fonctionnant sur un réseau distribué et chiffré de bout en bout, Ring est distribué sous licence GPL v3.

Logo de Ring

Historique rapide

SFLphone est connu pour être un très bon logiciel de voix sur IP (utilisant le protocole ouvert SIP). Il a tôt pris en charge correctement PulseAudio et a de nombreuses fonctionnalités de conférence et de transfert d’appels très appréciées des entreprises.

Le projet subit de grosses évolutions pour permettre (en plus) de communiquer sans nécessiter de serveur central. À l’occasion de la sortie de cette nouvelle version en alpha, en mai 2015, le nom du projet devient Ring.

  • juin 2016 : le projet intègre Debian testing ;
  • octobre 2016 : Ring devient un projet GNU à part entière ;
  • 4 novembre 2016 : sortie de la version bêta 2, nommée Gaston Miron ;
  • 21 juillet 2017 : sortie de Ring 1.0 « Liberté, Égalité, Fraternité »

Fonctionnalités

Ring est disponible pour GNU/Linux, Android, Windows et macOS. Il permet de passer des appels audio ou vidéo, avec une seule personne ou en mode conférence. Il permet aussi d’envoyer des messages texte pendant un appel ou en dehors, il faut cependant que le correspondant soit connecté (il n’y a pas de possibilité de message hors ligne).

Ring utilise le protocole OpenDHT pour ne pas dépendre d’un serveur central. Il chiffre les communications de bout en bout via des certificats X.509 et TLS. La communication audio et vidéo est assurée par le protocole SIP (et utilise la bibliothèque PJSIP).

  • # .

    Posté par . Évalué à 10. Dernière modification le 22/02/18 à 12:03.

    Merci pour cette présentation.

    Je m'intéresse beaucoup aux outils de communications et aux alternatives à Skype, Slack, WhatsApp et Facebook.

    Mes critères sont : chiffrement, confidentialité, solutions libres au moins pour les clients (de toute façon, il n'y a pas vraiment moyen de vérifier ce que fait le serveur, il faut que les garanties soient côté client dans tous les cas - mais c'est beaucoup mieux si le logiciel serveur est libre bien entendu).

    Bonus si un smartphone n'est pas obligatoire (d'autant qu'il n'y a pas beaucoup de bons téléphone avec des systèmes totalement libres…). Bonus s'il est possible de ne pas fournir un numéro de téléphone (mais il faut avouer que pour la découverte des contacts, c'est très pratique).

    Pour l'instant, voici l'état des choses pour ma part :
    - Matrix et son client Riot sont prometteurs. Encore un peu fouillis et pas toujours très intuitif mais je suis certain que ça peut venir. C'est décentralisé, mais on n'est pas obligé de le savoir grâce à l'instance par défaut, et ça, c'est top pour l'adoption. Le chiffrement et les questions de confidentialités ne sont pas encore bien résolues, et c'est dommage.
    - Signal : c'est malheureusement centralisé et pire, il est plus ou moins impossible d'avoir des clients alternatifs qui fonctionne avec l'instance officielle, là où les gens sont, parce que le développeur principal ne veut pas avoir à prendre ça en charge. Il est plus ou moins obligatoire d'avoir un smartphone, en tout cas pour les gens qui ne savent pas bidouiller. Et le client bureau est lié au client smartphone. En cas de perte / vol du smartphone (et panne si pas de sauvegarde), c'est chiant. Il est obligatoire d'avoir un numéro de téléphone (ce qui est aussi sa force). L'application Android a des dépendances non libres à la compilation. L'application n'est pas dans le dépôt F-Droid. Je n'ai pas de tablette ou de téléphone sans sim, mais si c'était le cas, je ne pourrais pas utiliser Signal dessus. Pas de client web, donc pas de Signal sur les plateformes qui ne sont pas Mac, Windows, GNU/Linux. L'application est très très simple et agréable d'utilisation. Je n'ai jamais utilisé WhatsApp mais ça a l'air d'être un bon remplacement. Chiffrement et confidentialité au top apparemment.
    - Mattermost semble intéressant, je n'ai jamais essayé.

    Ring paraît prometteur, mais :
    - comment se compare-t-il à Matrix ? Il y a l'air d'avoir du soin apporté au chiffrement, il y a des travaus dans ce sens dans Matrix mais c'est en beta et il y a beaucoup de métadonnées qui transitent / sont stockées par rapport à Signal, alors que Signal est plus simple d'utilisation…
    - Pour ajouter les contacts, on dirait il faut se transmettre des identifiants de 40 caractères hexadécimaux. Je ne vais pas utiliser ça avec des gens qui ne sont pas spécialement à l'aise avec l'informatique. Peut-être que ça va s'améliorer ?
    - Pas de client iOS pour le momenton dirait. Je pense que pour l'adoption d'une solution de communication, c'est important d'avoir un client iOS.

    • [^] # Re: .

      Posté par (page perso) . Évalué à 10. Dernière modification le 22/02/18 à 14:14.

      Je vais me permettre de répondre vite.

      • Serveur libre : Ici Ring est distribué, du coup le serveur, c'est le noeud qui tourne sur ton device (ou sur celui de ton choix si tu choisis de l'utiliser en mode proxy). Le code écrit est sous licence GPLv3 (+ licences des bibliothèques)

      • Smartphone non obligatoire, y a des clients sur environ toutes les plateformes (GNU/Linux, Windows, MacOS, Android, Android TV, iOS)

        Pas de numéro de téléphone à fournir (d'ailleurs, rien à fournir. Ni mail, ni pseudo)

      • Pour la différence avec matrix, je dirais que ce n'est pas la même utilisation. Perso matrix je m'en sers comme bridge, ou pour parler avec beaucoup de personnes sur une meme room avec l'offline messaging alors que Ring, c'est plus pour de la communication en plus petit groupe. Il y a des différences d'architecture aussi. Cependant, un bridge Ring/Matrix serait possible à faire.

      • En fait non. Un compte Ring basique contient en effet ce fingerprint de 40 caractères chiant à retenir. Cependant, il est aussi possible d'enregistrer un nom sur un serveur de nom et de partager celui-ci après, comme un pseudo. Il y a plus de détails ici : https://tuleap.ring.cx/plugins/mediawiki/wiki/ring/index.php?title=Name_server_protocol
        Actuellement, ring fonctionne avec ns.ring.cx comme serveur de noms. Mais il est possible d'héberger son propre serveur de nom et ainsi avoir un id à partager de la forme pseudo@serveur, comme un mail.

      • Pas de client iOS : Si si ! https://itunes.apple.com/us/app/ring-a-gnu-package/id1306951055?platform=iphone&preserveScrollPosition=true&platform=iphone#platform/iphone&platform=iphone

      Bonne journée !

      • [^] # Re: .

        Posté par . Évalué à 2.

        Merci pour cette réponse ! C'est super.

  • # Intéressant !

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

    J’ai un vague souvenir de l’ancêtre, début des années 2000, et je m’étais dit : ça n’est pas pour moi.

    Aujourd’hui, je suis bien content que cette dépêche me fasse redécouvrir ce logiciel, qui pourrait bien être le complément tant attendu à ma plateforme d’échange XMPP auto-hébergée encore balbutiante (en attendant la version qui ira bien de Salut-à-Toi), et à laquelle il manque l’audio-vidéo.

    Je sais bien que l’A/V avec XMPP, c’est possible, mais il faut pour cela un serveur TURN, et là, mon pauvre ADSL ne tiendra pas la route…

    Il va falloir que je creuse du côté du pair-à-pair de Ring, pour voir si c’est compatible avec l’ADSL…

    • [^] # Re: Intéressant !

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

      Salut,

      pour l'audio/vidéo avec XMPP, tu peux regarder du côté de Jitsi (dont c'est la fonctionnalité principale), et Movim l'implémente également. Pour SàT c'est prévu pour la 0.8 (pas la version à venir, la suivante, mais j'espère pouvoir augmenter le rythme des sorties après le gros chantier qu'à été la 0.7).

      Le TURN n'est pas obligatoire, c'est juste utilisé si les autres cartouches n'ont pas fonctionné pour établir la connexion P2P.

      Sinon je n'ai pas encore essayé Ring même si j'en ai entendu parlé depuis longtemps, il faudra que je teste ça.

      • [^] # Re: Intéressant !

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

        Il y a aussi https://rocket.chat/ comme alternative (texte, audio, vidéo). Le chiffrement semble présent, mais je n'ai pas testé.

        • [^] # Re: Intéressant !

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

          J'ai testé.
          Un peu délicat à installer à la main du fait des technos utiliées (JS, NOSQL), et le push des notifications est très faiblement documenté. C'est potentiellement une vraie alternative à Slack, avec possibilité de chat A/V (que je n'ai pas testé). Si je veux que ça avance plus vite, je n'ai qu'à contribuer, toussa, toussa.

  • # RingID

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

    Quelques questions techniques sur le RingID (je n'ai pas trouvé de réponses dans la FAQ) :

    • Comment est généré le RingID initial ? Est-ce une chaine aléatoire ? Si oui, comment en garantir l'unicité (recherche dans DHT préliminaire ?) ?

    • Si on a déjà un RingID, suffit-il de le rentrer dans un nouvel appareil pour s'en servir ? Si oui, comment éviter l'usurpation d'identité ? Y-a-t'il un mécanisme de validation lorsque l'on ajoute un nouveau RingID (genre vérification de l'empreinte de clef cryptographique) ?

    En tout cas bravo pour ce logiciel, j'espère qu'il aura un bel avenir !

    • [^] # Re: RingID

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

      Lors de la génération d'un compte Ring, tu vas générer une paire de clef, puis une sous-paire pour chaque device associé à ton compte. Ses informations sont stockés dans un .tar.gz sur ton device, .tar.gz chiffré par le mot de passe (ou non si tu ne veux pas de mot de passe) que tu choisis à la génération du compte.

      Donc quelques petits points :

      1. Pour utiliser ce RingID sur un nouvel appareil, il suffit d'importer l'archive dans Ring (soit en exportant l'archive sur la DHT quelques minutes, soit en copiant l'archive sur ton device).
      2. Si tu perds ton archive ou ton mot de passe pour la déchiffrer, ton compte va être perdu.
      3. Le mot de passe est juste utilisé pour déchiffrer l'archive. Du coup sur deux devices, tu peux avoir deux mots de passe différents (si tu changes de mot de passe sur un device)
      • [^] # Re: RingID

        Posté par (page perso) . Évalué à 5. Dernière modification le 22/02/18 à 22:00.

        Où-donc se trouve ce tar.gz sur un télépĥone android ??

        J’ai installé Ring il y a une ou deux semaines sur mon téléphone, j’ai créé un compte et j’ai mis l’identifiant personnel que j’utilise partout. Puis F-Droid m’a proposé une mise-à-jour pour Ring. Je l’ai malheureusement faite, malheureusement car depuis Ring ne fonctionnait plus (rien qu’un truc qui tourne à l’écran, puis plus tard un message me disant que Ring a cessé de fonctionner). Là je viens de réessayer de le lancer et hop il me repropose de créer un compte, et bien sûr mon identifiant est déjà pris… Comment puis-je récupérer mon identifiant? Entre temps j’ai installé le client Linux en espérant associer y mon compte de peur de perdre mon identifiant mais je n’ai pas pu associer mon compte puisque l’appli téléphone ne fonctionnait pas. En fait j’attendais avec espoir une mise à jour qui réparerai le Ring de mon téléphone, mais aujourd‘hui j’ai l’impression que j’ai perdu mon identifiant à tout jamais…

        ce commentaire est sous licence cc by 4 et précédentes

        • [^] # Re: RingID

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

          Dans les données privées de l'application. Du coup, si ton téléphone est rooté tu peux, sinon tu ne vas pas pouvoir (sauf si tu as exporté ton compte sur un pc par exemple).

          • [^] # Re: RingID

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

            C’est à dire où ? Et par quel moyen ? Mon téléphone est rooté. Et non je n’ai pas pu exporter mon compte puisque l’appli a cessé de fonctionner juste après avoir créé le compte et que désormais elle me propose d’en créer un nouveau… :-/

            ce commentaire est sous licence cc by 4 et précédentes

          • [^] # Re: RingID

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

            C’est bon j’ai réussi à récupérer mon profil :-)

            Après avoir lu une bonne dizaine de pages diverses sur Android, adb, les applications privées d’applications, etc, j’ai trouvé une méthode, probablement suboptimale, mais ça a marché !

            J’ai d’abord activé dans mon téléphone le débogage et l’accès root par débogage. J’ai tappé une première fois la commande adb shell qui a tout de suite échoué mais sur mon téléphone il y avait une question me demandant de valider l’empreinte de mon poste de travail pour le débogage. J’ai dit oui.

            Ensuite j’ai donc fait ça (j’ai pas réussi à faire de pull), dans un shell :

            moi@desktop$ adb shell
            shell@mobile:/ $ su    
            shell@mobile:/ # base64 /data/data/cx.ring/files/*/export.gz

            J’ai copié tout le texte imprimé puis j’ai fait dans un autre shell :

            moi@linux$ base64 -d > export.gz

            Puis j’ai collé tout le texte, et sur une nouvelle ligne j’ai fait <Ctrl+D>.

            Ensuite dans le client ring pour Linux j’ai importé ce fichier export.gz et j’ai entré mon mot de passe et voilà.

            Je suis donc joignable sur Ring avec l’identifiant illwieckz. ;-)

            ce commentaire est sous licence cc by 4 et précédentes

            • [^] # Re: RingID

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

              Super !

              Par contre, si la version de ton mobile ne marche pas, ce n'est pas normal.

      • [^] # Re: RingID

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

        Merci pour ces informations !

  • # centralisé/décentralisé/P2P/Hybride

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

    J'en profite pour placer un article que j'avais écrit il y a 2 ans pour expliquer la différence entre centralisé/décentralisé etc. : centralisé, décentralisé, P2P, mais c'est quoi tout ça ?.

    En très gros, une archi centralisée est plus simple sur le plan technique (sauf pour cas particuliers comme la montée en charge), mais pose des problèmes de gouvernance, gestion des données, etc.

    Ring est une architecture entièrement P2P, c'est à dire sans serveur central (je n'ai pas regardé le détail, mais c'est ce que j'en ai compris). Ça a ses avantages, mais ses inconvénients aussi : le client doit faire le boulot du serveur, ce qui impacte la bande passante, la charge processeur – et donc la durée de vie de la batterie sur appareils portatifs –, etc. Le problème mentionné ici (pas de message hors ligne) est une des conséquences de cette archi (on pourrait y remédier avec des serveurs intermédiaires, des super nœuds ou autre, mais ça complique beaucoup et demande là encore des ressources).

    XMPP est une architecture « hybride » (décentralisée avec possibilité de faire du P2P, voire d'être entièrement en P2P – sans serveur –), ce qui donne une grande souplesse.

    Ring a l'air intéressant sur le papier, il faudrait que je trouve le temps de le tester. J'ai l'impression qu'on peut le rapprocher de Retroshare.

    • [^] # Re: centralisé/décentralisé/P2P/Hybride

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

      L'amélioration de la bande passante est un travail qu'on réalise en continu et va encore s'améliorer dans les mois à venir.

      En fin d'année dernière on a ajouté la possibilité d'utiliser un noeud distant (proxyDHT) pour les mobiles (je vais passer le détail) pour avoir un fonctionnement un peu "hybride" comme tu dis.

  • # Push notification et Google

    Posté par . Évalué à 4.

    Bonjour,

    A quoi correspond dans les paramètres: Push notifications: Use Google servers to allow receiving calls/messages in the background ?

  • # App Android pas prête pour le grand public

    Posté par . Évalué à 2.

    Le rattachement de compte ne fonctionne dans l'app Android :
    indique que le compte est introuvable (malgré l'export) et boucle sans-fin
    en indiquant qu'il ajoute le compte.
    (android 5.0.2)

Suivre le flux des commentaires

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