Mon dernier padawan m'a peiné

Voilà moi j'ai des padawans, mais un pote tailleur de pierre il a des lapins.

Lui et moi on est con.

On a à peu près la même technique.

On prendJe me suis aperçu qu'une personne que j'aime bien des lapins/padawans. On les accepte comme ils sont, et ont les fait taffer direct.

On leur dit: «t'inquiètes j'ai du métier, d'abord t'essaies, et ensuite tu viens me voir».

Au début, le lapin idiot vient nous voir, et là on l'humilie sur un petit bout de notre connaissance en disant qu'un truc qu'on a pris 6 mois à apprendre est facile quand on connaît la bonne méthode.

Et le gars ... ou la fille quand on le tance, on le fait sévère en montrant le bon
geste, comme si c'était facile à trouver par soi même. Ouais je suis un pourri.

Humilié, le padawan préfère chercher plus par lui même la solution avant de venir voir. Mais, je lui dis pas qu'il est une merde. Je lui dis, tsss, tu peux le faire, t'as juste oublié d'essayer suffisamment fort.

Alors, le padawan vu comment je cause, piqué à l'aiguillon de la fierté, il veut me claquer le beignet, surtout que j'ai montré à quelques occasions que j'étais faillibe (probablement une question sur l'univer star wars que je déteste), alors il se dit, je vais le faire.

Le padawan travaille poussé par le coté obscur de la force, rêvant de passer du statut d'humilié à personne respectée. Entre nous, je le fais pas exprès, j'ai 0 empathie.

Et le crétin va travailler.

Et il va s'apercevoir qu'en fait je suis pas si bon quand il travaille parce qu'il croit eu lui.

Et ce crétin va me foutre le nez dans le caca devant tout le monde.


Et, tout le monde va rire, car c'est ce que font tout mes padawans qui deviennent maîtres.


C'est pour ça que j'ai des bons padawans naïfs au début qui découvrent qu'un maître est une fraude qui leur fait croire qu'ils sont bons et que c'est ce qui les  rend meilleur, et que le secret n'est pas le maître, mais l'apprenti.

Mon dernier padawan m'a peiné, il m'a traité de truc genre Lord dark sith, et il m'a traité de fraude parce que j'étais clairement pas à jour en culture star wars ... après un mois....Normalement, ça prend plus de temps...

Cryptographie, je te hais

Quelque part involontairement, je te le rend bien, je suis ton pire ennemi.

Je suis le pire problème de la sécu, pas en version Arsène Lupin super intelligent, mais plutôt en étant un croisement de Gaston Lagaffe et Monsieur Jourdin.

Si vous faîtes pas de crypto je vais vous expliquer crûment le problème.

Pour vous la crypto, c'est de la magie noire: c'est comme des boîtes toutes identiques en apparences dont tout le monde dit que c'est vachement important, et qui magiquement rendent secrets vos conversations, projets d'attentats virement bancaire pour votre paie ou votre compte en Suisse.

Vous savez pas si le truc marche parce que c'est vrai ou parce qu'il n'y a pas d'ennemis, vous constatez juste que ça marche pour vos et vos amis, donc ça vous suffit.

Moi, je suis comme vous.

MAIS!

Je dois parfois lever le capeau de ses boîtes pour les triffouiller.

Les ingénieurs qui les ont fait (appelons des cryptographises) sont hyper balaises.

Ils ont pensé à tout, ils ont mis des autocollants attention partout!

Genre! Attention si vous prenez tel protocole vous êtes morts à moins que voir sous asterisque 2

Attention, en fait si le protocole suscité est utilisé dans telle condition vous n'êtes pas vulnérable ... à moins que.


Et genre, les cryptographistes ils vont loin dans le détail.

On croirait quand tu veux protéger tes données qu'il faut faire un pacte avec le diable.

Chaque point et détaillé est vrai. Juste des fois, tu dois choisir, entre ta situation actuelle qui est pas la meilleure, et moins pire.



Et tu sais que tu dois faire des sacrifices.


Genre je vais vous la jouer avec un autre métier: aubergiste.

Une nouvelle loi interdit les assurances, et l'aubergiste devient responsable sur ses fonds propres de tous vols.

Il sait que la prochaine maraude peut faire fermer sa baraque.

Il a plus un sou car comme un con il a fait investir dans de la serrurerie et la mise d'alarme dans chaque chambre.

Manque de pot, tous les biens précieux sont dans une chambre non surveillée.
Manque de pot, il a installé par distraction une serrure unique que toutes les clés ouvrent.

Là tu te dis, ben je vais dire à mes hôtes que ce serait mieux qu'ils gardent leur bien dans leurs chambres.

Et là, t'as ton ami cryptographe qui te dit, mais tu fais de la merde, on ne partage pas un secret, ça ne peut pas améliorer la sécurité, le problème c'est la culture qui défailli dans toute ta boîte qui a abouti à ce que personne ne voit le problème.
Pourquoi? Parce que des gens comme toi prennent des décisions qu'ils savent mauvaises pour améliorer leur situation, et tu donnes un mauvais exemple.

Je sais que le problème c'est moi. C'est mon coté Lagaffe

Et je sais qu'il a raison.

Les serrures, je les ai commandé alors que je ravalais la façade sans vraiment faire attention.

Imagine, que t'es parachuté plombier dans une centrale nucléaire, qui y connaît rien au nucléaire, et qu'on te dit, fais gaffe si tu répares le mauvais tuyau tu vas tous nous faire exploser, mais je te dis pas lequel faut que tu devines. Et quand tu vois une fuite qui semble suspecte, genre nucléaire, et ton nez de mécanicien te dit si elle est pas réparée sous 3 minutes c'est irréversible car pouvant toucher d'autres tuyaux. Qu'est ce que tu fais?

T'es là t'es comme l'aubergiste t'as deux dangers également vrais:
- le vol intérieur à ton auberge,
- le vol extérieur à ton auberge.

La situation actuelle est que si les gens volent de l'intérieur t'es mal, et tu sais que c'est le plus courant.

De l'autre, si tu informes tes clients de rentrer leur bagages tu les prémunis certainement d'un autre problème, mais si ils savaient que leur clés sont des passe partout, les vols arriveraient sûrement.

Donc temporairement tu dois faire de la sécurité par «ofuscation» bref à coup d'écran de fumée, ce qui est mensonger, et est une mauvaise pratique criminelle.


Genre en info tu fais ça, tout le monde atterrit en garde à vue. De l'autre si tout était parfait (avec le mouchard indiquant qui rentre dans quelle chambre à quelle heure) seuls les clients qui visiteraient des chambres qu'ils n'ont pas loué le serait, et c'est toi le crétin qui a mis les mauvaises serrures.

Idéalement tu veux ni l'un ni l'autre. Tu sais que le monde est poche.

Et tu sais que tu ne sais rien.

Tu dois évaluer des choses sans savoir a priori.

Je vais te la refaire. T'imagine que t'es dans une manufacture. Que tes potes qui bossent dedans te disent attention, chaque machine outil mal utilisée peux te tuer ainsi que tes proches.

Tout leurs outils sont également coupants, dangereux et bruyant. En tout cas, c'est ce dont la crypto parle le plus.

Tu fais une erreur à la con dans un coin, et tout s'écroule.

Comme t'es mécanicien, tu fais attention tu penses que tu comprends leur langage.

Et tu lis qu'un mec n'as pas fait deux tours sur lui même, jeté du sel par dessus son épaule avant de tourner une manette et tout à explosé. Sa maison à 10km de là incluse.

Et toi malheureux, parce que tu es mécanicien et qu'ils se disent mécanicien tu parlais la même langue. Toi tu parles celle de la mécanique et de certaines proba.
Eux ils te parlent de choses prouvées et pratiquement qui marche consistant à se mettre des plumes dans les fesses et hurler 3 x à la lune.

Tu regardes, tu doutes, tu regardes à nouveau.

Là tu vois que mécaniquement, ça revient tourner un robinet et souffler sur une soupape, et ça fait du sens.


Moi je leur répond que ça fait du sens.

Et c'est là où je suis dangereux, alors que je pense connaître et je connais pas, mais je semble pour eux leur parler dans la même langue.


Et voilà où je dit involontairement des conneries et semble crédibe.


Mais je sais que j'ai deux risques. Je sais que je me prémunis de l'un si j'assène une connerie qui fait illusion alors que c'est ridicule. Je sais que j'ai amélioré la situation, de l'autre je dois mentir à des gens sans pouvoir le leur révéler. Je me mets en position de faute.

C'est mon coté Arsène Lupin.

Et nous savons tous que mentir est un écheveau. Quand on commence à mentir on ne s'arrête plus. On connaît tous l'histoire de ce crétin qui a dit je suis meilleur que les autres et j'en ai rien à foutre de la littérature.


Alors moi, je m'en tire.

Je mens.

En fait pas vraiment. Je fais le plan C: je convoque tout le monde pour leur dire que j'ai merdé.

Je crois qu'il y a un juste milieu qui est dur à trouver entre l'orgueil et l'humilité.

Sans orgueil on ne peut avancer, quitte à faire des conneries. La paralysie est pire qu'une mauvaise action quand le danger est certain.

Sans humilité on ne peut douter, et sans doute on peut se précipiter vers un danger pire en fonçant obstinément dans une direction.

La question de l'équilibre, donc de la mesure implique rigueur et méthode.

Tenter d'être positif et compter ce que l'on fait correctement. Tenter de voir où l'on s'est trompé. Et parfois, même après de nombreuses années où l'on pensent avoir été positif, on subit un revers, qui nous fait perdre tout notre orgueil.

Et la question est dois je agir ou pas sachant que je ne sais pas où est la bonne direction?

Moi, j'agis... et je prends le risque de me (re)tromper peut être encore et encore si l'alternative proposée est l'inaction.

La peur du ridicule est d'éviter l'inaction à préférer risquer de devoir avouer que l'on se trompe est pire que ne pas agir, quitte à apprendre et bouffer sa honte.

Donc, ouais, en crypto, je dis et je pense des trucs parfois cons, et ça me colle les michettes, le problème c'est que j'ai aucun outil de sécurité informatique facilement utilisable parce que ça existe pas.

De l'autre coté, toutes les boîtes n'ont pas les pépèttes pour se payer des spécialistes de la sécu de niveau.

J'en fais pas partie, je suis juste un fan boy qui trace et singe des gens qu'il suit dans l'ombre comme un stalker. Comme tant d'autre dans mon métier.

Donc, quand tout le monde est inactif face à un truc pas propre j'agis.

Et si j'agis pas c'est pire.

Mais parfois mon action est potentiellement dommageable... car je ne sais pas tout.

Voilà pourquoi je hais la cryptographie.

Je suis un taigneux, j'ai un complexe d'infériorité et je tente de leur taper dessus par envie de rivalité.

Je m'en fous d'être KO, je suis un taigneux je remonte sur le ring comme un deumeu.

C'est vrai que je suis nul.

Sauf, que des gens biens qui comptent sur moi pour comprendre l'informatique, crypto incluse. Et même si suprenamment le département de la compta peut être plus inspirée que moi sur le sujet. De manière encore plus surprenante la plupart dont ceux dans la hiérarchie des cadres qui comptent et devraient comprendre en connaissent moins que moi.

Je veux dire je suis pas le pire. Je flotte un poil significatif au dessus de la moyenne. Pas un gros poil, juste un poil de couille, petit mais certifié significatif.


Ami de la sécurité informatique, je vous hais.

Je sais que ce que vous faîtes est bien et m'émmerveille.

Mais là où vous me faite chier, c'est que j'ai du mal avec tout vos trucs. Vos applications contre-intuitive, votre jargon, votre mépris des crétins comme moi et cette idée que l'action qui entraîne l'impression de marcher dans un champs de mine est à préférer à une inaction mortelle.

Et comme pour un champs de mine, je n'ai aucune intuition des risques que je prends à chaque pas que je fais, car votre truc est imbitable.

Votre meilleur conseil c'est si tu sais pas bouges pas, ouhalala, tout est dangereux. Il te faut attendre 6 heures et payer 5l de ton sang pour du secours.

Moi, je vois un déluge de bombes lié au retard de production monter vers moi.

Je vois qu'il reste 5 pas à faire pour peut être survivre dans les 3 minutes et que nous allons mourir si je fais rien, et que même si c'est pas ma faute qu'on est là, je dois prendre le poids d'une décision qui me dépasse sur mes épaules.

Et vous m'avez prévenu que je devrais pas le faire....


Et je m'élance en vous faisant un gros doigt en disant tant pis si ça pète, je préfère mourir en essayant que vivre paralysé dans la peur.


Macron la pédanterie et l'incompétence numérique


 Correction importantes

TL;DR

  1. Le site permet bien d'envoyer des courriers non sollicités à des personnes;
  2. Les utilisateurs de Macron ne sont pas en danger de quoi que ce soit concernant les mots de passe (je me suis trompé grave);
  3. Il y a peut être un truc sur les tokens, mais ce code me ressort vraiment par les trous de nez.
  4. bcrypt génère les sels par défaut, cet algorithme n'a pour l'instant pas été pris à défaut contrairement à beaucoup d'autres.  
  5. Le code du site reste quand même éparpillé partout comme la cervelle de Kurt Kobain



En termes de technologies de l'information, soit on sait comme le premier ministre de Singapoure coder son solveur de soduku en C++
Voir le code ici

Soit on fait comme le gouvernement Taẅanais, et on embauche l'un(e) des meilleur(e)s hacker du monde comme ministre dédiée au technologie: Audrey Tang.

Macron est probablement l'un des candidats les plus dans la hype: son site web est disponible à mes yeux sur github! On se croirait dans la brise pré crash de la bulle internet tellement ça buzzz!

Donc, plutôt que d'écouter ses conneries, je vous propose une visite guidée des sources du sites webs et ce que cela révèle.


Premières impressions

Avant de rentrer dans le détail commençons par regarder l'ensemble:

Le code est ici : https://github.com/EnMarche/en-marche.fr

C'est buzz compatible et semble de bonne facture.

Annoncé logiciel libre, un readme, des documentation d'installation, une convention de style à la JAVA d'entreprise sérieuse, un couplet à la De Gaulle, l'intégration continue buzz compatible avec la vignette (comme sur mes projets), une doc développeur, du docker (de la techno cloud hype totalement instable).

Si j'étais dans le cargo cult je dirais : l'idée que l'apparence renseigne sur le fond, je serais sûrement un fan du site. En plus le core dev semble savoir de quoi il parle (là je ne m'attaque pas à la personne, mais à la stature sociale): il est tellement brillant qu'il a commencé par être architecte logiciel avant de savoir poser une brique logiciel, il est un dévelopeur certifié sensiolabs (créateur et dévelopeur du cadriciel utilisé par l'équipe par Macron pour leur site) et il est architecte internet de Macron, spécialiste en Intelligence Artificielle. Il participe et fait vivre du code libre. Si on juge sur le plumage tout à l'air bon.

Le code est propre comme du code d'entreprise, lisse, apparemment bien rangé, structuré fait pour le déploiement. Tout est fait pour sembler pro, propre, clean, parfait, même la petite touche logiciel libre et contributions libres.

Macron dont on rappellera qu'il a fait une violente charge contre le chiffrement. Une des bases garantissant un petit peu de sécurité sur internet tant que personne n'écoute au milieu.


Par où commencer un audit de code PHP?

Après 5 ans avec les web agencies et autres marchand de viande, j'ai appris à ne plus croire les apparences. Et j'ai développé une méthode simple d'audit: elle commence par rechercher comment les mots de passe sont stockés et validés.

Comprenez que l'authentification, est un point crucial de la sécurité informatique, tout autant que le chiffrement. La règle de base est: si le site est compromis il faut rendre difficile le fait de pouvoir trouver les mots de passes rentrés par les utilisateurs.

Il y a des règles simples:
  • utiliser un algorithme de cryptage (hashage) considéré sans vulnérabilités connues ou à venir (au moins au moment de la création du site) ;
  • rajouter un aléa dans le cryptage permettant qu'une compromission de la base embête qu'une bête comparaison entre les résultats du cryptage et ceux issus d'un dictionnaire donnent le résultat ;
  • utiliser un algo connu sans vulnérabilité susceptible d'apparaître sur les collisions.

Pour ceux qui s'y connaisse et qui veulent passer la suite un peu chiante, ils utilisent bcrypt et pour certains cas SHA1* et ne salent pas les mots de passe avec un aléa. Pourquoi? Parce que sinon ils ne peuvent pas faire une couverture de 100% sur leurs tests! Cargo cult 110%! Crétinerie ++ comme dans C++!
Si si, ils ont affaibli la sécurité pour avoir une belle médaille en chocolat délivrée par des laveurs de cerveau d'une secte appelé experts en méthodologie.

* le coté distraction par la redirection ne me permet pas d'être certain à 100% que les mots sont stockés encodés en base, mais je suis optimiste par nature.

Le labyrinthe des indirections

Tout code d'entreprise qui se veut sérieux tend à vouloir être obscur afin de paraître profond. La logique de vérification des mots de passes est en générale fait dans le contrôleur en appelant la classe de sécurité ou un mixin du modèle ce qui vous évite de réinventer la roue carrée. En général on s'attend à un niveau d'indirection, voir 2 si c'est mis dans le modèle :)

Bon prenons un outil de dev sérieux :

find ./ -type f -exec grep -Hin authenticate {} \;
La fonction authenticateUser apparaît dans le :
  • le formulaire (form) de connection (login)
  • un contrôleur 
  • le modèle
  • euh ... ailleurs ?!
Bon, un petit coup de fun, et amusons nous un peu.

Logging (journalisation des évènements) et Login (connection) sont prononcés de la même manière par les français. Ça ne veut pas dire que ce sont les mêmes mots, hein?

Et bien croyez le ou non, une fonction de Login est rangée dans l'espace de nommage Logging. LoL! 1 point pour l'humour.

Je vais passer la lente agonie de l'audit qui consiste à suivre une fonction sur 5 fichiers en se demandant, mais où le travail est-il vraiment fait? Pourquoi pour la même fonction je vois du copier coller?

Plus on met d'indirection pour faire une chose simple plus ça fait du code pédant, mais aussi chiant à maintenir et corriger. Par contre, il est vrai qu'en Entreprise on passe pour un dieu qui sait «abstraire et structurer». Quand le faire savoir l'emporte sur le savoir faire....

Bon, X fichiers 2 héritages une factory (qui n'empêche pas 3 fois la même fonction d'être recodée) et une apoplexie plus tard, que voyons nous comme manière d'encoder les mots de passe?

C'est notamment ici : https://github.com/EnMarche/en-marche.fr/blob/master/src/AppBundle/Membership/AdherentFactory.php#L98

private function encodePassword(string $password): string
    {
        $encoder = $this->encoders->getEncoder(Adherent::class);

        return $encoder->encodePassword($password, null);
    }
}
Le deuxième argument de encodePassword est le sel (salt) à donner à la function de hashage cryptographique.

Et malgré l'utilisation d'une Factory (code hyper réutilisable) la fonction encodePassword pour la validation de mots de passe est redéfinie / utilisée 17 fois. À ce niveau, ça valait vraiment pas la peine de faire une factory, et à chaque fois, le sel est vide.

Quel est l'algo de hash. Là encore X redirections plus tard c'est ici: https://github.com/EnMarche/en-marche.fr/blob/master/app/config/security.yml

brcrypt avec fallback en SHA1 si il y a des mots de passes anciens.

SHA1 est cependant toujours utilisé pour .... les jetons (tokens) de sécurité ... et j'ai pas eu le courage de suivre les cas où le legacy était vraiment appelé. Je suis lâche j'ai même pas honte.

Note pour les velus : je ne m'étends pas sur l'hérésie d'utiliser SHA1 en 2017 et la potentialité d'une prochaine attaque par collision qui rendrait de fait la fonction de sécurité cryptographique totalement illusoire.

Mais pourquoi 0 sel (salt)? Sont ils totalement idiots? La réponse est dans les tests unitaires : si vous mettez un aléas et que vous ne savez pas initialiser (seed) le PRNG de votre plateforme, alors, vous ne pouvez tester les mots de passes générés à la création de l'utilisateur. Et donc pour ne pas casser les tests unitaires .... ils ont retiré l'aléa ... \o/ Bravo! Chapeau bas!

En fait quand je lis les tests unitaires, j'ai parfois peur qu'ils testent des mots de passe en clair et que j'ai été très indulgent.
Mais le code est tellement lourd que j'avais pas envie de lire plus loin.


J'ai vu d'autres potentiels idioties (des tokens potentiellement utilisables en techno ajax base64encodé au lieu de URLbase64encodés), des tokens qui ont l'air déterministes, et des tas d'autres erreurs qui me ferait flippé si j'étais inscrit comme utilisateur du site web. Si une puissance étrangère avait la main sur leur base de données, je donne pas cher de vos chers mots de passe.

Si vous avez le courage de publier une analyse sur la sécurité de leurs tokens, je promet de vous payer une chopine! Moi, j'ai trop vu d'horreur pour un mois.

Mais si tu es pas content yakafokon soumettre un rapport de bug


Je suis pas content initialement, car je voulais déterminer avec certitude si le site enmarche était de fait une plateforme de spam. Et elle l'est. L'équipe internet de Macron qui connaît tout sur tout donne des outils à ses militants et à des officines privées pour envoyer le programme de Macron aux citoyens sans leur accord.  Cela tombe sous le coup de la loi Européenne, mais ils semblent se torcher avec la loi quand ça va pas dans leur sens.

Ma philosophie c'est n'ayant le droit de casser les genoux des spammeurs, au mieux de leur coller la honte à minima de ne pas les aider.

Le spam est un sujet autrement plus grave qu'avoir un site en carton, mais personne n'entend.

Mais c'est du logiciel libre donc c'est bon!


Non, c'est une licence spéciale appelée Affero GPL qui n'est pas unanimement reconnue comme telle, et même si c'était libre, ça donne pas au code des morceaux de vertues qui vont faire que je vais contribuer par lavage de cerveau.

Mais pourquoi t'es méchant!


Le spam c'est mal, mm'okay?

J'aime pas les gens qui me font chier et je donne pas un chocolat à celui qui me marche sur les arpions, je lui colle un bourre pif.

Et en République, on a le droit d'être sale, méchant et grognon

Mais c'est qu'un site web en quoi est-ce important?


Bonne question! Enfin.

C'est le site web dont le plus gros contributeur est l'auto promu architecte internet de Macron. Macron qui a pris une position radicale anti moyen de sécurisation des communications.

Pour moi, quand on fait la morale on s'expose à être regardé à la loupe au niveau de ses actions et de son code.

L'équipe web qui prétend conseiller Macron fait clairement un code qui est dans la norme de ce que fait l'industrie, et ce qui est d'un point de vue technique faible. Je ne souhaite pas avoir un président qui a l'oreille de mauvais experts.


Tu fais mieux?


Mon code est du code de punk, il est sale moche, méchant, petit comme moi  mais il fait la job sans s'étaler dans 28 classes et 20 répertoire et perdre les utilisateurs.



Brasse comme un pauvre pas comme un hipster

T'imagines que quand les temps sont durs, t'as les richards qui veulent croûter l'argent sur le dos des miséreux appelant nos habitudes communes des vices. Sauf, que comme y'sont riches à mourir y paient leurs indulgences sous la forme de taxe, mais toi t'es fauché, et tu trouves ça posh. Alors tu veux ta tease à 10cents/litre/%. Bref,  moins cher et meilleur que la Villageoise ou la bavaria 8.6.

Alors tu te souviens que c'est un vieux problème et que ton arrière grand père émigré de Belgique en France l'a eu itou. Et ton grand père, il a opté pour le cidre.

En fait, pas vraiment, d'après les douanes, il a opté pour la bière de pomme.

Kss, point technique : le cidre et la bière se distinguent par la levure utilisés d'après les douanes, ce qui change les taxes. Mais si comme moi, t'as pas 2000€/3000$ à jeter dans les taxes pour faire du commerce, tu t'en câlisses des douanes, des chambres de pourris et autres.

Cidre c'est la Saccharomyces uvarum un levure qui est optimum à basse température mais chiante à obtenir,
La bière c'est la Saccharomyces cerevisiae qui est plus facile à travailller ... à haute température.

Mon boulanger m'a à la bonne, je fais du pain et j'ai la levure de boulanger (Saccharomyces cerevisiae) hyper active tant que je lui file de mon pain. Donc, je paie que le jus.

Bon je suis sympa vl'a la recette

Préparer

Bon, okay mon tourie il est pas kosher, mais il est en inox. Un poil de silicone, de tuyau d'aquarium et 3 poils d'inventivité et tu te fais un touries à pas cher.

T'as 7 litres en entrée, 1 réacteur de 7l et 7g de levure de boulanger super active et 7 bouteilles en sortie, t'es trop prêt.

Ben, tout job ça commence par nettoyer, donc, croies moi, tu nettoies tes bouteilles. Je parle pas d'acheter les trucs de hipster à 3€ pour nettoyer 20 boutanches, je te cause de pas utiliser de putain de savon à moins que t'aime avoir la chiasse et t'assurer que ta bouteille à pas de dépôt. Eau, oeil, huile de coude et narine. Moi je recycle de la bouteille d'eau de source car je sais que ça tient 140 PSI.

Prend moi pour un con, mais savoir ce qui est propre c'est 80% du savoir faire. Faire de l'alcool c'est le truc de fife. Pas (te) tuer c'est plutôt plus important. T'aime pas nettoyer, mais juste tu oublies la suite, quelque soit ton métier, codeur, mécanicien, maçon, brasseur tu sais ce qu'est nettoyer.

Donc si t'es un crado, abandonne la fabrication d'alcool.

Donc, pendant que tu embouteilles...



Tu réactives ta levure: eau chaude + levure + sucre + 10 min.



Moi c'est chaud mais pas trop avec du sucre.

Tu mélanges dans ta cuve avec du jus, du sucre des levures.

Tu vérifies que ton putain de réacteur est putain d'hermétique car tu aimes pas avoir la chiasse.

Tu ajustes à raison de 17g/l de sucre pour 1% d'alcool parce que Chaptal est ton ami. Ouais c'est du cheat, mais je tiens pas mes coûts en étant mignon. Mon jus est à 100g/l, donc 5-6% de base, pour me bourrer la gueule selon Chaptal je dois donc rajouter 100g/l. Sachant que plus tu mets de sucre, plus tes levures prennent de temps.

PS va pas mettre 10kg/l si t'atteint 20% t'es heureux, mais ça te prend du temp. Crois moi vise 12%¨.

Si t'es un pûtain de hipster tu suces tant ta propre bite à t'aimer (m'faites pas chier avec les genres, adaptez) que t'as ton densimètre, moi je juge l'alcool en utilisant des cobayes dans ma famille: frère, femme, parents, enfants, nièces et neveux (les enfants sont bons pour détecter tout ce qui est <5%).

Quand mes touries/dames jeanne arrêtent de faire des bulles, j'embouteille.

Ensuite je rajoute pour avoir un genre d'effet champagne/bière/cidre une liqueur à 3g/l pour faire des bulles avant de foutre le bouchon.

Tu veux pas mourir? 


La fermentation alcoolique est sans oxygène (anaérobie). Moi mon tuyau d'aquarium je le plonge dans une bouteille d'eau après avoir vérifié que mon tourie était étanche.

Conseil d'ami, fais de même.

Bilan

500l que ça dure pour moi, et Chaptal et Lavoisier semblent avoir raison.

Je ne pasteurise pas, car c'est cool (sauf pour ma femme enceinte qui ne peut goûter) notamment dû au changement de goût avec la garde. Pour obtenir un alcool à 6% c'est 1 mois, 12% c'est 3 mois, les rendements sont décroissants. D'après la littérature, le max obtenable c'est 23% et selon les alcools c'est ~ 5ans pour ~20% sans ajout extérieur. Bref, si tu veux faire ton alcool, t'as pas mal à découvrir, car même si tout le monde fait ça depuis ~3000 ans en Europe, t'as ~0% partage.

Professionalisation vs Craftsmanship

While studying on my next topic : the cathedral builders something stroke me.

How masons were structured in order to ensure they where well paid.

Basically masons were the first unionized jobs, and were making sure to keep the knowledge and practices in the realm of the corporation.

It may seems weird to speak of a single entity when actually the masters were in competitions for chantiers, and that deadly fights were common between masons.

The masons were putting a big stress on the fact a good workers was acknowledged by his tools, and mostly by his «oeuvre».

Being a mason as defined by my great father is «the art of building a straight wall». No more no less.

As if coding was the art of making «code that works», or being a musician «musics that gathers the crowd».

Being a mason in middle age required, first a learning requiring you to be an apprentice in sometimes multiple workshop, and then validated by a «chef d'oeuvre» (master piece) validating by making something innovating validating that you both mastered the practice and understand how to make your job evolve.

Karl Marx call these two aspect the doxa (knowledge) and the praxein (practice). His theory is the captation of the knowledge by the capitalists made it possible to also get the most of the added value.

A full fledged worker had both mastery in doing and making the best practice evolve in a peer to peer relationship without centralization.

Then on a «chantier», among the other «corps de métier» masonry being the limiting factors for the others mason would often lead the coordination of the «chantier», being the first de facto architects.

Compared to our modern era, you see a «craftsman» so strong he does manage the project of building a cathedral.

If being a rockstar ninja mason has to be measured by the results, these cooperating lads where ninja masons.

So here is my scheme
Masons were both learning to learn, but also how to have a consistent future of executing, mastering, and managing teams...

Actually the working and learning looks like a lot what ISO 9001 formalize has Implementing Quality Assurance

Quality Assurance of his own work used to be the charge and the origin of a better pay for the workers. Acting being Doxein, Doing being Praxein.

Then, the industrial revolution came, and Napoleon and his successors introduced the modern school system.

Manufacturers were complaining especially in 1848 that craftsman were hard to manage: they had the knowledge, were skilled, but knowing how the value was made from the clothing they were disagreeing with the sharing of value, saying bad words such as they were robbed.

Worry not, the soldiers fired on them, their skills were studied and then taught at school. And, to prevent the craftsman to come back on the market, the only way to have the right to do your job was through the validation of a diploma.

Can a job, work, crafts be taught at school? Maybe, but bear in mind the first thing schools are teaching is a lot of knowledge in their one best way that cannot be reformed unless you chose to be a teacher without going to the working bench. Know-how -doxein- has been de facto stolen from the one who knows.

Innovation comes from making the practice evolves, nowadays, it is not the workers who are valued it is the company that is capturing the knowledge thanks to PhD, universities and funding.



The workers have all been literally emptied of the core value of their job: being able to craft, recognized for their work and making their practice evolve. They don't have a know-how that belongs to them, they just basically learn to follow orders.

Management have also removed the autonomy of the workers, while job announcement all search for these autonomous, flexible, able to make decision workers.

That's what the debate of professionalization vs craftsmanship is all about: who is valuable: the worker as a member of a company or as a member of a craftsman?

In my opinion doing a work of quality is learning the whole process, Doxa and Praxein cannot be separated.  

I am not a professional coder, I am a craftsman coder.



Of treason and and costs: security companies are threat 0

Before you should make security policy one is said to always make a threat model.

Basically it is a cost analysis, like if you make a measure system you put loss/benefits on both side of securing, not securing.

For instance, protecting .25$ non cumulative coupons with a 50$ protection per coupon is stupid if it applies to items costing 15$.

But the problem of a threat model analysis is it is centered around the one who pays, that may have interest in betraying the other stakeholders.

Take the case of Carlos Ghosn, the head of Renault. Since he his french most people think is loyalty is to his country thus Renault. However, his pride is Nissan recovery. And he led the merger of equals in disguise called the Renault Nissan Alliance. In Fusacq culture merge of equals often results either in split after culture clash or one company absorbing the other through strategic leverage.

If I was asked to secure the Renault infrastucture by Carlos Ghosn, I would take great care to firewall him. Because, there is the man and the function. He can sign as a person, but he is the head of Nissan and Renault and of the Renault Nissan Alliance, and according to the success of any of the 3 distinct entities he may have different financial incentives.

And which one of the 3 positions will be paying you?

He has an obvious win to make in a N-Turn betrayal game (Nash).

It seems kind of crazy, but your biggest threat might be the one asking for the audit. We all are incentivized and given ease of access to certain analysis according to who pays. And the one who pays can also turn down your analysis.

I know conforming to auditing best practices, if ever another audit company can argue your plan is biased, then you may loose your certification.


The problem in France is Renault has proven to be above the laws with a great power of lobbying (Usine Nouvelle, fr). Making an enemy of Renault's boss, is a sure way to have a lot of troubles, and eventually loose your precious audit certification.

However, what itches me is that he is mandated, as such, he should be seen as a less than permanent stake holder. Less permanent than all the workers having an incentive to trust the company and needing the company to work.

In fact the case can be made for every CTO mandated by a share holder. And also made about share holders when we live in a time of high turnover of shares.

A temporary major share holders can totally have interests in other companies because diversification in a sector you understand is a common financial strategy or fructifying costly expertise.

So you may also want to firewall share holders. But, then you have a big headache: share holders by ownership are having a legal liability on the action of the company also must ensure their droit de regard. Well in fact, when I see the DieselGate of VolksWagen I notice it is not the share holders that are being sued but the company itself. And that even though computer security is supposed to make sure to have an enforcement of responsibility, it has turned into a vast joke of deniability.

As you see my point, is computer security always at my opinion have a caricature of a vision of the organisation as a model. Hence the threat model does too.

At my opinion, a good threat model should always  put on top of the threat the one who pays.

The one that will have the more of control (defined by the number of action he can make others do  but others won't be able to do) is a systematic threat.

Power that is asymmetric lower the costs of treason systematically, hence someone wishing for a secure system should always be safe guarded from violating the system.

Most -if not all- the security model I experienced in my life are hierarchical as if centralized hierarchical system mimicking the Catholic Church (the origin of the word coming from this orginzation (hieros = holy, archein = ruling) is an obvious cultural bias in security corporation. And the idea that one stakeholder have the True right to dictate the direction of an organization.

Some idiots, think the peer 2 peer decentralized model is better. The decentralized anarcho libetarian model is prone to net split aka balkanisation with local decentralized networks spinning off.

Is there an alternative?

Well, of course there is: it is called pokemon.

Pokemon creators used the complex overlapping symmetries of particle physics to ensure a shifumi with strong types without guarantying any creatures a total advantages, just like a complex shi-fu-mi mexican stand off.

You could totally give balanced power to every stake holders with partial access of information necessitating for a total view the cooperation of the actors under a reciprocal scrutiny so that even the watchers are being watched.

The problem, I guess is cultural: I don't see a security company thinking that giving an underpaid worker that can be easily corrupted the power to fire a boss. But, if the worker was paid close to his boss wages it would ensure more loyalty and less risks of treason.

But, given most security consultants are way more paid than underpaid workers, by those with interests being overpaid, they have an incentive not not propose a pokemon kind of mexican standoff. And so does the industry as a whole submitted by regulations influenced by lobbies.


And finally we identify the priority 0 threat absent from any threat model: the whole incentivization of the security business that is biasing the security model towards a systemic positive bias given to the one who pays... whereas he may be the one with the most incentive to betray.


Security vulnerability #1 is hubris

Once upon a time there was an amoeba, and zap millions of years later with have human beings.

Not the greatest living being but very good at adapting making tools.

And funnily enough we are not perfect; since our brain has limited capacity of memory and analysis, most our reasoning is made by simplifying, abstracting, forgetting details to focus on the big picture, and sometimes doing the opposite.

In doing so we get very proud of our creation, and maybe too proud. Humans logic is strongly biased by emotions with the biased person strongly ignoring them.

Human are imperfect, so are our tools and abstraction.

We are easily confused, but due to Moore law we are required to remember increasingly long and numerous credentials.

We are so proud of our tools that we think better than us that we entrust mechanical turks with our secrets, bank account number, IDs. But remember that there are humans having physical access to the computers, the RAM, hard drives, the screen. Yes, screen can be photographed and leaked without triggering a single alarm in software. A cam can be used to watch you type your pin code...

And also, at one moment trading require a physical delivery. What is the use of a globalized economy if your expensive electronic gadget made in a sweat shop does not get delivered to your house?
Delivered by someone so poor he/she has incentive to steal it because it worth more than days of her own wages. This is also part of the surface of vulnerability.

Still we are bad at seeing the world. Most security threats are about software, but most efficient attacks are coming from human.

When passwords will be too long to remember, people will write them, and physical attack will be worthy.

When software are too complex, the dev/integrator may discard a complex stuff, because their project manager also did so under the pressure of the time to market. Solving a problem by ignoring its complexity is not incompetence, it is just we have imperfect knowledge on which we base engaging business decisions. Or the person in charge maybe over confident and trusting the project manager obviously wrong claim a NP problem can be solved easily.

Compared to the rest of the population, coders are living in a bubble of both insane work conditions (don't start me on this one), lack of diversity and economical security. Having a correct mental picture of who your users are is important: they can be blind, death, colour blind, poor, old, not sharing the exact same understanding of your culture...
Users can misuse a software not by malignity but by being like everyone of us: different from what the coder imagined. Exposing themselves to threats, and indirectly the environment in which your software run.
Coders can be interrupted all the time, over-loaded with noise (like meetings, bike shedding), technological religious wars distracting them from the problem at hand. He might be experiencing a crunch and a lack of sleep.
The maniac and busy industry standard of the work places do not help, it is toxic.


Our complex software often requires workarounds. Degraded behavior of software is the norm. Imagine if plane where like software: it would be as if we casually expected engine to take fire while on board. Our concerns in terms of quality are slipping because we have always experienced poorly working software as the norm.

Thus we overpromise, underdeliver in a virtuous circle of something we call progress. Making a huge industry of patching broken software on the fly. Security business being one of this kind. Imagine you'd buy a non functioning car, and you'd find normal to pay an external company to add extra soldering and firewall for it to be safe.

In computer industry, this is the normal state!

Our excessive pride reinforced by our commercial successes due to network effects and natural lock in that we see as a proof of our natural genius.


Being used to anticipate catastrophes -I did left linux 3 years ago because of systemd and I am glad of it- I also notice that the IT crowd is the weakest link in security: their intuition is wrong, they are so proud of their work they over-trust over people's work. They are back patting themselves so much, and shutting down all the pessimists that they are taking poor decisions for complex infrastructural choices trusting themselves and everything new. They think they are over-informed. They are over-exposed to noise, they live far away from the population.

The it's new, thus it must be good has became a mantra since web 2.0. Valid approach are being discarded as too old. A rush forward on immature technology thinking that unknown risks are equivalent to no risks, trusting the process of growing and patching endlessly.

This is hubris.

IT industry is the biggest security threat to our world since physical locks, physical security, economical transactions, medical devices, cars depends increasingly on people that deny any legal and financial liabilities for the result of their actions and rush forward like headless chickens.

This is insane, we should begin to finally make laws to demand software industry to be liable for their work, and ease the class actions of software users to let the market get rid of the bad apples. Let the market be a free market, and in a free market we get rid of the bad apples by making them financially liable for the loss they induced.

That is the only way we will not head for a second internet bubble explosion.