La guerre : c'est nul

L'Europe, est en tant qu'entité le 2é vendeur d'arme au monde.

L'Europe est en train de se recevoir une part de la vague énorme des réfugiés qu'engendre les conflits engagés avec des armes qu'ils ont vendu.

Mais rationnellement, la guerre c'est nul.

Le raisonnement violent qui va suivre est un raisonnement par l'absurde dont l'idée est de se faire l'avocat d'un diable malsain, et de démontrer que même le diable refuserait de faire la guerre.


Donc, la France vend des armes. Si moi j'y trouve mon compte, j'ai envie de dire on s'en fout des guerres d'ailleurs.

Mais un citoyen égoïste va-t'il y trouver son compte?

Rationnellement, il y a 2 types de dégâts liés aux ventes d'armes. Comme un bon lance roquette certes, la roquette va faire des dégâts sur le lieu visé, mais il y a aussi un retour de flamme direct.

Quel est le retour de flamme de toutes les transactions de ventes d'armes?

Corruption, paradis fiscaux et parfois terrorisme (service contentieux).

Que ce soit Eurodif (70), Luchaire (90), la Lybie (2007), Karachi (?), les frégates de Taïwan .... toutes les grosses ventes d'armes françaises ont été suivis de rétro commission vers des proches de nos pouvoirs. Et je donne pas cher de l'absence de coup tordus dans la vente des sous marins à l'Australie.

L'argent de la guerre corrompt autant les hommes politiques au loin que locaux. Argent qui comme nous le comprenons aujourd'hui est investi dans les campagnes électorales, car le financement public des partis politiques sans transparences est une manne pour les gens peu scrupuleux.

Or le coup d'une campagne est de l'ordre de 13 millions d'euros.

Quels sont les contreparties que semblent avoir engendré les corruptions locales.

Bon, Eurodif on a filé le nucléaire à l'Iran. Luchaire c'était pour payer l'Iran pour nos otages, à la Lybie de Kadhafi on leur a filé des équipements top secrets pour espionner leurs citoyens, Karachi ben on a eu des problèmes.

Les plus gros problèmes des ventes d'armes sont simplement le service contentieux.


Quand on fait un contrat avec le progressiste Shah d'Iran puis qu'on le remplace par un incontrôlable ayathola, on a plus vraiment envie de livrer le nucléaire qui ouvre la porte a du nucléaire militarisé.

Voilà comment la France s'est retrouvée la cible de l'Iran pendant 15 ans: à cause d'un contentieux sur un contrat d'armement.

Karachi, est aussi évidemment lié à un contentieux client sur le versement d'une rétro commission.

Tous les contentieux ne se terminent pas mal pour la masse française. Regardez Khadafi, quand on dit que le client est roi, pour un français ça implique qu'il peut terminer sur une Guillotine. Il a du penser qu'avoir en otage de l'info était une bonne idée et que tenter de faire plier le gouvernement avec était une bonne idée. Et bam! Opération homo (homicide) commandée depuis l'Élysée dans ses dents. Un petit reste de Mitterand la possibilité de pouvoir faire executer n'importe qui sans contrôle judiciaire par un président et sans traces. Son efficacité redoutable pourrait avoir été utile pendant l'affaire des frégates de Taïwan.

Donc, brefs, au premier ordre, l'impact dans nos frontières d'une vente d'arme est chère.

Au deuxième ordre, il faut noter bien évidemment que l'argent de la corruption doit passer par des canaux de confidentialité. Les ventes d'arme qui entraînent de la corruption, entraînent aussi la tolérance voire la bienveillance des gouvernements à l'égard des paradis fiscaux.

Au troisième ordre, il faut voir que l'Europe est bien en retard par rapport au bloc commonwealth sur l'espionage numérique. Et que même si les USAs corrompent tout autant, ils savent quand nous on le fait, et comme en affaire c'est comme à la guerre, ils hésitent pas à faire savoir. Si on se fait choper à corrompre alors que les pays du G20 se sont engagés à ne plus le faire, alors le marché est annulé.

Donc, il y a aussi les pratiques de la concurrence (mauvaise perdeuse) qui impactent notre société.

On peut dire que savoir que ses hommes politiques sont corrompus fait plus de dommage à la légitimité des institutions que l'ignorance.

Serions nous mieux dans un monde sans fuites ou sans mauvaises pratiques? En fait je trouve les fuites salutaires, même si elles sont dues à une puissance étrangère.

Ensuite posons nous la question de l'intérêt stratégique lui même d'entretenir une industrie de l'armement, en permanence.

Mon premier argument est l'Angleterre de 1942.
Ce qui a fait que l'Angleterre a pu produire en masse mitrailleuse, chasseurs bombardiers et autre n'était pas la présence d'une industrie militaire forte mais d'une industrie forte tout court.

Les UK ont converti en usine d'armement des usines qui n'étaient pas faites pour, grâce à une approche évoluée en logistique et ingénieurie.

Les ingénieurs sélectionnaient des usines avec le matériel nécessaire pour produire une arme ou une partie. Ils envoyaient les plans. Les usines avaient du personnel suffisamment éduqués pour pouvoir exécuter les plans et adapter leurs usines. C'est comme ça que les mitrailleuses étaient produites dans une usine de jouet. Des parts de bombardiers dans des usines de trains ...

Et ils évitaient la vulnérabilité Allemande aux attaques sur les régions industrielles qui concentraient la production d'armes, car les UK avaient un réseau naturellement bien réparti et une logistique déjà rodée pour ce genre de cas.

Mon deuxième est une fable paysanne. Celle du paysan qui veut marier sa fille à un mec pas trop inutile. Et, il demande aux deux prétendants de ramener une cheville adaptée à sa poutre au grenier. Le lendemain, le fils du charpentier ramène une superbe cheville en ébène. Le deuxième sa caisse à outil.

Le paysan demande, mais ell'est où ta cheville? Et le fils du métayer de répondre: ben je peux pas faire une bonne cheville si je vois pas pourquoi elle est faite. Avoir des nouveaux produits que l'on maintient sans évaluation du problème à contrer, c'est con. On lutte contre quoi exactement?

C'est un problème stratégique la France est un pays historiquement et constamment connu pour ses mauvais paris en investissement en évolution militaire.

D'Azincourt à Dien Bhien Phu le génie militaire en utilisation d'innovation a brillé par son aveuglement aristocratique a mépriser les coûts et les bénéfices.


Forteresses Vauban: peut être justifiées par l'intérêt touristique. Militairement une pure connerie qui a participé à provoquer la révolution de 1789  
Leurs constructions qui ont nécessité une somme monstrueuse de ressource, et ont été livrées plusieurs génération plus tard n'ont servi à rien, sauf à endetter la Nation.

Oui, entre leur mise en chantier et leur livraison ces pures merveilles issue des cogitations de nos mathématiciens célèbres comme Moivre (ou Monge?), étaient obsolètes dûes aux évolutions des technologies.

Un peu comme la ligne Maginot quoi.

Azincourt, des chasseurs d'écureuil qui dégomment du chevalier en conserve car la noblesse française considérait que le métal était une manière noble, et le bois un truc de gueux qui ne risquait de provoquer une innovation pouvant les compromettre. Sauf que l'arc composé est arrivé, et paf dans tes dents.

Une stratégie de conflit est une stratégie asymétrie notamment en terme de coût. Un IED c'est 130$. Un fantassin d'une armée de métier c'est dans les XXK$. Depuis les années 70 et l'apparition des insurrection notamment en milieu urbain denses avec une incapacité de discerner les alliés des ennemis, les armées sont désavantagées. 40 ans que les militaires l'on compris.

Nos militaires sont dans la situation de boîtes de conserves de la chevalerie qui refusent d'accepter qu'ils sont en train de se faire percer par des flèches parce que c'est une arme en bois.
  
De fait le terrorisme n'existe pas, il est juste une innovation dans l'art de la guerre et d'emploi d'une technique de conflit non réglementée basées sur une asymétrie extrême de moyens.

Si on accepte que ce que nous appelons terrorisme n'est qu'une forme évoluée de mode de conflit arrêtons de persévérer alors de leur donner l'avantage.

Plus nos boîtes de conserves coûtent cher, plus elles sont vulnérables.
Est-ce que les terroristes attaquent avec des avions, des tanks, des bateaux?

Non. Ils attaquent avec de la propagande en exploitant la misère et l'ignorance sur le territoire. Un peu comme les moines d'ages of empire en mode nuke de civilization. Et ça coûte bézef. Si tu jouais à civilization, et que c'était une des armes les moins chères, tu la spammerais.

Le terrorisme est amené à rester. Plus nous appauvrissons un pays en investissant dans des armes contrant la mauvaise menace plus nous faisons gagner les ennemis.

Plus nous nous appauvrissons, moins nous investissons dans la satisfaction et l'éducation des citoyens, plus nous donnons de surface à cette nouvelle forme de guerre moderne.

Bref, la guerre c'est nul, parce que plus on fait de l'argent avec, plus on se rend vulnérable.

Il est à noter, que les armées ne sont pas équipées comme elles le souhaiteraient pour maximiser l'efficience de leurs missions. Non, l'armée se voit imposer du matériel national au seul profit de faire la vitrine commercial de l'industriel.

Matériel qui engendre un coût d'achat, mais parfois aussi un coût de fonctionnement exhorbitant en plus d'être inadapté. C'est donc une perte cumulative sur des budgets militaire qui encore une fois affaiblissent systématiquement les armées.

Bref, en tant qu'individu rationnel égoïste je ne vois aucune rationalité à soutenir les industries de l'armement.

Et moralement, je pense que les pays qui appuient leurs industries militaires devraient être responsables à hauteur de leur chiffre d'affaire dans la région en conflit pour le traitement des réfugiés et des conséquences des guerres.

Un peu le principe du pollueur payeur. 


Pour conclure Civis pacem, para bellum implique que nous devons réagir face à un nouveau mode de guerre basé sur la déstabilisation sociale projetée. L'arme pour contrer la menace est claire: renforcer la stabilité sociale probablement en arrêtant de creuser les inégalités.

Aujourd'hui économiquement nos gouvernements favorisent les cigales, qui comme les industries de l'armement basent leur modèle économique sur la libre circulation des capitaux d'entreprise et la capacité à gagner un marché en mode attilah le hun. Tu peux détruire la société où tu atteris et tu peux empirer la situation sur le long terme, mais tu t'en fous puisque tu paies jamais les pots cassés.

De l'autre, les fourmis sont bien plus privées de libertés de mouvement, bien plus taxés, taxes reversées dans ... notamment les mécanismes de stabilisation de marchés. Qui sont les cibles des cigales. On est mécaniquement dans un mécanisme économique qui favorise la prédation comme modèle viable. Pouvoir faire des profits à aider à détruire efficacement les économies des autres pays, ça se pose là comme incitation à la vertu.

Bref, moi petite fourmi, je m'en fous, car je passe déjà ma vie à filer entre des marteaux et des enclumes, et ça fait longtemps que je stresse plus pour des conneries pareilles. On m'appelle One Punch Ant!

Une société stable et égalitaire est la seule et unique arme permettant de faire face à une nouvelle forme de conflit efficace exploitant notre instabilité sociale grandissante. Espérons que nos gouvernements comprennent que la lutte contre les paradis fiscaux et l'inéquité fiscale est une priorité stratégique, et qu'elle implique le sacrifice d'une partie de notre industrie qui en dépend dont une partie de celle de l'armement. C'est le prix pour gagner la guerre à venir.

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.