Pour la 3ème semaine de l'année 2018, voici 10 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !
De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !
Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !
Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker ou bien dans les commentaires de ce billet :)
Analyser le chemin critique ( c.-à-d. voir où ça coince )
$ systemd-analyze critical-chain
The time after the unit is active or started is printed after the "@" character.
The time the unit takes to start is printed after the "+" character.
graphical.target @8.907s
└─multi-user.target @8.907s
└─autofs.service @8.823s +82ms
└─network-online.target @8.821s
└─NetworkManager-wait-online.service @724ms +8.096s
└─NetworkManager.service @644ms +79ms
└─dbus.service @616ms
└─basic.target @615ms
└─sockets.target @615ms
└─dbus.socket @615ms
└─sysinit.target @612ms
└─systemd-backlight@backlight:acpi_video0.service @1.079s +7
└─system-systemd\\x2dbacklight.slice @1.079s
└─system.slice @125ms
└─-.slice @114ms
Récupérer un graphique du boot
$ systemd-analyze plot > plot.svg
Désactivation des services inutiles ( du moins au boot )
Par exemple, j’ai désactivé mongodb et virtualbox du démarrage
Je n’ai pas encore réussi à optimiser le démarrage du network manager. ça prend quand même 8 secondes. Ce n’est pas trop la mort, mais bon en ce moment, je ne vois pas trop comment mieux. Le gros est dans la négociation DHCP et je ne souhaite pas mettre une IP fixe.
Comme le projet Fedora est communautaire, une partie du collège des
organisations suivantes doit être renouvelée : Council, FESCo et Mindshare. Et
ce sont les contributeurs qui décident. Chaque candidat a bien sûr un programme
et un passif qu'ils souhaitent mettre en avant durant leur mandat pour orienter
le projet Fedora dans certaines directions. Je vous invite à étudier les
propositions des différents candidats pour cela.
Pour voter, il est nécessaire d'avoir un compte FAS
actif et de faire son choix sur le site du
scrutin. Vous avez jusqu'au mercredi 25 janvier à 1h heure française pour
le faire. Donc n'attendez pas trop.
Je vais profiter de l'occasion pour résumer le rôle de chacun de ces comités
afin de clarifier l'aspect décisionnel du projet Fedora mais aussi visualiser
le caractère communautaire de celui-ci.
Council
Le Council est ce qu'on pourrait qualifier le grand conseil du projet.
C'est donc l'organe décisionnaire le plus élevé de Fedora. Le conseil définit
les objectifs à long terme du projet Fedora et participe à l'organisation de
celui-ci pour y parvenir. Cela se fait notamment par le biais de discussions
ouvertes et transparentes vis à vis de la communauté.
Mais il gère également l'aspect financier. Cela concerne notamment les
budgets alloués pour organiser les évènements, produire les goodies, ou des
initiatives permettant de remplir les dits objectifs. Ils ont enfin la charge
de régler les conflits personnels importants au sein du projet, tout comme les
aspects légaux liés à la marque Fedora.
Les rôles au sein du conseil sont complexes.
Ceux avec droit de vote complet
Tout d'abord il y a le FPL (Fedora Project Leader) qui est le dirigeant du conseil
et de facto le représentant du projet. Son rôle est lié à la tenue de
l'agenda et des discussions du conseil, mais aussi de représenter le projet
Fedora dans son ensemble. Il doit également servir à dégager un consensus au
cours des débats. Ce rôle est tenu par un employé de Red Hat et est choisi avec
le consentement du conseil en question.
Il y a aussi le FCAIC (Fedora Community Action and Impact Coordinator) qui
fait le lien entre la communauté et l'entreprise Red Hat pour faciliter et
encourager la coopération. Comme pour le FPL, c'est un employé de Red Hat qui
occupe cette position avec l'approbation du conseil.
Il y a deux places destinées à la représentation technique et à la
représentation plus marketing / ambassadrice du projet. Ces deux places
découlent d'une nomination décidée au sein des organes dédiées à ces activités
: le FESCo et le Mindshare. Ces places sont communautaires mais ce sont
uniquement ces comités qui décident des attributions.
Il reste deux places communautaires totalement ouvertes et dont tout le
monde peut soumettre sa candidature ou voter. Cela permet de représenter les
autres secteurs d'activité comme la traduction ou la documentation mais aussi
la voix communautaire au sens la plus large possible. C'est pour ces places que
le vote est ouvert cette semaine !
Ceux avec le droit de vote partiel
Un conseiller en diversité est nommé par le FPL avec le soutien du conseil
pour favoriser l'intégration au sein du projet des populations le plus souvent
discriminées. Son objectif est donc de déterminer les programmes pour régler
cette problématique et résoudre les conflits associés qui peuvent se
présenter.
Un gestionnaire du programme Fedora qui s'occupe du planning des différentes
versions de Fedora. Il s'assure du bon respect des délais, du suivi des
fonctionnalités et des cycles de tests. Il fait également office de secrétaire
du conseil. C'est un employé de Red Hat qui occupe ce rôle toujours avec
l'approbation du conseil.
Ils vont donc traiter en particulier les points suivants :
Les nouvelles fonctionnalités de la distribution ;
Les sponsors pour le rôle d'empaqueteur (ceux qui pourront donc superviser
un débutant) ;
La création et la gestion des SIGs
(Special Interest Group) pour organiser des équipes autour de certaines
thématiques ;
La procédure d'empaquetage des paquets.
Le responsable de ce groupe est tournant. Les 9 membres sont élus pour un
an, sachant que chaque élection renouvelle la moitié du collège.
Mindshare
Mindshare est une évolution du FAmSCo (Fedora Ambassadors Steering Committee) qu'il
remplace. Il est l'équivalent du FESCo sur l'aspect plus humain du projet.
Pendant que le FESCo se préoccupera beaucoup plus des empaqueteurs, la
préoccupation de ce conseil est plutôt l'ambassadeur et les nouveaux
contributeurs.
Voici un exemple des thèmes dont il a compétence qui viennent du FAmSCo
:
Gérer l'accroissement des ambassadeurs à travers le mentoring ;
Pousser à la création et au développement des communautés plus locales
comme la communauté française par exemple ;
Réaliser le suivi des évènements auxquels participent les ambassadeurs
;
Accorder les ressources aux différentes communautés ou activités, en
fonction des besoin et de l'intérêt ;
S'occuper des conflits entre ambassadeurs.
Et ses nouvelles compétences :
La communication entre les équipes, notamment entre la technique et le
marketing ;
Motiver les contributeurs à s'impliquer dans différents groupes de travail
;
Gérer l'arrivé de nouveaux contributeurs pour les guider, essayer de
favoriser l'inclusion de personnes souvent peu représentées dans Fedora
(femmes, personnes non américaines et non européennes, étudiants, etc.) ;
Gestion de l'équipe marketing.
Il y a 9 membres pour gérer ce nouveau comité. Un gérant, 2 proviennent des
ambassadeurs, un du design et web, un de la documentation, un du marketing, un
de la commops et les deux derniers sont élus. C'est pour ces deux derniers
sièges que les scrutins sont ouverts.
Hello les ami(e)s. Le concept de vie privée a pris un sérieux coup dans la gourde ces dernières années, mais il existe encore quelques solutions simples pour se protéger un minimum. Si vous débutez sous GNU/Linux, utiliser un VPN peut parfois paraître un peu compliqué alors qu’au final il n’y a pas de quoi fouetter un matou. Je vous propose de voir vite fait comment mettre en place une solution simple, mais efficace.
Pour cela nous allons installer quelques paquets et passer par un service qui se nomme ProtonVPN. Ils proposent 4 formules dont trois sont payantes, mais nous allons commencer par l’offre de base qui elle est gratuite. Vous pourrez toujours basculer sur une formule payante par la suite.
La première étape est donc de vous rendre sur cette page afin de créer votre compte en quelques clics.
Ceci étant fait nous allons maintenant nous attaquer à l’installation des paquets qui vont bien et à quelques étapes de configuration qui vous allez le voir, n’ont rien de bien sorcier.
NB : J’utilise Ubuntu 16.04 et GNOME en desktop, donc adaptez le tout en fonction de votre distro.
Ouvrez un terminal (CTRL+Alt+T) et installez les paquets suivants (il se peut que certains d’entre-eux soient déjà inclus dans votre distribution) à l’aide de ces quelques lignes de commande :
sudo apt install openvpn
sudo apt install network-manager-openvpn-gnome
sudo apt install resolvconf
Maintenant que vous avez ce qu’il vous faut, rendez vous sur votre dashboard ProtonVPN, sélectionnez votre OS, le protocole et le serveur que vous souhaitez utiliser.
Une fois le serveur sélectionné et le fichier de configuration téléchargé, gardez le bien au chaud. Celui-ci contiendra tout ce qu’il faut pour que vous n’ayez pas à entrer les paramètres de connexion à la main.
Nous allons maintenant paramétrer la connexion. Ouvrez votre gestionnaire réseau et créez une nouvelle connexion, en choisissant bien entendu l’option VPN :
Une fois que vous avez cliqué sur VPN, Choisissez d’importer le fichier de configuration généré sur le site de ProtonVPN :
Indiquez ensuite votre nom d’utilisateur et votre mot de passe dans les champs requis (vous les trouverez sur votre dashboard ProtonVPN) et enregistrez les modifications :
À ce stade vous devriez voir la connexion VPN apparaître dans votre gestionnaire réseau. Il ne vous reste plus qu’à cliquer dessus, à entrer votre mot de passe pour vous y connecter et à surfer comme un dératé :
Perso une fois connecté et après vérification je suis bien en Australie :D :
Comme vous pouvez le voir ce n’est pas bien compliqué, et en ce qui concerne ProtonVPN j’ai trouvé le service assez instéressant. L’option gratuite même si ce n’est pas ce qu’il y a de plus rapide est déjà pas mal pour commencer et les offres payantes ne sont pas hors de prix.
Pour ceux que ça intéresse il existe également un client Android qui roxxe du poney. Il est très facile à installer et à utiliser. Ça ronronne en deux minutes top chrono.
La GDPR est le nouveau règlement européen en matière de protection des données personnelles. Pas d’inquiétude, je ne vais pas faire de présentation complète du sujet! C’est indigeste et je ne suis pas coutumier des gros dossiers.
De plus, l’article sera très grandement inspiré de l’article anglophone de Bozho (n’hésitez pas à lire la version originale), ce dernier est très orienté pour les développeurs. Nous allons plutôt parler fonctionnalité et implémentation que règlement.
La GPDR en bref
Si vous avez déjà de bonnes notions sur le sujet de la GDPR et qu’un rafraichissement de mémoire n’est pas nécessaire passez ce chapitre.
La GDPR (pour General Data Protection Regulation) est un nouveau règlement européen applicable à la date du 25 mai 2018. Ce dernier redéfinit complètement les obligations des entreprises envers les données personnelles de leurs utilisateurs et clients.
La GDPR regroupe une centaine d’articles qui seront autant de lois dans chacun des pays de l’union européenne. Mais si je dois résumer en une dizaine de points importants :
Il s’agit d’un règlement, avec des articles de loi et non une directive
Des sanctions extrêmement lourdes, 20 M€ minimum ou 4% du chiffre d’affaires mondiales
Déclaration contraignante de l’utilisation des données utilisateurs
Obligation de sécurisation des données (chiffrement et anonymisation)
Obligation de déclaration des fuites de données sous 72 heures après la découverte
Ne pas collecter de données superflues
Le traitement des données recueillis doit être justifié et transparent
Proposer des mentions légales intelligibles (compréhensibles pour un humain non juriste)
Respect du droit à la portabilité des données
Droit a l’oubli
Et bien d’autres ….
Je vous laisse découvrir ce très bon dossier (20 minutes de lecture environ) pour aller plus loin sur le sujet si vous êtes curieux.
Qui est concerné ? Toutes les entreprises européennes et toutes entreprises ayant des clients en Europe.
Il y a plein de changements dans la gestion des données en perspective. Aujourd’hui, cette gestion de données est souvent l’affaire des logiciels et par conséquent des développeurs.
Impact de la GDPR sur les développements
L’ensemble des obligations qui découle de la GDPR vont nous (les développeurs) obliger à revoir certaines fonctionnalités des logiciels gérant des données personnelles.
Commençons par une définition, qu’est-ce-que sont les données personnelles ? Ce sont l’ensemble des données qui permettent d’identifier directement ou indirectement (par recoupement par exemple) une personne.
Le droit à l’oubli
Chaque utilisateur ayant un droit à l’oubli, il est nécessaire de prévoir une fonction qui supprime l’ensemble des données personnelles de cet utilisateur.
Avoir une telle fonctionnalité est également intéressant en intégration pour tester, par exemple, différents uses cases.
Cependant, tout n’est pas si simple, de nombreuses données de votre application seront probablement liées (par des clefs étrangères, en base, le plus souvent) à l’utilisateur. Deux choix principaux s’offrent à vous : supprimer l’ensemble des données liées à cet utilisateur (cascade) ou vider la valeur des clefs étrangères.
Autre précision importante, il faut notifier l’ensemble des logiciels/API et autres services tiers (service cloud, réseaux sociaux) pour qu’ils suppriment l’ensemble des données personnelles de l’utilisateur.
Export de données
La GDPR prévoit que l’utilisateur puisse récupérer l’ensemble de ces données personnelles. Il est indispensable de prévoir une fonction qui permet à l’utilisateur d’exporter ces données. Les données à lui retourner sont celles que vous auriez effacées si ce dernier exerce son droit à l’oubli.
L’ensemble de ces données doit impérativement être dans un format standard pour respecter l’interopérabilité demandée par la GDPR. Cela peut simplement être un fichier XML ou JSON, en utilisant, par exemple, le formalisme défini par schema.org.
Quelques grosses entreprises comme Google, Facebook ou Twitter ont déjà implémentés cette fonctionnalité, je vous laisse tester par vous-même c’est assez effrayant de voir la taille des archives…
Donner à l’utilisateur le droit de modifier ces données
Ce point semble évident… mais l’utilisateur doit pouvoir modifier ces données personnelles. Un détail tout de même, il en est de même des informations que vous avez récupérées via des applications tierces, comme Facebook par exemple.
Rien n’oblige à avoir des formulaires éditables, cela peut passer par une demande de modification manuelle à un support. Mais un formulaire reste tout de même beaucoup moins cher à entretenir à terme!
Gestion du consentement utilisateur
La GDPR prévoit également que l’utilisateur autorise le traitement de ces données personnelles. Il peut également revenir à n’importe quel moment sur les droits qu’il a donné dans le passé. Une simple validation des conditions d’utilisation ne suffira plus. De plus, par défaut, les droits devront être désactivés.
Par conséquent, l’utilisateur doit pouvoir avoir une interface qui lui permette de gérer les autorisations qu’il donne à votre application/site web. On peut imaginer un ensemble de switch ou de checkboxs afin de gérer chacun des droits demandés. Ci-contre un exemple de ce que fait endroit pour chaque application aujourd’hui.
NB : Les données nécessaires à des obligations légales (facture, fiche de paie etc…) seront soumis à une régime particulier et ne nécessiteront pas d’autorisation si l’utilisation de ces dernières est exclusif aux obligations légales.
Vérification de l’âge
Une autre évolution apportée par la GDPR est l’ajout d’un âge de consentement parental. Si un utilisateur de moins de 16 ans s’inscrit sur une plateforme, il est nécessaire de demander le consentement des parents. Ici difficile de donner des recommandations, on sait à quel point les systèmes de vérification pour les sites pour adultes sont efficaces…
Un piste est de demander un email parental, mais les petits malins auront vite fait de demander à un ami ou de créer une seconde adresse email afin de s’auto-valider.
Ne gardez pas les données plus longtemps que nécessaire
Là encore, la GDPR change les règles, une fois que vous avez utilisé une donnée, cette dernière doit être supprimée ou anonymisée. La loi ne permettra plus de conserver une donnée pour un traitement ultérieur non-défini.
Pour ce cas, partons d’un exemple, pour un site de e-commerce, cela veut dire qu’une fois que la livraison est effectuée (produit arrivé chez le client) les données liées cette commande comme les données bancaires, l’adresse ou les noms doivent être supprimées.
La solution technique résidera probablement dans un script s’exécutant à intervalles réguliers qui vérifiera si la condition de suppression des données (dans notre exemple, la validation de la livraison) est remplie et qui les effacera si c’est le cas.
Protection des données dans la GDPR
La GDPR formalise aussi certaines bonnes pratiques liées à la sécurité des données :
Chiffrer les communications entre machine (over HTTP avec TLS par exemple)
Chiffrer les bases de données ou les disques machines où les données utilisateurs sont stockées (par exemple avec LUKS)
Chiffrer vos backups
Anonymiser/pseudonimiser les données en tests, de même pour les algorithmes de machine learning (hash + salt les données par exemple)
Tenir un journal des modifications de données personnelles, cela sera très utile pour la mise en place des permissions à demander par exemple…
Logger les accès aux données privées, attention toutefois à ne pas écrire dans les logs de données personnelles
Ce qu’il ne faut surtout pas faire
Il faut absolument respecter certaines règles pour être conforme aux règles de la GDPR:
Ne jamais utiliser de données utilisateurs sans demander d’autorisation explicite quel que soit l’objectif final (machine learning, publicité, exposition des données via API)
Ne pas mettre de données personnelles dans les logs de votre application
Ne récupérer les données que si elles sont nécessaires dans vos formulaires (inscription, commande …)
Vérifier que les parties tierces respectent également la GDPR, l’application principale est responsable des données transmises à ces tierces parties
Être ISO XXXXX ne veut pas dire respecter la GPDR, certes le gros du travail est déjà fait, mais cela n’est pas suffisant
Les sous-traitants ne sont pas responsable de la bonne application de la GDPR
Pour faire simple, Darty passe par un sous-traitant pour la réalisation de son site web, il se trouve que, dans un formulaire de contact, il y a faille de sécurité béante.
La CNIL dépose plainte et Darty rejette toutes les responsabilités sur son sous-traitant. La justice n’est pas de cet avis et déclare Darty responsable avec en prime une amande de 100 000€.
D’une manière générale, une entreprise est responsable de l’ensemble de ces outils informatiques même si ces derniers sont développés et maintenus par un tiers!
Pour finir
Avoir connaissance des grandes lignes de cette nouvelle régulation est important, à plusieurs égards.
Premièrement, vous pourrez en parler à votre responsable et/ou votre client afin de savoir s’il a conscience des changements de régulation à venir et éviter une amende potentielle de plusieurs millions.
Deuxièmement, les obligations de la GPDR vous donnent les grandes lignes pour une mise en place d’une gestion de données sensibles, chose que beaucoup de petites sociétés sont souvent incapables de faire, par manque de compétence, au sein de l’entreprise.
Et enfin pour les utilisateurs, cette réglementation va obliger les entreprises à plus de transparence sous peine de se voir lourdement sanctionnées. Cette transparence permettra à l’utilisateur de reprendre, un peu, le contrôle de ces données. Comme utilisateur, j’ai hâte de voir les effets d’ici quelques mois de cette régulation sur les entreprises qui basent leurs modèles économiques sur l’exploitation des données personnelles (google, facebook et consorts).
Si vous avez apprécié l’article, vous pouvez le partager pour mon plus grand plaisir ;). Et laissez moi un retour sur cet article en attribuant une note (système d’étoiles en dessous de l’article) ou en laissant un commentaire.