Les logiciels Deuchnord

Comment contribuer à Kosmorro (et bien d'autres logiciels libres) ?

Temps de lecture estimé : 7 minutes

Dans la lignée des articles sur Kosmorro, le moment est venu de faire un point sur les différents moyens qui existent d'y contribuer. En effet, si vous avez suivi les deux derniers articles, vous n'êtes pas sans savoir que Kosmorro est un logiciel libre, et que comme tout logiciel libre, n'importe qui peut donc y contribuer. Dès lors, une question qui revient souvent dans ce monde est : comment faire ?

La bonne nouvelle, c'est qu'en fait, tout le monde peut contribuer à un logiciel libre, quel que soit son niveau et quelle que soit sa compétence. Car contribuer, ce n'est pas seulement écrire du code !

Note : bien que cet article soit centré sur Kosmorro, il s'applique en fait de manière quasi-identique à n'importe quel logiciel libre, quelle que soit sa taille ou son type (programme, librairie…). N'hésitez pas à vous renseigner auprès de la communauté dédiée à votre logiciel favori pour en savoir plus, ses mainteneurs seront toujours ravis d'avoir une paire de mains supplémentaire pour les aider !

Ce qu'il ne faut pas faire

Commençons par rappeler une chose : un logiciel libre est très souvent maintenu par des gens qui le font sur leur temps libre. En effet, peu d'entreprises donnent des moyens à leurs salariés pour leur permettre de développer un projet libre sur leur temps de travail, et souvent, quand c'est le cas, c'est parce qu'elles peuvent en tirer un profit.

Pour cette raison, il est souvent assez mal vu de demander aux mainteneurs d'un logiciel libre (quel qu'il soit), quand sortira telle nouvelle version, ou encore quand une nouvelle fonctionnalité sera mise à disposition, ou même quand un bug sera résolu. Tout simplement parce que cela dépend du temps dont dispose les mainteneurs pour gérer le projet. Dites-vous que cela embête autant les développeurs que vous qu'un bug puisse exister, et que ça les embête encore plus de ne pas savoir quand ils pourront y remédier. Leur demander ce genre d'information, aussi innocent soit-il, ne fait que leur apporter de la pression inutile.

Parfois, les mainteneurs proposent une feuille de route (roadmap) pour donner de la visibilité à plus ou moins long terme. Si elle est absente, c'est qu'ils ne souhaitent pas (ou ne peuvent pas) communiquer de date.

Également, cela peut sembler évident, mais n'oubliez jamais de rester cordiaux lorsque vous remontez un bug. Même si ce dernier vous impacte beaucoup. Gardez en tête que ce sont des humains qui traitent les tickets, et qu'ils le font parce qu'ils aiment le projet autant que vous. Se montrer insultant ne rend service à personne, pas même à vous.

Notez que la plupart des projets libres possèdent maintenant un code de conduite, qui rappelle ces règles. Celles-ci s'appliquent bien sûr également aux mainteneurs eux-mêmes, pour éviter des situations désastreuses comme celle qu'a connue il y a quelques années le projet GNU/Linux, dont le fondateur a dû se retirer quelques mois suite à des plaintes sur son comportement auprès de nombreux contributeurs.

Écrivez du code

Cela ne surprendra sûrement personne, et même si cet article se veut une ressource montrant d'autres moyens de contribuer, il serait stupide de ma part de ne pas rappeler cette évidence : un des meilleurs moyens de voir avancer un projet libre qu'on aime, c'est encore d'écrire du code. Si vous avez des connaissances techniques, n'hésitez pas à le faire. Si vous n'êtes pas habitué à contribuer à un logiciel libre, n'hésitez pas à demander de l'aide. Les mainteneurs seront toujours ravis de vous aider à ouvrir votre première pull request !

Souvent, les sources d'un projet comportent un fichier nommé CONTRIBUTING qui explique comment prendre en main le projet, installer ses dépendances et comment écrire sa contribution, donc pensez à bien le lire !

Vous voulez aider au développement, mais vous ne savez pas par quoi commencer ? Jetez un œil aux tickets ouverts ! Les plus "faciles" pour se lancer possèdent souvent le badge good first issue pour signaler qu'elles peuvent être prises en charge par des personnes qui souhaitent faire leurs premières armes sur le projet avant de se lancer sur des choses plus complexes.

Signalez les bugs

Un problème souvent rencontré par les mainteneurs est la tendance que peuvent avoir les utilisateurs à rester silencieux sur les bugs qu'ils peuvent rencontrer. Peut-être par peur de passer pour un casse-pied, ou même par habitude de rester passif, comme l'imposent bien des logiciels propriétaires. Parfois, simplement parce qu'ils ne savent pas comment faire.

Certains logiciels libres proposent un moyen de signaler un bug directement depuis l'application elle-même (via le menu Aide), mais ce n'est pas toujours le cas. Le plus simple pour savoir comment signaler un bug est encore de rechercher l'information sur le site officiel du projet. Par exemple, pour Kosmorro, tout est expliqué dans le fichier CONTRIBUTING.md.

Vous ne parlez pas anglais ? Recherchez un forum dans votre langue autour du projet et demandez de l'aide ! Les plus gros projets libres sont souvent supportés par des communautés dans des langues diverses, et possèdent un forum dédié à cela. Leurs membres se donneront une joie de vous aider !

Testez le logiciel

Souvent, les moyens ou le temps des mainteneurs ne leur permettent pas de tester le projet sur toutes les machines qu'ils voudraient. Que vous utilisiez un système ésotérique ou non, pris en charge ou non, testez-le sur votre machine !

Une nouvelle bêta, ou même une alpha, est publiée ? Testez-la !

Vous savez compiler un logiciel ? Clonez le dépôt, compilez le programme et testez-le !

Vous remarquez un comportement étrange pendant vos tests ? Un plantage ? Signalez-le !

Aidez à traduire le projet

Le projet n'est pas disponible dans votre langue, ou la traduction comporte des coquilles ? Vous comprenez bien l'anglais, et vous souhaitez proposer une traduction dans une langue actuellement non prise en charge ? Le moment est venu de proposer une traduction !

La plupart des logiciels libres sont traduits par leur propre communauté. La façon dont il faut s'y prendre varie beaucoup : cela peut aller de la simple modification de fichiers directement dans les sources du projet, à l'utilisation d'un outil dédié.

Concernant Kosmorro, j'ai fait le choix de passer par le site POEditor, qui fournit une interface simple pour permettre aux traducteurs de se mettre au travail sans avoir à installer quoi que ce soit sur sa machine, ni se perdre dans des considérations techniques.

Parlez-en autour de vous

Cela peut paraître étrange de le rappeler, mais un logiciel vit avant tout grâce à sa communauté. Et il n'y a rien de plus satisfaisant pour ses mainteneurs que de voir les membres de cette communauté en parler autour d'eux.

Les logiciels libres n'ont généralement pas la force de frappe de beaucoup de logiciels propriétaires, qui gagnent plus rapidement leur base utilisateurs grâce à la publicité déployée par les entreprises qui les vendent. C'est ce qui fait, par exemple, que si vous faites de la photographie, vous aurez probablement déjà entendu parler d'Adobe Lightroom, mais pas de darktable.

Soutenez le projet financièrement

Pour maintenir un logiciel libre, il faut du temps. Et comme disait Benjamin Franklin, le temps, c'est de l'argent. C'est d'autant plus vrai aujourd'hui.

De nombreux mainteneurs manquent cruellement de temps pour travailler sur le développement du logiciel libre qu'ils adorent. Pire, parfois, ils doivent même investir régulièrement dans du matériel (c'est souvent le cas des mainteneurs de pilotes libres).

Ces besoins amènent de plus en plus souvent les mainteneurs à ouvrir des campagnes de dons, afin de financer leurs projets. Ils n'ont généralement pas de gros besoin, mais cela leur permettrait souvent de travailler dans de bien meilleures conditions, sans se préoccuper de s'ils pourront manger à la fin du mois.

Le financement est donc un excellent moyen de financer un projet que vous aimez. Bien entendu, ne le faites que si vous le voulez et pouvez vous le permettre !

Pour ma part, sachez que j'ai ouvert il y a peu une page de financement sur le site Liberapay. Ce site est peut-être à ce jour un des moyens les plus pérennes de soutenir les logiciels libres, grâce à son système de dons récurrents : vous choisissez combien vous souhaitez donner (un centime, un euro, dix euros…), et votre don sera renouvelé chaque semaine.

Bien entendu, vous gardez un contrôle total sur la somme que vous donnez : vous pouvez ainsi à tout moment changer la valeur de votre don, ou même l'annuler purement et simplement.

De nombreuses personnes (développeurs, artistes, etc.) sont aujourd'hui sur Liberapay. Pensez à les soutenir !

Et bien d'autres moyens…

Ces conseils ne sont que quelques uns des moyens les plus courants de contribuer un logiciel libre. Comme vous pouvez le constater, la plupart d'entre eux consistent surtout à donner un peu de son temps pour rendre le logiciel que vous aimez un logiciel encore meilleur. Bien d'autres méthodes existent, parfois même des moyens auxquels les mainteneurs n'avaient pas pensé.

Soyez créatifs !

Jérôme Deuchnord, le 04/04/2021 - Commentaires

Quoi de neuf sur Kosmorro ?

Temps de lecture estimé : 2 minutes

Voilà déjà plus d'un an, je vous présentais mon projet Kosmorro, un programme permettant de calculer les éphémérides pour n'importe quelle date et n'importe quel lieu sur Terre, et je me disais qu'il était temps d'écrire un nouvel article, en français, pour vous parler de ce qu'il est devenu, et surtout, de ce qu'il deviendra. Avec de belles surprises en perspective !

Rétrospective

Depuis le dernier article, pas moins de 13 versions (7 mineures et 6 patchs) ont été publiées, apportant de nouvelles fonctionnalités et optimisations, parmi lesquelles :

  • un calcul plus précis de la phase de la Lune actuelle, et un calcul de la date de la suivante ;
  • le support de nombreux types d'événements astronomiques ;
  • une plus grande cohérence dans le comportement du programme (typiquement, les éphémérides ne sont plus calculées que si la position est fournie) ;
  • une disponibilité du programme en français et en allemand ;
  • la possibilité d'exporter les résultats des calcul au format PDF ;
  • le support des variables d'environnement pour ne plus avoir à fournir systématiquement sa position ;
  • une simplification de l'argument de date, avec notamment la possibilité de fournir une date relative.

La distribution de Kosmorro

Beaucoup de nouveautés très excitantes également de ce côté, puisqu'en plus de l'Arch User Repository et PyPI, Kosmorro est désormais également distribué sur Docker Hub, mais aussi sur les dépôts de FreeBSD, ce qui fait du système d'exploitation du petit démon le premier OS à proposer Kosmorro sur ses dépôts officiels ! Un grand merci à eux de soutenir ce projet, ce fut une très belle surprise pour moi ! ♥

De nouveaux contributeurs

Certaines de ces améliorations sont le fruit du travail de nouveaux contributeurs qui m'ont apporté une aide précieuse, que ce soit en proposant des pull requests ou en ouvrant simplement un nouveau ticket (car oui, signaler un bug, c'est aussi une façon de contribuer !) :

  • brain_face, qui a ajouté le support des dates relatives ;
  • Nic, qui a ajouté un fichier Dockerfile permettant la distribution de Kosmorro sur Docker ;
  • Thierry Thomas, qui a diffusé Kosmorro sur les dépôts officiels de FreeBSD ;
  • Amaury Carrade, qui travaille activement sur la traduction espagnole ;
  • Titouan S, qui travaille activement sur la traduction russe.

Un grand merci à eux pour leur aide !

Des nouveautés à venir

D'autres nouveautés arriveront (je l'espère) prochainement, notamment une interface graphique, une version pour Windows, ou encore une librairie pour les développeurs. Et bien d'autres encore, que je vous présenterai… en conférence !

Oui, vous avez bien lu ! Je tiendrai une conférence aux Journées du logiciel libre le 4 avril 2021, de 15h30 à 16h25, pendant laquelle je présenterai Kosmorro. Et je vous y réserverai quelques belles surprises !

Edit important : en raison des conditions sanitaires, les Journées du logiciel libre ainsi que les conférences ont été annulées.

Venez nombreux !

Jérôme Deuchnord, le 07/03/2021 - Commentaires

Kosmorro : calculez les éphémérides de demain !

Temps de lecture estimé : 1 minute

Cela fait quelques temps maintenant que je travaille sur la refonte d'Astronewbie, et pendant le développement de ce dernier, je me suis assez rapidement heurté à une problématique dont j'en avais un peu parlé dans mon article du Nouvel An l'an dernier : depuis le début de cette année, les éphémérides ne sont plus disponibles, car le script que j'utilisais jusqu'ici est devenu incompatible avec les autres outils qui l'accompagnent.

Pour répondre efficacement à ce problème, j'ai donc commencé à développer un nouveau logiciel, Kosmorro, dont le but est de calculer les éphémérides.

Le programme est mis à disposition sous la forme d'un logiciel libre sous licence GNU Affero General Public License (GNU AGPL pour les intimes). Disponible pour le moment uniquement pour Linux et macOS, il permet actuellement d'obtenir, pour une date et un lieu d'observation donnés, la phase de la Lune, ainsi que les heures de lever, culmination et coucher des différentes planètes du système solaire, du Soleil ainsi que de la Lune.

Le programme est actuellement en développement intensif et permettra également par la suite d'obtenir les dates des prochains événements, tels que les conjonctions (alignements d'astres dans le ciel) ou encore les éclipses de Lune.

Pour en savoir plus sur le projet, le tester et, pourquoi pas, y contribuer, n'hésitez pas à venir faire un tour sur GitHub !

Logo de Kosmorro

Jérôme Deuchnord, le 24/11/2019 - Commentaires

Pourquoi je n'utilise pas le lecteur d'empreintes digitales de mon smartphone

Temps de lecture estimé : 13 minutes

C'est une question qui revient souvent quand on me parle d'authentification et que j'explique que je n'utilise pas le lecteur d'empreintes digitales de mon smartphone. Il faut dire qu'a priori ce système semble n'avoir que des avantages : il reconnaît son utilisateur avec une bonne, voire excellente efficacité, et cela très rapidement et avec une marge d'erreur relativement faible. Alors pourquoi diable est-ce que je m'enquiquine à continuer d'utiliser un code à quatre chiffres pour déverrouiller mon téléphone, et pourquoi est-ce que je continue de résister encore et toujours à cette technologie qui équipe aujourd'hui à peu près tous les smartphones hauts et milieu de gamme, et qui commence même à arriver sur certains appareils d'entrée de gamme ?

De l'authentification classique, par mot de passe

Fondamentalement, votre smartphone fonctionne exactement de la même façon que votre PC, qu'il soit dernier cri ou du siècle dernier. Lorsque vous tapez votre mot de passe et que votre système d'exploitation vous souhaite gentiment la bienvenue avant de vous laisser accéder à votre bureau, c'est parce qu'il a vérifié que votre saisie correspondait à ce qu'il avait enregistré dans sa base de données sous une forme illisible et difficile à décoder, y compris pour le système lui-même (on parle de hash). Commettez une seule petite erreur dans votre mot de passe, et le système vous enverra bouler, car votre mot de passe ne correspondra plus du tout au hash qu'il connaît.

Mot de passe Hash (ici, avec l'algorithme SHA256)
m0td3p4ss3 bec9d0e7eace850d4c4ca5c1b76b245112ac3f5a688dfa1c8f6bc9ae8003fe09
m0td3pAss3 9eff92d294ca81743262f0c6e3f6c25961b5e15e65311fbf86db0944548e8b12

Comme le montre le tableau ci-dessus, le hash est donc un moyen de s'assurer que deux mots de passe, aussi ridicule soit la différence entre les deux, donnent deux versions codées radicalement différentes. Et comme le hash est un procédé à sens unique, il ne peut être déchiffré facilement. Bien sûr, le système n'a fondamentalement pas besoin d'une telle solution pour vérifier la correspondance entre deux mots de passe. Le hash est avant tout un élément de sécurité pour empêcher à une personne qui fourerait son nez dans la base de données, de pouvoir lire l'information, et il est donc important que chaque mot de passe donne un hash unique, auquel aucun autre mot de passe ne correspondra.

Ce procédé est fréquemment utilisé pour vérifier l'intégrité d'un fichier que vous venez de télécharger. Sur certains sites, vous pourrez ainsi remarquer la présence d'une mention listant des sommes de contrôles, généralement md5 ou sha1. Il vous suffit alors d'utiliser un outil dédié pour calculer la somme de contrôle de votre fichier téléchargé. Si ça correspond à celle présentée sur le site, votre fichier est correct. Pour les mots de passe, les algorithmes de hash utilisés sont généralement plus complexes, mais le principe est toujours le même.

Qu'en est-il de votre empreinte digitale ?

Des informations biométriques

Une des raisons qui pousse généralement à utiliser un système d'authentification biométrique (empreinte digitale, d'iris, reconnaissance faciale...), est la simplicité et la rapidité de mise en œuvre largement mise en avant par les fabriquants. Quiconque a déjà utilisé cette fonctionnalité sait de quoi je parle : posez votre doigt sur votre capteur (ou même carrément sur une zone de l'écran pour les tous derniers smartphones), et pouf ! votre appareil se déverrouille. Comment cela marche ?

Pas grand chose de plus que lorsque vous saisissez un mot de passe, en fait : le système se contente de comparer avec une version connue de votre empreinte, telle qu'elle a été enregistrée lorsque vous avez effectué la configuration de votre système. Sauf qu'au lieu d'une chaîne de caractères comme m0td3p4ss3, c'est une version numérique de votre empreinte digitale qui est utilisée (et c'est un des rares cas où vous pouvez utiliser les termes numérique et digital dans une même phrase), c'est-à-dire qu'elle est transformée en une suite de zéros et de uns. Et c'est la que commencent les ennuis.

Car si pour un mot de passe aucune ambiguïté n'est permise, pour une empreinte biométrique en revanche, une myriade de facteurs peuvent entrer en jeu. Entre autres facteurs, citons la dégradation des doigts liée au vieillissement ou à une activité physique ou professionelle, la propreté du doigt, ou même la qualité du capteur lui-même. C'est pour tenter de répondre à ces problèmes (et à bien d'autres) qu'une marge d'erreur est incorporée au système d'authentification. Et qui dit marge d'erreur, dit risque accru d'obtenir des faux positifs. Peut-être avez-vous entendu parler de l'iPhone 5S qui pouvait être déverrouillé avec son téton ou son orteil, eh bien c'est exactement de cela que l'on parle ici.

Autre conséquence : il n'est plus possible d'utiliser un algorithme de hash pour masquer l'information. Non pas que ce n'est pas possible sur des informations binaires (en fait, c'est tout le contraire), mais cela compliquerait grandement la tâche de l'application de la marge d'erreur : le hash étant un procédé à sens unique, il n'est théoriquement pas possible de revenir à l'information d'origine, ce n'est pas conçu pour ça. Deux autres solutions peuvent donc être envisagées pour palier ce problème :

  • soit on utilise à la place un algorithme de chiffrement, une technique de protection des données permettant par ailleurs de revenir à la donnée originelle par une méthode de déchiffrement (sécurisé, mais coûteux en temps)
  • soit on ne chiffre pas du tout l'empreinte digitale, au risque qu'elle soit volée par une personne malintentionnée (absolument pas sécurisé).

Il est difficile de savoir laquelle de ces solutions a été choisie par les constructeurs et les éditeurs de logiciels, ces derniers communiquant assez peu à ce sujet et l'information n'étant de toute façon pas facile à vérifier sur le smartphone lui-même. On ne peut donc qu'espérer et leur faire confiance plus ou moins aveuglément.

De la sécurité informatique

Toute personne un peu calée en sécurité des systèmes vous le dira : la meilleure méthode d'authentification est celle qui mettra le plus de bâtons dans les roues d'un attaquant qui voudrait pirater votre compte sur un site dont il sait que vous l'utilisez.

Supposons que vous utilisiez le même mot de passe partout, tout le temps. Un beau jour, un des sites sur lesquels vous vous êtes inscrit(e) se fait pirater et les informations qui y étaient stockées se retrouvent dans la nature. Il se trouve que le site avait peu de considérations pour la sécurité des données des utilisateurs, puisque les mots de passe étaient stockés en clair, c'est-à-dire sans protection (ne riez pas, cela arrive encore aujourd'hui !) dans leur base de données. Déjà bien dans la mouise, le site décide en plus de garder cette information pour lui, ce qui fait que vous n'avez pas connaissance de l'information et donc ne pouvez pas réagir. Votre mot de passe peut alors être utilisé pour accéder à vos compte afin de voler les information qui s'y trouvent.

C'est très exactement pour cela que l'un des plus importants conseils de sécurité que l'on donne (et que pourtant personne ne suit) est d'utiliser un mot de passe différent pour chaque site. Et on ne peut pas dire qu'on ait beaucoup d'empreinte digitale à notre disposition pour appliquer cela, pas vrai ?

En me basant sur ce constat, j'ai commencé à réfléchir à ce qui faisait, selon moi, une bonne méthode d'authentification. J'en ai alors dégagé cinq critères, que j'ai pondérés afin de permettre une notation sur quinze d'un système d'authentification donné : si on répond par l'affirmative à une question, alors on ajoute tous les points qui lui sont associés, sinon on n'ajoute rien. Il n'y a pas de demi-mesure, si l'on ne sait pas répondre ou si cela dépend des cas, c'est automatiquement non.

  • Exactitude (5 points) : une erreur, même infime, permet-elle de rejeter à coup sûr une tentative d'authentification ?
  • Infinité (4 points) : ai-je une infinité de combinaisons possibles pour cette méthode d'authentification, de façon à pouvoir utiliser une combinaison par système (site, logiciel, etc.) ?
  • Changeabilité (3 points) : puis-je modifier facilement et autant de fois que je souhaite la combinaison, par exemple si elle vient à être compromise ?
  • Singularité (2 points) : la combinaison que j'utilise pour m'authentifier sera-t-elle invalide la prochaine fois que je tenterai de l'utiliser sur le même système, de sorte qu'un pirate qui écouterait la communication ne puisse rien en faire (man in the middle) ?
  • Utilisabilité (1 point) : la méthode d'authentification est-elle facile à mettre en œuvre pour un utilisateur inexpérimenté ?

Note : l'utilisabilité ne tient pas compte ici de l'accessibilité pour les personnes possédant un handicap, c'est pourquoi je serais heureux si des lecteurs concernés par cela m'envoyaient leur témoignage à ce sujet 🙂

Le tableau ci-dessous synthétise la note qu'obtiendraient différentes méthodes d'authentification avec ces critères. Un O signifie que le critère est validé.

Méthode d'authentification Exactitude
(5 points)
Infinité
(4 points)
Changeabilité
(3 points)
Singularité
(2 points)
Utilisabilité
(1 point)
Note globale
Mot de passe O O O 12/15
Empreinte biométrique O 1/15
Code PIN O O O 9/15
One-Time Password (OTP) O O O O O 15/15
Clé U2F O O O O 12/15

Si le bon vieux mot de passe semble s'en sortir plutôt bien, la reconnaissance biométrique se plante méchamment : même le code à six chiffres utilisé par les banques en guise de mot de passe (au grand désespoir des experts en sécurité) semble plus sécurisé selon les critères que je propose (mais préférez tout de même un mot de passe, c'est bien plus sûr !).

Pour les plus curieux, le One-Time Password et la clé U2F font référence à deux protocoles d'authentifcation relativement récents. Le premier est souvent utilisé dans le cadre de l'authentification à deux étapes et se présente sous la forme d'un mot de passe à usage unique qui vous est fourni par diverses méthodes, comme une application type Google Authenticator, ou par un moyen de communication comme un e-mail ou un SMS.

La seconde, quant à elle, est une clé USB à connecter à son ordinateur. Cela signifie que l'authentification nécessite la possession d'un élément matériel pour permettre l'authentification, ce qui complexifie incroyablement le travail d'un pirate qui tenterait d'accéder à votre compte (sauf si vous égarez facilement vos affaires). En cas de compromission de la clé, un rachat est nécessaire, c'est pourquoi j'ai considéré sa changeabilité comme difficile, mais cela dépend surtout du prix de la clé et du temps nécessaire à son acquisition. Si toutefois cette technologie vous intéresse, vous pouvez regarder du côté de YubiKey (propriétaire) ou de Nitrokey (libre). Pensez à vérifier que la clé supporte le protocole standardisé FIDO (ou FIDO2) U2F avant de passer à l'achat. 🙂

Mais comment protéger efficacement mon compte, alors ?

Hasard du calendrier, cet article est publié quelques jours après la Journée internationale du mot de passe. Je profite donc de l'occasion pour rappeler les bonnes pratiques en termes de protection de ses comptes en ligne.

Il est généralement admis que pour assurer la sécurité de son compte, les conseils suivants sont à prendre en compte :

  • Dans un premier temps, il est important de choisir un mot de passe robuste, c'est-à-dire un mot de passe long. Cela permet une résistance à l'attaque dite par force brute, qui consiste à essayer chaque combinaison possible une par une jusqu'à trouver la bonne. Les probabilités étant ce qu'elles sont, il sera bien plus difficile de retrouver un mot de passe très long qu'un mot de passe à quatre chiffres.
  • Le mot de passe ne doit pas être un mot du dictionnaire. Il est fréquent de conjuguer une attaque par force brute avec une tentative avec des mots du dictionnaire. Même si cela peut être tentant, un mot issu d'une langue étrangère, même en klingon, n'est pas une bonne idée non plus, pour les mêmes raisons.
  • En revanche, n'hésitez pas à utiliser plusieurs mots du dictionnaire pour former une phrase : cette méthode appelée XKCD (en référence au strip 936 sur le blog du même nom) permet de créer des mots de passe très résistants à la force brute, tout en restant très facile à mémoriser.
  • Dans la mesure du possible, activez l'authentification à deux étapes. Elle consiste, une fois votre mot de passe entré, à vous demander une information que vous seul(e) connaissez. Si possible, évitez le SMS, ce protocole n'étant pas sécurisé et le messages pouvant être intercepté.
  • Changez votre mot de passe régulièrement pour garantir une sécurité constante de votre compte. N'ignorez pas les alertes qu'un site pourrait vous envoyer si vos identifiants fuitent.
  • Enfin, créez un mot de passe unique par site. Ainsi, si un de vos mots de passe se trouve compromis, seul le site concerné sera impacté, les autres resteront protégés.

Concernant ce dernier point, n'hésitez pas à utiliser un gestionnaire de mots de passe. Il en existe un grand nombre, les plus connus étant probablement Dashlane, KeePass, LastPass ou Bitwarden. Ils fournissent également un générateur de mots de passe de la longueur et de la complexité de votre choix pour vous aider à obtenir des mots de passe solides. Pour le mot de passe maître, la méthode XKCD mentionnée plus haut est un très bon choix.

Pour ce qui est de l'authentification à deux étapes, là aussi, de nombreuses applications existent comme Google Authenticator ou FreeOTP.

Comment savoir si mon mot de passe est compromis ?

Avoir un mot de passe robuste, c'est bien. Mais il peut arriver que le site sur lequel vous l'avez utilisé soit piraté et que votre mot de passe se retrouve dans la nature (typiquement, revendu sur le marché noir). Si la bonne pratique veut que les administrateurs du site préviennent ses utilisateurs de l'événement, il ne le font malheureusement pas toujours, craignant de voir leur base d'utilisateurs ou leur chiffre d'affaires dégringoler.

C'est pour répondre à cette problématique que l'expert en sécurité australien Troy Hunt a créé et mis à disposition le site Have I Been Pwned (« Est-ce que je suis cpmpromis ? »), sur lequel il recense toutes les adresses e-mail et mots de passe qui ont été victimes de piratage, n'hésitez pas à y jeter un œil de temps en temps. Certains gestionnaires de mots de passe comme Bitwarden proposent une intégration de ce service et vérifient régulièrement que vos mots de passe n'ont pas fuité.

Si vous êtes développeur(-se), sachez que Have I Been Pwned met à disposition une API que vous pouvez utiliser pour vérifier que les mots de passe de vos utilisateurs ne sont pas compromis. Si vous développez sous Symfony, vous serez heureux d'apprendre que la prochaine version du framework mettera à disposition une contrainte pour rejeter le mot de passe ou inviter l'utilisateur à le changer s'il est compromis.

Jérôme Deuchnord, le 05/05/2019 - Commentaires

Je suis allé à Bruxelles pour contribuer à Symfony et API Platform !

Temps de lecture estimé : 3 minutes

S'il y a bien une chose qui me tient à cœur en informatique, et ce depuis que j'ai découvert l'écosystème Linux et tout ce qui gravite autour, c'est le Logiciel libre. Pour celles et ceux qui ne seraient pas familiers avec cette notion, un logiciel libre est un logiciel qui offre, selon la Free Software Foundation (l'organisation fondée par Richard Stallman, évangéliste du mouvement libre), quatre grandes libertés à son utilisateur final :

  • la liberté d'exécuter le programme, et donc de l'utiliser ;
  • la liberté d'en étudier le fonctionnement et de l'adapter à son besoin ;
  • la liberté d'en redistribuer des copies ;
  • la liberté de l'améliorer et de distribuer ces amélioration au public.

Pour vulgariser, il s'agit donc de logiciels que chacun peut utiliser, modifier et redistribuer librement. Ils s'opposent ainsi aux logiciels dits propriétaires (certains les qualifient même de privateurs) dont le code source est privé et dont la modification et la redistribution est soumise à autorisation par son ou ses auteurs/éditeurs (qui l'accordent rarement, sauf à des fins de profits). Il est important de distinguer le logiciel libre du logiciel open source et du freeware : le premier est un logiciel dont le code source est mis à disposition, mais sous des conditions qui ne remplissent pas l'ensemble des critères cités plus hauts (ou qui utilisent des projets non libres, voire propriétaires), et le second ne met pas à disposition son code source (il s'agit donc d'un logiciel propriétaire). De plus, et contrairement à une idée largement reçue, un logiciel libre n'est pas nécessairement gratuit.

De nombreux logiciels populaires sont libres, si bien que vous en utilisez probablement tous les jours, peut-être sans même vous en rendre compte. On compte parmi eux de grands noms tels que Mozilla Firefox, The GIMP, LibreOffice ou encore VideoLAN VLC. Ce sont aussi des logiciels libres qui font tourner une écrasante majorité des sites et applications Web que vous utilisez tous les jours, comme le très populaire langage de programmation PHP, le serveur Web HTTPD d'Apache ou encore les systèmes de gestion de bases de données PostgreSQL ou MariaDB.

Ce week-end, j'ai eu la chance de participer à un hackaton de deux jours organisé à Bruxelles par la Commission européenne, afin de contribuer aux logiciels libres que sont les frameworks Symfony, un des plus populaires de l'écosystème PHP pour la conception d'applications, et API Platform, étoile montante développé depuis quelques années par la société coopérative dans laquelle je travaille depuis septembre dernier, Les-Tilleuls.coop, et destiné quant à lui à faciliter le développement d'API (un composant permettant aux applications de communiquer entre elles), aux côtés d'une cinquantaine d'autres développeurs, parmi lesquels on a pu compter la plupart des principaux acteurs de l'évolution des deux frameworks (core team).

Photo de l'événment : quelques développeurs sont en train de travailler. Dehors, le soleil est déjà couché

Photo : BeMyApp © 2019 — Tous droits réservés

En tant que développeur débutant, mon objectif personnel était double : d'une part, je souhaitais m'impliquer davantage dans le développement d'API Platform. Depuis ma dernière proposition d'ajout aujourd'hui incluse dans la dernière mouture, je n'avais pas vraiment eu de temps à accorder au projet, étant staffé à temps plein chez un client et travaillant plutôt sur mes propres projets sur mon temps libre. D'autre part, je souhaitais commencer à contribuer au développement de Symfony que j'utilise depuis maintenant environ un an. C'est ainsi que, dans un premier temps, j'ai commencé à ajouter le support de Mercure, un nouveau protocole de mise à jour de données d'affichage en temps réel, dans le générateur d'applications VueJS d'API Platform. Dans un second temps, j'ai commencé à prendre des tickets pour des ajouts de fonctionnalités et des corrections de bugs sur Symfony.

Et bien que je n'aie pas vraiment été le plus productif — pendant que je galérais avec les quelques tâches que je m'étais assignées, les autres développeurs ont réalisé l'équivalent de deux mois de travail en deux jours seulement ! —, je suis heureux d'avoir pu participer à cette aventure qui m'ont montré que chacun peut, à son niveau, contribuer à l'amélioration d'un logiciel libre. Ce qui compte, ce n'est pas le niveau de compétence, mais la volonté de le faire (bon, et aussi le temps, je vous l'accorde !).

Contrairement à une idée reçue, un logiciel libre, même lorsqu'il est édité par une entreprise, a généralement peu de ressources en interne pour le faire évoluer, c'est pourquoi il est crucial que ses utilisateurs contribuent à son développement s'ils ne veulent pas le voir dépérir. Un des plus gros utilisateurs de ces logiciels libres, de par le fait qu'ils sont généralement gratuits, sont les entreprises qui en tirent par ailleurs un profit considérable, c'est pourquoi il est important qu'elles contribuent autant, voire davantage, à ces outils. Les moyens ne manquent pas, comme le montre Grégoire dans son article dédié à l'événement (que je vous invite à lire !) :

Toutes sortes de contributions sont possibles : libérer du temps à vos employés, mettre à disposition vos locaux, sponsoriser des événements ou des développements […]… Amis employeurs, laissez libre cours à votre créativité.

Toutes les informations sur le hackaton sont ici :

Image du site EU FOSSA Hackathons Symfony Hackathon 2019

Jérôme Deuchnord, le 12/04/2019 - Commentaires