Se connecter

goodpods headphones icon

Pour accéder à toutes nos fonctionnalités

Ouvrez l’application Goodpods
Close icon
Tronche de Tech - #45 - Mathis Hammel - L'éternel bug Python

#45 - Mathis Hammel - L'éternel bug Python

04/17/25 • 84 min

Tronche de Tech

En 2019, ce français a trouvé un bug dans Python. 🐍

Un bug, que personne n’a encore réussi à corriger.

À l’époque, Mathis est en pleine création d'un CTF.

Un challenge de hacking.

La dernière épreuve est une épreuve de cryptographie.


Hacker un “PRNG”.


Un PRNG, c'est une fonction mathématique permettant de générer des nombres aléatoires...

Qui il ne le sont pas vraiment.


Car les PRNG ont une faiblesse.

Il suffit de connaitre les derniers nombres tirés pour prédire tous ceux qui vont suivre.


Un peu comme si, à partir des 3 premiers numéros du loto, vous pouviez prédire tous les suivants.


Donc, quand on veut vraiment faire de l’aléa “sécurisé”...

On n’utilise SURTOUT pas un PRNG.


Mathis sait bien tout ça.

C’est exactement pour cette raison qu’il va glisser un PRNG dans son épreuve.


Les participants vont devoir trouver un moyen d’extraire les tirages précédents du PRNG pour prédire un mot de passe.


Mais un truc cloche.

Lors de ses tests, Mathis est perplexe.

Il ne réussit son propre challenge qu’une fois sur 2.


🤔


Il a beau le tourner le problème dans tous les sens, son raisonnement et son code sont corrects.


Bon sang, ça devrait marcher !


Enfin...

Sauf si...


Il y a un bug dans le PRNG de Python.


Mathis retrousse alors ses manches et se plonge dans le code source du langage.


Et après quelques heures...

Bingo !


Fichier random.py, ligne 248.

Une fonction qui s’emmêle les bits 😅


Bien sûr, Mathis se met en tête de le corriger.

Mais ça ne va du tout se passer comme prévu.


4 ans plus tard, ni Mathis, ni personne d’autre, n’a pu le corriger.


Pourquoi ?


La réponse, je laisse Mathis Hammel en personne vous la dévoiler.


Bonne écoute 🎧


PS : dites-nous ce que vous pensez de l'épisode en commentaire (et surtout, abonnez-vous !)


Dans cet épisode, on a parlé de :

-----------------------------------


Retrouvez Mathis sur :

  • son site : https://mathishammel.com/
  • linkedin : https://www.linkedin.com/in/mathis-hammel
  • bluesky : https://bsky.app/profile/mathishammel.bsky.social

---------------------------------


Je suis Mathieu Sanchez, CTO d'Acasi, et pour me suivre, c'est principalement sur Linkedin : https://www.linkedin.com/in/matsanchez/


Vous pouvez aussi suivre Tronche de Tech, sur vos réseaux favoris :

Linkedin : https://www.linkedin.com/company/tronche-de-tech/

Instagram : https://www.instagram.com/tronchedetech/


Hébergé par Acast. Visitez acast.com/privacy pour plus d'informations.

plus icon
bookmark

En 2019, ce français a trouvé un bug dans Python. 🐍

Un bug, que personne n’a encore réussi à corriger.

À l’époque, Mathis est en pleine création d'un CTF.

Un challenge de hacking.

La dernière épreuve est une épreuve de cryptographie.


Hacker un “PRNG”.


Un PRNG, c'est une fonction mathématique permettant de générer des nombres aléatoires...

Qui il ne le sont pas vraiment.


Car les PRNG ont une faiblesse.

Il suffit de connaitre les derniers nombres tirés pour prédire tous ceux qui vont suivre.


Un peu comme si, à partir des 3 premiers numéros du loto, vous pouviez prédire tous les suivants.


Donc, quand on veut vraiment faire de l’aléa “sécurisé”...

On n’utilise SURTOUT pas un PRNG.


Mathis sait bien tout ça.

C’est exactement pour cette raison qu’il va glisser un PRNG dans son épreuve.


Les participants vont devoir trouver un moyen d’extraire les tirages précédents du PRNG pour prédire un mot de passe.


Mais un truc cloche.

Lors de ses tests, Mathis est perplexe.

Il ne réussit son propre challenge qu’une fois sur 2.


🤔


Il a beau le tourner le problème dans tous les sens, son raisonnement et son code sont corrects.


Bon sang, ça devrait marcher !


Enfin...

Sauf si...


Il y a un bug dans le PRNG de Python.


Mathis retrousse alors ses manches et se plonge dans le code source du langage.


Et après quelques heures...

Bingo !


Fichier random.py, ligne 248.

Une fonction qui s’emmêle les bits 😅


Bien sûr, Mathis se met en tête de le corriger.

Mais ça ne va du tout se passer comme prévu.


4 ans plus tard, ni Mathis, ni personne d’autre, n’a pu le corriger.


Pourquoi ?


La réponse, je laisse Mathis Hammel en personne vous la dévoiler.


Bonne écoute 🎧


PS : dites-nous ce que vous pensez de l'épisode en commentaire (et surtout, abonnez-vous !)


Dans cet épisode, on a parlé de :

-----------------------------------


Retrouvez Mathis sur :

  • son site : https://mathishammel.com/
  • linkedin : https://www.linkedin.com/in/mathis-hammel
  • bluesky : https://bsky.app/profile/mathishammel.bsky.social

---------------------------------


Je suis Mathieu Sanchez, CTO d'Acasi, et pour me suivre, c'est principalement sur Linkedin : https://www.linkedin.com/in/matsanchez/


Vous pouvez aussi suivre Tronche de Tech, sur vos réseaux favoris :

Linkedin : https://www.linkedin.com/company/tronche-de-tech/

Instagram : https://www.instagram.com/tronchedetech/


Hébergé par Acast. Visitez acast.com/privacy pour plus d'informations.

Épisode précédent

undefined - #44 - Karolina Gorna - Les failles d'Ethereum

#44 - Karolina Gorna - Les failles d'Ethereum

Cette française est en train de faire trembler le web3.

Et l’Ethereum en particulier.

Comme toutes les blockchains, Ethereum fait face à un trilemme.

1️⃣ Sécurité.

2️⃣ Scalabilité.

3️⃣ Décentralisation.

Pour tenir ses promesses, une blockchain doit assurer dans ces 3 domaines.

Impossible d’avoir des transactions fiables, si ce n’est pas sécurisé.

Difficile de faire confiance, quand on est trop centralisé.

Et personne ne pourra utiliser, si elle ne sait pas scaler...

Entre ces 3 alternatives, malheureusement il faut choisir.

Enfin, plutôt...

Optimiser.

Car quand on améliore l’un, on dégrade souvent les autres.

À l’instar du Bitcoin, l’Ethereum a d’abord mis le paquet sur la sécurité et la décentralisation.

Logique.

Mais du coup, niveau scalabilité, c’est pas foufou.

Il faut parfois attendre 3h pour valider sa transaction.

Pas pratique quand vous voulez juste acheter une baguette à la boulangerie... 🥖

C’est là qu’interviennent les “rollups”.

Des technos dites “layer 2” qui viennent décharger la blockchain, et décupler sa performance. 🚀

La rendant ainsi sécurisée, décentralisée ET scalable !

Oui, mais y’a un hic.

Ces “rollups” fournissent à peu près les même services que la blockchain.

Et souvent, ils utilisent même à peu près le même code.

Le même langage.

Une sorte de SPOF, comme on dit.

(un “single point of failure”)

Une faille dans dans un de ces bouts de code, ou dans le langage sous-jacent...

Et vous pouvez dire adieu à vos Ether 👋

Si ce n’est pas carrément, à tout l’éco-système...

Karolina sait bien tout ça.

Car tous les jours, elle s’efforce de trouver cette faille ultime.

Avant que d’autres ne la trouvent.

Peut-être même...

Qu’elle aurait déjà réussi. 😏

Réponse dans cet épisode, avec la brillantissime...

Karolina Gorna.

Bonne écoute !

PS : dites-nous ce que vous pensez de l'épisode en commentaire (et surtout, abonnez-vous !)

Dans cet épisode, on a parlé de :

  • l'épisode #42 sur la crypto post-quantique avec Melissa : https://open.acast.com/public/streams/6484c005e432cf001030c493/episodes/67c22f0facf7d850b38c72af.mp3
  • l'épisode #35 sur l'intrusion physique avec Anthony : https://open.acast.com/public/streams/6484c005e432cf001030c493/episodes/67338b0ad2a59a72534e75b1.mp3
  • "Le cerveau bleu", le livre de Serge Humpich : https://www.fnac.com/a1152595/Serge-Humpich-Le-cerveau-bleu
  • l'article de l'équipe de Ledger sur la test de sécurité de hardware wallet : https://www.ledger.com/why-secure-elements-make-a-crucial-difference-to-hardware-wallet-security
  • le site "lawifi.fr" : https://www.lawifi.fr/

-----------------------------------

Vous pouvez retrouver Karolina Gorna sur Linkedin ici : https://www.linkedin.com/in/karolina-gorna-29210a194

---------------------------------

Je suis Mathieu Sanchez, CTO d'Acasi, et pour me suivre, c'est principalement sur Linkedin : https://www.linkedin.com/in/matsanchez/


Vous pouvez aussi suivre Tronche de Tech, sur vos réseaux favoris :

Linkedin : https://www.linkedin.com/company/tronche-de-tech/

Instagram : https://www.instagram.com/tronchedetech/

TikTok : https://www.tiktok.com/@tronchedetech

Twitter : https://twitter.com/TroncheDeTech


Hébergé par Acast. Visitez acast.com/privacy pour plus d'informations.

Commentaires de l'épisode

Générer un badge

Obtenez un badge pour votre site web qui renvoie vers ce episode

Sélectionnez le type et la taille
Open dropdown icon
share badge image

<a href="https://goodpods.com/podcasts/tronche-de-tech-454082/45-mathis-hammel-l%c3%a9ternel-bug-python-89522470"> <img src="https://storage.googleapis.com/goodpods-images-bucket/badges/generic-badge-1.svg" alt="listen to #45 - mathis hammel - l'éternel bug python on goodpods" style="width: 225px" /> </a>

Copier