PROJET AUTOBLOG


Le blog de Seboss666

Site original : Le blog de Seboss666

⇐ retour index

Pourquoi on est « sécurisé » en HTTPS ?

dimanche 26 août 2018 à 10:30

Est-ce que vous avez déjà entendu parler d’HTTPS ? Est-ce que vous savez vraiment ce que c’est, à quoi ça sert, comment ça marche, et donc, de quoi on parle quand on dit que c’est sécurisé ? Vous l’aurez compris, nous voilà parti pour un nouvel article de vulgarisation dans le monde merveilleux du Web. Car HTTPS, c’est un peu la colonne vertébrale du Web moderne. Autant connaître un peu ce qui fait tenir tout ce petit monde debout. Surtout que ça vous arrive tous les jours un peu plus sous le nez, donc difficile de l’ignorer plus longtemps.

Au commencement était HTTP

HTTP, c’est la langue du web. C’est ce qui fait que votre navigateur (Internet Explorer, Firefox, Chrome, Edge, vous l’avez ?), sait comment demander l’affichage d’un site web. Comme beaucoup de langages de communication créé avant le début des années 2000 (le bon terme c’est protocole), HTTP est un protocole texte « en clair », à savoir que toutes les communications ne sont pas protégées. Toutes les informations circulent en texte brut, ce qui veut dire que toute personne qui se trouve entre votre machine et celle du site web en face peut lire tout ce que vous transmettez. Pire, on peut les modifier à la volée, ce qui permet toutes sortes de joyeusetés, comme injecter des malware à la volée, modifier des images…

Très tôt, quand on a compris qu’on pourrait faire autre chose que d’échanger des documents publics sur le web (au hasard, monter une boutique pour que des gens puissent y acheter des choses), il a fallu trouver le moyen d’éviter que ces éléments de base en clair puissent être interceptés et lus. Il serait fâcheux que votre numéro de carte bleue soit lisible par tout un chacun sans effort. Évidemment, on a vite trouvé une solution.

Au 7° jour, dieu créa HTTPS

Pas besoin de sortir de Saint-Cyr pour comprendre que le S rajouté au bout veut dire Secured, soit Sécurisé en français. Il s’agit basiquement d’ajouter une couche de chiffrement, aux fondements mathématiques suffisamment forts et souples pour permettre à une variété importante d’appareils de nature et de puissance différente de pouvoir communiquer ensemble à un niveau acceptable de sécurité. Au départ, on a utilisé SSL, pour Secure Socket Layer, qui finit par faire montre de faiblesses mathématiques (et surtout était d’abord développé par une société privée), mais entre temps il a été supplanté par TLS, Transport Layer Security, au développement ouvert et standardisé.

Celui-ci a connu quelques révisions, et si la version 1.2 est actuellement encore considérée comme sûre, son futur doit être assuré par la version 1.3 qui vient tout juste d’être publiée après quatre ans de discussions musclées entre partisans de la surveillance de masse (aussi appelée surveillance étatique), et ceux qui pensent que la sécurité est une priorité pour nos communications. Pour ceux qui voudraient se faire mal avec les détails techniques, l’excellent résumé de la RFC de Stéphane Bortzmeyer est là pour vous ravir. Et si vous voulez un résumé historique de SSL et de TLS, il y a également cet article d’OpenWeb qui est fort sympathique. Ce qu’on doit retenir c’est qu’actuellement, globalement les communications sont plutôt sures. Quand elles sont faites en HTTPS évidemment, ce qui n’est pas si trivial pour pas mal de monde : récemment j’ai passé une heure au téléphone pour expliquer et conseiller un client sur les challenges à passer ses sites en HTTPS…

Une sécurité aux buts multiples

Le but premier d’HTTPS est de rendre la communication inintelligible pour le commun des mortels qui tenteraient d’écouter aux portes de l’échange entre votre appareil et le serveur en face. L’idée est que si quelqu’un tente d’intercepter la communication, il ne verra que du bruit ou presque (il y a moyen de récupérer quelques informations comme le domaine mais ça se limite à ça).

Un autre but du HTTPS est de garantir à un visiteur l’identité du site visité. Ce qui n’est pas si idiot si on veut que la communication soit confidentielle. En effet, le protocole repose sur l’utilisation de certificat dit X509 (on parle de certificat SSL par abus de langage), dont la génération repose sur des autorités de certification qui sont des intermédiaires de confiance. Lorsque le site présente son certificat, il est marqué d’une signature cryptographique propre à l’autorité en question, et le navigateur vérifie si la signature est correcte. En cas d’erreur, pas de communication.

On peut aussi optionnellement s’assurer de l’identité du client avec le même type de certificat, ça se fait sur certaines applications notamment en entreprise. Mais ce n’est pas réservé à l’entreprise, Djerfy a fait un article il y a quelques années pour montrer comment verrouiller l’administration d’un blog WordPress avec cette méthode.

Et enfin, et c’est lié à la garantie de l’identité du site, le protocole assure que les contenus émis par le serveur ou le client ne sont pas modifiés en route. Si c’est le cas, la communication est coupée car elle n’est plus mathématiquement propre. Vous pensez que c’est inutile ? Un opérateur au Canada commence à injecter des publicités par dessus le contenu des sites que vous visitez s’ils ne sont pas en HTTPS.

Petite introduction au fonctionnement du protocole

Allez, on va pas échapper à une petite section technique, si ça vous embête passez au chapitre suivant, personne ne vous en voudra et ce n’est pas vital pour terminer l’article. Donc, vous cherchez à atteindre https://www.facebook.com, que ce soit via votre navigateur ou l’application mobile. Votre appareil va alors initier une demande de connexion chiffrée en indiquant si possible le domaine (www.facebook.com) sur lequel il veut se connecter. Il annonce en même temps la version maximale du protocole de chiffrement qu’il supporte, ainsi que les algorithmes de chiffrement qu’il aimerait utiliser.

En face, le serveur répond en affichant son certificat, ainsi que sa propre version maximale et les algorithmes qu’il supporte. Votre appareil, avant de continuer, vérifie que ce certificat a été émis par une autorité de certification reconnue. Si ce n’est pas le cas, il vous crachera une erreur et n’ira pas plus loin, car l’un des deux prérequis à l’utilisation, la garantie de l’identité, n’est pas vérifié. S’ensuit alors une série d’échanges pour finaliser les différents paramètres cryptographiques (avec notamment la signature du certificat qui repose sur une clé privée et une clé publique), qui permettront de chiffrer la communication et surtout de la rendre unique. A la fin c’est le serveur qui décide, vu que c’est lui qui dispose du certificat.

Ces deux premières étapes sont appelées « handshake », littéralement poignée de main, qui est souvent un signe qu’on s’est mis d’accord; J’ai pu lire chez Stéphane Bortzmeyer « protocole de salutation » qui est une jolie traduction non littérale 🙂 Parmi ces échanges sont définies mathématiquement des clés de chiffrement qui seront uniques. De sorte que même si avec le temps on arrive à déchiffrer une communication enregistrée au préalable, les clés découvertes ne pourront pas permettre de déchiffrer de futures  communications entre les mêmes participants. Voilà ce que peut indiquer votre navigateur quand la connexion est établie :

On voit que le site a été vérifié, et que le certificat utilisé a une date d’expiration. En bas, dans les détails techniques, on voit la version de TLS utilisée (1.3, oui oui, fraîchement finalisé qu’il est déjà déployé par certains gros acteurs), ainsi que de la suite de chiffrement, dans laquelle ont voir de l’AES sur 128 bit en mode GCM, ce qui est loin d’être dégueulasse même si pas le top du top qui existe, avec une méthode de hashage SHA256, qui est toujours considéré comme sûr à l’heure actuelle. Donc techniquement parlant, on est sur du très bon, pas le plus furieux mais je pense que c’est sélectionné pour des raisons de performance : on pourrait par exemple passer sur AES256 mais le coût en calcul est beaucoup plus élevé puisqu’on double la taille de la clé. Idem pour SHA256, il est possible d’utiliser encore plus élevé, avec les mêmes conséquences, ça serait lus lourd à calculer et du coup tout paraîtrait plus lent.

Mais ça ne sont que les paramètres sur lesquels mon Firefox et Facebook se sont mis d’accord. Si on regarde tout ce que Facebook supporte, on voit qu’il est capable de proposer bien pire. Pour une raison simple : même si vous avez encore un ordinateur sous Windows XP, ou un smartphone avec Android 2.X, alors vous pourrez tout de même consulter Facebook. Mais dans ce cas vous êtes un bon candidat à la crucifixion, parce que c’est juste irresponsable d’utiliser encore ce genre de configuration de nos jours.

De quoi HTTPS ne protège pas ?

Le rôle d’HTTPS est donc de garantir l’intégrité du transport du contenu d’un site du serveur vers le client ainsi que de l’identité dudit serveur et/ou dudit client. Mais ce n’est pas son rôle de s’occuper du contenu en question, ni du reste de l’environnement du client et du serveur. HTTP, c’est HyperText Transfer Protocol, pas antivirus. Si votre machine est déjà infectée par divers malwares conçus pour voler des informations, le fait que le transport de celles-ci soit protégé n’empêchera pas nécessairement le malware de capturer la saisie avant l’envoi et de retransmettre ces informations à une personne malveillante.

Même si vous êtes clean, on a déjà un historique plutôt fourni de sites qui se sont vus infectés pour servir du code malveillant aux visiteurs. Et là non plus HTTPS n’est d’aucune aide, puisque le contenu est compromis en amont. Il est donc tout à fait possible de se faire également voler des infos et infecter dans ce contexte.

Un dernier élément est le phishing, traduit hameçonnage en français (ça va c’est pas affreux comme traduction). Si vous recevez un faux mail se faisant passer pour votre opérateur de téléphonie ou votre banque, vous invitant à cliquer sur un lien et entrer vos coordonnées, notamment bancaires, si le site ressemble comme deux gouttes d’eau à l’original, qu’il est sur un domaine complètement différent mais que le certificat est valide, l’utilisateur la plupart du temps verra « cadenas vert » et ne se posera pas plus de questions sur l’adresse réelle qui se trouve à côté. Et pourtant on est clairement dans une situation où les informations saisies seront récupérées à des fins malveillantes. HTTPS n’est donc d’aucune aide dans le mauvais comportement des utilisateurs.

Alors, sécurisé ou pas ? Les navigateurs mentent-ils ?

Évidemment que l’on est sécurisé en HTTPS, mais il faut bien comprendre les limites de cette sécurité. Comme souvent en informatique, le meilleur des outils ne sera aussi bon que par l’usage qui en est fait par les gens. D’un certain point de vue les actions de Google, décidément trop influent sur le monde numérique, sont malgré tout à saluer, à savoir favoriser le HTTPS dans les résultats de son moteur de recherche, ainsi qu’alerter méchamment sur son navigateur qu’un site n’est pas sécurisé quand il est chargé « en clair ». Mais tout n’est pas parfait et il est possible de galvauder un peu cette sécurité, de sorte qu’il faut continuer à éduquer les gens sur les dangers du phishing, qui reste une activité très lucrative pour les criminels; quand bien même les ransongiciels et les mineurs de cryptomonnaies ont le vent en poupe. Avec un trafic mail estimé à 95% de spam, pas étonnant que ça reste un morceau de choix.

Ironie du sort, Android à salement tendance à utiliser leurs serveurs DNS maison plutôt que celui fourni par votre connexion (4G, Wifi), de sorte que toute personne qui utilise son smartphone partage en permanence à minima les domaines qu’il utilise avec la maison mère. Et quand les utilisateurs ajoutent un compte Google dessus, là c’est toute l’activité en ligne qui se retrouve enregistrée là-bas. Après on va hurler que Firefox est hypocrite quant à la vie privée de ses utilisateurs (c’est en partie vrai), mais là, hein, ça ne semble déranger personne…

Installation offline de .Net Framework 3.5 sur Windows 10

jeudi 23 août 2018 à 18:30

Il y a des logiciels qui n’en finissent pas de mourir. Par exemple, quand on doit se taper l’installation de ce putain de client lourd VMWare qui demande une version antédiluvienne du framework de Microsoft (qui installe aussi J#, mais ça je vais éviter d’en parler pour l’instant). Parce que quand vous manipulez du Private Cloud OVH, certains aspects de votre cluster (backup, reverse des bloc d’IP) ne sont accessibles que via des plugins de ce client. Au moins ça évite de se taper Flash (oui parce que bon, tout le monde ne bosse pas encore avec ESX 6.5). Enfin presque.

Pourquoi je peste ? Parce que le client lourd de VMware est en cours d’abandon, n’a pas évolué depuis la version 5.5 d’ESXi, donc toutes les nouvelles fonctionnalités ne sont pas disponibles sur ce client. Mais OVH a trouvé le moyen de ne proposer des plugins que pour cette interface, pour la gestion intégrée du backup des VM via Veeam ainsi que de la manipulation des reverse IP des blocs affectés à votre pcc. Le reste devant se faire via le web client, toujours en flash intégral en version 6.0, partiellement HTML5 dans la version 6.5 qui n’est toujours pas installée par défaut et dont la mise à niveau n’est pas prise en charge en temps normal par OVH (alors même que pas mal de fonctionnalités liées à vSphere sont inaccessibles en raisons de limitations imposées par OVH sous couvert de service…). Et l’interface Web est nécessaire pour toutes les fonctionnalités récentes, ou la gestion du firewalling NSX par exemple. Pour la blague, sur mon ordi le seul moyen pour que ça soit « stable » c’est d’utiliser Chrome et sa version de flash embarqué, un autre collègue c’est Edge qui est le seul capable de ne pas planter toutes les deux secondes, Firefox a déclaré forfait depuis longtemps, bref, il y a les vœux pieux des créateurs de standards universels, et la réalité du monde professionnel avec ses affreuses habitudes 🙁

Et je peste encore plus sur Windows 10, car le client demande l’activation du .Net Framework 3.5, qui est proposé en tant que composant optionnel (via les « fonctionnalités »), lui aussi zombifié, mais allez savoir pourquoi, depuis un an leur activation sur les machines que l’on a au boulot échoue lamentablement, et même les gars des moyens internes déclarent forfait face à cette erreur.

Finalement, c’est le tout fraîchement débarqué Pierre-Marie (l’élu de mon billet de recrutement) qui a trouvé une solution que je détaille ici en Français, un grand merci à lui donc. On commence par récupérer une iso fraîche correspondant normalement à la version installée sur votre poste Windows 10 via l’URL dédiée sur le site de Microsoft. Petit tip : si vous accédez à l’URL sous Linux, vous aurez accès directement à l’ISO, sinon Microsoft ne vous fournit que le Media Creation Tool, une horreur sans nom et lente à crever mais qui atteint le même résultat. Cette image ISO, il faut ensuite la monter grâce à l’outil maintenant intégré à Windows (enfin dirons certains, 20 ans après Linux), ça lui attribuera une lettre libre :

Ouvrez ensuite une invite Powershell en mode administrateur, et saisissez la commande suivante (adaptez la lettre de lecteur avec celle qui a été attribuée) :

Dism /online /enable-feature /featurename:NetFx3 /All /Source:X:\sources\sxs /LimitAccess

Si tout se passe bien vous devriez avoir un message « Success ». Il ne vous reste plus qu’à relancer l’installation du client lourd VMware, et à subir le jonglage entre les deux interfaces. Bon courage 🙂 Par contre, ne me demandez pas pourquoi Microsoft trouve encore le moyen de vautrer son système comme ça, mais après tout, il commence à avoir l’habitude, je ne m’étonne plus de rien…

Je suis passé à Powerline pour mon Bash

lundi 20 août 2018 à 18:30

Après des années à voir passer des articles sur des configurations spécifiques pour bash, et plus récemment sur fish, que des collègues utilisent au boulot (les mac eux bossent sur zsh), je me suis dit qu’il faudrait aller un peu plus loin que mon bash classique à peine modifié pour inclure git. Ça n’a pas été de tout repos, j’ai pas mal tâtonné mais j’arrive à quelque chose qui me plaît.

Première tentative : powerline.bash

J’ai vu passer le script sur le Journal du Hacker, ça m’a plu très vite : pur bash, léger, on clone, on source et ça juste marche. A peu de chose près, car il faut avoir une police adaptée comme pour Powerline, j’ai procédé comme suit :

git clone https://github.com/powerline/fonts.git
cd fonts/SourceCodePro
sudo find . -iname "*.otf" -exec cp {} /usr/share/fonts/opentype/ \;
sudo fc-cache -f -v

Ça, c’était chez moi, et dans l’ensemble ça fait le taf. Là où ça coince, c’est en arrivant sur ma vm Lubuntu du boulot, j’ai un problème disqualifiant avec la complétion SSH. Le problème est très exactement décrit dans une issue mais pas de réponse pour l’instant il est pris en charge maintenant qu’il a reçu les notifications 🙂 Je reproduis sur deux variantes fraîchement installées d’Ubuntu. Avec un comportement encore pire sur Ubuntu car les polices ne sont pas prises en compte comme il faut, donc on a des trucs biens dégueu sur les séparations. Un debug à base de bash +x ne donne rien de flagrant. Je reviens en arrière et cherche un peu, mais je suis déjà frustré.

UPDATE : Comme quoi la contribution ça tient à peu de chose, une petite remontée rapide, et hop, le problème de complétion SSH est maintenant corrigé 🙂

Finalement, rien de tel que l’original : Powerline

Ce qui était sympathique avec ça, c’est que c’est ultra léger. Powerline de son côté est écrit en python, nécessairement plus complexe. L’installation est cependant encore plus simple puisque le soft est empaqueté et présent dans la plupart des distributions. Il y a quelques subtilités notamment les paquets de polices adaptées dont le nom change. En effet, si c’est fonts-powerline sur Ubuntu et dérivés, c’est powerline-fonts sur Arch/Manjaro.

NB : au départ Powerline est prévu pour « pimper » Vim, mais des plugins sont vite venus se greffer dessus pour ajouter le support des différents shells.

L’activation elle par contre est un peu plus roots. On commence par créer le dossier ~/.config/powerline qui va contenir nos différents éléments de configuration, et vous allez voir qu’il en faut potentiellement beaucoup plus. Au début je la joue simple, j’utilise juste le thème default_leftonly qui inclue le segment pour git. Il faut pour ça juste ajouter le bout de json « kivabien » dans le fichier config.json :

{
        "ext": {
                "shell": {
                        "theme": "default_leftonly"
                }
        }
}

Reste ensuite à ajouter les lignes suivantes dans un bashrc, bash_aliases, ou encore .extend.bashrc en fonction de votre distribution pour activer le bousin :

#Powerline
if [ -f `which powerline-daemon` ]; then
  powerline-daemon -q
  POWERLINE_BASH_CONTINUATION=1
  POWERLINE_BASH_SELECT=1
  . /usr/share/powerline/bindings/bash/powerline.sh
fi

Un source plus tard, dites bonjour au prompt :

Problème, même en jouant avec les options du segment, je ne vois pas l’état du dépôt courant, juste la branche. Au moins avec powerline.bash la couleur changeait pour dire qu’il y avait du taf en cours.

En cherchant une autre solution je tombe sur gitstatus, un segment personnalisé spécial pour git. Installation simple aussi, puisque le module s’installe via pip. Sa configuration par contre c’est beaucoup plus touffu, d’où ma remarque un peu plus tôt. Je suis la documentation plus ou moins à la lettre, je m’explique. Il faut d’abord créer le profil de couleur pour toutes les infos qu’il va afficher. Ensuite, et c’est là que c’est pas forcément clair, il faut créer une copie du thème par défaut pour y inclure le segment gitstatus, sinon il n’est pas pris en compte. Et comme c’est un ajout au thème par défaut, finalement virer mon fichier config initial puisque on rebascule dessus.

En rechargeant le tout c’est beaucoup plus intéressant côté git :

Certes il va maintenant falloir prendre l’habitude de la signalétique mais on sait tout de suite dans quel état se trouve le dépôt.

Une doc à fouiller

J’avais modifié mon rôle Ansible maison de déploiement utilisateur pour exploiter la version en bash, puis pour la première version en Python; mais il va falloir encore un peu plus de taf pour celui-ci, car on voit que le boulot est plus conséquent. Comme je l’ai dit, la doc Ansible est un bonheur, et il y a un module pip qui va permettre de faire les choses proprement.

Il y a en effet pas mal d’options à creuser, j’ai déjà un truc qui va bien, mais il est possible d’aller un poil plus loin, donc on va bosser un peu le site dédié même si le niveau de détails est loin d’égaler la doc d’Ansible. Je cherche notamment à finalement bosser sur deux lignes, j’ai vu ça sur la version bash et ça m’a plu direct. Affaire à suivre donc. Apparemment c’est faisable mais c’est pas aussi simple que ça parait.

Warning sur Arch/Manjaro

En fait la routine d’inclusion au bashrc avait du être adaptée quand je l’ai installé sur le laptop. Pour une raison que j’ignore, le fichier powerline.sh à inclure se trouvait dans le dossier d’installation de Python, /usr/lib/python3.6/site-packages/powerline/bindings/bash/powerline.sh, et pas celui de la documentation (qui est faux aussi pour Debian/Ubuntu soit dit en passant). En tout cas je l’ai trouvé là, du moins updatedb/locate me l’a montré à cet endroit-là.

Oui mais entre temps, petite mise à jour (370 paquets…), et surprise, Python 3.7 est de sortie. Du coup le chemin change (étrangement je retrouve celui que je vous ai partagé), et le paquet gitstatus doit être réinstallé pour la nouvelle version. Faudra juste s’en souvenir lors de l’arrivée de Python 3.8 🙂

D’autres options pour avoir un shell plus « musclé »

J’ai volontairement fait le choix de rester mesuré sur les ajouts que je fais sur Bash. J’ai également fait le choix de rester sur Bash, parce que si sur le laptop je fais ce que je veux, quand je suis sur les serveurs des clients je ne maîtrise pas tout, et en particulier nos prérequis système s’appuie sur le shell par défaut des distributions qu’on utilise, et donc CentOS utilise Bash, tout comme Debian. Je préfère donc éviter de trop diverger.

J’évoque notamment Fish en introduction, c’est l’exemple parfait de divergence qui rend service mais qui peut desservir aussi quand on n’y a plus accès. Notamment en matière de scripting. C’est donc un outil qu’il faut analyser vraiment en détail avant de vouloir s’en servir.

Dans une optique plus mesurée, j’avais déjà pu dans le passé tester rapidement liquidprompt. Ça vient se greffer sur Bash comme Powerline, et les options d’affichage sont aussi nombreuses, même plus que pour Powerline. Mais ça ne m’avait pas emballé à l’époque, peut-être le design, ou alors c’était trop tôt pour moi.

D’ailleurs liquidprompt est aussi exploitable sur Zsh, mais j’en connais qui l’utilisent plutôt avec Oh My Zsh, qui exploite à fond les capacités de personnalisation de Zsh pour proposer une expérience qui déboîte à ce qu’il paraît. Plusieurs collègues au boulot, notamment ceux qui bossent sur Mac, l’utilisent de cette façon, du fait que Zsh et Bash partagent pas mal de similarités (plus qu’avec Fish), je me laisserai peut-être tenter un jour. Avec toujours ce problème qu’il n’est pas toujours possible de l’exploiter sur les serveurs des clients, ce qui oblige donc à garder les bases en mémoire.

Ce sont les options les plus connues je pense. Mais si vous connaissez d’autres options pour avoir une ligne de commande qui rox du poney, n’hésitez pas à partager, je suis certain que vous avez tous vos petites astuces concernant votre shell préféré. Et je serais curieux de les connaître 🙂

Ce que je comprend des services alternatifs fédérés et les problèmes qu’il reste à couvrir

vendredi 17 août 2018 à 18:30

Pour les techniciens, désolé, ça ne sera pas un tour de table exhaustif des protocoles et sites à la mode qui courent en ce moment. Non, ici, on va reprendre un peu à la base, pour présenter les choses simplement. Mais ne partez pas, parce qu’il reste des choses à dire sur les enjeux, en particulier ceux auxquels selon moi ils ne répondent pas. On va causer réseaux sociaux, services vidéos, créateurs, et problème fondamental du Web actuel.

C’est quoi un service fédéré alternatif ?

Avant d’attaquer l’aspect fédéré, revenons sur le concept d’alternative. Il s’agit de proposer d’autres solutions pour remplir plus ou moins la même fonction. Vous avez déjà entendu parler de LibreOffice comme alternative à Microsoft Office, ou d’Ubuntu comme alternative à Microsoft Windows ? Le concept est le même pour les services Web, dont la plupart sont verrouillés par les entreprises qui les développent. L’année dernière il a été fait grand bruit de Mastodon (par exemple sur Libération, pas vraiment orienté technique comme site d’information), présenté comme alternative à Twitter, Diaspora* existe depuis quelques années en étant présenté comme « remplaçant » de Facebook, plus récemment on fait beaucoup de bruit autour de la montée en puissance de PeerTube pour déloger YouTube de son fauteuil doré afin qu’il retourne sur une chaise (dorée aussi, mais j’y reviendrais). Voilà, pas besoin de rentrer dans la technique, vous avez le concept, ce sont des services « concurrents », mais qui sont développés avec une particularité qui est très intéressante à mon sens et qui devrait retenir l’attention des gens.

Et là, on va parler de fédération. Déjà, on rappelle que Twitter, Facebook, YouTube et compagnie sont des entreprises privées qui centralisent les données qu’on leur fournit (contenus, interactions, plus pistage sur les sites tiers) dans leurs silos. Vous n’avez qu’un seul point d’entrée pour Twitter, un seul pour YouTube, etc. Les conditions d’utilisation sont également douteuses, mais ce n’est pas le sujet principal, juste prendre en compte qu’ils sont les seuls maîtres à bord de LEUR navire. Et que s’ils choisissent de filtrer, censurer, ou que les autorités de votre pays de résidence décident que vous n’avez plus le droit d’accéder à un service, vous n’avez plus accès à rien.

Dans le cadre d’un service fédéré, il existe plusieurs copies du même service, mais les copies dialoguent entre elles pour indiquer quels contenus elles hébergent, de sorte que quelle que soit l’instance (c’est le terme utilisé pour désigner la copie) sur laquelle vous vous rendez, le contenu intégral vous est proposé. La notion principale et l’objectif recherché est là : tout le contenu n’est plus hébergé dans un « lieu » unique avec un seul décideur quant à sa disponibilité, mais réparti sur de multiples lieux, de sorte que si l’un des lieux tombe, le reste du contenu est toujours disponible, et il n’y a qu’un seul morceau qui manque.

À qui faire confiance ?

Les idéalistes pensent que chacun peut installer sa propre copie, s’inscrire dessus et la connecter au reste du « fediverse », le nom donné à l’univers fédéré. L’histoire a prouvé maintes et maintes fois que la réalité est toute différente, et comme vous accordez une certaine confiance à Facebook, vous allez devoir faire confiance de nouveau à des prestataires pour la fourniture du service, à moins d’être un administrateur système confirmé.

Et là, bon courage. D’une part, quelque soit la robustesse de la solution logicielle, l’héberger soi même est un travail de technicien, donc un très très faible pourcentage du public global peut se le permettre. Ensuite, en admettant qu’une personne monte une instance, et accepte des inscriptions dessus, elle devient du coup, en tant qu’hébergeur, responsable juridiquement des éventuels débordements des utilisateurs de son bout de réseau. Et là, la proportion des techniciens prêts à prendre du temps et de l’argent pour assumer ce rôle fond encore plus comme neige au soleil.

C’est tout le problème qu’a rencontré Framasoft lors du lancement de la campagne Dégooglisons Internet. L’idée de base était de montrer que les alternatives qui vous respectent existent, et de proposer un service « framabidule » en preuve de concept, sans oublier de mettre en avant le logiciel original en dessous pour pouvoir le monter vous-même ailleurs pour vos propres besoins. Je vous le donne en mille, certains de leurs services sont déjà devenus incontournables, les utilisateurs ne cherchant qu’à rester utilisateurs avant tout. Il serait aussi intéressant de connaître le niveau de contribution apporté par le flot d’utilisateurs avancés supplémentaires qui ont été apportés par la campagne.

Le titre du chapitre c’est à qui faire confiance, et je pense qu’on peut sans peine faire confiance à Framasoft sans trop de difficultés. Mais Framasoft n’est qu’une association, certes suffisamment volumineuse pour se permettre d’avoir des « salariés », mais association avant tout. Et rien n’est gratuit dans le monde du numérique, à commencer par l’infrastructure. Tout comme Wikipedia, malgré des plans de fonctionnement sur plusieurs années, ceux-ci sont dépendants d’un budget pour lequel ils doivent se battre chaque année à renforts d’appel aux dons. Wikipedia a d’ailleurs été plusieurs fois critiqué pour la forme qu’a pris leurs appels aux dons.

La confiance sera peut-être plus limitée avec un autre acteur plus modeste. Le collectif C.H.A.T.O.N.S. initié la aussi par Framasoft est une étape supplémentaire pour proposer une sorte d’annuaire d’hébergeurs capables de proposer le même type de services qu’eux. Hébergeurs qui respectent tous une charte sur le respect de leurs utilisateurs. Mais ce n’est pas exclusif, c’est tout le concept dans le cas d’un service fédéré.

Et là, ça se complique vachement.

Qui lit les cgu ?

La question n’est pas anodine. Les fameuses conditions générales d’utilisation des services que personne ne lit jamais avant de filer ses données à un service souvent outre Atlantique ont un certain avantage dans le cadre des services centralisés : elles sont les mêmes pour tout le monde, puisque tout le monde se connecte au même endroit.

Dans le fediverse, la situation est différente : chaque instance du service peut imposer ses propres conditions d’utilisation. Toutes ne se valent pas, encore qu’il y a un tronc commun; pire encore, pour étendre le sujet sur la confiance, l’égo de l’administrateur peut rentrer en ligne de compte. Comment c’est possible ? Comme je l’ai dit, juridiquement l’hébergeur est responsable du contenu qui est publié chez lui, même si le contenu est consultable en dehors via une autre instance. Il a donc tout intérêt à établir des règles, et il n’est pas rare de voir des conditions très particulières d’utilisation, en fonction de l’administrateur justement.

Le(s) problème(s) spécifique(s) de la vidéo

Je voulais mettre ce paragraphe à part, parce que selon moi le domaine de la vidéo met énormément de problèmes en lumière. De la même manière que Mastodon a fait du bruit l’année dernière, Framasoft a réussi à faire parler de PeerTube, et mieux encore, financer le salaire de son développeur principal pour qu’il se concentre dessus sur l’année qui vient. C’est déjà un exploit remarquable que je tiens à saluer.

PeerTube donc, vous l’aurez deviné doit proposer une alternative à YouTube décentralisée, fédérée, avec une particularité supplémentaire nécessaire selon moi en raison du poids des contenus : dans la mesure du possible les vidéos sont diffusées en peer-to-peer, donc d’utilisateur a utilisateur et non plus uniquement de serveur à utilisateur (le serveur fait toujours office de source, de sorte que même si personne n’est en train de regarder la vidéo, elle reste toujours disponible). C’est une très très bonne idée selon moi, et les navigateurs modernes sont maintenant suffisamment équipés pour supporter ça sans problème. Enfin sans problème, j’en parle tout à l’heure.

Le logiciel est jeune, à peine trois ans, doit encore compléter ses fonctionnalités, mais fonctionne déjà bien, et c’est ce qui je pense à fait le succès de la campagne de financement. Et il semble reposer sur des bases techniques solides qui ne le limiteront pas beaucoup dans le futur (je dois encore mettre mon nez dedans pour confirmer cette impression). Rien que la fédération est intéressante en soi, car il existait déjà des outils « clé en main » pour monter une plate-forme de diffusion vidéo, mais mono serveur. Et puis, essayez de monter un serveur Mediagoblin et revenez me voir quand vous aurez séché les dernières larmes de sang de votre visage (un problème qui touche également Diaspora* et dans une moindre mesure Mastodon en raison de leurs choix techniques).

Maintenant, difficile de parler de diffusion vidéo sans parler de création, donc des créateurs. Sur le papier, tout le monde peut produire du contenu à hauteur de ses moyens et les diffuser. Mais mécaniquement un contenu vidéo coûte beaucoup plus cher à produire, que ce soit avec le matériel nécessaire en fonction du type de contenu, qu’en temps passé en écriture, tournage, montage, encodage (pour gagner du temps on peut dépenser en machine puissante), et enfin la publication, l’envoi de la vidéo finale sur nos connexions ADSL est une tannée et il n’y a que des ministres parisiens surgavés de réseaux pour penser que la fibre est déjà majoritaire sur nos territoires.

Et certains cherchent donc, au regard du temps passé, à en faire leur activité professionnelle, souvent en tant qu’indépendant, et pour ça, il faut une source de revenus. Sur YouTube si historiquement la publicité apposée sur les contenus suffisait, le paysage a évolué, les revenus se sont effondrés, et il n’est pas rare que le résultat soit un mix de publicités (qui pose d’autres problèmes, j’y reviendrai), de financement participatif, d’opérations spéciales financées par des marques voulant mettre un produit ou service en avant… Malgré tout la publicité reste une part importante et rares sont ceux qui disposent d’une communauté de financeurs (sur Tipeee ou Patreon par exemple) suffisante pour s’en passer. C’est même souvent la première et unique source pour ceux qui débutent, avant d’acquérir la visibilité suffisante pour tenter l’aventure participative, puis les opérations spéciales.

Sauf que là où YouTube est un point de diffusion unique, permettant de garantir dans une certaine mesure les affichages de publicité, et de centraliser du coup la répartition des revenus, une vidéo sur PeerTube peut être regardée depuis n’importe quelle instance qui n’inclut pas forcément de contenus publicitaires, pire, chaque instance pourrait tenter l’aventure avec une régie pub différente, et là bon courage pour gérer ensuite la rétribution financière, puisque le principe veut que c’est la plate-forme qui récupère les sioux et ventile ensuite en fonction du trafic mesuré. Et ça va être ingérable pour ventiler sur des producteurs qui sont inscrits ailleurs. D’autant plus qu’il faut garder à l’esprit ce que j’évoquais sur les cgu et les administrateurs…

Sans ce premier braquet, il est donc compliqué de voir émerger des producteurs qui pèsent, d’autant plus qu’il va falloir du temps pour que le réseau représente un parc de visionneurs significatif (une quasi-histoire d’œuf et de poule), hors ce qui continue de pousser les nouveaux joueurs sur YouTube pour tenter de vivre de leurs créations, c’est l’assurance de toucher une audience potentielle particulièrement rapidement. Et avec la visibilité qu’on acquiert, les contrats spécialisés permettant de diversifier les revenus. Quand YouTube peut annoncer plus d’un milliard et demi d’utilisateurs mensuels, qui est un chiffre qui plaît aux marques, compliqué de pouvoir calculer l’équivalent dans un univers fédéré. D’autant qu’il faudra longtemps pour qu’il soit disons équivalent à un Dailymotion pourtant moribond aujourd’hui face à YouTube.

Et là j’entends déjà les extrémistes me dire qu’on a pas besoin de « YouTubeurs » sur Peertube. Oui, mais vos instances, elles existent pas par magie non plus, ce sont des logiciels puissants qui demandent une ou plusieurs machines qui supporte(nt) à la fois le stockage et la conversion de la vidéo pour s’adapter au visiteur et son débit. Débit qui doit aussi être conséquent malgré l’utilisation du WebTorrent, la technique pour la diffusion vidéo en peer-to-peer, car à chaque publication de vidéo il faut s’attendre à une période « creuse » ou personne n’est en capacité de servir de pair. On parlait de CHATONS tout à l’heure, il faut bien comprendre que la plupart des services qu’ils proposent sont payants. Pour une bonne et simple raison : l’hébergement ça coûte cher. YouTube ne fait rien payer à ses utilisateurs (ça vient doucement avec des abonnements « premium »), et rien non plus aux créateurs. Si ces derniers touchent de moins en moins sur la publicité, c’est que celle-ci finance avant tout l’infrastructure gargantuesque de YouTube. Il en sera de même pour ceux qui tenteront l’aventure Peertube, il faudra trouver un modèle pour pouvoir supporter les coûts de cette infrastructure. C’est tout le problème du web à l’heure actuelle : les utilisateurs ont été habitués pendant plus de 20 ans à ne rien payer, maintenant c’est la fête aux fermetures de sites parce qu’il est impossible de continuer à payer ou alimenter (le temps, encore lui) sans contreparties.

Ajoutez un problème technique ce coup-ci lié à WebTorrent, qui est donc une technique de peer-to-peer. Un point dont n’est pas responsable PeerTube en soi, mais lié au fait que les opérateurs persistent à vouloir créer des réseaux de consommation de contenus unidirectionnel quand internet a été conçu pour que chaque machine puisse jouer tous les rôles, consommateur ou diffuseur. Que ce soit sur les connexions ADSL, dont le débit montant, celui qui permet de pousser du contenu, est mécaniquement maintenu à une valeur ridiculement faible, empêchant de fait le partage efficace des contenus diffusés sur PeerTube (un point qui verra une solution dans le déploiement du très haut débit, le vrai, la fibre quoi), ou bien la contrainte du NAT, dont j’ai déjà eu l’occasion de parler, et qui empêche par défaut toute connexion directe entre appareils derrière deux passerelles distinctes, compliquant d’autant plus la diffusion (upnp permet de s’en accommoder, mais il faut savoir ce que ça implique question sécurité). Un problème d’autant plus vrai sur des réseaux mobiles, dont les appareils sont tous cachés derrière des sortes de livebox géantes, là aussi pas question d’autoriser une connexion depuis l’extérieur.

En parlant de mobile, pour l’instant ce n’est pas une priorité, alors qu’avec un trafic qui se fait maintenant plus souvent sur smartphone que sur pc, c’est juste nécessaire, limite obligatoire. Mais là je peux comprendre en partie : proposer un client mobile présuppose d’abord d’avoir une plate-forme technique solide et surtout stable, d’un point de vue api entre autres. Il y a d’ailleurs déjà quelques débuts de tentatives d’application Android créées de manière indépendante, ce qui valide un peu ce que je viens de dire sur la nécessité, et me conforte aussi sur la faisabilité d’un ou plusieurs clients, même de manière indépendante à la plate-forme logicielle elle même.

À quand chez moi ?

Du fait de ne pas avoir besoin de monétisation, je pourrais très bien installer ma propre instance PeerTube pour y redéposer les quelques vidéos que j’ai pu produire pour le blog. Je n’ai pas prévu d’en ouvrir les accès autres qu’en lecture évidemment, c’est juste une manière de rendre mon blog moins dépendant d’un service privé sur lequel je n’ai aucune emprise. Pour les autres, ce n’est pas au programme, je passe déjà de moins en moins de temps sur Twitter, mais je garde une certaine tendresse par rapport à ce réseau malgré son évolution ou les récents déboires que j’ai pu avoir avec l’application officielle sur Android (et la difficulté pour les clients alternatifs de composer avec les conditions scandaleuses d’utilisation de l’API Twitter). Notamment car c’est un peu grâce à lui (et à Flemzord) que j’ai changé de vie.

On récapitule ?

Les services fédérés donc, ça permet de proposer une alternative aux services centralisés privés pour améliorer leur résilience, c’est à dire la capacité à rester debout, même partiellement, quand un morceau tombe. Il n’y a pas de censure globale possible. Ils sont encore souvent compliqués à installer soi-même, de fait la majorité des utilisateurs se tourne vers une poignée de prestataires plus ou moins dignes de confiance. Ces prestataires devront résoudre une équation parfois compliquée par rapport aux coûts d’infrastructure. Une équation qui se complique encore avec les créateurs quand on aborde le monde de la vidéo, et pour laquelle trouver un ou plusieurs modèles de financement sera très très compliqué selon moi. Financement qui concerne aussi l’infrastructure, et dont les utilisateurs ne sont pas habitués à contribuer.

Maintenant, je ne peux que vous encourager à tester ces services, typiquement, si vous êtes un accroc à Twitter, Mastodon devrait vous faire de l’œil, on commence à voir apparaître des outils comme Pixelfed pour montrer qu’Instagram aussi peut être copié autant qu’il copie Snapchat… Bref, très souvent vous trouverez des solutions alternatives qui ne reposent pas dans les mains de sociétés privées cotées en bourse dont les intérêts ne consistent pas à respecter leurs utilisateurs. La seule chose qui vous retiendra peut-être, c’est de convaincre vos connaissances actuelles d’y passer (ce qui fait que je suis presque coupé d’une partie de ma famille depuis l’arrivée de Facebook…). Mais c’est certainement l’occasion d’en rencontrer de nouvelles 🙂

Microsoft, Windows 8 et le MTP : mais quelle connerie franchement…

mardi 14 août 2018 à 18:30

Quand je vous dis que Windows c’est de la merde, c’est pas une légende ou du troll gratuit. Ce truc est vraiment foirasse au possible parfois. Certes « Linux » n’est pas forcément la panacée, mais au moins quand un problème se pose, le message est généralement plus précis, et le niveau de contrôle sur le système permet de trouver une solution rapidement. Là, j’ai un cas magnifique de saloperie dont seul Microsoft a le secret je pense. Et il est nécessaire que je vous partage ça pour comprendre le niveau de frustration que ça peut engendrer, aussi bien chez des avertis que des non-techniciens.

Petit historique : au-delà d’un disque dur dont l’asthme n’a d’égal que la consommation de ressources d’un antivirus Kaspersky, l’ordinateur de ma mère fonctionnait plutôt bien jusqu’à il y a quelques mois, où les comportements bizarres ont commencé. C’est le scanner tout d’abord qui a arrêté de fonctionner. Plus exactement, l’ordi indique que le scanner est indisponible, crache une erreur incompréhensible dont la recherche ne donne rien. J’ai pu réparer temporairement en supprimant l’intégralité des fichiers relatifs à l’imprimante, redémarrant la machine, et reprenant l’installation de zéro. Ça a fonctionné… une semaine, avant de re-péter sans que quelqu’un n’intervienne en particulier. Je précise que l’imprimante en question n’a aucun problème sous Linux, aussi bien en USB qu’à distance (la gestion du scanner à distance c’est encore assez rugueux mais ça se fait).

Pourquoi je vous parle de scanner alors que l’article cause MTP, et donc smartphone ? Ben justement c’est lié. Pour contourner les problèmes liés au scanner, ma mère, pour numériser ses documents, les prend en photo avec son smartphone et les transfère ensuite sur son ordi (pour envoi par mail, sur le site de sa banque, etc). Or dernièrement, et c’est la raison de mon énervement qui s’ajoute à celui de ma mère, c’est son téléphone qui n’est plus reconnu par Windows; enfin si, y’a juste le lecteur CDROM virtuel qui contient des outils du fabricant du smartphone (Lenovo en l’occurrence), mais le téléphone n’apparaît plus dans l’explorateur de fichiers pour y consulter le contenu. Une bascule en mode PTP ou même stockage de masse USB (Lenovo ayant réintégré la fonction) ne sont pas fonctionnels, le stockage de masse n’expose que la carte SD, et l’application photo stocke sur la mémoire interne. Il va sans dire que le téléphone est reconnu sans problème sous Linux, en tout cas ma Manjaro (tiens d’ailleurs faudrait que je fasse un nouveau suivi du laptop LDLC pour la forme).

En me penchant sur le problème, je ne vois aucun message dans l’observateur d’évènements, c’est magique. Par contre, le gestionnaire de périphérique m’affiche bien un petit panneau triangulaire par dessus le « MTP device » qui est le téléphone en question. Description du message :

Impossible de terminer l’installation du pilote, une section d’installation de service dans ce fichier INF n’est pas valide.

Génial, de qui vient ce fameux pilote à votre avis ? Microsoft pardi !!! Au départ j’ai suivi les conseils de l’assitant qui indiquaient de tenter de mettre à jour via le bouton idoine, en sélectionnant une source en ligne. Sauf qu’il cherche le même pilote, avec donc le même résultat. C’est fou comme c’est bien foutu hein ?

Après avoir complètement désinstallé le pilote et avoir débranché/rebranché l’appareil j’obtiens quand même un code d’erreur, que je m’empresse de filer à Qwant avec un ou deux autres mots clés comme MTP et Windows, et tombe sur ce fil du forum Microsoft, qui décrit exactement le même symptôme mais pour Windows 10, et qui propose une solution, qui est à la limite du foutage de gueule, quand on voit la manipulation. C’est pas la réponse elle-même le problème, puisqu’elle est fonctionnelle, et donc je remercie la jeune femme à avoir pris le temps de répondre. Non, la solution proposée repose sur la sélection manuelle d’un autre pilote, lui aussi fourni par Microsoft, mais avec un nom différent, « Périphérique USB MTP », pour faire le même travail, à savoir l’installation d’un périphérique MTP (qui veut dire Media Transfer Protocol, pas vraiment besoin de traduction pour le coup) pour le transfert de fichiers depuis un smartphone compatible. Et donc, comme je l’ai dit, ça fonctionne comme un charme pour le moment et son téléphone apparaît de nouveau dans l’explorateur de fichiers quand on le branche.

Donc du jour au lendemain, pour le même téléphone branché depuis des mois (c’est un cadeau de Noël…), Windows a décidé de swticher sur un pilote incomplet et n’essaie même pas d’utiliser l’ancien qui devait être celui en place initialement. Sans rien demander à personne évidemment, et sans autre manipulation particulière de ma mère autre que de brancher/débrancher son téléphone (qui n’a pas été mis à jour depuis un moment, l’éternel problème du monde Android, j’ai eu l’occasion d’en parler dans mes prérequis de smartphone acceptable en 2018). J’aurai aimé que ça soit aussi le cas pour le scanner, mais pas de bol, il reste en carafe pour l’instant. J’aurais tellement aimé pouvoir la basculer sous Nux, mais c’est pas encore pour demain malheureusement 🙁