العودة إلى التحديثات
UpdatedSep 3, 2026

dc34-vault — Updated!

تطبيق Vault لشارة DC34

مشاركة

تطبيق vault الخاص بـ DC34

[!WARNING] تحميل البرنامج الثابت الخاص بك على شارتك سيمسح مفتاح التشفير الخفيف وسيؤدي إلى دخول شارتك في وضع المطور.

ملاحظة: هذا المستودع أصبح الآن يتيمًا وسيتم أرشفته قريبًا، حيث تم دمجه في xous-core. لقد كان موجودًا في مستودع bunnie على GitHub فقط لأنه كان يجب أن يكون خاصًا قبل المؤتمر، والآن بعد أن أصبح عامًا، سيتم صيانته كجزء من xous-core. يرجى توجيه جميع طلبات السحب (PR) المستقبلية إلى xous-core. سيتم ترحيل طلب سحب Tetris في النهاية كتطبيق منفصل، لذا سيظل المستودع نشطًا حتى يتم إنجاز هذه المهمة.

هذا هو تطبيق vault كما تم تخصيصه لـ Defcon34.

يوفر التفاعل مع الشارة داخل المؤتمر، وبالتحديد، تخصيص الأضواء عن طريق مسح رموز QR المشفرة بين الشارات.

هناك بعض البيض المخفي (easter eggs) مدفون في الكود هنا، إذا كنت ترغب في البحث عنها، وربما حتى علم (flag) يمكنك التقاطه إذا بحثت بجدية كافية.

البناء

يفترض هيكل الدليل التالي:

 .
 ├── 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. أنماط الأضواء مشفرة باستخدام مفتاح مشترك موحد عبر جميع الشارات - إذا تمكنت من استخراج هذا المفتاح، يمكنك فعليًا أن تكون "باذرًا" (seeder) لأنماط أضواء عشوائية. ومع ذلك، في البداية كل شارة لديها نطاق ألوان محدود، والطريقة الوحيدة لجعل شارتك أكثر ألوانًا هي التفاعل مع شخص لديه الألوان التي ترغب فيها.

يتم التفاعل على النحو التالي:

  1. اضغط على الزر الأيسر أو الأيمن. سيظهر رمز QR يكشف عن قيمة nonce.
  2. اطلب من "مانح" لون الضوء مسح رمز QR الخاص بك عن طريق الضغط على الزر الأوسط في شارتهم.
  3. امسح رمز QR الناتج على شارة المانح.
  4. اقبل أو ارفض نمط الضوء الجديد الخاص بك.

لمزيد من التفاصيل حول التبادل التشفيري، راجع defcon_scheme.md.

الخطة الحالية هي تسريب جزء من المفتاح المشترك، بحيث يمكن لأي شخص يريد إظهار قوة كاسر ASIC الخاص به أن يحاول كسر المفتاح بالقوة الغاشمة. إذا لم يقم أحد بكسر المفتاح أو استخراجه بحلول نهاية العرض، فسيتم تسريب عدد كافٍ من البتات بحيث يصبح كسر القوة الغاشمة ممكنًا باستخدام وحدة معالجة رسوميات (GPU) مكتبية عالية المستوى ويوم واحد من الجهد.

وضع الرمز المميز (Token Mode)

بمجرد مغادرتك المؤتمر، يمكنك فصل الوحدة الأساسية البلاستيكية الشفافة عن طريق إزالة المسمارين على الجانب الخلفي من الوحدة. يتم تضمين زوج من المسامير البديلة وغطاء سيليكون في عدة شارتك لإغلاق الثقوب المتبقية من فصلها عن حامل الشارة.

بعد الفصل، يمكنك توصيل شارتك بجهاز كمبيوتر عبر 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، فتأكد من إلغاء تحميل (unmount) محرك الأقراص لضمان كتابة الملفات المخزنة مؤقتًا فعليًا إلى الجهاز.
  4. اضغط على أي زر لتشغيل الجهاز.

خطوة التشغيل النهائية هذه مطلوبة لتفريغ أي قطاعات مكتوبة جزئيًا إلى القرص؛ إيقاف تشغيل الجهاز دون تشغيله قد يؤدي إلى فقدان جزء من القطاع الأخير، اعتمادًا على نظام التشغيل.

الفئات