Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
crypto-lab-merkle-proofs — Démo d'arbre de Merkle dans le navigateur — construire un arbre, générer des preuves d'inclusion, recalculer le hash racine hash par hash, et rejouer les attaques de seconde préimage RFC 6962 et CVE-2012-2459. Vrai SHA-256. Aucun backend. | Kitploit
Outils/GitHubGitHub/systemslibrarian/crypto-lab-merkle-proofs
Analyse de HachageCryptographieApprentissage et ÉducationRessources OrganiséesParcours et CoursLabs et Pratique
GitHubsystemslibrarian/crypto-lab-merkle-proofs

crypto-lab-merkle-proofs

Démo d'arbre de Merkle dans le navigateur — construire un arbre, générer des preuves d'inclusion, recalculer le hash racine hash par hash, et rejouer les attaques de seconde préimage RFC 6962 et CVE-2012-2459. Vrai SHA-256. Aucun backend.

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôtSite web
60il y a 1 jourPas encore vérifié

crypto-lab-merkle-proofs

Ce que c'est

Il s'agit d'une démo interactive des arbres de Merkle et des preuves d'inclusion de Merkle, construite sur SHA-256 via l'API WebCrypto du navigateur. Un arbre de Merkle hache un ensemble de blocs de données en un unique hash racine qui engage l'ensemble de ces blocs d'un seul coup ; une preuve d'inclusion est la courte liste de hashes frères qui permet à quiconque de recalculer cette racine à partir d'une seule feuille. Le modèle de sécurité est purement basé sur le hachage : il repose sur la résistance aux collisions et à la seconde préimage de SHA-256, sans aucune clé ni signature impliquée. Le hachage suit la séparation de domaine de la RFC 6962 (leaf = SHA-256(0x00 ∥ data), node = SHA-256(0x01 ∥ left ∥ right)), ce qui rend la défense contre la seconde préimage dans la démo réelle plutôt que décorative. C'est un outil pédagogique, pas une bibliothèque de production.

Où cela se situe par rapport à crypto-lab-merkle-vault

Deux labs de ce catalogue couvrent les arbres de Merkle, et ils ne sont pas interchangeables. Celui-ci porte sur la sémantique des preuves : d'où doit provenir la racine de confiance, les octets exacts hachés à chaque étape, la vérification par index de la RFC 9162, les preuves de cohérence avec les attaques par historique qu'elles détectent, les constructions de seconde préimage et CVE-2012-2459 cassées sur la page, et une entrée réelle épinglée de Certificate Transparency vérifiée contre le log Argon de Google. crypto-lab-merkle-vault porte sur la structure : l'arbre dessiné avec des connecteurs parent-enfant, une preuve unique parcourue un niveau à la fois avec les nœuds correspondants qui s'illuminent à mesure que le hash courant remonte, et les racines recalculée et engagée déclarées égales octet par octet au sommet. Commencez par là pour ce qu'est un arbre de Merkle et comment se déroule une remontée ; venez ici pour ce qu'une preuve vous autorise et ne vous autorise pas à croire.

Quand l'utiliser

  • Pour prouver à moindre coût qu'un élément appartient à un grand ensemble engagé. Une preuve fait ⌈log₂ n⌉ hashes, si bien qu'une seule transaction peut être démontrée comme faisant partie d'un bloc de millions d'éléments sans envoyer le bloc.
  • Pour détecter une altération par rapport à une racine de confiance. Si vous détenez déjà la racine, vous pouvez vérifier n'importe quelle feuille+preuve et rejeter tout ce qui ne recalcule pas vers elle.
  • Pour donner aux clients légers l'intégrité sans l'état complet. Les portefeuilles SPV et les clients sans état vérifient l'appartenance par rapport à la racine d'un en-tête au lieu de tout télécharger.
  • Pour rendre un journal vérifiablement en ajout seul. Certificate Transparency utilise exactement cette construction de la RFC 6962.
  • N'utilisez PAS une preuve de Merkle pour prouver la non-appartenance ou l'ordre à moins que l'arbre ne soit spécifiquement un arbre de Merkle trié/creux — une simple preuve d'inclusion ne dit rien sur ce qui est absent, et un arbre construit sans séparation de domaine est ouvert à la falsification par seconde préimage.

Démo en direct

systemslibrarian.github.io/crypto-lab-merkle-proofs

Ajoutez ou supprimez des blocs de données pour construire un arbre en direct, choisissez n'importe quelle feuille pour générer sa preuve d'inclusion, puis vérifiez-la — en recalculant la racine à partir de la seule feuille et de ses hachages frères. Vous pouvez avancer pas à pas ou animer le recalcul un hachage à la fois (en observant le hachage courant remonter l'arbre), déplier « show bytes » à n'importe quelle étape pour voir la préimage SHA-256 exacte (0x00 ∥ data pour les feuilles, 0x01 ∥ L ∥ R pour les nœuds), altérer la feuille ou inverser un bit dans n'importe quelle étape de la preuve et observer la vérification basculer vers REJECTED, et faire glisser un curseur pour voir les preuves rester logarithmiques jusqu'à 2³⁰ feuilles (et construire de vrais arbres de 256 à 4 096 feuilles). Une démo de modèle de confiance met en scène directement l'idée fausse classique : un prouveur qui fournit la feuille, la preuve, et la racine produit un triplet qui se vérifie — et ne prouve rien. Deux démos de sécurité vous permettent d'activer/désactiver la séparation de domaine RFC 6962 pour faire réussir puis échouer la falsification par seconde préimage, et de comparer la duplication des nœuds impairs de Bitcoin à la promotion RFC 6962 pour reproduire la collision de racine CVE-2012-2459. Les preuves de cohérence (append-only) ont leur propre visualisation — l'ancien arbre ombré à l'intérieur du nouveau, avec les racines de sous-arbres de la preuve marquées — ainsi que trois attaques par altération de l'historique (réécriture, suppression, réordonnancement) que la preuve détecte. Enfin, la page vérifie une véritable entrée Certificate Transparency : un certificat Let's Encrypt épinglé à l'index 1 234 567 890 du journal Argon2026h1 de Google (2,8 milliards de certificats), prouvé inclus avec 32 hachages grâce à la vérification basée sur l'index RFC 9162 — le même chemin de code que le reste du laboratoire. Des objectifs d'apprentissage, des invites « prédire puis révéler », des quiz d'auto-évaluation, des infobulles de glossaire, un tableau récapitulatif et des lectures complémentaires soutiennent l'apprentissage actif ; « Copy link to this tree » crée un lien profond vers n'importe quel état d'arbre pour des diapositives ou des devoirs.

Comment exécuter localement

git clone https://github.com/systemslibrarian/crypto-lab-merkle-proofs
cd crypto-lab-merkle-proofs
npm install
npm run dev

Il n'y a pas de variables d'environnement. Exécutez la suite de tests (vecteurs RFC 6962, allers-retours de preuves, rejet des altérations, l'attaque/défense par seconde préimage, les preuves de cohérence, le fuzzing contre une implémentation de référence indépendante, et la preuve CT réelle épinglée) avec npm test.

npm run test:a11y exécute la barrière navigateur (Playwright). e2e/claims.spec.ts pilote la vraie page et redérive chaque verdict à partir de ce que la page a affiché — INCLUDED uniquement lorsque la racine recalculée affichée est égale à la racine de confiance affichée, ROOTS COLLIDE uniquement lorsque les deux racines affichées sont égales, le titre d'efficacité à partir de sa propre arithmétique — et parcourt chaque chemin d'altération (feuille, bit de preuve, réécriture/suppression/réordonnancement du journal, l'inversion de bit du certificat CT) pour vérifier qu'il atteint le rejet, nomme la cause et se rétablit. e2e/a11y.spec.ts est le scan axe-core WCAG A/AA. Les deux s'exécutent en CI avant chaque déploiement Pages.

Enseigner avec cet outil

Voir TEACHING.md pour un guide destiné aux instructeurs : un déroulé de leçon de 50 minutes, des questions de discussion, les idées fausses que chaque section vise à déconstruire, et des prolongements sous forme de devoirs.

Une partie de la suite Crypto-Lab

L'une des 170+ démos navigateur en direct sur systemslibrarian.github.io/crypto-lab — couvrant de l'Atbash (600 av. J.-C.) aux NIST FIPS 203/204/205 (2024).


« Ainsi, que vous mangiez, que vous buviez ou quoi que vous fassiez, faites tout pour la gloire de Dieu. » — 1 Corinthiens 10:31

Télécharger l’outil