9,90 € TTC
p. 06 Faire de la clean architecture avec Symfony
p. 32 Le Machine Learning peut-il être une solution contre les fake news ?
p. 44 Voyage initiatique vers la bioinformatique : la récompense est au bout du chemin
p. 60 Hera, automatisation Bash autour de la gestion de conteneur Podman pour Jenkins à l’aide de SSH
p. 70 Readline ou comment créer rapidement un outil interactif
p. 76 Mesure dynamique des performances avec Linux probe : l’exemple GNU Radio
Protestware ?
Après l’autosabotage de Marak Squires sur ses projets colors.js et faker.js, et la myriade de conséquences et stupides décisions qui ont suivi, voici venir le temps des « protestwares ». Ces logiciels et bibliothèques, généralement open source, incluent des « fonctionnalités » allant de l’affichage de simples messages à la corruption de données, comme node-ipc de Brandon Nozaki Miller (alias RIAEvangelist) ayant brièvement intégré une fonction de « corruption » déclenchée en fonction de la géolocalisation IP de la machine (Russie et Biélorussie).
Personnellement, je ne qualifierais pas de « protestware » un code adoptant un comportement nuisible lorsque l’utilisateur ne s’inscrit pas dans certains choix jugés bons et vertueux par le développeur. Remplacez simplement un changement exigé de comportement, d’idéologie, de conviction religieuse ou de localisation par un montant en BTC et vous trouverez immédiatement le qualificatif approprié : un ransomware !
À mon sens, un code est effectivement un média susceptible de véhiculer une certaine vision idéologique, mais uniquement dans un cadre clairement borné qui est celui de sa licence. Les 4 libertés offertes par une licence de logiciel libre (utiliser, copier, étudier et modifier) déterminent ce qu’on peut faire du code, et non ce qu’on peut faire avec le code.
Que son code soit utilisé par, pour ou contre des personnes qui ne partagent pas vos opinions et vos principes ne fait pas partie du deal. La liberté d’utiliser inclue toutes les utilisations, celles que nous jugeons « bonnes » et les autres, et cette liberté s’applique à toutes et tous, sans distinction, sans discrimination. Et c’est précisément là l’intérêt de la chose, rendre le code libre, vraiment libre. C’est le choix qu’il faut faire en décidant ou non de diffuser sa création sous une certaine licence, et il ne faut pas le faire à la légère. Il n’y a pas de « oui, mais », pas de « ça dépend si » ou de « à moins que »...
C’est un avis tout personnel, mais si l’on veut être absolument certain que ses créations ne feront jamais l’objet d’utilisation que l’on désapprouve, peut-être faut-il commencer par se demander s’il ne vaut pas mieux les garder pour soi, ou ne les partager qu’avec un cercle restreint d’utilisateurs dûment vérifiés. Mais là, inutile de parler de logiciel libre ou d’open source...
Denis Bodor
GNU/Linux Magazine s'adresse aux professionnels et aux particuliers désireux de mieux maîtriser les techniques et problématiques liées à la programmation et à l’utilisation de solutions open source. Tous les deux mois avec ses articles techniques, la publication couvre les thématiques suivantes : programmation système, algo, bas niveau, sécurité du code, développement web...

Lancé il y a quelques semaines à peine, le projet Quarkus propose un fonctionnement révolutionnaire de Java, où son exécution ultra optimisée en fait non seulement un parfait candidat pour la conception de service de type « Serverless », mais aussi pour le déploiement sur Docker. Le projet va même encore plus loin, en proposant de transformer l’application Java en un exécutable natif ! Rapide tour d’horizon, en quelques pages et par la pratique, pour illustrer la prise en main de la technologie…
À partir de 2011, avec l’augmentation des attaques sur les autorités de certification X.509 [1], le système de vérification hiérarchique des certificats (PKIX – Public Key Infrastructure using X.509) utilisé dans TLS (Transport Layer Security) montre quelques signes de faiblesse. Un second système de vérification utilisant DNS se met alors en place, avec le protocole DANE (DNS-Based Authentication of Named Entities) [2]. Je vous propose donc de voir comment mettre en œuvre tout cela.