Linux (fr)

  • Réseau domestique : mes choix (Journaux LinuxFR)

    Sommaire

    En lisant le journal de yekcim (avec son beau schéma de réseau domestique), je me suis dis que mon schéma de réseau n'avait pas été mis-à-jour depuis longtemps. Je l'ai donc re-dessiné et (fier comme un paon) j'ai décidé de le vous le montrer.

    C'est l'occasion de partager les solutions que j'ai choisi pour résoudre les problématiques d'un réseau domestique (ce qui est aussi le sujet du journal sus-cité). Je vous encourage aussi à faire de même. Il est toujours intéressant de confronter son opinion et ses choix avec ses pairs !

    Sans plus attendre, voici déjà mon bô dessin :

    LAN

    TL;DR

    La dessous, y'a un gros pavé. Si vous ne voulez pas tout lire, voici un résumé :

    • fonctions "techniques" regroupées et ondulées
    • données sur un NAS qui gère aussi le réseau
    • NFS pour l'accès aux données de partout
    • XBMC (xbox/raspbmc) et UPnPlay (android) pour les fonctions client media
    • Debian partout (ou presque)

    Background

    Puisque c'est mon journal et mon réseau, commençons sans hésiter par un 3615 MaVie.
    Quand j'ai rénové ma maison, j'ai fait mon électricité. Tant qu'a passer des fils, j'en ai profité pour câbler en basse tension (ie: câble Ethernet) toutes les pièces. je me retrouve donc avec 32 prises RJ45 toutes ramenées au tableau électrique (dans la GTL située au 1er étage) Il me suffit de les brasser vers le téléphone ou le switch (ou autre chose genre téléinfo) pour choisir leur utilisation.

    Sur le schéma on retrouve donc des lignes verticales représentant le réseau de chaque étage. Les taches colorées figurent les pièces. C'est une vue logique, pas physique. Je me doute bien que savoir que guiautec est relié à la prise murale E1CT05 elle même reliée à la prise A06 de la baie de brassage et au port ge3 du switch ne vous intéresse pas :)

    Le nommage des machines suit 2 règles : des noms d’îles de l'archipel des Glenan pour les généralistes et la fonction (ou la marque) pour les équipements spécialisés.
    Côté OS, c'est assez homogène avec du Debian (testing) partout :). On notera quand même un Windows 8 pour l'adolescente (uniquement pour Les Sims 4) et une machine virtuelle Windows 7 (non représentée) sur mon PC pour des outils de développement WIN only (du Python et gcc, franchement, ils auraient pu faire une version Linux !). Et bien sur, les équipements mobiles en Android.

    GTL : fonctions techniques

    Dans ce petit placard, sont regroupées toutes les fonctions "techniques".

    Le point névralgique de mon réseau (outre le switch) est le NAS qui assure toutes les fonctions de management du réseau. C'est un Synology DS213j. Il a remplacé un NAS homemade à base de mini-ITX via epia qui a rendu l’âme il y a quelques mois. Le basculement vers une appliance clef en main a été dicté par une volonté de simplifier l'administration. Je suis très content de ce choix ! J'ai très peu perdu en souplesse et fonctions, mais beaucoup gagné en simplicité de gestion.

    Il assure les fonctions réseau (DHCP, DNS, NTP …) car je fais moyennement confiance à la Livebox pour cela. De plus cela me donne beaucoup plus de maîtrise de ce qui se passe.
    Évidement, il me permet aussi d'héberger toutes mes données (musique, vidéos, photos et autres documents) et de les partager avec les autres machines du réseau.
    Il m'offre des fonctions annexes tel git ou un MariaDB accessibles de partout.
    Et enfin il gère toute la partie sauvegarde que nous verrons plus loin.

    Le switch est un Netgear GS724T gigabit. Il est administrable via une page web et offre une interface snmp. Au moment de l'achat c'était le gigabit (administrable) avec suffisamment de ports le moins cher. À noter (voir ci-dessous) qu'il permet aussi de gérer des VLANs.

    Côté domotique, je n'ai pas grand chose. Un RaspberryPi (sous Debian) gère cela :

    • La téléinfo EDF qui est stockée dans la BdD du NAS. Les graphiques sont accessibles via un serveur lighttpd hébergé directement sur le Pi.
    • Le Fil pilote (un seul radiateur pour le moment) est géré via une interface USB simple. Je ne l'utilise que pour allumer le sèche serviette de la salle de bain (parentale) pour les douches du matin. La aussi une interface web permet de le programmer.

    Enfin tout ce petit monde est branché (230V) sur un onduleur MGE Ellipse 1000. J'avais choisit MGE pour son soutien au libre (via NUT). Il est managé en USB par le NAS qui peut ainsi s'éteindre avant la coupure définitive. Le Pi accède aussi à ces informations via le réseau. C'est très appréciable car j'ai déjà cramé la carte SD d'un Pi à cause de micro coupures à répétition. Acheté en décembre 2006 j'ai du remplacer ses batteries le mois dernier (par contre il a coupé d'un coup sans prévenir :( ).

    1er étage : les machines de tout le monde

    Dans le "secrétariat" on trouve la machine en libre service (huic) qui sert pour les papiers et les comptes (et regarder des vidéos de minecraft sur youtube). C'est ma machine génération N-1.

    Pour imprimer et scanner j'ai choisit une imprimante réseau (Xerox phaser 6110MFP achetée en décembre 2008). La aussi l'administration s'en trouve simplifiée et tout le monde y a directement accès. Pour scanner, j’utilise le script perl de Jon Chambers démarré à la demande sur le NAS. Les documents sont alors accessibles en NFS.

    Dans mon bureau se trouve ma machine principale (guiautec) qui reste la plus puissante de la maison (elle date de cette année). Ma machine de génération N-2 (penfret) est sur mon établi électronique. Elle me sert principalement à afficher les schémas ou les datasheets quand je soude. Malheureusement sa carte GPIB ISA a cramé récemment et la machine elle-même donne de sérieux signes de fatigue. Je ne pense pas la remplacer, mon portable de récup fera bien l'affaire (sauf pour le GPIB :( )

    Pour les enfants, notre adolescente a (ENFIN! selon elle) son propre PC (bananec) et la petite utilise le PC en libre service. Je n'ai pas mis de proxy, de filtre parental ou autre. Nous croyons aux vertus de l'éducation (pour le moment …). De plus, elles connaissent les compétences de leur père ce qui sert d'arme de dissuasion ;)

    2ème : la musique

    Pour la musique, j'utilise une petite tablette chinoise à 2 balles (et écran résistif de merde) qui a le mérite de disposer d'un adaptateur Ethernet. Elle accède aux fichiers via le serveur DLNA du NAS et l'application UPnPlay. On est loin d'une installation de haute fidélité, mais au vu de mes oreilles moisies, c'est suffisant.

    C'est le seul équipement qui fait du DLNA. Ce protocole ne m'a jamais emballé, mais sur cet Android c'est le moyen le plus facile. Si la tablette était récente (et acceptée par Google) j'utiliserai sans doute les applications de Synology qui fonctionnent très bien sur mon téléphone.

    3ème : la vidéo

    Ici se trouve la TV et son boîtier Livebox associé. Soyons honnête il ne sert presque pas puisque nous consommons surtout des films.

    Depuis des années je suis un fervent utilisateur de XBMC, d'abord sur Xbox (sa principale utilisation depuis son achat d'occasion) puis sur RaspberryPi (raspbmc) suite à l’avènement des vidéos en HD.
    L'accès au NAS se faisait en Samba sur la xbox et en NFS sur le Pi.

    Le Pi est commandé via un clavier ou l'appli officielle sous Android. Je compte y ajouter une télécommande infrarouge quand j'aurais fini le projet associé RPiSU

    Sauvegarde

    J'essaye d'avoir une politique correcte de sauvegarde.

    • Chaque PC sauvegarde ses données (en gros /etc et /home) en Rsync (avec anacron et un petit script maison) dans un répertoire du NAS.
    • Le NAS est en RAID histoire de ne pas paumer ses données en cas de panne de disque (oui je sais ce n'est pas de la sauvegarde)
    • Toutes les nuits les données (importantes) du NAS et le répertoire de sauvegarde des PCs est copié (avec historique) sur un disque externe USB. Ce sont les outils de Synology qui permettent l'historique.

    Il me manque la sauvegarde off-site que je suis en train (depuis très longtemps …) d'étudier : cloud, synchro avec un NAS distant …

    VLAN : restreindre les enfants

    Une fonction que je n'ai plus d'implémentée dans le réseau actuel mais qui était en place quand les enfants étaient trop petits pour avoir leur propre accès Internet.

    Un WRT54G (sous OpenWRT) offrait un 2ème accès Wifi avec un vlan particulier. Certains ports du Switch étaient aussi dans ce vlan. Les enfants n'avaient accès qu'à ce Wifi ou ces ports particuliers. Ainsi ils pouvaient avoir accès aux données du NAS (films, photos, musique) mais n'avaient pas d'accès à internet (depuis leur chambre). Cela permet de les avoir en visu quand il y accèdent et de leur prodiguer les conseils et aide nécessaires.

    Évolutions éventuelles

    Le réseau domestique tel qu'il est actuellement nous convient et ne devrait pas beaucoup évoluer dans les temps à venir :

    • J'envisage de mettre en place une sauvegarde off-site.
    • J'ai aussi l'intention d'éteindre le Wifi de la Livebox (étage des chambres) pour installer mon WRT54G au 2ème étage (la ou les téléphones/tablettes) sont le plus utilisées.
    • je cherche aussi (doucement) un moyen de grapher toutes ces fonctions. Avant j’utilisais Munin mais sa lourdeur ne m'incite pas à la faire tourner sur mon NAS ou mon Pi

    Voila, bravo à ceux qui sont arrivés jusque la.
    Et maintenant c'est à votre tour, quels sont vos choix et solutions pour votre réseau domestique ?

    Lire les commentaires

  • Des alternatives à grep, ls et find (Dépêches LinuxFR)

    Les outils en ligne de commande comme ls, grep et find existent depuis de nombreuses années et, même s’ils continuent de s’améliorer, il est parfois intéressant de regarder les alternatives. Je vais vous parler de ripgrep, exa et fd.

    Ripgrep

    Les alternatives à grep ne manquent pas. Déjà, la commande grep de son shell peut être soit le grep du projet GNU ou celui du projet BSD. Il y a aussi le grep intégré à Git. Et d’autres outils sont apparus ces dernières années, citons ack-grep, ag (the silver searcher), pt (the platinum searcher) et le petit dernier ripgrep.

    Ces outils se battent pour savoir lequel est le plus rapide ou a le plus de fonctionnalités. Personnellement, j’utilise ripgrep car il est très rapide, réalise par défaut une recherche récursive dans les répertoires (un gros manque de GNU grep selon moi, mais c’est probablement bien trop tard pour changer le comportement de GNU grep), a une présentation par défaut des résultats que j’apprécie, et il sait chercher dans des fichiers compressés (gzip, bzip2, xz) avec l’option -z.

    Exa

    Lister des fichiers est un besoin de base dans un terminal et ls remplit bien ce besoin. Exa est une alternative à ls que j’utilise pour ses couleurs, qui viennent par défaut et que je trouve plus agréables que celles de ls. Il propose également une vue arborescente des répertoires et fichiers, qui remplace plutôt tree. Exa est aussi capable d’afficher le statut Git des fichiers et répertoires.

    Fd

    Fd peut remplacer avantageusement find. Je n’utilise que très peu l’un ou l’autre, mais fd a une syntaxe plus facile à retenir et il est, d’après ses tests, plus rapide que find. Il utilise par défaut l’encodage UTF-8, il a une sortie colorée et ignore les fichiers listés dans un .gitignore. Et surtout, ça fait deux fois moins de caractères à taper pour le nom de la commande. ;-)

    Les points communs

    Vitesse

    On retrouve beaucoup de benchmarks autour de ces outils, les performances sont un vrai enjeu. Mettre trois secondes au lieu de quinze secondes peut paraître anecdotique pour des recherches un peu compliquées, mais cette différence peut casser le rythme : si une commande prend plus de dix secondes, je vais sûrement commencer à aller voir ailleurs.

    Fonctionnalités et comportement par défaut

    Ces outils ont beaucoup de fonctionnalités : les options que l’on peut passer en ligne de commande permettent de changer fortement leurs comportements. Ceci dit, en pratique, je n’utilise que peu d’options (et quasiment toujours les mêmes). En revanche, j’apprécie beaucoup que ces outils cherchent à avoir le comportement par défaut le plus utile.

    Intégration avec Git

    Ces outils ont tous une intégration avec Git : ripgrep et fd savent lire les fichiers .gitignore et exa sait afficher l’état Git des fichiers. Ce n’est pas un critère très important à mes yeux car je suis à l’aise avec Git en ligne de commande. Mais c’est intéressant de noter à quel point git est devenu incontournable en ligne de commande.

    Rust

    Un fait remarquable est que les trois outils présentés sont écrits en Rust. Il faut croire que ce langage convient bien pour écrire des outils en ligne de commande. C’est un domaine où le temps d’exécution est important (quand on lance une commande, c’est appréciable que le retour soit instantané ou en tout cas très rapide). Les langages de script (JavaScript, Ruby, Python) ont un temps de lancement de leur machine virtuelle qui peut casser cette impression de vitesse, je comprends donc que les développeurs d’outils en ligne de commande puissent s’en éloigner. En revanche, il est plus surprenant de ne pas retrouver d’outils en Go, en D, en OCaml ou en Haskell. Peut‐être que les lecteurs de LinuxFr.org auront une explication à cela.

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • LinuxFr.org : seconde quinzaine de mai 2018 (Journaux LinuxFR)

    Nonante-septième épisode dans la communication entre les différents intervenants autour du site LinuxFr.org : l’idée est tenir tout le monde au courant de ce qui est fait par les rédacteurs, les admins, les modérateurs, les codeurs, les membres de l’association, etc.

    L’actu résumée ([*] signifie une modification du sujet du courriel) :

    Avertissement

    Ceci est un second message pour prévenir certains de nos visiteurs qui nous transmettent inutilement des infos sensibles via leur lecteur de flux RSS/Atom, infos qui se retrouvent stockées dans nos logs web.

    Format par défaut d'un log du serveur web Nginx (source) :

    log_format combined '$remote_addr - $remote_user [$time_local] '
                        '"$request" $status $body_bytes_sent '
                        '"$http_referer" "$http_user_agent"';
    

    Certains utilisateurs nous transmettent leur nom d'utilisateur distant (pas forcément gênant, mais inutile).

    Par contre, certains nous transmettent leur nom d'utilisateur ET leur mot de passe. On a ainsi leur nom d'utilisateur dans le champ remote_user mais aussi leur nom d'utilisateur et leur mot de passe en clair dans le champ http_referer, sous la forme http://login:pass@linuxfr.org/journaux.atom ou https://login:pass@linuxfr.org/news.atom. Cela concerne 6 utilisateurs différents (tous utilisateurs de FreshRSS), dont 1 a été identifié et contacté en privé. Pour les cinq autres, à savoir Jeoffrey, jm, lionel, SVNET et titoko, je vous suggère d'arrêter de nous envoyer votre mot de passe, puis de changer de mot de passe étant donné qu'il a fuité, et aussi d'utiliser préférentiellement la version HTTPS du flux souhaité. N'hésitez pas à me contacter en privé si vous avez des questions (oumph CHEZ linuxfr.org).

    La version FreshRSS 1.11.0 du 2018-06-03 corrige ce problème Strip HTTP credentials from HTTP Referer in SimplePie #1891.

    Statistiques

    Du 16 au 31 mai 2018

    • 1371 commentaires publiés (dont 11 masqués depuis) ;
    • 344 tags posés ;
    • 99 comptes ouverts (dont 9 fermés depuis) ;
    • 33 entrées de forums publiées (dont 1 masquée depuis) ;
    • 32 liens publiés (dont 1 masqué depuis) ;
    • 26 dépêches publiées ;
    • 30 journaux publiés (dont 1 masqué depuis) ;
    • 3 entrées nouvelles, 1 corrigée dans le système de suivi ;
    • 0 sondage publié ;
    • 2 pages wiki publiées (dont 1 masquée depuis).

    Listes de diffusion (hors pourriel)

    Liste webmaster@ - [restreint]

    • R.A.S.

    Liste linuxfr-membres@ — [restreint]

    • R.A.S.

    Liste meta@ - [restreint]

    • R.A.S.

    Liste moderateurs@ - [restreint]

    • [Modérateurs] Dépêche Refaire linuxfr
    • [Modérateurs] contenu problématique
    • [Modérateurs] nfsw
    • [Modérateurs] URL d'une dépêche

    Liste prizes@ - [restreint]

    • R.A.S.

    Liste redacteurs@ - [public]

    • R.A.S.

    Liste team@ - [restreint]

    • [team linuxfr] Optimize MySQL
    • [team linuxfr] Login/mot de passe envoyé en clair dans une URL HTTP sur LinuxFr.org
    • [team linuxfr] Login/mot de passe envoyé en clair dans une URL HTTP sur LinuxFr.org
    • [team linuxfr] Login/mot de passe envoyé en clair dans une URL HTTP sur LinuxFr.org
    • [team linuxfr] Test passage en Jessie
    • [team linuxfr] Joker.com: Your domains are about to expire (expiration report)

    Liste webmaster@ — [restreint]

    • R.A.S.

    Canal IRC adminsys (résumé)

    • mises à jour de sécurité
    • le support sécurité normal pour Debian GNU/Linux 8 Jessie s'arrête au 17 juin
    • expiration du certificat au 3 juin et discussion sur le renouvellement
    • deux conteneurs mis à jour en Jessie, en attendant le passage en Stretch
    • le conteneur de développement redirige tout le trafic en HTTPS désormais
    • une boucle de courriels entre un système de ticket et notre gestionnaire de liste de diffusion
    • travaux en cours pour nettoyer le dépôt git d'administration système (avec des fichiers générés par l'outil d'automatisation Ansible notamment)

    Tribune de rédaction (résumé)

    • Migration de GIMP vers GitLab ajoutée dans la dépêche sur la 2.10.2
    • Demande de retours sur la dépêche GrafX2 par le développeur principal
    • Une correction post-publication

    Tribune de modération (résumé)

    • du spam (dont un robot réutilisant des extraits de phrases)
    • modération d'une image déplacée
    • expiration de notre certificat X509 Gandi Wildcard au 3 juin
    • évocation du renouvellement du CNNum (on aurait pu mentionner les entrées au comité de prospective de la CNIL)
    • migration de deux conteneurs en Debian Jessie

    Commits/pushs de code https://github.com/linuxfrorg/

    • Merge pull request #222 from fredplante/master
    • Fix typo
    • (svgtex) fixes duplicate xlink attribute on svg result
    • (epub) Use https for LinuxFr.org URLs

    Divers

    • Geek Faëries du 1 au 3 juin : conférence « LinuxFr.org, 20 ans que ça geeke » et table ronde « Ces plates‐formes du Libre qui soutiennent les communautés » avec l'Agenda du Libre et En Vente Libre. Plein de mercis à Bookynette pour le Village du libre, à l'équipe organisatrice des GF, et à Marco et Marius pour l'hébergement.
    • Proposition de conférence soumise + table ronde + demande de stand pour les RMLL 2018 Strasbourg

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • Surface d'attaque des serveurs dans les nuages (cloud) (Journaux LinuxFR)

    Passionnant et très utile article sur le blog en anglais de James Bottomley (merci LWN.net pour le résumé) : il étudie la sécurité des solutions d'hébergement Cloud en se basant sur la solution retenue : serveurs dédiés, serveurs partagés, serveurs virtuels, conteneurs, et en comparant les profils d'attaques verticales et horizontales.

    Comme vous aimez les conclusions rapides, sachez déjà que la solution conteneurs l'emporte haut la main.

    Une attaque verticale c'est du code traversé : de la requête web à la base de donnée jusqu'à la réponse dans le navigateur ou l'application, et qui contient potentiellement des bugs, elle concerne uniquement votre hébergement :

    all code that is traversed to provide a service all the way from input web request to database update to output response potentially contains bugs; the bug density is variable for the different components but the more code you traverse the higher your chance of exposure to exploitable vulnerabilities. We’ll call this the Vertical Attack Profile (VAP) of the stack.

    Une attaque horizontale par contre peut se propager d'hébergement en hébergement :

    In an IaaS cloud, part of the vertical profile belongs to the tenant (The guest kernel, guest OS and application) and part (the hypervisor and host OS) belong to the CSP. However, the CSP vertical has the additional problem that any exploit in this piece of the stack can be used to jump into either the host itself or any of the other tenant virtual machines running on the host. We’ll call this exploit causing a failure of containment the Horizontal Attack Profile (HAP).

    La surveillance est répartie différemment selon l'hébergement, par exemble sur un serveur partagé l'hébergeur doit surveiller toute la pile : le matériel, le noyau, les librairies et le middleware, vous n'êtes responsable que de la couche applicative, tandis qu'avec un conteneur il surveille le matériel et le noyau hôte.

    Mais les attaques sont aussi réparties différemment. Dans un hébergement partagé, si vous attaquez le noyau vous pouvez compromettre tout le système, donc tous les hébergements tandis qu'il est plus difficile de sortir d'un conteneur.

    Compte tenu de quelques autres facteurs que je ne résume pas ici — veuillez lire cet article avant de commenter —, les équipes de sécurité de l'hébergeur bossent « mieux » avec des conteneurs, qui sont donc plus fiables, quoi qu'en dise votre contrat. Mais que ça ne vous dispense pas des opérations habituelles de base : backup, backup ET backup (sauvegarde, sauvegarde ET sauvegarde de leurs petits noms).

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • The MagPi n°7 et 8 distribués gratuitement sur les campus de Caen, Grenoble, Lyon, Troyes et Mâcon ! (Laboratoire Linux SUPINFO)

    En ce début d'année 2014, certain ont pu découvrir que le Père Noel était passé à SUPINFO, principalement à l'attention des laboratoires Linux, Robotique et SL3 mais aussi et surtout à tous les étudiants curieux d'électronique.

    The MagPi est un magazine communautaire anglophone qui a été traduit et édité sous licence Creative Commons BY-NC-SA, permettant ainsi à SUPINFO de l'imprimer et de le diffuser à titre gratuit, en sa qualité d'association loi 1901.

    Les magazines profitent de la même qualité d'impression que le Supinfo Inside, les étudiants des campus sélectionnés découvriront ainsi en version papier comment faire de la rétroingénierie classique, asservir une carte Arduino avec une carte Raspberry Pi (ainsi que les avantages que cela procure), de quoi stimuler leur imagination sur des projets robotiques ou domotiques. La sélection s'est basée sur la réalisation de projets publiés sur les sites des labos. Les magazines restent disponibles en PDF sur le site du MagPi.

    image

    Sophie, notre assistante de direction à Caen, semblait intriguée par le magazine !

    image

  • Tetraspace (Journaux LinuxFR)

    Salutations camarades linuxiens!

    Je viens à vous pour vous présenter Tetraspace, une petite pépite vidéo-ludique en cours développement réalisé par rantonels. Il s'agit d'un puzzle-game en… quatre dimensions! L'application est développé avec Unity et est disponible pour Linux, Window, Mac et Android. Bien que ce soit encore en cours de réflexion, le jeu pourrait être éventuellement open-source selon les retours qui seront fait.

    TETRASPACE

    Le but de Tetraspace et de faire arriver le personnage au cube blanc en lévitation. Pour cela il devra se déplacer dans un espace en 4D et interagir avec cet environnement. En réalité on évolue dans un hyperplan, c'est à dire un sous espace de l'espace en 4D. Autrement dit, on se déplace dans un environnement d'apparence 3D, mais on peut à tout moment changer de perspective pour visualiser un autre hyperplan. C'est très très chouette! C'est minimaliste et élégant! Pas besoin de grosse config pour faire fonctionner le jeu. Pour le moment la version 0.6 propose entre autre un tutoriel très bien expliqué (en anglais) et 12 niveaux. De quoi vous occuper un moment!

    Vous pouvez télécharger gratuitement le jeu sur le site officiel: https://rantonels.itch.io/tetraspace

    Pour encourager le développeur vous pouvez acheter le jeu à un prix libre ou réagir sur le subreddit consacré à Tetraspace!

    Lire les commentaires

  • Le cauchemar d'Henry (Journaux LinuxFR)

    Henry, notre ami, est de retour pour vous conter les plus rocambolesques de ses aventu… de ses belles… de ses humiliations. Pour rappel, la dernière en date, la vie privée d'Henry, qui avait ravi tant de membres de LinuxFr.

    Le journal dont vous êtes l'anti-héros! Hop, on y va…

    La nuit dernière, Henry a fait un affreux cauchemar…

    Il arrivait au camping de Trougon, où l'employée de l'accueil lui faisait un grand sourire. Une fois dans son bungalow, il peut apprécier le grand lit, la petite terrasse, au sud, et la cuisine largement équipée. De passage, plus tard, à la supérette du camping, il peut constater, non sans un sentiment de plénitude, que son jus de pommes préféré est en rayonnage, de même que du jambon fermier et de bonnes baguettes. Du premier coup, il parvient à retourner à son bungalow, il faut dire que le chemin est drôlement bien indiqué.

    Le soir, au restaurant, la pizza du chef lui donne satisfaction, de même que la part de tarte tatin et le petit vin de la région. Et le tout pour €15! Cerise sur le gâteau: les toilettes sont propres et la porte ferme efficacement.

    La fin de soirée, Henry la passe sur sa terrasse, avec Evelyne et Rolande, qui habitent 2 bungalows plus loin. Bien que Evelyne lui plaise plus, c'est Rolande qui semble plus sensible à son charme ténébreux. "Bah, se dit-il, laissons faire le destin." Bien que les deux femmes repartent dormir chez elles, c'est clair qu'Henry a marqué des points. Vivement demain!

    La nuit, parfaite, pas de bruit, ni dedans ni dehors. Pas de ventilation, pas de voisins bruyants, pas de route proche, pas de chasse d'eau qui fuit. À la supérette au matin, Henry croise à nouveau le dame de l'accueil qui lui fait la bise tout en mettant sa main sur son épaule. Si ça c'est pas le bonheur!

    Il gagne une bouteille de vinaigre à la tombola de la caisse du petit magasin; Cécile, la dame de l'accueil l'invite pour lui montrer la région "un de ces jours", la plage est propre, le vendeur de glaces sympa et la noix de coco pas trop chère.

    Lorsque soudain, Henry se rend compte, avec effroi, que ça fait plus de 24 heures qu'il n'a pas allumé son téléphone, que sa tablette est encore dans sa valise et qu'il ne sait même pas si le camping propose du WiFi : rien de tout cela ne lui a manqué, horreur!!

    À la place d'Henry, que ferais-tu alors?

    Lire les commentaires

  • Retour sur la licence de NumWorks (Journaux LinuxFR)

    À la suite du journal précédent, je me demandais, quelle était la protection effective de la licence CC-BY-NC-SA. J'aimerais bien que l'on ne reprenne pas la guerre libre pas libre de l'autre dépêche, j'ai plutôt envie de voir ce qu'ils apportent, plutôt que de réfléchir à ce dont ils nous privent.

    Pour rappel, la licence CC-BY-NC-SA permet de :

    • Partager — copier, distribuer et communiquer le matériel par tous moyens et sous tous formats
    • Adapter — remixer, transformer et créer à partir du matériel

    L'Offrant ne peut retirer les autorisations concédées par la licence tant que vous appliquez les termes de cette licence.

    Attribution — Vous devez créditer l'Œuvre, intégrer un lien vers la licence et indiquer si des modifications ont été effectuées à l'Oeuvre. Vous devez indiquer ces informations par tous les moyens raisonnables, sans toutefois suggérer que l'Offrant vous soutient ou soutient la façon dont vous avez utilisé son Oeuvre.

    Pas d’Utilisation Commerciale — Vous n'êtes pas autorisé à faire un usage commercial de cette Oeuvre, tout ou partie du matériel la composant.

    Partage dans les Mêmes Conditions — Dans le cas où vous effectuez un remix, que vous transformez, ou créez à partir du matériel composant l'Oeuvre originale, vous devez diffuser l'Oeuvre modifiée dans les même conditions, c'est à dire avec la même licence avec laquelle l'Oeuvre originale a été diffusée.

    Pas de restrictions complémentaires — Vous n'êtes pas autorisé à appliquer des conditions légales ou des mesures techniques qui restreindraient légalement autrui à utiliser l'Oeuvre dans les conditions décrites par la licence.

    Les sources de ce système d'exploitation seront toujours disponibles, si l'entreprise décide de changer de licence, elle ne pourra pas revenir sur ce qui existe déjà.

    Cela fait donc a minima un excellent objet d'étude d'une solution employant beaucoup de logiciels libres dans sa construction.

    Leur parti pris est très intéressant. Ils ont décidé de na pas utiliser d'OS mais de directement coder sur le Cortex-M4, cela permet à leur système de tenir sur 256kB de ram.

    Ils ont du recréer tout un environnement, j'imagine que l'investissement en terme de R&D est très important.

    Je pense que c'est cet aspect qui rend l'OpenSource (ou libre) difficile. En effet, admettons qu'ils aient mis leur OS et toute la couche applicative en GPL, ils auraient très facilement pu avoir une boite qui récupère tout le code sans apporter aucune amélioration mais en profitant des faibles prélèvements sociaux d'autres pays (Chine par exemple), pour vendre moins cher. De plus il aurait aussi été possible qu'une entreprise ayant plus de capital fasse baisser les coûts par un effet d'échelle, et reprenne le développement en tant qu'acteur majeur. Cela aurait été super pour la diffusion du produit mais aurait mis un coup d'arrêt à leur entreprise.

    Le problème est que l'ingénierie logicielle a certes un coût mais les investissements sont majoritairement du salaire alors que le développement d'un matériel entraîne des investissements en prototypes et une industrialisation sur une chaîne de production, qui peut rendre la libre utilisation, des développements précédemment fait, périlleux pour l'entreprise.

    Donc oui, à titre personnel, je me questionne sur le fait qu'il existe systématiquement un modèle économique viable libre associable à n'importe quel projet. N'ayant pas la réponse, je serais ravi que l'on m'éclaire sur ce sujet qui dépasse vraiment mon niveau de compétence.

    Maintenant, cela montre qu'il est possible d'utiliser des briques libres pour faire une calculatrice, c'est vraiment intéressant.

    Quelqu'un a-t-il une idée sur la différence de consommation entre une carte cortex-M4 et une carte raspberry pi zeros ?

    Si je trouve leur idée intéressante, je trouve que d'avoir un terminal mobile basé sur une distribution linux minimale avec un environnement de type SageMath avec une version des notebooks Jupyter adaptés aux petits écrans pourrait vraiment être cool ! Quand on voit à quel point des outils tels que JupyterLab permettent de rendre l'accès à des environnements python avec toutes les libs installées, utiliser une raspbian minimale avec un une appli Qt pour le web et un serveur jupyter, permettrait de faire vraiment pas mal de choses ! Sachant qu'en plus Jupyter peut faire plein d'autres choses telles que du SageMath, Octave, maxima, Julia, …

    Le problème serait alors l'autonomie … mais bon avec l'arrivée en 2019 de l'advanced color paper display, on pourrait bien avoir accès à une technologie permettant de faire des petits écrans couleurs qui ne consomment pas du tout. Un trois couleurs serait déjà faisable par exemple.

    Donc je trouve que leur idée est vraiment top, mais personnellement je préférerais pouvoir conserver mon environnement Linux même sur une calculette. Bon, en même temps, je ne pense vraiment pas être la cible … Cependant je trouve l'analyse d'Aurélien Pierre assez intéressante. Il serait juste sympa d'avoir tout l'environnement dans une machine qui ressemblerait à une TI92 ou une voyage 200, même si ce format n'est plus vraiment d'usage … Avoir un clavier Alpha-numérique physique est tout de même un gros plus. Sachant qu'une calculatrice moderne de chez TI avec des capacités CAS coûte encore 130€, il reste de quoi s'amuser avec les raspberry pi et consort …

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • Lazy FPU state restore (Dépêches LinuxFR)

    Intel est de nouveau confronté à la découverte d'une faille, le
    Lazy FPU State Restore flaw.
    Cette fois, seule la famille des intel core serait concernée.

    Sommaire

    Le FPU

    L'unité de calculs flottants, le FPU, possède une série de registres qui lui permet de définir son état courant.
    Lors du basculement d'une tâche à une autre ( context switch), cet état est alors restauré pour retrouver un contexte correspondant au processus en cours.

    Ces opérations peuvent être coûteuses car les registres sont plus gros que ceux du CPU, c'est pourquoi les FPU fournissent une option pour désactiver toute opération flottante (CR0:TS) ; aussi, dès qu'un calcul flottant est appelé une exception est lancée pour réveiller le FPU avant de lancer l'opération normalement.
    Lorsque cette exception (fpudna, FPU Device Not Available) se produit, un gestionnaire de contexte fpu vérifie quel processus a la main sur le FPU à ce moment-là.
    S'il s'agit d'un autre processus, il procède à la sauvegarde puis restauration des registres, ou s'il s'agit d'un nouveau contexte, la sauvegarde puis nettoyage des registres ; sinon, il ne fait rien : c'est le mode «paresseux» (lazy). À la sortie du processus, il ne faut pas oublier de nettoyer ces tables et de (re)lever tous les drapeaux liés à cette exception.

    En mode eager (zélé, volontaire), la sauvegarde/restauration des registres associés au FPU est effectuée quoiqu'il advienne, au moment du changement de tâche et non durant l'exécution de la tache qui vient de prendre la main.

    Le bâton

    Au fil des années, les processeurs ont multiplié les registres pour prendre en charge les instructions de type SIMD, soit une instruction capable de procéder au même calcul sur un ensemble de paires de données.

    Les registres SSE, AVX et MMX restent associés au FPU et seront donc intégrés au mécanisme de sauvegarde/restauration…
    … et ils peuvent contenir jusqu'à 2Kb de données, rien que sur l'AVX.

    [    0.000000] Linux version 4.14.48-intel-pk-standard (oe-user@oe-host) (icc version 18.0.2 (gcc version 7.3.0 compatibility)) #2 SMP PREEMPT Wed Jun 20 13:21:48 UTC 2018                                                              
    [    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'                               
    [    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'                                              
    [    0.000000] x86/fpu: Supporting XSAVE feature 0x008: 'MPX bounds registers'                                       
    [    0.000000] x86/fpu: Supporting XSAVE feature 0x010: 'MPX CSR'                                                    
    [    0.000000] x86/fpu: xstate_offset[3]:  576, xstate_sizes[3]:   64                                                
    [    0.000000] x86/fpu: xstate_offset[4]:  640, xstate_sizes[4]:   64                                                
    [    0.000000] x86/fpu: Enabled xstate features 0x1b, context size is 704 bytes, using 'compacted' format.
    

    Pour se faire battre

    Par le biais désormais connu de l’exécution spéculative puis de l'analyse de cache, un attaquant pourra lire ces registres depuis un autre processus, voire, depuis une machine virtuelle. En effet, en mode lazy la sauvegarde des registres d'une tâche s'effectue au cours de l'exécution d'une autre tâche. La spéculation ignorant le drapeau CR0:TS, tout est alors possible.

    Ces registres peuvent contenir des informations sensibles comme des clefs de chiffrement (AES), par le biais des instructions d'accélération matérielle AES-NI.

    Delivers Fast, Affordable Data Protection and Security. AHeum.

    Colin Percival, ex membre de l'équipe sécurité de FreeBSD, a codé un exploit en quelques heures et note, dans un tweet :

    You need to be able to execute code on the same CPU as the target process in order to steal cryptographic keys this way. You also need to perform a specific sequence of operations before the CPU pipeline completes, so there’s a narrow window for execution

    Vous devez être en mesure d'exécuter le code [de l'exploit] sur le même CPU que celui de la cible pour voler les clefs de cette manière. Vous devrez en outre appliquer une suite précise d'opérations avant que la chaîne de traitement du CPU ne se termine ; de fait, la fenêtre de tir est très étroite.

    Ce qui semble vouloir dire que, pour l'instant, coder le vol de données depuis un script venu du Web n'est pas simple à produire. Le temps nécessaire au vol des données des registres est la clef de l'attaque. Il faut le terminer avant que le séquenceur ne préempte la victime et que les valeurs des registres ne soient modifiées.

    Pour y arriver, les chercheurs ont utilisé plusieurs méthodes:

    • Exception

    Il s'agit de coder la fuite de données à l'ombre d'une exception, sciemment provoquée, tel un page fault par exemple. Mais il s'avère que cette solution est trop lente pour récupérer tout un jeu de registres.

    • Intel TSX

    Cette mécanique n'est disponible que sur les architectures récentes (à partir de Haswell) ce qui limite l'angle d'attaque. Cette technologie comporte un jeu d'instructions appelé RTM (Restricted Transactional Memory) qui permet d'annuler un bloc d'exécution en cas d'interruption ; il suffit d'y encadrer le code malicieux, qui va innocemment faire appel au FPU, pour lever l'exception fpudna… Ce serait presque « étudié pour ».

    • Retpoline

    Il s'agit au départ d'une contre-mesure pour spectre.
    Elle vise à fourvoyer sciemment le CPU sur l'adresse de retour d'un RET en plaçant une fausse boucle et donc le forcer à exécuter de manière spéculative un code innocent. Le code malicieux sera donc placé à cet endroit.

    Les correctifs

    Le mode lazy semble moins pertinent aujourd'hui. Les gains en performance sont faibles sous les architectures récentes et surtout selon les usages actuels ; voire, le FPU étant beaucoup plus utilisé dans nos logiciels, son usage serait contre-productif.
    En effet, les compilateurs choisissent d'appeler les instructions SIMD (i.e. -sse) pour optimiser le code des logiciels. De fait, ceux-ci auront de toute façon sauvegardé et restauré les registres du FPU à chaque changement de contexte. La gestion de l'exception sera inutile et va juste alourdir le processus.
    En outre, l'empreinte d'une sauvegarde/restauration serait moindre que celle de la gestion des drapeaux, des registres et de leurs états suite à l'interruption, le transfert de registres FPU en mémoire étant plus rapide car optimisé.

    Il est donc préconisé d'éviter le mode lazy au profit du mode eager.

    • Linux propose le mode eager plutôt que le mode lazy depuis la version 3.7 et l'active par défaut depuis la version 4.9.

      • Ajoutez eagerfpu=on sur la ligne de démarrage pour les versions antérieures à la 4.9.
    • FreeBSD a poussé un patch pour la Release 11.2. C'est un FreeBSD 11.1 qui a servi de cobaye ;

    • DragonFly BSD a poussé un patch dans la version 5.2.2 ;

    • Microsoft poussera un patch en juillet ;

    • OpenBSD a poussé un patch le 14 juin pour la version 6.3 ;

    • NetBSD a poussé un patch le 16 Juin sur MAIN .

    Conclusion

    Ils ne sont pas à la fête cette année, chez Intel. Le point positif est que la correction de cette faille devrait conduire à une amélioration des performances, voire de la consommation d'énergie.

    Theo de Raadt avait prévenu 11 ans auparavant que l'architecture Intel Core2 promettait ce genre de faille :

    These processors are buggy as hell, and some of these bugs don't just
    cause development/debugging problems, but will ASSUREDLY be
    exploitable from userland code.

    Ces processeurs sont bugués comme jamais et nombre de ces bugs ne provoquent pas seulement des soucis de développement et d'analyse, mais ils vont assurément être exploitables depuis l'espace utilisateur.

    Pour la petite histoire, l'embargo s'est terminé le 6 Juin.
    Colin Percival, qui assistait à une conférence de Théo de Raadt lors de la BSDCan 2018, a codé un exploit dans la foulée, qu'il n'a pas encore rendu public. Mais il a convaincu Intel de lever l'embargo au plus vite.
    Il est notable qu'aucun des deux n'avait été mis dans la confidence ; OpenBSD signale même qu'ils en ont fait la demande ( des rumeurs circulaient autour d'une énième version de spectre) mais sans obtenir de réponse.

    Invitation to Embargo? No.
    We asked.

    No reply.

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • Space Directory, ligne de commande et module Python (Journaux LinuxFR)

    Hello from the moon.

    Pour celles et ceux que s'intéressent aux hackerspaces, makerspaces et autre espaces similaires, il existe 2 sources d'informations assez pratiques:

    • Une API, nommée Space API, que les *spaces peuvent utiliser pour diffuser des informations comme leur adresse, quand ils sont ouverts, etc
    • Un annuaire, Space Directory, qui liste les *spaces connu qui proposent une space API

    Récemment, j'ai écrit un petit outils en ligne de commande pour consulter le Space Directory et afficher les informations que les *spaces publient via une Space API.

    Avec cet outils vous pouvez afficher, sur votre terminal, les informations d'un *space en indiquant son nom ou l'URL de son Space API.

    Pour l'installer, il vous faut Python 3 et PIP 3:

    pip3 install --user spacedirectory

    Pour afficher la liste des *spaces connus:

    spacedirectory list

    Pour afficher les infos d'un *space:

    spacedirectory info "space name"

    Ou:

    spacedirectory info -a "api url"

    Pour afficher l'aide:

    spacedirectory -h

    Cet outil fourni également un module Python, appelé spacedirectory, que vous pouvez utiliser dans vos application Python. Pour savoir comment l'utiliser, je vous invite à lire le fichier doc/modules/usage.org dans le dépôt du code source.

    Vous pouvez trouver le dépôt du code source ici: https://framagit.org/SebGen/spacedirectory

    C'est très récent, alors il y a peut-être des bugs. N'hésitez pas à envoyer des suggestions ou à contribuer. ;)

    Pour plus d'informations sur Space Directory et Space API:

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • Rumeurs sur l'hyper-threading - TLBleed (Journaux LinuxFR)

    La peinture de la dépêche sur la faille Lazy FPU save restore n'étais pas encore sèche
    que je tombais sur de curieux messages conseillant de désactiver l'Hyper-threading.

    Suivis de conversations plus ou moins inquiétantes sur Twitter et dans les mailings list.

    Accroche toi au pinceau

    Un commit sur OpenBSD désactive l' Hyper-treading par défaut.
    Le message associé est explicite:

    « Since many modern machines no longer provide the ability to disable Hyper-threading in
    the BIOS setup, provide a way to disable the use of additional
    processor threads in our scheduler. And since we suspect there are
    serious risks, we disable them by default
     »
    Puisque les machines récentes ne donnent plus la possibilité de désactiver l' Hyper-threading depuis le BIOS, trouvez un moyen de désactiver l'utilisation des threads d'un processeur dans notre ordonnanceur.
    Et comme on suspecte que le risque est sérieux, désactivons le par défaut.

    Pour faire plus court, j'avais lu auparavant un laconique:

    ps deactivate Hyper-threading on your server
    Désactivez l'Hyper-threading sur vos serveurs !

    Venant des équipes OpenBSD, il y a de quoi s'interroger.

    J'enlève l'échelle

    La conférence Black Hat qui se déroulera en août prochain, propose au menu:

    « This therefore bypasses several proposed CPU cache side-channel protections. Our TLBleed exploit successfully leaks a 256-bit EdDSA key from libgcrypt (used in e.g. GPG) with a
    98% success rate after just a single observation of signing operation on a co-resident hyperthread and just 17 seconds of analysis time
     »
    En outre, ceci court-circuite plusieurs protections sur le cache. Notre exploit TLBeed a réussi à voler une clef 256-bit EdDSA depuis ligcrypt (utilisée par GPG ) dans 98% des tentatives, après une simple observation des opérations de signature depuis un thread tournant sur le même CPU en seulement 17 secondes d'analyse.

    Colin Percival, auteur en 2005 de:

    1. un papier sur les attaques via les caches, Cache Missing for Fun and Profit
    2. un article qui cible plus particulièrement les risques liés à l'Hyper-threading

    en remet une couche:

    « I think it's worth mentioning that one of the big lessons from 2005 is that side channel attacks become much easier if you're executing on the same core as your victim »
    Je pense qu'il est bon de rappeler cette grande leçon de 2005: une attaque en side channel est tellement plus facile si vous l'exécutez sur le même cœur que votre victime.

    Cuisine

    Intel n'est jamais clairement impliqué; mais je précise, comme ça, en passant, que l'Hyper-Threading est une implémentation Intel du Simultaneous Multi Threading.
    Il s'agit de faire exécuter en parallèle, sur un même cœur, plusieurs unités fonctionnelles ou de calcul.
    Et pour rendre cette technique efficace et moins gourmande en ressource, cette implémentation partage aussi les caches mémoires.

    Keep systems protected, efficient, and manageable while minimizing impact on productivity

    Conclusion

    Toutes les solutions de sécurité aujourd’hui ne sont que des châteaux forts construit sur du sable.

    Si encore une fois, la désactivation de l'Hyper-threading pourrait même avoir des effets positifs sur les performances, autant en finir une fois pour toute.

    Retour aux origines:

    • un partage complet sans protection des ressources
    • plus de mode protégé
    • pas même de segmentation mémoire

    Vos machines iront encore plus vite. Enfin, j'espère.

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • Un an de FreeCAD (en tant que contributeur) (Journaux LinuxFR)

    Il y maintenant un an je commençais une aventure, contribuer a un projet Open Source pour les besoins de l’équipe d'Horizon Computing: FreeCAD.

    Pour rapide mémoire, Horizon est ma société, et nous développons des ordinateurs en mode ouvert ou Open Hardware. La tache est ardu car nous devons faire tomber beaucoup (peut-être trop à notre échelle) de verrou technologiques et légaux.

    Jusqu’à présent nous développions nos ordinateurs avec des logiciels propriétaires (c'est toujours le cas pour certaines parties), et je trouvais sincèrement absurde de faire la promotion de l'Open Hardware en utilisant des outils propriétaires (tout comme faire tourner Linux sur du hardware propriétaire va le devenir). L'usage de ces outils limite drastiquement l'expansion des communautés Open Hardware car leur accessibilité est limité. Nous faisons maintenant partie d'Open Compute, d'Open Power et RISC-V. Ces communautés sont pilotées par des entreprises qui ont beaucoup d'argent et ont mis très longtemps à comprendre l'importance de accessibilité aux outils, ce qui leurs a valu d'ailleurs des volées de bois vert de la part de certains membres qui développent des logiciels libres ou d'autres solutions open hardware.

    Rome ne s'est pas construite en un jour, et je pense que l'on peut prouver que les logiciels libres sont par essence une bonne solution pour concevoir des ordinateurs libres. Mais il faut pour autant les adapter. J'aime utiliser cet exemple, est-ce que le noyau linux se serait développe avec l'usage d'un compilateur propriétaire ? Probablement que non , et je pense que c'est pareil pour l'Open Hardware. Ce mouvement deviendra un succès le jour ou il sera auto suffisant et que nous irons tous dans la même direction. (je pourrai écrire un roman sur le comportement des libristes vis a vis d'OCP et du hardware libre, de leur amour pour les marques propriétaires et les guerres de chapelles que l'Open Hardware engendrent, mais ce n'est pas le propos du jour ca me rappelle linux vs unix et on connait la fin).

    Alors que manque-t-il à FreeCAD et que s'est-il passé durant ma première année de contributeur. La première des choses j'ai beaucoup appris. FreeCAD est un code extra-ordinaire qui utilise un nombre incalculable de technologies auxquelles je tire mon chapeau. Le moteur 3D est basé sur l'excellent OpenCascade, le rendu sur Inventor/Coin3D, et la possibilité de scripter via Python est un plus non négligeable. Le hic, c'est que au final même si le code est bien architecturé, il est énorme, et créer sa première contribution peut sembler au premier abord un sacré challenge.

    Toutefois, le code est développé/maintenu par une petite équipe d'amateurs (c'est un projet sur lequel aucune personne ne travaille à temps plein), qui a besoin de nouveaux contributeurs, et l'accueil qui m'a été fait a été super positif, et j'ai pourtant commencé par un commit de 100k lignes (pas un petit commit).

    Durant cette année, j'ai passé pas mal de temps à comprendre les problèmes de performances du soft et a mettre à jour les bibliothèques de base sur lequel il repose (passage d'OCE 6.7 à OCCT 7.0.0 ou 7.1 en fonction des releases, mise à jour de SMESH, accélération de la lecture des fichiers STEP, et en ce moment migration du moteur de rendu vers le support des VBO OpenGL afin de multiplier par 3 le frame rate).

    Tout cela n'aurait pu se faire sans le support de la communauté FreeCAD que je remercie chaleureusement et qui intègre au fur à mesure ces fonctions dans la version en cours de développement (0.17). Les contributeurs OCP peuvent maintenant traiter et commenter les designs mécaniques avec FreeCAD ce qui n’était pas le cas il y a quelques mois. Le projet RuggedPOD est maintenant entièrement désigné avec FreeCAD !

    Mes prochaines étapes consistent à intégrer un solveur libre (Elmer) en utilisant FreeCAD comme solution de pré et post traitement. Une fois qu'on aura fait tout cela et que la nouvelle version du module PartDesign, je pense que l'on pourra développer l'ensemble des éléments mécaniques d'un serveur et d'un datacenter avec des logiciels libres. Vivement la version 0.18 !

    Tout ca pour vous dire qu'avec de la volonté on peut réussir a changer les choses. Bon soyons honnête il m'a fallu beaucoup de temps pour faire toutes ces modifications dans le code d'autant que cela faisait plus de 15 ans que je n'avais pas fait de 3D, mais c'est comme le vélo.

    Je crois sincèrement que l'avenir de l'Open Hardware passe par le succès de certains logiciels libres, et que les améliorer permettra à une génération d'architecte matériel d'améliorer leur design en collaborant. Alors si vous avez un peu de temps, devenez contributeur FreeCAD ! Et consommez de l'Open Hardware (même chez votre hébergeur préféré), vous aiderez différentes communautés en pleine ébullition à créer le futur de l'informatique ou d'autres secteurs industriels et disposerez de machines beaucoup plus maintenables (plus obsolescence programmée) et dépourvu de backdoor (des qu'on aura tout sur des BIOS libre)

    Lire les commentaires

  • AFUP Lyon - 16 septembre - Conférence sur l'A/B Testing (Dépêches LinuxFR)

    Le 16 septembre à 19h, l'antenne lyonnaise de l'AFUP (Association Française des Utilisateurs de PHP) accueillera Benjamin Chioetto, analyste pour la société Empirik.

    Lors de cette conférence, Benjamin Chioetto, nous présentera :

    • le principe de l’A/B testing ;
    • les différents outils du marché ;
    • le détail d’un des outils ;
    • des exemples de tests effectués et de leurs retours ;
    • la méthodologie utilisée pour choisir les tests.

    La conférence aura lieu dans les locaux d’Epitech, au 86 boulevard Marius Vivier-Merle 69003 LYON.

    NdM: le test A/B consiste à proposer aux utilisateurs des variantes A et B d'un logiciel/site, différant selon un seul critère, pour déterminer la meilleure version. Par ailleurs une part importante de la présentation concernera des outils propriétaires. Nous vous invitons à signaler dans les commentaires les outils libres que vous utilisez pour faire des tests A/B.

    Lire les commentaires

  • Microcontrôleur de DEL basé sur ESP8266 (Dépêches LinuxFR)

    ANAVI Light Controller est une nouvelle carte matérielle libre pour contrôler un ruban de DEL (LED strip RGB). Ce projet est libre et conçu avec KiCAD, et disponible à l’achat à partir de 25 € jusqu’au 27 juin 2018.
    plan du Anavi Light Controller sur KiCAD
    La carte peut être utilisée de façon autonome avec le logiciel embarqué de démo en se connectant sur une page Web (MQTT d’Eclipse Paho). Mais passer par Internet via un broker MQTT public n’est peut‐être pas idéal pour tous, donc une autre solution est tout aussi envisageable via une passerelle locale (et optionnellement accessible à distance).

    Naturellement, ce microcontrôleur (MCU) ESP8266 peut être aussi reprogrammé, c’est une alternative intéressante aux populaires Arduino car un bloc Wi‐Fi (pas libre ?) est intégré au MCU.

    Pour ma part, j’ai eu la chance de tester le produit, ça fait le job comme on dit ! Mais je vous invite à lire la revue en français sur le blog Framboise314.

    Pour utiliser une passerelle locale, il faut préalablement installer Mozilla IoT Gateway sur Raspberry Pi et reprogrammer le MCU avec mon implémentation de RGBLamp qui utilise l’API WebThings de Mozilla se connectant ensuite via mDNS, HTTP, REST (voir vidéo)…

    webthing-esp8266-webapp-20180602rzr

    Pour ceux qui ne veulent pas faire un pas hors de leur système d’exploitation préféré, considérez le précédent produit de Léon pour Raspberry Pi.

    Finalement, si vous utilisez Mozilla IoT, les retours sont bienvenus.

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • Installation de logiciel : comportement des utilisateurs en fonction du système d’exploitation (Journaux LinuxFR)

    J’ai toujours été amusé par la différence de mentalité entre les utilisateurs de Windows / MacOS / GNU-Linux. L’installation de logiciels est symptomatique de cette différence. J’ai voulu schématiser cette différence en caricaturant très légèrement, j’espère que cela vous semblera pertinent/amusant :

    installation fonction os

    (version svg)

    Lire les commentaires

  • Wazo, le fork de XiVO, prend son envol (Dépêches LinuxFR)

    La distribution de téléphonie sur IP (PABX/IPBX) basée sur Debian et Asterisk nommée XiVO a souffert d’une soudaine extinction de voix : le site Web xivo.io et le projet GitHub ont été fermés récemment par la société Avencall. Celle‐ci détient toujours la marque XiVO et réside maintenant sous le nom de domaine xivo.solutions. (NdM.: voir ce commentaire de avencall : les sources de XiVO sont désormais sur un projet Gitlab et une version est à venir pour la fin d'année).

    Un divergeance (fork) du projet a été créée sous le nom de Wazo et les sources sont de nouveau disponibles sur GitHub. Un groupe de cinq développeurs, dont Sylvain Boily (l’initiateur du projet XiVO en 2005) a repris la gestion du nouveau projet.

    Wazo a sorti sa première version Wazo 16.16 en décembre 2016, basée sur XiVO 16.13. Vous pouvez télécharger l’image ISO sur le miroir de Wazo et une procédure de migration XiVO vers Wazo est disponible.

    Ça mange quoi en hiver, Wazo ?

    Wazo est donc un serveur de téléphonie IP basé sur Asterisk diffusé sous licence GPL v3. Il permet de gérer la téléphonie d’une entreprise avec les appels entrants, appels sortants, renvois d’appel, messageries vocales, chambres de conférence, un centre de contact modeste, de contrôler ses appels à partir de son ordinateur (CTI) et offre nombre d’API REST pour intégrer tout ce petit monde dans d’autres systèmes logiciels. À travers ces API, Wazo se veut une plate‐forme de téléphonie que vous pouvez vous approprier et autour de laquelle vous pouvez développer.

    Pourquoi le nom Wazo ?

    Wazo est tout simplement un homophone de « oiseau », principalement à cause de la mythologie du phœnix, de la renaissance d’un projet et la symbolique de prendre son envol. Pour cette raison, le projet se nomme Wazo et son nom de version pour 2017 est Phoenix. Les développeurs signalent que tout jeu de mot est le bienvenu.

    Pourquoi un fork hostile ?

    La raison principale est une divergence de vision à long terme, les développeurs de Wazo expliquent la leur :

    Nous croyons fermement que la téléphonie devrait être accessible partout : quels que soient l’appareil, l’application, l’environnement logiciel que vous avez, vous devriez pouvoir appeler qui vous voulez, quand vous voulez. Pour accomplir cela, nous voulons un logiciel de téléphonie qui soit facile à mettre en place, facile à intégrer à d’autres logiciels, scalable et extensible à volonté.

    Wazo 16.16, nouvelle version, qu’est‐ce qu'elle apporte ?

    La nouvelle version de Wazo est arrivée lundi 12 décembre 2016, et elle apporte quelques nouveautés :

    • la migration de XiVO vers Wazo ;
    • la prise en charge du codec Opus ;
    • une meilleure documentation des API REST ;
    • une nouvelle API REST pour les interconnexions SIP avec les opérateurs et la gestion d’appels sortants ;
    • une nouvelle API REST pour les groupements d’appels (plusieurs téléphones sonnent sur le même numéro) ;
    • une nouvelle API REST pour les chambres de conférence ;
    • une nouvelle API REST pour les menus vocaux ;
    • une nouvelle API REST pour les messages vocaux utilisateur ;
    • une gestion plus souple du carnet d’adresses ;
    • amélioration de l’interconnexion de plusieurs serveurs Wazo pour partager les contacts.

    Wazo en 2017, quel plan de vol ?

    Pour l’année 2017, l’équipe prévoit notamment :

    • d’ajouter une nouvelle interface Web d’administration, plus moderne et plus facilement extensible ;
    • de continuer le développement des API REST pour piloter l’intégralité du projet ;
    • de fournir des interfaces web et mobile pour les utilisateurs ;
    • de continuer son approche scalable pour une vision Cloud (PaaS ou SaaS) ;
    • et, bien sûr, d’être à l’écoute de la communauté et de répondre à ses préoccupations premières.

    Comment on finance les graines ?

    Comme tout projet logiciel, il faut bien sûr financer le temps de développement et l’équipe nous fait savoir qu’ils ont plusieurs idées dans les cartons. Ils souhaitent rentabiliser un modèle logiciel libre en fournissant du service, du développement, mais aussi apporter une nouvelle approche sur le modèle de commercialisation, sans utiliser les mécanismes retrouvés actuellement dans des projets à double licence. Donc, pas de fonctionnalités payantes à l’horizon, comme ce qui fait grincer du bec chez les utilisateurs de FreePBX ou Elastix, d’autres projets libres de téléphonie sur IP…

    Lire les commentaires

  • Install Party GNU/Linux le 29 août 2015 à Marseille (Dépêches LinuxFR)

    L’association CercLL (CercLL d’Entraide et Réseau Coopératif autour des Logiciels Libres) vous invite à une install-party GNU/Linux, le samedi 29 août 2015 de 14h30 à19h30, dans la salle de la Fabulerie au 4 rue de la Bibliothèque 13001 Marseille (près du Conservatoire).

    Logo de l'association CercLL

    Vous avez envie de découvrir un système d’exploitation libre, simple d’utilisation, stable, rapide et sécurisé. Une nouvelle façon d’utiliser votre ordinateur.

    Vous vous sentez une affection naissante pour le Gnou et le Manchot, les mascottes de GNU/ Linux.

    Au programme :

    • Découverte de l’univers des logiciels libres.

    • Installation d’un environnement GNU/ Linux, ainsi que le meilleur des logiciels libres.

    Venez avec votre ordinateur, nous installerons ensemble une distribution GNU/Linux avec un ensemble de logiciels libres et gratuits pour une utilisation quotidienne.

    Affiche

    Ouvert à tous – accessible aux débutant-e-s

    Une participation de 2 euros est demandée.

    L’adhésion à l’association est de 20 euros annuelle.

    Lire les commentaires

  • SFR et la censure du Forum (Journaux LinuxFR)

    Haaaa qu'elle est belle la société qui gère ma connexion…

    OK, le prix est sympa, je dis pas… Si si, en offre 2 téléphones + box, je paye pas des masses. Mais quand vous connaissez un peu la technique, tout à coup vous voyez le visage des censeurs arriver en plongeant une ombre sur vos nuques. La toute puissance de la modération qui vient embraser vos ridicules vies de petits consommateurs Linuxien que vous êtes.

    Pour faire au plus simple: la box SFR permet de faire un partage de disque dur via Samba. La Box est sous un UNIX et, miracle, je suis sur Linux (un XBMC à droite, un PC à gauche).

    Espérant monter le disque via la vieille commande "mount -t cifs" je me dis "allez, un NAS pour pas cher". Que nenni mon ami, tu es dans l'erreur.

    Oui, on arrive à lire le disque. Mais une écriture = Permission Denied. Cherchez pas à me donner des tests de solution, le souci ne vient pas de la commande, mais bien du serveur Samba de la BOX.

    En branchant le disque sur le décodeur TV SFR, là pas de souci, hormis le petit souci (vous allez rire hein) que quand le décodeur se met en veille… hop, plus de partage. Mais bon, le serveur Samba du décodeur est OK.

    Un coup de "smbclient -L" et je vois la version du serveur, et au passage, l'OS de la box.

    Domain=[WORKGROUP] OS=[Unix] Server=[Samba 2.0.10-security-rollup]

    La version 2.x date de 2004… passons

    Le SAV (sur twitter) me dit d'appeler le service technique, qui lui me répond "samba n'est compatible qu'avec Windows". Ouiiiii bien sûr, et moi ma voiture ne marche qu'avec du foin.

    Je reviens vers le SAV qui me dit "postez sur le forum". Et c'est là que ça commence à être vraiment délirant.

    Premier post, je le fais avec des pointes d'humour, mais je me dis "allez c'est gentil". PIM! censure… Je relance le post en virant les blagues…. PIM! rebelote.

    J'en arrive à poster un message clairement "sans ton", le genre "poker face" de lady Gaga quoi… et pim ! censuré…

    Réponse du service de modération, accrochez vous à vos sièges:

    "Nous vous rappelons que la publication de messages incitant à des pratiques contraires à la législation n'est pas autorisée."

    J'ai vu passé un corbeau derrière ma tête…

    Et donc, depuis hier soir, je m'amuse à détecter la suppression du post pour le rebalancer sur le forum.

    Le message:
    http://forum.sfr.fr/t5/Aide-et-d%C3%A9pannage/Samba-CIFS-et-UNIX/m-p/1293225

    5 iéme message censuré, je le reposte en attendant que le service de modération m'explique quel partie du message est contraire à la legislation comme le stipule leur mail après suppression

    Box de SFR, type UNIX (c'est important)
    Mediacenter XBMC type UNIX (testé avec OpenElec et Raspbmc)
    Protocole de communication de partage de fichier Samba

    Création de point de montage:

    mount -t cifs //BOX/NAS /mnt/NAS -ouser=guest (testé avec plusieurs méthode d'authentification, options de mask etc…)

    Lecture OK
    Ecriture = "Permission Denied"

    Branchement du disque que le décodeur, même opération mais "Ecriture OK"

    Réponse du SFR (twitter SAV et Service Technique): ce n'est pas compatble avec UNIX et UNIX Like.

    J'insiste… Windows n'est pas un UNIX (ou Unix Like)… Windows est "compatible" avec le protocole Samba utilisé par la BOX.
    Donc, pour clarifier: Mac et Linux sont bien plus compatibles avec le service Samba de la BOX que Windows puisque nous utilisons le même logiciel pour le protocol de partage.

    Version utilisé par la BOX:
    Domain=[WORKGROUP] OS=[Unix] Server=[Samba 2.0.10-security-rollup]

    Version datant de 2004.

    Réponse du service technique: "nous n'avons pas prévu de mise à jour pour Samba d'ici les prochains mois"

    Le problème existe depuis le changement de protocol FTP vers Samba (2 ans si je ne me trompe pas).
    La version 2 de Samba contient énormément de bugs et de failles même en applicant les patches.

    Etant donné que le décodeur permet l'écriture, et pas la BOX, j'estime que la box a un Bug de configuration de service Samba.

    Je ne peux pas utiliser le décodeur comme NAS puisqu'il se met en veille régulièrement.

    Sur le forum SFR, des utilisateurs Mac se plaignent aussi de bugs du protocol, les utilisateurs XBMC (contenu dans énormément de media center) ne pourront pas écrire sur le disque, et tous les utilisateur Linux (y compris Android) ne peuvent créer de point de montage.

    Merci de nous expliquer pourquoi vous ne mettez pas à jour le service Samba pour qu'il soit compatible avec l'ensemble des clients réseaux.

    PS: je réitère, Windows n'est pas l'OS le plus compatible avec ce service, c'est l'inverse

    Résultat des courses, je pense que je vais aller voir ailleurs. Non pas parce que le bug persiste, non non, mais pour la manière dont SFR traite son client.

    Clairement, me dire que Samba n'est pas compatible avec Linux, c'est déjà fort, mais censurer un message parce que ça les gène de pas savoir répondre…

    Lire les commentaires

  • Financer le web proprement grâce à la pub et une paire de modules Firefox (Journaux LinuxFR)

    Alors comme bien du monde sur Linuxfr, j'utilise un bloqueur de pub dans mes navigateurs.

    Mes raisons sont classiques, depuis le fait de vouloir gérer mon attention (et l'intrusivité des pubs sur Youtube parmi tant d'autres), des raisons de sécurités (aussi bien au niveau de la réduction du tracking pour les raisons combinés de cet article et cet article, et pour éviter les potentiels malwares (qui sont un souci connu depuis quand même au moins 7 ans, vu que j'ai trouvé un premier article parlant de ça en 2009, et que c'est toujours le cas aujourd'hui).

    Mais du monde (et le Monde) me dit que c'est mal, car les revenus publicitaires perdus font qu'on peut pas payer les journalistes, et c'est mal, ce qui est vrai.

    Alors j'ai trouvé la solution. Pour cela, il suffit de 3 choses.

    Primo, un pc, ou une VM, ou n'importe quoi capable d’exécuter firefox. C'est pas trop dur à trouver, pas besoin d'une foudre de guerre, mais un truc pas trop naze, c'est mieux.

    Ensuite, un firefox, qui tourne sur l'OS de votre choix, tant que ç'est une distro Linux. Ça marche avec autre chose, mais on est sur Linuxfr après tout.

    Enfin, il faut installer un certain nombre de modules. En fait, je recommande même de faire un profil vierge pour installer les 2 modules en question.

    Le premier porte le nom de ad-nauseum, et il est disponible sur http://adnauseam.io/ aussi bien que dans le catalogue Mozilla. Il a le bon gout de cliquer sur les pubs à la place de l'utilisateur avec comme but de ne pas donner une vision précise de la personne ciblé par la publicité (en l’occurrence, l'utilisateur).

    En plus de celui la, l'ajout de Trackmenot (disponible sur https://cs.nyu.edu/trackmenot/ et dans le catalogue Mozilla) permet de compléter l'effet, en laissant Trackmenot faire des recherches sur un moteur de recherches pour vous.

    Ce qui, couplé avec un flux rss/atom de vos sites favoris et les bons mots clés, permet de tomber de façon aléatoire sur les sites que vous visitez de façon régulière et de cliquer sur les pubs, sans intervention de votre part.

    Et donc, de permettre à ces sites en particulier et au web en général de bénéficier d'une source de financement respectueuse de votre vie privée, ce qui permet d'avoir l'esprit tranquille quand on utilise un bloqueur de publicité.

    Bien sur, tout n'est pas rose. Firefox a tendance à parfois freezer un peu sur certains scripts pourris (ou plutôt à faire un popup que je doit cliquer), il est aussi un chouia surprenant d'avoir de la musique, ou les news de Sydney sortir sur les hauts parleurs, et Trackmenot semble avoir un mode d'apprentissage qui injecte des bouts de css dans les mots clés.

    Mais malgré ça, mon portable a cliqué sur 4500 pubs en quelques jours. Avec un cout par click estimé de 0.20$ (l'estimation donné par Google dans les exemples, mais j'ai pas la moindre idée du prix d'une pub), et en supposant que la moitié va vers le site web, j'ai pu donner ~500€ à gauche et à droite.

    Donc si comme moi, vous voulez aidez le web à se financer et devenir riche, n'hésiter pas à sacrifier une machine (ou une VM) pour faire tourner ce système.

    Point bonus, ça permet aussi de faire grimper vos actions Seagate et Intel vu que les différents services de renseignement de pays un peu trop orienté vers la surveillance vont avoir plus de données à stocker et à traiter. Il n'y a pas de raison que seul les sites webs s'enrichisse grâce à votre sacrifice, et un peu de spéculation permet de couvrir vos frais, voir même de vous encourager à faire encore plus le bien.

    Lire les commentaires

  • ToOpPy Linux 2.1 (Dépêches LinuxFR)

    ToOpPy Linux 2.1 est une distribution GNU-Linux multilingue (anglais natif) basée sur Puppy « Precise » de Barry Kauler, faisant suite à la version 2.0, publiée en avril 2015 (paquets de langues actuellement disponibles : danois, allemand, grec, espagnol, français [installé par défaut], hongrois [nouveau], italien, néerlandais, polonais, portugais, russe).

    ToOpPy Linux

    • Fonctionne en CD/USB amorçable : système entièrement chargé en mémoire vive - 512 Mo requis
    • Installable sur tout support : disque dur interne/externe, clé USB, carte flash…

    Elle s'adresse aux amateurs de systèmes légers (250 Mo), gratuits, nomades, réactifs, fiables et conviviaux.

    Le gestionnaire de bureau 2PDE (2P Desktop Environment) fonctionne avec le gestionnaire de fichiers ROX et le gestionnaire de fenêtres JWM ; le tout propose un ensemble complet d'applications permettant de personnaliser/optimiser au maximum l'espace de travail (plus de 20 thèmes complets disponibles, effets d'ombre et de transparence, etc.).

    ToOpPy LINUX 2.1 peut aussi bien fonctionner sur des PC dont la configuration matérielle (processeur/composants/mémoire…) ou logicielle (Windows XP devenu quasi inutilisable…) est devenue obsolète, que sur des PC (relativement) récents.

    NOTE : Il arrive fréquemment que ToOpPy reconnaisse et prenne en charge du matériel dont Windows ne « veut » plus, faute de pilotes mis à jour (scanners, webcams, etc.). Il en est de même pour certains programmes Windows qui peuvent très bien fonctionner sur ToOpPy, moyennant l'installation de WINE (Wine Is Not an Emulator) ou, pour les plus anciens, de DOSBOX (émulateur DOS), tous deux installables depuis le dépôt de ToOpPy via l'interface d'installation rapide.

    ToOpPy LINUX 2.1 intègre une suite bureautique/logicielle complète en mesure de satisfaire les besoins de l'immense majorité des utilisateurs pour une utilisation quotidienne. Pour les utilisateurs plus exigeants, ToOpPy propose une grande variété de programmes et d'applications à installer (GIMP, LibreOffice, Firefox, etc.), soit via un « gestionnaire de paquets » (« PPM: Puppy Package Manager », donnant accès au dépôt Ubuntu), soit via une interface d'installation rapide, soit en les téléchargeant directement à partir du dépôt de ToOpPy.

    Lire les commentaires

  • [Énigme] L'escargot et le géant (Journaux LinuxFR)

    Cher Nal' puisque c'est dimanche et qu'il pleut, je me permets de te soumettre l'énigme suivante.

    Un petit escargot est posé à l'extrémité d'une corde parfaitement élastique de 100m.
    L'escargot souhaite arriver à l'autre bout de la corde. Il se meut à la vitesse d'1m/h.

    Au début de chaque heure, un géant tire sur la corde et celle-ci s'allonge de façon élastique. À chaque fois la corde s'allonge de 100m de façon homogène.

    Donc, à chaque fois que le géant tire sur la corde, la distance à parcourir et la distance parcourue augmentent.

    À l'issue de la première heure, l'escargot à parcouru 1m, le géant tire sur la corde, celle-ci passe à 200m. Puisque la déformation est homogène, l'escargot se trouve maintenant à 2m du point de départ.

    L'escargot peut-il atteindre le bout de la corde ? Si oui, en combien d'heures ?

    La nimage de circonstance.

    Lire les commentaires

  • Skydive, un nouvel outil d’analyse de votre réseau (Dépêches LinuxFR)

    Skydive est un logiciel libre, sous licence Apache, permettant d’analyser les problèmes et de surveiller vos réseaux SDN. Software Defined Networking est une architecture réseau abstraite permettant de gérer globalement ses ressources, elle est principalement utilisée dans les infrastructures de type Cloud, car elle offre une grande souplesse d’utilisation.

    Skydive

    Une infrastructure SDN est complexe, mais trouver la source des problèmes l’est encore plus. Qui n’a pas eu de problème de paquets perdus pendant un déploiement ? Combien de flux simultanés la machine virtuelle du tenant (locataire) “Mr T” génère-t-elle ? Que s’est-il passé à 4h du matin ?

    C’est pour répondre à ce genre de questions que le projet Skydive a été créé.

    Topologie

    Skydive permet de visualiser la topologie en temps réel et de faire la corrélation avec le trafic du réseau. L’architecture du projet Skydive contient des agents de collecte d’informations de topologie et de flux de votre réseau, ainsi qu’un agent de collecte et d’analyse permettant de faire la corrélation des différents points d’analyse de votre réseau physique ou virtuel. De plus, une interface web minimaliste est présente sur le port 8082 de l’agent d’analyse des données collectées, celle-ci vous permettra de visualiser la topologie et les flux de votre réseau.

    Sondes

    Skydive repose sur des sondes de collecte. À la fois pour la capture de la topologie et pour la capture des flux réseaux. Skydive embarque nativement les principales sondes permettant la collecte des informations des interfaces réseaux et d'une sonde sFlow pour la capture des flux. Bien qu'étant agnostique du SDN utilisé, il est possible d'enrichir les données collectées grâce à celles issues du contrôleur. Les connecteurs disponibles actuellement sont OpenStack et Docker.

    Post mortem

    Dans le cas d’utilisation de Skydive pour une analyse post mortem des problèmes rencontrés sur des applications/VM, Skydive enregistre ses données dans une base Elasticsearch.

    Écrit en Go

    Skydive est écrit en Go, simple d’utilisation, et vous permettra de logger, comprendre, visualiser, dépanner votre réseau ou plus encore… Les git-review sont les bienvenus :)

    Présence à l'OpenStack Summit

    Nous serons présents à l'OpenStack Summit à Austin, Texas où aura lieu une présentation sur Skydive.

    Impression d'écran de Skydive
    Autre impression d'écran de Skydive

    Lire les commentaires

  • Open Beauty Facts : que contient vraiment nos produits cosmétiques ? (Dépêches LinuxFR)

    Open Beauty Facts est un projet collaboratif en ligne dont le but est de constituer une base de données libre et ouverte sur les produits cosmétiques du monde entier.

    Après les aliments, Open Food Facts s’attelle donc à un nouveau chantier : les produits de beauté. Lancé en février 2016, Open Beauty Facts a pour but de réaliser pour les cosmétiques, dentifrices et autres shampooings ce que Open Food Facts a fait pour la nourriture.

    Logo Open Beauty Facts

    Les mêmes principes qu'Open Food Facts

    Comme pour le premier, Open Beauty Facts est un projet collaboratif, ouvert et à but non lucratif qui s’appuie sur des contributeurs qui - grâce au succès d'Open Food Facts - sont désormais aux quatre coins de la planète.

    Open Beauty Facts est donc une base ouverte de plus de 2 300 produits cosmétiques rajoutés grâce au site et à l’application.

    Open Beauty Facts (capture d'écran)

    Pourquoi ouvrir des cosmétiques ?

    Ouvrir des produits de beauté avant de les utiliser, c'est du bon sens ! Une fois la liste des ingrédients ouverte, il est possible de les déchiffrer/traduire pour savoir ce que l'on se met vraiment sur le corps. Que veulent dire tous ces « Numéros CI » et « methyl-» « hexyl » « polyol » ? Qui connaît les dizaines de milliers de codes et noms latins pour les ingrédients cosmétiques ?

    Pour les produits alimentaires auxquels Open Food Facts s'est attaqué, on comprend à peu près la liste des ingrédients, mais pour les cosmétiques il faut littéralement parler latin et être chimiste.

    Mettre la composition des cosmétiques dans une base de données ouverte permet également de comparer très facilement les produits entre eux. En quelques clics vous pouvez ainsi générer des comparatifs qui permettent d'éviter les ingrédients suspects.

    Comment ça marche ?

    Chaque produit est recensé par son code barre, et les informations relatives à ce produit sont renseignées par les contributeurs à partir des informations présentes sur l'emballage. On trouve par exemple les ingrédients, les allergènes, le lieu d'emballage et bien d'autres encore.

    Détecter les ingrédients indésirables

    Parabènes, libérateurs de formaldéhyde, substances parfumantes allergènes, silicones, phénoxyéthanol, triclosan, cetrimonium bromide, méthylisothiazolinone, sels d'aluminium.
    Quels que soit leur nom, l'abréviation ou la langue dans laquelle ils sont mentionnés, Open Beauty Facts est capable de détecter et déchiffrer les ingrédients suspects.

    Un produit sur Open Beauty Facts

    De plus, sur des produits comme les vernis à ongles, non seulement les ingrédients sont en anglais, latin et avec des abréviations, mais ils sont littéralement cachés sous l'étiquette.

    Des ingrédients cachés sous une petite étiquette à décoller - loupe requise

    Comment ajouter des produits ?

    Pour ajouter un produit à la base de données, le plus simple est d'installer l'application pour téléphones. Il en existe une pour Android et les versions IOS et Windows Phone arrivent. Il ne reste plus qu'à scanner le code barre du produit (cela vérifie qu'il n'est pas déjà dans la base), prendre quelques photos (le recto et les ingrédients). Ensuite, si vous le souhaitez, vous pouvez saisir les informations sur le produit avec la version web.
    Une fois fini, Open Beauty Facts effectue le déchiffrage de la liste d'ingrédients et rend le produit complètement « cliquable » pour tous les prochains scanners.

    Des listes d'ingrédients en anglais et en latin, pour petits chimistes

    Il est aussi possible de faire la même chose avec un appareil photo et un ordinateur.

    Des données ouvertes

    Les données sont disponibles sous licence ODbL 1.0 (comme pour OpenStreetMap). Cela permet de réutiliser les données le plus largement possible.
    Il existe également une API en lecture et écriture pour pouvoir utiliser ou contribuer des données.

    Vous nous rejoignez ?

    Open Food Facts et Open Beauty Facts ont besoin d'aide dans tous les domaines imaginables, que ce soit la traduction, le développement (Perl, HTML/CSS, Android, iOS…), la contribution via smartphone ou le web.

    Rejoignez-nous et mettez au défi vos amis d'ouvrir leur armoire de salle de bains !

    Lire les commentaires

  • Discourse, plate-forme de discussion atypique (Dépêches LinuxFR)

    Jeff Atwood, connu entre autres pour Stack Overflow, a annoncé la sortie de la plateforme de discussion Discourse en version 1.0 le 26 août 2014 et en version 1.4 le 22 septembre 2015. La devise du projet est « Civilized Discussion. On the Internet. », soit « Discussion civilisée. Sur Internet. ».

    discourse

    En résumé, Discourse fonctionne à la fois comme une liste de diffusion, un forum de discussion et un salon de discussion… Il est développé en Ruby on Rails, avec Ember.js, basé sur du PostgreSQL et du Redis. Il est distribué sous la licence GNU GPL v2.

    Sommaire

    discourse
    Interface principale de Discourse en version 1.3.

    Motivations autour du lancement du projet

    Extrait de l'annonce du lancement du projet en juillet 2013 :

    Un des trucs qu'on a appris avec Stack Exchange est que, si ton but est d'améliorer le rapport signal sur bruit, tu dois réfréner les discussions.

    Stack Exchange ne permet que le minimum absolu de discussion nécessaire à la production de bonnes questions et réponses. D'où la réorganisation constante des réponses par les votes, d'où les limites de formatage et de longueur des commentaires, le fait que peu s'affichent, et ainsi de suite. Presque toutes nos décisions de conception furent motivées par notre désir de réduire la discussion, de l'inhiber de toutes les façons possibles. Épargne-nous l'étalage kilométrique de ton avis, et réponds juste à la foutue question.

    Après quatre années pleines à considérer la discussion comme l'Empire établi et corrompu, et Stack Exchange comme l'Alliance Rebelle, j'ai commencé à me demander - qu'est-ce que ça ferait de changer de camp ? Et si je devenais le champion de la discussion spontanée et impulsive, du genre que j'ai passé quatre ans à combattre aux niveaux conceptuel et spirituel ?

    Fonctionnalités de Discourse

    Rédigé d'après la FAQ et la page « à propos » :

    • 100 % libre : intégration de Discourse dans votre site en totale confiance ; le code appartient à tous ;
    • Système de confiance : au fur et à mesure que les utilisateurs deviennent des membres de confiance, ils peuvent devenir des modérateurs de leur communauté ;
    • Responsive pour mobiles : conception pensée depuis le premier jour pour les écrans tactiles ; modes d'affichage automatiques qui s'adaptent à votre support mobile et/ou tactile ;
    • Modération par la communauté : un système de drapeau permet à la communauté de supprimer les spams et les contenus dangereux et de résoudre amicalement ses propres disputes ;
    • Optimisé pour la lecture : pour continuer à lire, faites simplement défiler la page ; quand vous atteignez le bas de page, des sujets suggérés vous amènent à rester dans votre lecture. La discussion n’est pas coupée en plusieurs pages ;
    • Likes : exprimez votre accord, votre soutien, et mettez en avant des commentaires intéressants avec le gros bouton ❤ présent sur chaque commentaire ;
    • Dégrossir les fil de commentaires : Bouton « Summarize » pour condenser les longs fils de discussions et n'afficher que les commentaires les plus intéressants et populaires ;
    • Contexte en ligne : affichage des citations, des réponses ou du fil de discussion qui précédait une réponse ;
    • Traductions : disponible dans 17 langues, et plus à venir ; les utilisateurs peuvent configurer la langue de leur choix ;
    • Notifications en temps réel : avertissement quand quelqu'un vous répond, vous cite, mentionne votre @nom, vous envoie un message privé, crée un lien vers votre commentaire, modifie votre commentaire, ou re-catégorise votre discussion ;
    • Référencement : URL lisible et compréhensible et HTML valide, optimisé pour l'indexation par le moteur de recherche de Google ;
    • Greffons : système de greffons en cas de besoin de fonctionnalité spécifique à votre site ;
    • Single Sign On : intégration fluide avec le système d'identification du site hôte ;
    • Éditeur en surimpression : rédaction des commentaires dans un éditeur qui n'interrompt jamais la lecture, même si vous visitez un autre fil de discussion ;
    • Identification via sites sociaux : ajout facile de Google, Facebook, Twitter, Yahoo!, GitHub, et d'autres systèmes d'identification courants ;
    • Communautés privées : catégories entièrement ou partiellement privées  ;
    • Limitations : toutes les actions utilisateurs peuvent être soumises à des contraintes, par exemple très strictes pour les nouveaux utilisateurs ;
    • Nettoyage facile du spam : suppression des spams en deux clics, bannissement d'adresse de courriel et d'IP et auto-suppression de tous les contenus associés ;
    • Blocage du spam : heuristique uniforme et exhaustive, incluant un sas pour les nouveaux utilisateurs, le blocage par les utilisateurs, et l'utilisation de l'attribut nofollow ;
    • Analyses : tableau de bord pour les administrateurs listant les statistiques clés des utilisateurs, les sujets de discussion et toutes les actions des utilisateurs, en incluant les domaines et sujets les plus en vogue ;
    • Intégration automatique d'URL : les URL de sites populaires comme Wikipédia et YouTube incluront un résumé. Prise en charge complète de OpenGraph et oEmbed ;
    • Gestion avancée des images : téléversement d'images via sélection de fichier, glisser/déposer ou copier/coller ; les grandes images sont automatiquement réduites en miniatures et affichées à l'aide de lightbox ;
    • Adjonction de fichiers : inclusion de fichiers de toutes sortes et de toutes tailles ;
    • Suivi de liens : les liens externes sont accompagnés d'un compteur de clics ; les liens entrants et sortants vers d'autres sujets sont affichés à coté de chaque commentaire ;
    • Sondages : création rapide de sujets sur lesquels la communauté peut voter ;
    • Spoilers : étiquettes qui floutent les spoilers (information cruciale qui déflore le sujet central) éventuels, ne se révélant que par un clic ou un appui ;
    • Formatage flexible : mélange possible de Markdown, de BBCode et de HTML ;
    • Emoji : commencer juste à taper pour avoir accès à une liste complète des emoji courants ;
    • API exhaustive : tout ce qui est visible à l'écran est accessible via l'API. Discourse lui-même est une application en JavaScript qui communique avec une API ;
    • Avatars locaux : génération d'avatar locaux sans dépendances externes. Possibilité de choisir un Gravatar existant ou de téléverser son avatar ;
    • Invitation par courriel : les utilisateurs de confiance peuvent inviter des amis par courriel à rejoindre et participer à une discussion par un simple clic ; les administrateurs peuvent inviter des utilisateurs par groupes en renseignant une liste d'adresses courriel ;
    • Brouillon automatique : les réponses et sujets sont automatiquement sauvés sur le serveur en arrière plan pendant leur rédaction ;
    • Historique des révisions : suivi des révisions à chaque modification, avec mise en évidence visuelle des différences pour faire apparaître les changements ;
    • Commentaires wiki : les commentaires peuvent être déclarés comme modifiables par des membres de confiance de la communauté ;
    • Badges : les comportements positifs sont encouragés par un ensemble de badges préexistants ou de votre cru ;
    • Notification par courriel : quand vous n'êtes pas activement sur le site web, vos notifications seront envoyées par courriel ;
    • Réponse par courriel : répondez aux notifications par courriel pour participer sans visiter le site web ;
    • Modération en ligne : outils de contrôle rapide en ligne pour séparer, joindre, fermer, archiver ou re-catégoriser des sujets ;
    • File d'attente de drapeaux de modération : très visible, avec notification optionnelle par courriel. Un clic pour exprimer un accord, un désaccord, ou déférer un drapeau (à un autre modérateur).
    • Notification sur tout le site : punaiser des sujets localement ou globalement. Affichage d'un sujet pour qu'il soit immanquable par tous les utilisateurs ; alerte permanente pour des situations urgentes ;
    • Prise en charge des listes de diffusion : mode spécial pour lequel tous les messages sont envoyés par courriel, comme une liste de diffusion. Démarrage de nouveaux sujets par courriel ;
    • Espace « communauté » : sous-domaine meta.siteweb pour discuter fonctions, bugs, et demandes d'aide.
    • Messages privés : envoi de messages privés à un ou plusieurs utilisateurs ;
    • Sauvegarde et restauration sur le web : toutes les données du site sont enregistrables et restaurables depuis le navigateur ; changez vos données de serveur en quelques clics ;
    • Sauvegardes automatiques : sauvegarde de vos données tous les jours, sur le système de fichiers local ou ailleurs ;
    • Prise en charge des CDN : intégration facile de tous les fournisseurs de CDN pour accélérer l'accès au site.

    Principes d’une discussion civilisée

    Installation

    Discourse s'installe à l'aide de Docker.

    Technologies

    D’après le README du dépôt GitHub de Discourse :

    • Ruby on Rails
    • Ember.js
    • PostgreSQL
    • Redis

    Modèle économique

    Le projet Discourse vend des services d'hébergement.

    Projet similaire

    [NdM] Le cycle de développement est rapide, environ une version tous les quatre mois. La version 1.5 devrait arriver d'ici quelques semaines.

    Lire les commentaires

  • Le Firefox nouveau est arrivé ! (Journaux LinuxFR)

    Ca y est, Firefox 57 est sorti le 14 Novembre, avec lui le nouveau moteur de rendu Quantum. Je ne vais pas m'étendre sur ce dernier, il y a une superbe dépêche en cours de rédaction qui traitera le sujet mieux que moi.

    Dans tous les cas, j'étais curieux de le tester et de le comparer à son grand rival Chromium, la mouture libre de Chrome.

    J'ai quitté Firefox il y a des années après avoir constaté à quel point il devenait pataud, au profit de Chromium et l'annonce de Quantum me faisait de l'oeil. Avant de faire quelques petits speedtests (qui vaudront ce qu'ils vaudront), je commence par la conclusion : j'ai de nouveau adopté Firefox !

    D'abord, en terme d'impression personnelle : il est vraiment réactif, le Firefox mou du genou que je connaissais est loin derrière. Il a fallut que je me refasse à l'interface, qui a pas mal évoluée depuis que je l'ai quitté mais elle se rapproche de plus en plus de celle de Chromium donc pour le coup, c'était chose aisée. J'ai vraiment l'impression qu'il affiche tout plus vite que Chromium et je n'ai pas encore rencontré de ralentissement. Sur Chromium, j'avais parfois un petit freeze aléatoire, de quelques secondes, quand je regardais des vidéos en HTML5, pourtant ma config' est quand même relativement "costaud", je n'ai pas encore rencontré ce problème sur Firefox et c'est agréable.

    Quelques petits speedtests :
    A savoir qu'ils ont tous été réalisé dans des conditions "idéalles" et similaires : uniquement le navigateur lancé et un seul onglet ouvert.

    Premier test réalisé sur : http://speed-battle.com/

    SPEED-BATTLE measures online the speed of JavaScript in your browser and shows a comparison to previous visitors.
    Questions, SPEED-BATTLE can give answers to:
    Which browser is on my computer fastest in completing the SPEED-BATTLE test tasks?
    Which operating system is faster when using the same computer and browser version?
    Which computer is faster when using the same operating system and browser?
    Test results depend on different parameters (like CPU, browser, plugins/addons, operating system, system memory, number and kind of processes running in parallel and many more). The test will give you a reference value for the performance of your soft- and hardware. For consistent results run it when all other activity of your computer is low.
    SPEED-BATTLE is quick, for free and does not require any download or installation.

    Plus grand est le score, mieux c'est.

    Chromium :

    Chromium

    Firefox :

    Titre de l'image

    Second test réalisé sur : http://peacekeeper.futuremark.com/
    Pour le coup lui il test énormément de choses (rendu, vidéos HTML5 sous divers formats, les opérations dans le DOM…), si vous êtes anglophone je vous invite à lire leur FAQ qui vous donnera tous les détails. Plus grand est le scord, mieux c'est.

    Chromium :
    Titre de l'image

    Firefox :
    Titre de l'image

    Troisième et dernier test réalisé sur : http://browserbench.org/JetStream/

    JetStream is a JavaScript benchmark suite focused on the most advanced web applications. For more information, read the in-depth analysis. Bigger scores are better.

    Chromium :
    Titre de l'image

    Firefox :
    Titre de l'image

    Globalement, les deux premiers speedtests confirment mon impression de réactivité tandis que le dernier semble être plus mitigé mais les valeurs extrêmes ont étés plus élevées sur Firefox. Il faudrait dans tous les cas plusieurs itérations afin d'obtenir un résultat à peu près fiable.

    Je redonne sa chance au panda roux, on revient toujours à son premier amour  ;).

    Et vous ? Vous l'avez essayé ? Quelles sont vos impressions ?

    Lire les commentaires

  • LinuxFr.org : première quinzaine de novembre 2017 (Journaux LinuxFR)

    Octante quatrième épisode dans la communication entre les différents intervenants autour du site LinuxFr.org : l’idée est tenir tout le monde au courant de ce qui est fait par les rédacteurs, les admins, les modérateurs, les codeurs, les membres de l’association, etc.

    L’actu résumée ([*] signifie une modification du sujet du courriel) :

    Statistiques

    Du 1er au 15 octobre 2017 :

    • 1665 commentaires publiés (dont 3 masqués depuis) ;
    • 426 tags posés ;
    • 85 comptes ouverts (dont 1 fermé depuis) ;
    • 52 entrées de forums publiées (dont 1 masquée depuis) ;
    • 21 dépêches publiées ;
    • 29 journaux publiés (dont 0 masqué depuis) ;
    • 7 entrée dans le système de suivi ;
    • 1 sondage publié ;
    • 2 page wiki publiée (dont 1 masquée depuis).

    Listes de diffusion (hors pourriel)

    Liste linuxfr-membres@ — [restreint]

    • R.A.S.

    Liste meta@ - [restreint]

    • R.A.S.

    Liste moderateurs@ - [restreint]

    • [Modérateurs] [LinuxFr] Section Fedora 28 dans la dépêche Fedora 27
    • [Modérateurs] Fwd: Impossibilité de se connecter à Linux.org
    • [Modérateurs] Connexion à linuxfr

    Liste prizes@ - [restreint]

    • [Prizes] LinuxFr prizes recap du mercredi 1 novembre 2017, 19:56:33 (UTC+0100)

    Liste redacteurs@ - [public]

    • R.A.S.

    Liste team@ - [restreint]

    • [team linuxfr] Invitation à l'Ubuntu Party 25/26 novembre 2017

    Liste webmaster@ — [restreint]

    • [webmaster] IBAN pour donation
    • [webmaster] Don par virement
    • [webmaster] ce serait pour un don

    Canal IRC adminsys (résumé)

    • freshclam a du mal avec un miroir pas à jour et génère des alarmes
    • collecte de liens liés à la mise en demeure n°2
    • faut-il coder la détection d'un lien déjà donné dans la dépêche lors de l'écriture d'un commentaire ?
    • des mises à jour de sécurité

    Tribune de rédaction (résumé)

    • sujets de dépêche non encore traités : TOP500, Ubuntu 17.10

    Tribune de modération (résumé)

    Commits/pushs de code https://github.com/linuxfrorg/

    • Branche master
      • Merge pull request #217 from devnewton/master
      • fix TSV backend
    • Branche redesign :
      • fix TSV backend
      • WikiPage: run annotate to update schema informations
      • WikiPage: update database schema to add the truncated_body and fill i…
      • WikiPage: don't force body value to view WikiPage as it has now body …
      • WikiPage: add automatic value on save for the new column truncated_body
      • Update html-pipeline-linuxfr

    Divers

    Depuis la création du site, statistiques liées au légal :

    • deux mises en demeure reçues (pour zéro assignation)
    • une réquisition judiciaire reçue (qui au final ne nous concernait pas, mais a donné l'occasion de discuter avec la police nationale)
    • un cas d'usurpation d'identité et de harcèlement type « revenge porn » (discussion avec la gendarmerie nationale)

    Lire les commentaires

  • Dilemme entre vie privée et contrôle de sa machine (Journaux LinuxFR)

    Vous avez sûrement entendu parler de la demande auprès d'Apple d'un juge fédéral américain qui enquête sur la tuerie de San Bernardino de décembre dernier aux États-Unis : ils veulent la possibilité d'utiliser un logiciel pour brute-forcer l'iPhone des « terroristes » afin de récolter plus de preuves pour leur enquête.

    En effet, le FBI s'est cassé les dents sur la récupération des données de cette machine : le directeur du FBI s'est même plaint auprès du congrès américain des difficultés causées par les technologies de chiffrement modernes pour les enquêtes qu'il mènent.

    Alors, derrière ces plaintes d'un État puissant qui s'énerve de ne pas pouvoir accéder à toute l'information produite dans le monde, d'un côté, on ne peut qu'approuver le combat pour la Liberté et la vie privée, et se dire que ce que fait Apple est bien. Apple a même publié il y a deux jours une réponse au gouvernement américain aux accents patriotiques appuyés : « Nous contestons la demande du FBI avec le plus profond respect pour la démocratie Américaine et avec amour pour notre pays ».

    Ils expliquent qu'ils ont tout fait pour répondre de leurs obligations légales, qu'ils ont collaboré avec les autorités pour tout ce qu'ils étaient en capacité de faire, mais qu'il ne peuvent pas fournir de logiciel pour aider à contourner les mécanismes de ralentissement des attaques par force brute (une attente d'un délai augmentant exponentiellement avec le nombre d'essais). Ils expliquent que cela créerait une porte dérobée (backdoor) qui pourrait tout d'un coup être utilisée à mauvais escient, par de mauvais acteurs, car ce logiciel finirait par se retrouver entre de mauvaises mains.

    Apple argumente très bien sur la nécessité aujourd'hui du chiffrement pour protéger tout type de données personnelles : conversations, photos, contacts, informations financières, données de santé… Ils expliquent qu'eux-même n'ont pas les clés qui permettent d'accéder aux données de chaque iPhone : preuve s'il en est de leur volonté de protéger leurs clients ! Ils taclent ainsi au passage tous les autres grandes entreprises technologiques qui se gavent sur les données personnelles des personnes du monde entier pour faire leur beurre.

    Sauf que…

    Sauf qu'il y a un problème : pourquoi le FBI « demande » à Apple de lui fournir un logiciel pour brute-forcer les iPhone ? Ne peut-il pas le faire lui-même ? Je ne vais pas rentrer dans tous les détails cryptographiques, mais vous pourrez trouver plein d'informations très intéressantes sur le fonctionnement des systèmes de sécurité des appareils utilisant iOS dans le guide fournit par Apple. Et donc pour commencer, la mémoire flash de stockage des iPhone est chiffrée en AES : c'est un standard entériné par le gouvernement américain qu'il est impossible de brute-forcer sans y passer très longtemps. À priori même pour le FBI…

    Mais la clé permettant de déchiffrer cette mémoire est bien stockée quelque-part, non ? Presque : elle est dérivée d'un UID (propre au téléphone) et d'un GID (commun à une même série de téléphones) qui sont stockés dans la puce, et de manière à ce qu'ils soient impossibles à récupérer : ils ne sortent jamais de cette puce et il n'existe pas de possibilité de les lires…

    Bon, alors on pourrait peut-être attaquer les bus niveau hardware pour voir ce qu'il s'y passe et essayer de trouver des indices pour en déduire ces clés, non ? Allez lire le document que j'ai cité sur les « Secure Enclave », et vous verrez qu'ils sont allé à un niveau de sécurisation et de chiffrement assez dingue pour qu'il n'existe quasiment aucun moyen de chopper ces clés, que ça soit en compromettant l'espace utilisateur, l'espace noyau, ou même le matériel ! Même si je trouve que la diversité des systèmes de chiffrement utilisés (plein de modes différents d'AES, de la cryptographie elliptique, …) fait moyennement confiance quand on sait que les failles viennent plus souvent de la complexité d'un système, c'est assez impressionnant à voir.

    Au passage, ça explique le pourquoi du récent problème sur « l'erreur 53 » que font les iPhone dont le bouton contenant un scanner digital a été changé : le trafic SPI entre le capteur et la « Secure Enclave » est chiffré de bout en bout, et le CPU ne voit même pas le trafic en clair dans son fonctionnement normal ! Même en mode noyau vous ne pourrez rien voir, ni en sniffant le bus…

    Bon, donc si on ne peut rien faire à tout ça, il faut passer par la voie « classique » : trouver le PIN qui décode la clé. En effet, la clé décrite plus haut est en plus chiffrée avec le PIN de l'utilisateur (qui peut être une passphrase). On va donc brute-forcer le PIN — et ce sur l'iPhone en question car il est impossible autrement d'avoir le bon UID pour déchiffrer la mémoire — et attendre que la moulinette nous sorte le bon résultat. Et donc, sur un PIN à 4 ou 6 chiffres (les « terroristes » ne sont pas forcément très malins…), ça va être rapide, non ? Pas tout à fait : le logiciel délaie les essais d'une durée qui augmente exponentiellement.

    Mais pourquoi passer par le logiciel classique ? On peut faire tourner un soft qui essaie tout en boucle, non ? Et c'est là qu'est le gros problème : on ne peut pas, car toute la chaîne de logiciels est certifiée depuis le bootloader de premier niveau jusqu'au noyau, aux applications et aux logiciels qui tourneront sur les CPU annexes comme à priori celui de la « Secure Enclave ». Seuls les logiciels signés par Apple peuvent tourner sur cet engin. Bref, de l'informatique déloyale utilisée dans toutes ces possibilités : pour la mesure cryptographique des logiciels utilisés et la limitation de ceux qu'il est possible d'exécuter. On voit même de l'attestation à distance : pour récupérer une mise à jour, il faut signer une preuve (la mesure cryptographique des logiciels tournant actuellement sur l'iPhone à mettre à jour) par une clé présente dans chaque iPhone que seul Apple peut vérifier (et qui est dans la Secure Enclave : même en dumpant la RAM par une méthode externe vous ne la récupérerez pas, sa RAM étant chiffrée avec une clé éphémère générée au boot…), afin que personne ne puisse récupérer un exemplaire du logiciel de l'iPhone !

    Bref, votre vie privée est préservée par Apple uniquement parce qu'ils ont complètement verrouillé le système d'une manière où vous n'avez plus du tout de contrôle sur la machine. Ni vous, ni les autorités, du coup. Cela va contre le principe d'être maître de sa machine, qui est pour moi un pré-requis essentiel au Logiciel Libre. Même si dans ce cas, cela peut permettre de protéger sa vie privée de manière exemplaire, nous ne devons pas en arriver là.

    Il existe d'autres systèmes pour se protéger d'une attaque par accès physique à la machine, comme stocker ses secrets sur un token externe, ou une smartcard, qui permettront que le système n'ait même pas à les manipuler. Ironiquement, la puce TPM propose aussi un système ayant des garanties similaires au système d'Apple vis-à-vis des attaques externes, mais en permettant d'y mettre sa propre clé, même si cette possibilité est souvent sabrée par les constructeurs sur ordre de Microsoft (c.f. les tablettes ARM, voire d'autres machines). Personnellement, je trouve que ce genre de protection est inutile comparé à un bon système de token/smartcard, qui sera certes attaquables si quelqu'un arrive à prendre possession de votre système, mais garantit déjà l'inviolabilité en cas d'accès physique (qui est la garantie qu'offre Apple dans le cas présent).

    Bref, même si les intentions d'Apple semblent louables dans le cas présent, et que se faire passer pour un martyr face à un cas de potentielle « collaboration avec les terroristes » (comme doivent déjà l'imaginer certains de ses adversaires) peut sembler très courageux, il ne faut pas céder à cet abandon d'une des libertés premières que devrait avoir tout être humain sur les machines : celle de les contrôler, et pas l'inverse.

    Lire les commentaires

  • Quelques actualités autour de GNU Emacs (Journaux LinuxFR)

    Un nouveau mainteneur

    Emacs a un nouveau mainteneur depuis le mois de Novembre. Il s'agit de John Wiegley. Il a accepté ce rôle après avoir rencontré Richard Stallman. Il est notamment connu dans la communauté emacs pour être l'auteur des paquets use-package et eshell.

    Rendre la communauté plus accessible

    En ce qui concerne son rôle de mainteneur, John Wiegley s'est notamment fixé pour objectif de rendre la communauté emacs plus accessible et de permettre à plus de gens de participer au développement d'emacs. À ce propos, il a eu une discussion très intéressante avec Sacha Chua (vidéo youtube).
    Cet objectif a notamment conduit à la création d'une nouvelle liste de diffusion : emacs-tangents. L'idée est de s'y retrouver pour discuter autour de sujets qui n'auraient pas leur place sur la liste de diffusion des développeurs. En contrepartie, les discussions de cette dernière ont vocation à être semi-professionnelles pour éviter les débats inutiles.

    Emacs news : suivre l'actualité d'emacs

    Afin de mieux communiquer autour d'emacs, John Wiegley a proposé à Sacha Chua de créer un résumé hebdomadaire de l'actualité d'emacs. Ces actualités sortent tous les lundis sous la forme d'articles de blog (ils sont également repris sur la liste emacs-tangents). On y retrouve pêle-mêle des trucs et astuces, une liste de nouveaux paquets, un résumé des discussions de la liste emacs-devel, des discussions reddit, des articles traitant d'emacs, etc.

    Emacs 25.1 en approche

    Enfin, John Wiegley est certainement très occupé par la préparation de la sortie d'emacs 25.1. La deuxième version de test est sortie le 13 février.
    Les plus curieux pourront jeter un coup à la liste des nouveautés.

    Un nouveau site web

    Nicolas Petton a travaillé sur la refonte complète du site web d'emacs. On peut dès à présent le tester sur cette page. Le logo a également été retravaillé. On pourrait discuter longtemps des goûts et des couleurs, mais il me semble beaucoup plus attrayant et agréable à la lecture que le site actuel.

    Présentation succincte de use-package et eshell

    En guise de conclusion et afin de ne pas frustrer nos lecteurs, présentons rapidement les paquets use-package et eshell mentionnés en début de journal.

    use-package consiste en une macro pour gérer proprement ses différents paquets emacs. L'idée est de regrouper l'initialisation et la configuration d'un paquet en un seul endroit à l'intérieur de son fichier de configuration d'emacs (le fameux .emacs). Les bénéfices sont nombreux : temps de lancement d'emacs réduit en ne chargeant les paquets que lorsque l'on en a besoin, installation automatique des paquets manquants, meilleure visibilité de sa configuration complète, etc.
    On retrouve un peu partout des exemples complets d'utilisation. Par exemple celui-ci. La documentation du paquet est également très bien faite.

    eshellest, comme son nom l'indique, un shell à l'intérieur d'emacs. Mickey Peterson en fait une présentation très claire sur son site.

    Lire les commentaires

  • Michel Rocard est bronsonisé (Journaux LinuxFR)

    Je viens de l'apprendre via twitter, Michel Rocard est décédé ce 2 juillet.

    On peut partager ou non ses combats politiques mais il en est un qui pourra rassembler ici, c'est celui contre les brevets logiciels. C'était une des personnalités politiques qui défendaient le logiciel libre avec conviction et qui me semblait y comprendre quelque chose.

    Lire les commentaires

  • Internet des objets l'ESP8266 et ma porte de garage (Dépêches LinuxFR)

    Dans ma maison, j'ai un garage dont la porte est motorisée ; avec une petite télécommande (433MHz) on peut l' ouvrir ou la fermer depuis la voiture, ce qui est bien pratique en hiver. Mais il y a deux problèmes : le premier c'est que la télécommande fonctionne aléatoirement (ce qui n'est pas pratique), le second c'est la sécurité du 433MHz.

    Ayant un Arduino UNO qui traîne dans un coin, ma maison étant domotisée (serveur fait-maison tournant sur du Python, du PHP, des scripts shell et le tout reposant sur xpl-perl) je me suis dit que le serveur domotique pourrait piloter la porte.
    Il peut déjà lire l'état de la porte du garage avec un capteur d'ouverture.

    Le moteur de la porte fournit un contact sec. Il suffit de ponter deux fils raccordés à un bornier pour actionner la porte : ouvrir si elle est fermée ou fermer si elle est ouverte.

    Avec un Arduino et un relais on peut actionner sans problème la porte du garage. Je code vite fait un petit bout de script qui me permet d'activer un relais 1.5 seconde.
    Le problème : il faut donner les ordres par un câble USB à l'Arduino donc je pars en recherche d'une carte WI-FI pour l'Arduino et c'est là que je tombe sur l'ESP8266.

    Sommaire

    Présentation de l'ESP8266

    L'ESP8266 est un extraterrestre apparu dernièrement (vers 2014 me semble-t-il).
    C'est une toute petite carte (de la taille d'une pièce de 2€ approximativement) qui contient un processeur tournant à 80MHz, une puce WI-FI avec son antenne, un port série et deux gpio (pour la version ESP-01) ; il existe d'autres versions qui peuvent contenir beaucoup plus de gpio mais elles sont légèrement plus chères et plus grandes. Bref, dans notre cas, la version ESP-01 coûte dans les 5€ environ.

    ESP8266 version ESP-01

    Il est semble-t-il opensource, compatible Arduino, vous pouvez le reflasher à votre guise, lui changer le bootloader. Vous pouvez lui faire tourner un firmware à base de Lua, ou de micro-Python (expérimental). Par défaut il se programme avec l'IDE de l'Arduino (attention à utiliser la dernière version depuis le site d'arduino). Vous pouvez même si vous le voulez ne pas le programmer et le configurer avec des commandes AT.

    Premier essai avec l'ESP-01 (ESP8266)

    Donc après avoir passer de longues soirées à chercher sur Internet (il y a tellement de possibilités) comment cela fonctionnait, je me décide à en commander un (comme je suis en Suisse j'en ai trouvé chez Chipandlove), pour 8,5 CHF, je ne prends pas beaucoup de risques.

    La bête arrive le lendemain par la poste, le soir je le déballe et je commence à jouer avec.

    Premier constat, l'Arduino fonctionne en 5V et l'ESP en 3.3V, c'est chiant il va falloir gérer une double alim (la sortie 3.3v de l'Arduino ne fournit que 30mA et l'ESP a besoin de 300mA environ), donc un montage avec un LF33CV fera l'affaire (régulateur de 3.3V).

    Premier montage échec

    Je modifie mon programme Arduino, à la mise sous tension il programme l'ESP avec une série de commande AT, puis il écoute ce qu'il vient depuis l'ESP. Quand je fais une requête via le WI-FI sur l'ESP, il émet bien quelque chose sur l'Arduino mais ça ne marche pas toujours, peu concluant, surtout que le tout pour être opérationnel prend pas mal de temps (le temps que l'Arduino programme l'ESP avec les commandes AT).

    Deuxième essai concluant

    On garde le même câblage mais je remets mon logiciel d'origine dans l'Arduino, il ne s'occupe plus de l'ESP. Je programme avec l'IDE de l'Arduino, l'ESP je pars des exemples fournis. Quand je fais une requête http://IP/garage il envoie sur le port série la commande d'ouverture que l'Arduino exécute. Youpi ça marche.

    Montage commande garage avec arduino

    Génial, mais l'Arduino ne sert à rien vu que l'ESP-01 a deux GPIO il pourrait bien piloter lui-même le garage.

    Montage définitif

    Donc je supprime l'Arduino, je modifie le soft de l'ESP pour qu'il commande lui-même le garage

    Montage définitif

    Problèmes techniques

    L'ESP a au démarrage ses port gpio à +3.3V si vous l'utilisez pour la commande à niveau logique haut (+3.3V). Il suffirait d'une coupure de courant pour ouvrir le garage (sympa la sécurité). Donc j'utilise une commande inverse (mise à la masse).

    L'ESP ne peut pas démarrer si la gpio est à la masse (même au travers d'une résistance et d'une diode (Base-Emetteur d'un transistor par exemple)) de ce fait nous allons utiliser un optocoupleur et la patte de masse de l'entrée de l'opto sera reliée à notre gpio. La patte d'entrée de l'opto étant reliée au travers d'une résistance au 3.3v. Comme ça lorsque l'ESP démarre la gpio est reliée au +3.3V

    Schéma technique

    Je vous ai mis le schéma technique, j'utilise un opto-triac parce que j'avais pas d'opto-coupleur en stock mais un opto-coupleur fera bien l'affaire.

    Comme alimentation j'utilise une alim USB de 5V 2A. Pour alimenter l'ESP j'utilise un régulateur LF33CV qui me sort du +3.3V 500mA. Attention si vous faîtes votre 3.3V depuis une alim de 12V par exemple veuillez prévoir un refroidissement pour le LF33CV.

    Schéma

    Je travaille en +5V parce que j'ai une carte relais de +5V mais rien ne vous empêche d'utiliser d'autres relais sous d'autres tensions. Attention si vous attaquez un relais en direct n'oubliez pas de le piloter depuis un transistor (l'opto ne supportera pas le courant consommé par le relais) et de mettre une diode inverse sur votre relais pour éviter de bousiller votre électronique.

    Programme ESP-01

    Voici le programme que j'ai injecté dans l'ESP depuis l'IDE de l'Arduino (attention prenez la dernière version sur le site, celle contenue dans les dépôts d'ubuntu 14.04 est trop vieille).

    #include <ESP8266WiFi.h>
    #include <WiFiClient.h>
    #include <ESP8266WebServer.h>
    #include <ESP8266mDNS.h>
    
    const char* ssid = "lereseauwifi";
    const char* password = "lacleewpa2";
    const int relais = 2;
    MDNSResponder mdns;
    
    ESP8266WebServer server(80);
    
    const int led = 13;
    
    void handleRoot() {
      digitalWrite(led, 1);
      server.send(200, "text/plain", "hello from esp8266!");
      digitalWrite(led, 0);
    }
    
    void handleNotFound(){
      digitalWrite(led, 1);
      String message = "File Not Found\n\n";
      message += "URI: ";
      message += server.uri();
      message += "\nMethod: ";
      message += (server.method() == HTTP_GET)?"GET":"POST";
      message += "\nArguments: ";
      message += server.args();
      message += "\n";
      for (uint8_t i=0; i<server.args(); i++){
        message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
      }
      server.send(404, "text/plain", message);
      digitalWrite(led, 0);
      Serial.println("10");
    }
    
    void setup(void){
      pinMode(led, OUTPUT);
      pinMode(relais, OUTPUT);
      digitalWrite(relais, 1);
      digitalWrite(led, 0);
      Serial.begin(9600);
      WiFi.begin(ssid, password);
      Serial.println("");
    
      // Wait for connection
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
      }
      Serial.println("");
      Serial.print("Connected to ");
      Serial.println(ssid);
      Serial.print("IP address: ");
      Serial.println(WiFi.localIP());
    
      if (mdns.begin("esp8266", WiFi.localIP())) {
        Serial.println("MDNS responder started");
      }
    
      server.on("/", handleRoot);
    
      server.on("/garage", [](){
        server.send(200, "text/plain", "ok garage actionned");
        Serial.println("10");
        digitalWrite(relais, 0);
        delay(1500);
        digitalWrite(relais, 1);
      });
    
      server.onNotFound(handleNotFound);
    
      server.begin();
      Serial.println("HTTP server started");
    }
    
    void loop(void){
      server.handleClient();
    }

    intégration dans la domotique existante

    Mon serveur domotique (écrit en Python et PHP) utilise des scripts bash pour exécuter des actions (soit lancer depuis PHP pour la partie télécommande web ou depuis Python suite à une instruction reçue en xpl, voir depuis la crontab), voici mon script qui actionne la porte du garage:

    #!/bin/sh
    wget http://10.1.74.80/garage -O /dev/null

    En fait c'est une simple requête http, j'ai mis /garage c'est pour éviter si quelqu'un dans mon réseau se connecte dessus par erreur qu'il ouvre la porte du garage (moi en l’occurrence)

    Sécurité

    Alors c'est clair que la partie réseau est minimaliste, il n'y a aucune sécurité, donc la sécurité doit se faire en amont, par exemple en utilisant un réseau wifi dédié avec une clé wap2 longue.
    Ne pensez pas l'attaquer directement depuis Internet.

    Conclusion

    Voilà j’espère avoir réussi à vous donner l'envie d'essayer ce joli petit circuit. J'ai déjà plein d'idées pour la suite. Je vais à terme remplacer mon réseau 433 (intertechno, chacon, oregon…) par des montages faits avec des ESP. J'avais essayé enocean qui est prometteur mais affreusement cher.
    J’espère que mon petit article pourra donner des réponses à certains qui butent sur des problèmes techniques. J'ai mis des liens sur quelques ressources qui m'ont aidé.

    Lire les commentaires