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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-21009-ECDSA-Nonce-Reuse-in-IoT-Firmware-Signing — Образовательная Python-симуляция, демонстрирующая повторное использование nonce в ECDSA при подписании прошивок IoT, показывающая, как злоумышленник может восстановить приватные ключи из двух подписей, использующих одно и то же значение k. | Kitploit
Инструменты/GitHubGitHub/george0papasotiriou/cve-2026-21009-ecdsa-nonce-reuse-in-iot-firmware-signing
Безопасность IoTАнализ уязвимостейЭксплуатацияКриптографияОбучение и ОбразованиеАнализ Прошивок
GitHubgeorge0papasotiriou/cve-2026-21009-ecdsa-nonce-reuse-in-iot-firmware-signing

CVE-2026-21009-ECDSA-Nonce-Reuse-in-IoT-Firmware-Signing

Образовательная Python-симуляция, демонстрирующая повторное использование nonce в ECDSA при подписании прошивок IoT, показывающая, как злоумышленник может восстановить приватные ключи из двух подписей, использующих одно и то же значение k.

Популярное

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

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

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

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

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

CVE-2026-21009 – Повторное использование nonce ECDSA при подписании прошивки IoT

Программный код (Python)

root@kitploit:~
# ecdsa_nonce_reuse_sim.py - Signing firmware with repeated nonce (k)
import ecdsa, hashlib

sk = ecdsa.SigningKey.generate(curve=ecdsa.NIST256p)
vk = sk.get_verifying_key()

# Sign two different firmware images with same nonce due to bad RNG
# In reality, this can happen with deterministic k if seed is constant.
# We'll simulate by using the same k manually (not possible with ecdsa library, so fake it)
def sign_with_fixed_k(sk, msg_hash, k):
    # Simplified: return signature (r,s) using fixed k (for educational purposes)
    # Not actual ECDSA, but shows concept.
    r = (k * ecdsa.NIST256p.generator).x()
    k_inv = pow(k, -1, ecdsa.NIST256p.order)
    s = k_inv * (int.from_bytes(msg_hash, 'big') + r * sk.privkey.secret_multiplier) % ecdsa.NIST256p.order
    return ecdsa.ecdsa.Signature(r, s)

msg1 = b"Firmware v1.0"
msg2 = b"Firmware v2.0"
h1 = hashlib.sha256(msg1).digest()
h2 = hashlib.sha256(msg2).digest()

# Use same k
k = 123456789
sig1 = sign_with_fixed_k(sk, h1, k)
sig2 = sign_with_fixed_k(sk, h2, k)

print("Two signatures with same k. Attacker can recover private key from (r,s1) and (r,s2).")

CVE-2026-21009 – Повторное использование nonce ECDSA при подписании прошивки IoT

Severity: Critical

Обзор

IoT-устройство подписывает обновления прошивки с помощью ECDSA, но из-за слабого генератора случайных чисел один и тот же nonce (k) используется повторно для двух подписей. Злоумышленник, наблюдающий обе подписи, может вычислить закрытый ключ и подписать вредоносную прошивку.

Детали уязвимости

  • Тип: Восстановление криптографического ключа
  • Воздействие: Полный обход аутентификации прошивки.
  • Корневая причина: Повторное использование nonce нарушает ECDSA: при наличии двух подписей с одним и тем же k закрытый ключ может быть выведен алгебраически.

Демонстрация эксплуатации

Запустите симуляцию:

root@kitploit:~
pip install ecdsa
python ecdsa_nonce_reuse_sim.py

Скрипт демонстрирует создание двух подписей с одним и тем же k. Реальный злоумышленник восстановил бы ключ, используя формулу k = (h1 - h2) / (s1 - s2), а затем d = (s1*k - h1) / r.

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