Mille Fautes

intro hardware attaque par faute FCSC 2025 résolu le

Description

Un ami a écrit le code de la signature RSA utilisé par un serveur afin de s’authentifier. Il a fait attention à avoir un code s’exécutant en temps constant en utilisant une exponentiation de type ‘Square and Multiply Always’. Toutefois, il a réutilisé ce code dans sa carte à puce. Il est alors possible de retrouver la clef privée de la carte en perturbant le calcul de la signature.

Le fichier mille-fautes.txt contient un log des fautes d’une attaque réussie, permettant de retrouver l’exposant privé d. L’attaque réalisée est décrite dans le fichier mille-fautes.py. Le code de la signature est dans le fichier RSA.asm, ce fichier étant appelé à l’aide d’une machine virtuelle supportant des injections de faute (fichiers machine.py et machine_faulted.py). Le modèle de faute est l’affectation d’une valeur aléatoire au registre de destination, si l’instruction fautée devait mettre à jour un registre.

Le flag attendu est sous la forme FCSC{d}, où d est exprimé en base 10.

La documentation de la machine virtuelle est disponible sur cette page.

Fichiers

  • assembly.py
    20.84 KiB – db186ab7dfb5f5e7f4790f1afc951deda349a8a9565a57b6328da2ba89965525
  • crypto_accelerator.py
    5.34 KiB – fe3c3f0ef53ec9e4be03ac6843b59b9879e7c8102325e2f323c1adad1e80e192
  • machine.py
    19.96 KiB – 048716eab19f32556b08fbea73a07b641f29fa0ff795abd407ead484e3d5041c
  • machine_faulted.py
    381 B – fff04c758a8017e0ef27e19c5264435d081446779d52acb3d0e01724c7e5d34c
  • mille-fautes.py
    1.22 KiB – 5fac638d46079af8d93466a7918f66b38a5ec72a10cab70c195779c7db89799f
  • mille-fautes.txt
    80.81 KiB – 3c1d81d6e5b20b602507dede3126b70aa4d61be432c20148100cc3530db10556
  • RSA.asm
    585 B – ab4b6c384856d1c20f8e54172d1ba3f1bc472c0d24e0a35df2bb61717f5f9e75

Auteur

Neige

Flag

Partager ma réussite sur Fediverse, Twitter, Linkedin, Facebook, ou par email.

Soumettez votre solution

Vous pouvez envoyer votre solution rédigée pour cette épreuve. La FAQ contient la marche à suivre.

Vous avez besoin d'être identifié(e) pour soumettre une solution.

Solutions

Il n'y a pas encore de solutions pour cette épreuve, mais vous pouvez soumettre la vôtre après avoir trouvé le flag.