Auteur/autrice : Éric

  • Comment on fait de la crypto dans le navi­ga­teur ?

    Faire de la cryp­to­gra­phie dans le navi­ga­teur se révèle bien plus simple que prévu.

    Lais­sez tomber les portages de libso­dium & co. Quasi­ment tous les navi­ga­teurs supportent désor­mais une API native dédiée. Seul IE11 ne le fait pas tota­le­ment mais il a au moins le mini­mum qu’est la géné­ra­tion de nombres réel­le­ment aléa­toires. Ceux qui veulent vrai­ment pour­ront complé­ter l’im­plé­men­ta­tion d’IE11 avec un poly­fill sans risquer de problème de sécu­rité.

    Il y a plein de jolis exemples sur qnimate mais certaines choses datent un peu. J’ai tenté de résu­mer ici pour ceux que ça inté­resse. Ici pour du déchif­fre­ment à partir d’une clef secrète.

    Avant-propos

    Je ne suis pas un expert en chif­fre­ment et ce genre de choses est toujours à manier avec précau­tion. Si vous faites quelque chose de sérieux, ne vous conten­tez pas d’exemples et embau­chez quelqu’un qui sait.

    Rien que choi­sir l’al­go­rithme perti­nent demande de savoir ce qu’on fait. AES-CTR semble perti­nent pour mon cas d’usage où n’ai pas besoin de véri­fier l’au­then­ti­cité du message, où je n’ai pas envie de me colti­ner les ques­tions de padding, et où je serai heureux de profi­ter des multiples cœurs des smart­phones.

    Si l’al­go­rithme choisi ou autre chose vous dérange et que vous en savez plus que moi, n’hé­si­tez pas à commen­ter.

    Récu­pé­rer une clef

    Le plus simple est de récu­pé­rer direc­te­ment une clef au format JSON Web Key (en gros la clef en base64url plus un peu de méta­don­nées). Dans ce cas il suffit de passer par importKey :

    const crypto = window.crypto.subtle;
    
    const jwk = {
      "kty": "oct",
      "use": "enc",
      "k": "SDRSTgdOpUGfgn3iAwiC1cpzsevLM98r_6ehMXlK1Gk",
      "alg": "A256CTR"
    };
    const algo = {name: "AES-CTR"};
    const exportable = false;
    const usage = ["decrypt"];
    
    const key = await crypto.importKey("jwk", jwk, algo, exportable, usage);
    Déri­ver une clef

    Si on veut partir d’une phrase secrète mémo­ri­sable et non d’une clef complète, on commence par créer une clef tempo­raire et on utilise un algo­rithme de déri­va­tion comme PBKDF2.

    Malheu­reu­se­ment pour créer cette première clef il faut passer par un TextEn­co­der et ArrayBuf­fer. peut toujours déri­ver la clef à partir de là. TextEn­co­der n’existe pas sous Edge et IE11, il vous faudra utili­ser une fonc­tion comme uniba­bel qui fait ça pour vous.

    const crypto = window.crypto.subtle;
    const encoder = TextEncoder();
    
    const passphrase = "l'eau ça mouille, le feu ça brûle";
    const buffer = encoder.encode( passphrase );
    const d_algo =  {name: 'PBKDF2'};
    const d_exportable = false;
    const d_usage = ['deriveBits', 'deriveKey'];
    const d_key = await crypto.importKey('raw', buffer, d_algo, d_exportable, d_usage);
    
    const deriv = { 
      name: 'PBKDF2',
      salt: encoder.encode( "c'est le week-end !" ),
      iterations = 25,
      hash: 'SHA-256',
    };
    const algo = {name: "AES-CTR", length: 256}; 
    const exportable = false; 
    const usage = ["decrypt"];
    
    const key = await crypto.deriveKey(deriv, d_key, algo, exportable, usage);

    La sécu­rité de tout ça dépend de la longueur et de l’uni­cité de votre phrase secrète initiale. À vous de trou­ver le bon compro­mis entre la sécu­rité et la puis­sance des smart­phones qui risquent d’uti­li­ser votre code. Le 25 ici est pure­ment arbi­traire et le temps de calcul néces­saire est propor­tion­nel.

    Déchif­frer

    Déchif­frer n’est pas plus diffi­cile.

    Le vecteur d’ini­tia­li­sa­tion (iv) et la donnée chif­frée (encryp­ted) sont atten­dus sous forme d’Ar­rayBuf­fer. Il faudra de nouveau passer par uniba­bel ou une autre solu­tion si vous avez ça sous forme de chaîne binaire ou codé en base64.

    Le résul­tat de decrypt() vous est retourné sous la même forme. S’il est petit le plus simple est d’uti­li­ser TextDe­co­der ou uniba­bel. Si vous avez quelque chose de plus volu­mi­neux vous pouvez aussi passer par un Blob et un FileRea­der.

    const crypto = window.crypto.subtle;
    const decoder = TextDecoder
    
    const key = ...
    const iv = ...
    const encrypted = ...
    
    const algo = { name: 'AES-CTR', iv: iv }
    const buffer = await crypto.decrypt(alg, key, encryted);
  • La chance et le privi­lège

    Je voyais l’ave­nir comme une succes­sion infi­nie de rencontres, d’ex­pé­riences et de nouveau­tés, portée par une sorte de légè­reté, propul­sée par une source d’éner­gie que je pensais inépui­sable tout en ayant peu conscience de son exis­tence. Je pensais, comme tous les privi­lé­giés à diffé­rents degrés, que cette éner­gie venait de moi et qu’elle m’était due pour toujours.

    Je laisse pour aujourd’­hui le reste du discours sur l’ef­fon­dre­ment de la civi­li­sa­tion (dit comme ça c’est assez cari­ca­tu­ral mais il y a vrai­ment de quoi penser).

    Il est facile de croire que nos privi­lèges viennent de notre travail, de nos compé­tences, de notre impli­ca­tion ou de notre moti­va­tion. Foutaises.

    Nos privi­lèges découlent unique­ment de la pyra­mide sociale et de l’ex­ploi­ta­tion de ceux qui sont en dessous. C’est vrai a l’échelle du pays, où le top 20% est très loin d’ap­por­ter autant de valeur à la société qu’il n’en consomme. C’est aussi vrai à l’échelle mondiale où le niveau de vie français se base prin­ci­pa­le­ment sur les condi­tions de travail et l’ex­ploi­ta­tion des ressources des pays dits « en déve­lop­pe­ment ».

    Qui pense donc qu’il produit et contri­bue 100 fois plus que celui qui se tue – litté­ra­le­ment – au travail à l’usine en Asie du sud-est ou celui qui essaie autant que possible de survivre à la misère ou à la guerre dans certaines parties d’Afrique ? Quand je vois les 0,1% les plus privi­lé­giés ont un ratio de richesse proba­ble­ment bien plus proche du million… Qui peut sérieu­se­ment prétendre appor­ter un million de fois plus que quiconque ?

    * * *

    Et le travail, l’im­pli­ca­tion, les connais­sances, la prise de risque ? Oh, c’est certain que celui qui ne travaille pas et rejette toutes les oppor­tu­ni­tés aura moins de chance d’ar­ri­ver aussi loin, mais au final c’est bien de ça dont il s’agit, de chance. Nos privi­lèges viennent d’abord de la chance d’être bien né, dans le bon pays, poten­tiel­le­ment d’une bonne famille ou au moins d’avoir rencon­tré les bonnes personnes, été au bon endroit, au bon moment, d’avoir profité des condi­tions ou d’op­por­tu­ni­tés parti­cu­lières. Oui, de chance, comme premier critère.

    Vous ne me croyez pas ? Pour­tant des cher­cheurs arrivent bien à cette conclu­sion. Même sans comp­ter la géopo­li­tique, au sein d’une popu­la­tion ce qui diffé­ren­cie les 20% qui ont le plus, c’est surtout la chance et les oppor­tu­ni­tés qui se sont présen­tées à eux.

    * * *

    L’objec­tif n’est pas de se flagel­ler, mais peut-être d’ar­rê­ter de se croire supé­rieurs, d’ar­rê­ter de glori­fier la vision où il faut libé­rer les éner­gies quitte à restreindre les règles qui permettent aux 80% moins privi­lé­giés d’être moins écra­sés.

    C’est toute la diffé­rence entre une vision de charité où ceux qui ont réussi à la sueur de leur front vont béné­vo­le­ment aider ceux qui ont besoin d’un coup de pouce pour pouvoir faire pareil s’ils le veulent vrai­ment… et une vision de mise en commun où la collec­ti­vité règle­mente et prélève sur les plus privi­lé­giés pour permettre à tous de profi­ter d’un niveau de vie correct.

  • Trou­ver un héber­geur pour des fichiers statiques

    Je conti­nue l’ex­plo­ra­tion pour la bascule de mon héber­ge­ment, et plus préci­sé­ment l’hé­ber­ge­ment de mes fichiers statiques.

    Idéa­le­ment j’ai besoin d’un quota de 1 ou 2 Go, de pouvoir y bran­cher 4 domaines diffé­rents avec du HTTPS, de pouvoir régler des entêtes de cache correctes sur les fichiers que je veux, et si possible défi­nir des règles de redi­rec­tion ou de réécri­ture. Pas de PHP, pas de base de données, pas de trucs qui consomment du CPU.

    On m’a proposé pas mal de choses, pour l’ins­tant je retiens, dans cet ordre :

    Netlify, qui est opti­misé pour ça et qui a un compte gratuit qui semble conve­nir. Un système qui ne prévoit pas de PHP et de choses consom­ma­trices ça me garan­tit que je ne vais pas me retrou­ver sur une machine à bout de souffle et que tout est dédié à mon usage.

    Lautre.net, asso­cia­tif héri­tage indi­rect de altern.org. On se retrouve sur les clas­siques pas cher qui permettent du PHP et tout plein de choses, et qui géné­ra­le­ment sont un peu à la peine, mais altern.org fut mon premier accès au web et rien que pour ça ça me ferait plai­sir de contri­buer à son survi­vant. La coti­sa­tion à 23€ est abor­dable et c’est pour une asso.

    Gandi simple hosting, dont l’offre small+ssl semble à priori conve­nir et les 36 € de la première année sont accep­tables. Pour les suivantes ça dépen­dra de ce que j’y trouve. J’ima­gi­nais pouvoir héber­ger de bêtes fichiers statiques pour moins cher que 70 €.

    OVH avec les offres d’hé­ber­ge­ment web mutua­lisé. L’offre «  perso » est à 43 € l’an­née mais je ne sais pas trop à quoi m’at­tendre côté qualité.

    Always­data, figure connue, je sais que ça le fera mais le prix commence à monter avec les 80 €.

    Online.net a une offre « perso » à 30 € l’an­née mais je ne sais pas si elle gère plusieurs domaines. Ce n’est pas clair et j’ai les mêmes réserves que les mutua­li­sés OVH.

    Sur le reste, si ça en inté­resse d’autres avec des besoins simi­laires, on m’a aussi pointé o2switch.fr, phpnet.org

    J’ai écarté tout ce qui est à plus de 100 € l’an­née et les « quasi­ment gratuit tout illi­mité » qui ne m’ins­pirent pas du tout confiance, et les offres VPS vu que mon but était juste­ment d’avoir du managé.

    Si vous avez d’autres noms, des recom­man­da­tions ou des commen­taires critiques sur l’un ou sur l’autre, c’est le moment.

  • Donnée confi­den­tielle dans une session de navi­ga­tion.

    Je partage, ça peut servir à d’autres. Je cher­chais à garder confi­den­tiel une infor­ma­tion confi­den­tielle le temps d’une session de navi­ga­tion. En gros je cher­chais un genre de cookie de session mais qui reste côté client sans jamais tran­si­ter sur le réseau.

    Le localS­to­rage est top mais il persiste au delà de la session de navi­ga­tion. Le sessionS­to­rage est top mais il n’est pas partagé entre les onglets.

    Visi­ble­ment certains se sont penchés sur la ques­tion il y a quelques années et sont reve­nus avec une solu­tion toute bête mais effi­cace : Faire dialo­guer les diffé­rents sessionS­to­rage en surveillant les écri­tures dans le localS­to­rage.

    C’est tout con, ça prend juste 20 lignes, mais il fallait y penser.

    Merci Rik

  • Un espace de publi­ca­tion chif­fré côté client

    Je ne veux plus gérer de serveur en ligne. Je me sens de moins en moins capable d’as­su­rer la sécu­rité d’un tel envi­ron­ne­ment 24/7 seul et sur mon temps person­nel. Je n’en ai pas la moti­va­tion, ne souhaite pas y inves­tir le temps néces­saire. Ne parlons même pas de la possi­bi­lité de prendre des congés deux semaines hors de France sans connexion Inter­net ni veille sécu­rité. Rien qu’a­voir ce blog sous word­press me gêne.

    Je vais dépla­cer mes services sur un envi­ron­ne­ment mutua­lisé, géré par des profes­sion­nels qui ont les moyens, le temps et les compé­tences. Je vais en profi­ter pour passer à peu près tout en fichiers HTML statiques. Publier des fichiers html, css et images sur un espace à 2€, ça limite pas mal la main­te­nance.

    * * *

    Mon problème c’est que j’ai aussi des parties de site à accès restreint, avec des docu­ments qui ne doivent pas sortir n’im­porte où.

    Je peux faci­le­ment trou­ver un héber­ge­ment mutua­lisé qui me permet de faire des accès restreints par authen­ti­fi­ca­tion HTTP ou avec un bout de PHP en façade, mais j’ai une confiance limi­tée dans la confi­den­tia­lité des fichiers que je peux poser sur un héber­geur mutua­lisé.

    Du coup j’ima­gine utili­ser du chif­fre­ment côté client, avec un croi­se­ment entre Jekyll/Peli­can et 0bin/cryp­to­pad. Je chiffre les conte­nus lors de la géné­ra­tion et je les envoie chif­frés sur l’hé­ber­ge­ment. Les conte­nus sont déchif­frés dans le navi­ga­teur du client avec un gros bout de JS, en utili­sant un dérivé de mot de passe ou une clef cachée dans l’URL.

    Le seul défaut que je vois c’est inter­dire l’ac­cès à ceux qui désac­tivent volon­tai­re­ment Javas­cript, et impo­ser un peu d’at­tente aux autres pour déver­rouiller les conte­nus : Pas idéal, pas perti­nent pour tous les usages, mais ici ça me semble accep­table.

    * * *

    Il y a 0bin et Cryp­to­pad (ainsi que d’autres) qui fonc­tionnent un peu sur ce prin­cipe, mais bran­cher ça dans Jekyll ou Peli­can me semble néces­si­ter un peu de travail, surtout si je veux avoir plus que du texte et que je veux présen­ter à l’uti­li­sa­teur unique­ment les liens auxquels il a accès.

    Si vous connais­sez un CMS à publi­ca­tion statique qui a envi­sagé quelque chose du genre, je suis preneur.

  • Du temps de pape­rasse

    On m’avait dit « ne sous-estimes pas le temps admi­nis­tra­tif ».

    Fran­che­ment je n’ai quasi­ment rien. J’ai un seul client, qui me paye dans les 30 jours sans que j’ai besoin de le relan­cer. Pas de commer­cial à faire.

    J’ai un comp­table qui s’oc­cupe de toutes les décla­ra­tions. Il me propose un logi­ciel bien fait où je peux quali­fier chaque dépense profes­sion­nelle et enre­gis­trer chaque frais person­nel que je veux me faire rembour­ser.

    Sur ce même logi­ciel je peux anno­ter les quelques entrées / sorties de mon compte en banque pour véri­fier ce qu’il se passe. Je vois en même temps mes factures être payées.

    Et bien avec ce scéna­rio idéal, je passe une demi-jour­née par mois sur l’ad­mi­nis­tra­tif, rien que pour la gestion courante.

    * * *

    Une facture c’est comp­ter mon temps, éditer un gaba­rit pour créer le docu­ment, véri­fier le résul­tat, contre-véri­fier (oui, je sais), puis l’en­voyer, véri­fier qu’elle est payée… et avec le bon montant.

    Une bête note de restau­rant ou de ticket de trans­port c’est penser à la garder dans le porte­feuille, une fois par mois toutes les sortir, les clas­ser. Sur chacune saisir la date, le montant, la tva et sa raison d’être — et parfois déco­der un ticket à moitié effacé prend un petit moment. Puis on scanne, parce que juste­ment ça a tendance à s’ef­fa­cer tout seul assez rapi­de­ment, on agrafe et on classe. Même chose avec les factures en ligne. Pas besoin de scan mais il faut aller cher­cher la facture, parfois pas immé­dia­te­ment dispo­nible. Dans les deux cas le fichier numé­rique doit ensuite être nommé avec une nomen­cla­ture qu’on retrou­vera, puis archivé.

    Une fois par mois il faut poin­ter les entrées-sorties bancaires, asso­cier les justi­fi­ca­tifs aux dépenses ou aux recettes.

    Et puis il y a tout l’ac­ces­soire : La mutuelle, les décla­ra­tions faites par le comp­table, la banque, etc.

    Tout ça n’est pas grand chose mais on y passe bien une demie-jour­née par mois. Si vous avez du commer­cial ou plusieurs clients à gérer en paral­lèle, des relances à faire pour les paie­ments, beau­coup de frais, des décla­ra­tions légales à faire vous-même, un logi­ciel par pratique, comp­tez faci­le­ment le double.

    Si je dois ajou­ter l’ad­mi­nis­tra­tif pour étudier et choi­sir les statuts de l’en­tre­prise, les rendez-vous avec le comp­table pour la créa­tion, les rendez-vous à la banque pour créer le compte, étudier et choi­sir la mutuelle puis y sous­cri­re… j’ai peut-être passé deux semaines rien que sur l’ex­cep­tion­nel.

  • Combien coûte un déve­lop­peur en interne ?

    J’ai eu plein de réponses éton­nées quand j’ai dit qu’il valait mieux payer 1500 € de pres­ta­tion que 5 jours perdus en interne. Alors voilà, ça coûte combien une jour­née de déve­lop­peur en interne ?

    TL;DR : Dans les 400 € la jour­née en moyenne aux salaires pari­siens, proba­ble­ment pas moins de 300 € même hors Paris.


    On peut discu­ter de chaque chiffre indi­vi­duel­le­ment. Si vous êtes sur Paris vous aurez peut-être un loyer plus cher mais moins de dépla­ce­ment. Si vous êtes en province vous n’au­rez peut-être pas de ticket resto mais le moindre dépla­ce­ment pari­sien coûtera beau­coup plus cher. On ne vous paie peut-être pas de confé­rence mais peut-être êtes-vous dans une petite boite où vous prenez bien plus de temps à la struc­ture, ou dans une grande boite où vous avez un gros CE et d’autres avan­tages. Bref,  l’idée c’est de faire un ordre de gran­deur réaliste.

    Je pars du salaire brut. J’ajoute 1,5% pour la prévoyance et 42% pour les coti­sa­tions sociales patro­nales.

    Là dessus il faut ajou­ter les frais : Je compte 6 m² à 180 € / an le m² loyer + communs asso­ciés + entre­tien ; un amor­tis­se­ment d’en­vi­ron 500 € par an d’équi­pe­ment infor­ma­tique, entre­tien et assu­rance inclus ; 100 € divers en amor­tis­se­ment mobi­lier, communs inclus ; 100 € de four­ni­tures et consom­mables, travaux d’im­pres­sions inclus ; 1 000 € de coûts de support (service de paie, DSI, RH, etc.), oui ça semble beau­coup mais ça ne repré­sente fina­le­ment que quelques jours annuels ; une moyenne annuelle de 500 € de confé­rences ou forma­tion, frais de dépla­ce­ment, restau­ra­tion et loge­ment inclus ; 200 € de licences et services, dont tous les github, trel­los, jira, slack, google docs, asana & co ainsi que les éven­tuelles licences webs­torm/phps­torm ; 500 € de mutuelle payée par l’em­ployeur ; 25 € mensuels d’abon­ne­ment trans­port remboursé par l’em­ployeur ; et des tickets resto avec 4 € de part employeur. J’ai quasi­ment 5 500 € unique­ment avec ce qui est listé.

    J’ajoute aussi l’oc­cu­pa­tion à 5% du temps de son mana­ger ou direc­teur, en consi­dé­rant arbi­trai­re­ment que ce dernier coûte 20% de plus que lui.

    Déve­lop­peur cadre syntec, on part sur 218 jours forfai­taires par an. J’en­lève la jour­née de soli­da­rité, 2 jours par an de all hands / sémi­naire, 5 jours de forma­tion ou auto-forma­tion, 1/2 jour­née de réunion hors projets par mois (les démo, les réunion d’équipe, les suivis mana­ger, etc.), 1 jour par an de RH et admi­nis­tra­tif, 2 jours de confé­rence, un arbi­traire de 3 jours « non produc­tif mais présent quand même » genre l’em­ployé malade qui n’a pas pris son congé mala­die ou quand vous le faites partir une demie-jour­née plus tôt parce qu’il est crevé ou qu’on est la veille de Noël. Bref, 198 jours effec­tifs par an (et ça me parait large­ment sur-évalué).

    Le résul­tat c’est qu’un déve­lop­peur à 35 000 € bruts annuels — primes, avan­tages et inté­res­se­ment compris — coûte déjà au mini­mum 300 € par jour. À Paris on commence à embau­cher les jeunes diplô­més plus chers que ça.

    J’ai tendance à être moins opti­miste sur les jours de travail effec­tifs et à arri­ver à une moyenne de 400 € par jour pour une équipe d’ex­pé­rience mixte au salaire pari­sien, donc plutôt 500 € par jour si je parle de lead ou de seniors. Si les SSII et free­lance facturent faci­le­ment 500 € ou plus, ce n’est pas que parce qu’ils s’en mettent plein les poches, c’est aussi qu’il y a un vrai coût derrière.

    Si on compte les risques et les inves­tis­se­ments néces­saires, j’échange assez faci­le­ment jusqu’à 500 € pour éviter une jour­née gâchée dont je ne retire rien.

    Hors Paris on peut proba­ble­ment reti­rer 25% à mes chiffres finaux. Atten­tion toute­fois, si vous êtes larges sur les dépla­ce­ments vers des bureaux ou des confé­rences hors de votre ville, ça compense assez vite une partie de ce que vous gagnez sur le salaire et les locaux.


    Et comme on me l’a demandé, en comp­tant au plus juste pour un travailleur smic sans aucun avan­tage, on arrive quand même déjà à 105 € par jour :

    On a un coût employeur de 1750 € mensuels coti­sa­tions sociales incluses, soit 21 000 € annuels, 22 250 € avec l’en­ca­dre­ment, auxquels on ajoute 1 000 euros de frais divers, dont mini­mum la moitié en mutuelle et rembour­se­ment d’abon­ne­ment de trans­port. 227 jours travaillés hors jour­née de soli­da­rité pour quelqu’un sans RTT, auxquels on retire une demie jour­née par mois entre les réunions, forma­tions, et présence non effi­cace.

    En étant plus réaliste sur les coûts, on passe faci­le­ment à un coût employeur tout compris proche des 120 € par jour de travail.

  • [Aide] Commu­ni­ca­tion entre une page et une exten­sion navi­ga­teur

    J’ai une page qui fait des trai­te­ments javas­cripts basés sur des appels XHR authen­ti­fiés vers son origine et sur des commu­ni­ca­tions en window.postMes­sage avec des <iframe>. Elle n’a besoin d’au­cune permis­sion privi­lé­giée, c’est juste une page web avec une origine normale.

    J’ai­me­rais pouvoir inter­ro­ger cette page depuis une exten­sion Fire­fox et qu’elle me commu­nique le résul­tat de ses trai­te­ments, mais sans que ça n’af­fiche la page à l’uti­li­sa­teur.

    Au départ j’ima­gi­nais que l’ex­ten­sion pouvait lancer une <iframe> cachée et discu­ter avec elle en postMes­sage. On me dit que ce n’est pas possible.

    Embarquer direc­te­ment le code de la page dans l’ex­ten­sion n’est pas envi­sa­geable pour des raisons de sécu­rité (et on ne ferait que repor­ter le problème vu que cette page lance elle-même des iframes pour commu­niquer avec elles).

    Dis, public, est-ce que tu aurais une sugges­tion ou une piste à explo­rer ?

  • La retraite des chemi­nots à 50 ans, ou 52, ou 57 en réalité, ou…

    Puisque ça trau­ma­tise les gens…

    On va parler de Pierre, Paul et Jacques, embau­chés aujourd’­hui comme chemi­nots, et regar­der leur âge réel de départ à la retraite :

    Pierre

    Pierre est embau­ché après ses 31 ans. Il béné­fi­cie des mêmes règles que le régime géné­ral. C’est un âge légal de départ à la retraite à 62 ans pour 172 trimestres, et un taux plein garanti à 67 ans.

    Paul

    Paul est un chemi­not séden­taire, comme 90% des chemi­nots.

    Il a un avan­tage scan­da­leux : Son âge légal de départ à la retraite sera de 57 ans au lieu de 62 ans. C’est 5 ans de mieux… en théo­rie.

    En théo­rie parce qu’il devra quand même coti­ser 172 trimestres, comme le régime géné­ral. Pour partir à 57 ans il faudrait qu’il travaille de façon inin­ter­rom­pue depuis ses 14 ans. Voyons donc son âge de départ à la retraite en fonc­tion de son âge d’em­bauche :

    Travail depuis ses 14 ans : Non sérieu­se­ment, il est inter­dit de travailler à cet âge. Les parents et l’em­ployeur iraient en prison. Paul ne peut pas prendre sa retraite à taux plein à 57 ans, même en théo­rie.

    Ou plutôt si, il peut, s’il a commencé à travailler plus tard mais qu’il souffre à 57 ans d’un handi­cap signi­fi­ca­tif ou d’une mala­die grave.

    Si quelqu’un pensait se lever pour faire cesser cet avan­tage indu, j’es­père qu’il est déjà rouge de honte.

    Oui, sur le régime géné­ral il faudra attendre 60 ans malgré cette situa­tion de santé, mais c’est peut-être ça qu’il faut chan­ger, non ? En tout cas on n’est dans un cas à la marge qui reste ultra-mino­ri­taire.

    Bon, Paul peut partir bien entendu avant d’avoir ses trimestres mais dans ce cas il aura une pension réduite d’au­tant *et* une décote supplé­men­taire. Le calcul est le même que le régime géné­ral et ça peut vite faire mal.

    Travail depuis ses 15 ans : Oui, si Paul travaille depuis ses 15 ans via l’ap­pren­tis­sage, qu’il ne s’in­ter­rom­pra jamais, il pourra prendre sa retraite à taux plein à 58 ans, soit 4 ans de mieux que la règle géné­rale.

    Je vous vois, envieux de ce gosse qui travaille déjà à temps plein alors que les autres sont encore au lycée. Rassu­rez-vous, son espé­rance de vie fait qu’il profi­tera proba­ble­ment moins de sa retraite que vous.

    Cela dit il n’y a là nul avan­tage. Si vous êtes sala­riés du régime géné­ral vous béné­fi­ciez du régime « carrières longues » qui permet à ceux qui ont commencé le travail avant leurs 16 ans de partir à la retraite à… 58 ans.

    Comme quoi, l’avan­tage n’en est pas toujours un.

    Travail depuis ses 17 ans : Même chose, si Paul commence deux ans plus tard, à un âge où beau­coup n’ont même pas encore le BAC, il pourra prendre sa retraite à taux plein deux ans plus tard, soit 60 ans.

    Le dispo­si­tif carrière longue du régime géné­ral instaure la même excep­tion pour ceux qui ont commencé à travailler avant leurs 20 ans : départ possible à 60 ans.

    Début de travail à 19 ans : Si Paul commence à 19 ans, travailler 172 trimestres en commençant à 19 ans ça nous mène à… 62 ans.

    Bref, si Paul commence à travailler à 19 ans, il aura le même âge réel de départ à la retraite que n’im­porte quoi. Oh avan­tage indu…

    Début de travail après ses 20 ans : Ah, le voilà le vrai avan­tage. Il y a l’âge légal et l’âge de départ à taux plein. L’âge de départ à taux plein est bien 5 ans plus tôt, à 62 ans.

    Notre chemi­not partira à la retraite à taux plein à 62 ans là où un sala­rié du privé ayant fait des études longues devra subir une décote de ses pensions.

    Bref, si vous cher­chez un avan­tage scan­da­leux, le voilà. Il existe, mais il s’agit de partir à la retraite à 62 ans, loin des cari­ca­tures.

    Main­te­nant si vous voulez être francs il faudra prendre en compte que le chemi­not aura payé toute sa vie 11% de plus sur ses coti­sa­tions retraite. Ça ne parait rien mais cumulé sur 40 ans ça commence à faire quand même. Ça ne compense pas 5 ans de retraite mais ça peut en compen­ser une bonne année quand même, plus s’il y a des taux d’in­té­rêt élevés.

    Jacques

    On m’avait pour­tant rabâ­ché que les chemi­not partent à la retraite à 50 ans !

    En fait les roulants partent bien 5 ans plus tôt que les séden­taires. Ils repré­sentent 10% des chemi­nots. On est loin du cas géné­ral.

    Pour un nouvel embau­ché roulant, le départ à la retraite pourra donc théo­rique­ment se faire dès 52 ans (et pas 50 ans), mais ceux qui ont déjà lu le reste du billet ont compris que c’était un chiffre qui est surtout là pour faire joli sur le papier tant qu’on n’a pas ses trimestres. Aucun chemi­not embau­ché aujourd’­hui ne pourra jamais prendre sa retraite à taux plein à cet âge.

    Il reste que cette mino­rité de chemi­nots roulants a bel et bien un départ à la retraite réel signi­fi­ca­ti­ve­ment plus tôt que le régime géné­ral, à condi­tion d’avoir été embau­chés à la SNCF avant leurs 31 ans. C’est vrai aussi pour quelques autres profes­sions dites « pénibles » en France, à tort ou à raison.

    On peut se dire qu’il y a d’autres travailleurs en France qui ont des horaires inte­nables et qui vivent une partie du temps hors de leur maison, et que ce n’est pas forcé­ment le cas de tous les roulants. C’est vrai. À vous de voir si ce ne sont pas les autres qui méri­te­raient eux-aussi un avan­tage plutôt que de l’en­le­ver aux roulants.

    En tout état de cause, on parle de 10% des chemi­nots, et les règles pour les embauches actuelles ne mènent pas du tout à une retraite réelle à 50 ans, ou même à 52, même dans le meilleur des cas.


    J’ai fait de mon mieux pour regar­der des sources offi­cielles mais je suis peut-être passé à côté de certains cas, n’hé­si­tez pas à complé­ter.

    Il y a plein de cas plus complexes ou plus avan­ta­geux pour des gens qui ont embau­ché il y a plusieurs années. Je ne les décris pas parce que personne n’a même soulevé l’idée de chan­ger leur statut à eux, et que les gens ont tendance à compa­rer le régime géné­ral futur avec le régime SNCF passé, ce qui est forcé­ment biaisé dès le départ.

    Je ne prends en compte que les règles à partir d’aujourd’­hui, et c’est déjà pas mal. « Le passé c’est le passé Darling, ça para­site le présent. »

  • La base de travail pour 2018

    Une progres­sive web app prévue d’abord pour mobile, fonc­tion­nant tota­le­ment hors ligne avec une synchro à la prochaine recon­nexion et des données chif­frées côté client.

    Oui, votre besoin a peut-être des usages ou des contraintes qui ne cadrent pas avec ce stéréo­type mais ça mérite proba­ble­ment d’y réflé­chir deux fois avant d’écar­ter un des éléments.

    Quand je vois nombre de projets sans chif­fre­ment des données ou quasi­ment inutiles une fois hors ligne, j’ai l’im­pres­sion de retrou­ver les projets d’il y a quelques années qui consi­dé­raient le mobile comme acces­soire.