Назад к обновлениям
UpdatedSep 3, 2026

dc34-vault — Updated!

Приложение Vault для бейджа DC34

Поделиться

Приложение vault для DC34

[!WARNING] Загрузка собственной прошивки на ваш бейдж приведёт к стиранию ключа лёгкого шифрования и переведёт бейдж в режим разработчика.

УВЕДОМЛЕНИЕ: этот репозиторий теперь осиротел и вскоре будет заархивирован, так как он объединён в xous-core. Он существовал в репозитории bunnie на GitHub только потому, что должен был быть приватным до конференции; теперь, когда он стал публичным, он будет поддерживаться в составе xous-core. Пожалуйста, направляйте все будущие PR в xous-core. PR с Tetris со временем будет перенесён как отдельное приложение, поэтому репозиторий останется активным, пока эта задача не будет выполнена.

Это приложение vault, адаптированное для Defcon34.

Оно обеспечивает интерактивность бейджа во время конференции, а именно настройку подсветки путём сканирования зашифрованных QR-кодов между бейджами.

В коде здесь спрятано несколько пасхальных яиц, если вам захочется их поискать, и, возможно, даже флаг, который можно захватить, если поискать достаточно усердно.

Сборка

Предполагается следующая структура каталогов:

 .
 ├── dc34-api
 ├── dc34-console
 ├── dc34-vault
 └── xous-core

И что эти команды выполняются изнутри каталога xous-core. Предварительные требования:

  • Последняя версия Rust
  • Выполните cargo xtask install-toolkit внутри репозитория xous-core
echo "===== Building Console ====="
(
    cd ../dc34-console &&
    cargo build --release --target riscv32imac-unknown-xous-elf --features board-baosec --features oem-baosec-lite --features bao1x --features utralib/bao1x &&
) || {
    echo "dc34-console build failed!"
    exit 1
}

echo "===== Building Vault ====="
(
    cd ../dc34-vault &&
    cargo build --release --target riscv32imac-unknown-xous-elf --features board-baosec &&
) || {
    echo "dc34-vault build failed!"
    exit 1
}

cargo xtask baosec-lite ../dc34-console/target/riscv32imac-unknown-xous-elf/release/dc34-console~flash ../dc34-vault/target/riscv32imac-unknown-xous-elf/release/dc34-vault \
    --no-timestamp --feature usb --kernel-feature debug-proc --no-verify

Режим конференции

Когда основной модуль соединён с носителем бейджа, модуль по умолчанию переходит в «конференц-режим», который показывает логотип Defcon, чередующийся с изображением по вашему выбору, если вы загрузите его с помощью https://github.com/bunnie/dc34-image.

Вы можете «смешивать» световые узоры с другими бейджами, сканируя QR-коды. Световые узоры зашифрованы с использованием общего ключа, разделяемого всей аудиторией — если вы сможете извлечь этот ключ, то фактически сможете стать «сидером» для произвольных световых узоров. Однако изначально каждый бейдж имеет ограниченную цветовую гамму, и единственный способ сделать ваш бейдж более красочным — взаимодействовать с тем, у кого есть нужные вам цвета.

Взаимодействие происходит следующим образом:

  1. Нажмите левую или правую кнопку. Появится QR-код, раскрывающий nonce.
  2. Попросите «донора» цвета отсканировать ваш QR-код, нажав среднюю кнопку на его бейдже.
  3. Отсканируйте полученный QR-код на бейдже донора.
  4. Примите или отклоните новый световой узор.

Более подробную информацию о криптографическом обмене см. в defcon_scheme.md.

Текущий план — утечка части общего ключа, чтобы любой желающий продемонстрировать свой мощный ASIC-взломщик мог попробовать подобрать ключ перебором. Если к концу выставки никто не подберёт или не извлечёт ключ, будет утечка достаточного количества битов, чтобы перебор стал возможен на высокопроизводительном настольном GPU за один день усилий.

Режим токена

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

Отсоединив модуль, вы можете подключить бейдж к компьютеру через USB и использовать его как 2FA-токен (FIDO2). Он также поддерживает хранение TOTP и паролей в открытом виде путём сканирования QR-кодов. QR-коды генерируются установкой этого расширения для браузера. QR-коды кодируют текущее время. Поскольку устройство не имеет внутренней батареи, вам нужно будет отсканировать один из этих QR-кодов при подключении устройства, чтобы установить текущее время, если вы планируете использовать функцию TOTP.

Обновления

Получите обновления прошивки по адресу https://ci.betrusted.io/releases/latest/baochip/dc34-badge/latest.zip. Zip-файл необходимо распаковать в три составных файла (xous.uf2, swap.uf2, loader.uf2) перед копированием на устройство!

Для выполнения обновления:

  1. Удерживайте любую кнопку при подключении модуля к компьютеру. Это приведёт к тому, что устройство определится как USB-накопитель.
  2. Скопируйте файлы loader.uf2, xous.uf2 и swap.uf2 на устройство.
  3. Если вы работаете в Linux, обязательно размонтируйте диск, чтобы убедиться, что кэшированные файлы действительно записаны на устройство.
  4. Нажмите любую кнопку для загрузки устройства.

Этот последний шаг загрузки необходим для сброса частично записанных секторов на диск; выключение устройства без загрузки может привести к потере части последнего сектора в зависимости от ОС.

Категории