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.

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
  • vm.md
    27.75 KiB – 0d241df97205c1ea035561b006926949e768e749d997f43f50569e416ee11cdc

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.