Les dépôts de paquets, c'est génial ! Mais peut-on leur faire confiance ?
Une des premières choses qui m'ont tout de suite conquises le jour où je suis passé sous Linux — et peut-être même la première chose — c'est le gestionnaire de paquets.
C'est un truc qui manquait vraiment à Windows, même si depuis l'avènement d'Android et iOS les a un peu forcé à développer ça, et qui est vraiment merveilleux : On peut facilement trouver les programmes, ils s'installent et se désinstallent tous de la même façon, il y a une gestion des dépendances qui évite que chaque programme soit livré, au cas où, avec toutes les bibliothèques qu'il utilise et c'est globalement plus sécurisé puisque les paquets sont vérifiés.
C'est bien beau, mais ça pose quand même quelques problèmes !
Le premier, c'est l'aspect centralisé et par la même l'ombre du tant décrié Minitel 2.0 : qui contrôle les dépôts peut installer absolument ce qu'il veut sur la machine d'un utilisateur en faisant passer ça pour une mise à jour. C'est évidemment le cas pour Google Play, l'App Store, ou Windows Store, mais c'est tout aussi vrai pour les dépôts des distributions Linux ou autres.
Ah mais c'est moins grave, me direz-vous, parce que des dépôts, il y en a plein et ils n'ont aucune unité — ils ne sont pas tous administrés par la même boîte ! Bah oui mais non : ce sont tous des miroirs du même dépôt ! Pour que le principe même du dépôt tienne la route et que tout le monde ait la même chose dedans, c'est un peu nécessaire. Quel que soit le moyen de signature numérique employé, il faut forcément quelqu'un qui signe à un moment.
Loin de moi l'idée de faire un procès d'intention à ceux qui gèrent les distributions, mais le fait est qu'il faut nécessairement leur faire confiance.
Je n'ai donc d'autre choix que celui de faire confiance à mon dépôt.
On pourrait imaginer que les miroirs soient liés en peer to peer et recoupent différentes sources ou je-ne-sais-quoi. Mais il resterait toujours un problème : Comment décider de ce que l'on met dans les dépôts ou pas ? L'intérêt du dépôt est justement que tout le monde ait le même, donc on ne peux pas imaginer que chacun fasse à sa sauce, en donnant les noms qu'il veut aux paquets au passage, histoire de rendre impossible toute cohérence. Et on perdrait au passage un autre point important des dépôts : la vérification des paquêts.
Eh bien oui, qui vérifie les paquets s'il n'y a plus d'entité centrale de référence ? Vous dites… ? La communauté ? C'est bien joli, mais on la motive comment la communauté ? Parce que je sais pas vous, mais ça m'amuserait pas des masses de vérifier des paquets. Et c'est pas toujours évident de faire confiance à la communauté : parfois, elle ne sait tout simplement pas. Je me moque de savoir que mon noyau a été vérifié par 1000 personnes si aucune de ces 1000 personnes ne s'y connaît en noyau ! Il faut des gens compétents. Et donc faire confiance à leur compétence.
Je m'amuse ici à pointer du doigt cet aspect non absolument sûr des dépôts, mais c'est essentiellement parce que je viens juste de m'en rendre compte. Dans la pratique je fais confiance à mon dépôt.
Et je fais même confiance à la communauté : j'avoue ne pas relire les PKGBUILD
quand j'installe des paquets AUR quand je choisi un logiciel OpenSource, je ne m'amuse pas à relire tout son code pour vérifier qu'il ne fait rien de mal. Je pars simplement du principe qu'ayant été développé par la communauté les arnaques n'ont pas pu passer car il faudrait pour cela que tous les développeurs soient malhonnêtes et non juste l'entreprise qui les engage dans le cas d'un logiciel fermé.
Et c'est donc là que la différence entre les dépôts gérés par une communauté et ceux gérés par une entreprise. Dans la communauté, chacun a un droit de veto ; chacun a le droit de dire « Attention, il y a un truc louche ici » et ce sera tout de suite rétablit (il n'y a qu'à voir les différentes failles de SSL pour s'en convaincre).
Merci à Phyks pour la relecture.