Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
crypto-lab-merkle-proofs — Браузерная демонстрация Merkle-дерева — постройте дерево, сгенерируйте доказательства включения, пересчитайте корневой хэш хэш за хэшем и воспроизведите атаки второго прообраза из RFC 6962 и CVE-2012-2459. Настоящий SHA-256. Без бэкенда. | Kitploit
Инструменты/GitHubGitHub/systemslibrarian/crypto-lab-merkle-proofs
Анализ хэшейКриптографияОбучение и ОбразованиеПодобранные РесурсыУчебные Маршруты и КурсыЛаборатории и Практика
GitHubsystemslibrarian/crypto-lab-merkle-proofs

crypto-lab-merkle-proofs

Браузерная демонстрация Merkle-дерева — постройте дерево, сгенерируйте доказательства включения, пересчитайте корневой хэш хэш за хэшем и воспроизведите атаки второго прообраза из RFC 6962 и CVE-2012-2459. Настоящий SHA-256. Без бэкенда.

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
РепозиторийСайт
601 день назадЕщё не проверено

crypto-lab-merkle-proofs

Что это такое

Это интерактивная демонстрация деревьев Меркла и доказательств включения Меркла, построенная на SHA-256 через WebCrypto API браузера. Дерево Меркла хеширует набор блоков данных в единый корневой хеш, который фиксирует их все сразу; доказательство включения — это короткий список хешей-соседей, позволяющий любому заново вывести этот корень из одного листа. Модель безопасности чисто хеш-основанная: она опирается на стойкость SHA-256 к коллизиям и второму прообразу, без каких-либо ключей или подписей. Хеширование следует доменному разделению RFC 6962 (leaf = SHA-256(0x00 ∥ data), node = SHA-256(0x01 ∥ left ∥ right)), и именно это делает защиту от второго прообраза в демонстрации настоящей, а не декоративной. Это обучающий инструмент, а не production-библиотека.

Место рядом с crypto-lab-merkle-vault

Две лаборатории в этом каталоге посвящены деревьям Меркла, и они не взаимозаменяемы. Эта — о семантике доказательств: откуда должен браться доверенный корень, какие именно байты хешируются на каждом шаге, верификация на основе индексов по RFC 9162, доказательства согласованности и атаки на историю, которые они ловят, конструкции второго прообраза и CVE-2012-2459, разбираемые прямо на странице, а также закреплённая реальная запись Certificate Transparency, проверяемая против лога Argon от Google. crypto-lab-merkle-vault — о структуре: дерево, нарисованное с соединителями от родителя к потомку, одно доказательство, проходимое уровень за уровнем, с подсветкой соответствующих узлов по мере роста текущего хеша, и пересчитанный и зафиксированный корни, сверяемые побайтово на вершине. Начните там, чтобы понять что такое дерево Меркла и как устроен один подъём; приходите сюда за что доказательство даёт и что не даёт вам права считать истинным.

Когда это использовать

  • Чтобы дешёво доказать принадлежность одного элемента большому зафиксированному множеству. Доказательство — это ⌈log₂ n⌉ хешей, поэтому можно показать, что одна транзакция входит в блок из миллионов, не передавая сам блок.
  • Чтобы обнаружить подмену относительно доверенного корня. Если у вас уже есть корень, вы можете проверить любой лист+доказательство и отвергнуть всё, что не пересчитывается в него.
  • Чтобы дать лёгким клиентам целостность без полного состояния. SPV-кошельки и stateless-клиенты проверяют принадлежность относительно корня из заголовка вместо загрузки всего.
  • Чтобы сделать лог проверяемо append-only. Certificate Transparency использует ровно эту конструкцию RFC 6962.
  • НЕ используйте доказательство Меркла для доказательства не-принадлежности или порядка, если только дерево не является специально отсортированным/разреженным деревом Меркла — обычное доказательство включения ничего не говорит об отсутствующем, а дерево, построенное без доменного разделения, открыто для подделки второго прообраза.

Живая демонстрация

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

Добавляйте или удаляйте блоки данных, чтобы строить дерево в реальном времени, выбирайте любой лист для генерации его доказательства включения, а затем проверяйте его — пересчитывая корень только из листа и хешей его соседей. Вы можете пошагово проходить или анимировать пересчёт по одному хешу за раз (наблюдая, как текущий хеш поднимается по дереву), раскрывать «показать байты» на любом шаге, чтобы увидеть точный прообраз SHA-256 (0x00 ∥ data для листьев, 0x01 ∥ L ∥ R для узлов), изменять лист или переворачивать бит на любом шаге доказательства и наблюдать, как проверка переключается на REJECTED, а также масштабировать ползунком, чтобы увидеть, что доказательства остаются логарифмическими вплоть до 2³⁰ листьев (плюс построение реальных деревьев на 256–4 096 листьев). Демонстрация модели доверия напрямую инсценирует классическое заблуждение: доказывающий, который предоставляет лист, доказательство и корень, выдаёт тройку, которая проходит проверку — и ничего не доказывает. Две демонстрации безопасности позволяют включать и отключать доменное разделение RFC 6962, чтобы заставить подделку второго прообраза сначала удаться, а затем провалиться, и сравнить дублирование нечётного узла в Bitcoin с продвижением по RFC 6962, чтобы воспроизвести коллизию корней CVE-2012-2459. Доказательства согласованности (append-only) получают собственную визуализацию — старое дерево затенено внутри нового, с отмеченными корнями поддеревьев из доказательства — плюс три атаки на историю (перезапись, удаление, переупорядочивание), которые доказательство выявляет. Наконец, страница проверяет реальную запись Certificate Transparency: закреплённый сертификат Let's Encrypt с индексом 1 234 567 890 в логе Google Argon2026h1 (2,8 миллиарда сертификатов), доказанно включённый с помощью 32 хешей с использованием проверки на основе индекса по RFC 9162 — тот же путь кода, что и в остальной части лаборатории. Учебные цели, подсказки «сначала предскажи, потом открой», тесты для самопроверки, всплывающие подсказки глоссария, сводная таблица и дополнительная литература поддерживают активное обучение; «Скопировать ссылку на это дерево» создаёт глубокую ссылку на любое состояние дерева для слайдов или заданий.

Как запустить локально

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

Здесь нет переменных окружения. Запустите набор тестов (векторы RFC 6962, круговые проверки доказательств, отклонение подделок, атака/защита от второго прообраза, доказательства согласованности, фаззинг против независимой эталонной реализации и закреплённое реальное доказательство CT) командой npm test.

npm run test:a11y запускает браузерный шлюз (Playwright). e2e/claims.spec.ts управляет реальной страницей и заново выводит каждый вердикт из того, что напечатала страница — INCLUDED только когда пересчитанный показанный корень совпадает с показанным доверенным корнем, ROOTS COLLIDE только когда два напечатанных корня равны, заголовок об эффективности — из собственной арифметики — и проходит каждый путь подделки (лист, бит доказательства, перезапись/удаление/переупорядочивание журнала, инверсия бита сертификата CT), чтобы убедиться, что он приводит к отклонению, называет причину и восстанавливается. e2e/a11y.spec.ts — это сканирование axe-core WCAG A/AA. Оба запускаются в CI перед каждым развёртыванием на Pages.

Обучение с его помощью

См. TEACHING.md — руководство для преподавателя: план занятия на 50 минут, вопросы для обсуждения, заблуждения, которые призван разрушить каждый раздел, и домашние расширения.

Часть набора Crypto-Lab

Одна из 170+ живых браузерных демонстраций на systemslibrarian.github.io/crypto-lab — от Атбаша (600 г. до н. э.) до NIST FIPS 203/204/205 (2024).


«Итак, едите ли вы, пьёте ли или иное что делаете, всё делайте во славу Божию». — 1 Коринфянам 10:31

Скачать инструмент