
DC34 बैज के लिए Vault ऐप
vault एप्लिकेशन[!WARNING] अपने बैज पर अपना खुद का फर्मवेयर लोड करने से लाइट एन्क्रिप्शन कुंजी मिट जाएगी और आपका बैज डेवलपर मोड में प्रवेश कर जाएगा।
सूचना: यह रिपॉजिटरी अब अनाथ (orphaned) है और जल्द ही संग्रहीत (archived) कर दी जाएगी, क्योंकि इसे अब xous-core में विलय कर दिया गया है। यह केवल bunnie github रिपॉजिटरी में इसलिए मौजूद था क्योंकि इसे सम्मेलन से पहले निजी रहना था, अब जब यह सार्वजनिक है, इसे xous-core के हिस्से के रूप में बनाए रखा जाएगा। कृपया सभी भविष्य के PR को xous-core पर भेजें। Tetris PR को अंततः एक अलग एप्लिकेशन के रूप में स्थानांतरित किया जाएगा, इसलिए रिपॉजिटरी तब तक सक्रिय रहेगी जब तक वह कार्य पूरा नहीं हो जाता।
यह Defcon34 के लिए अनुकूलित vault एप्लिकेशन है।
यह सम्मेलन के दौरान बैज इंटरैक्टिविटी प्रदान करता है, अर्थात्, बैजों के बीच एन्क्रिप्टेड QR कोड स्कैन करके लाइट्स को अनुकूलित करना।
यहाँ कोड में कुछ ईस्टर एग्स छिपे हुए हैं, यदि आप उन्हें खोजना चाहें, और शायद एक फ्लैग भी पकड़ने को मिल सकता है यदि आप पर्याप्त ध्यान से देखें।
निम्नलिखित निर्देशिका संरचना मानता है:
.
├── dc34-api
├── dc34-console
├── dc34-vault
└── xous-core
और यह कि ये कमांड xous-core निर्देशिका के अंदर से चलाए जाते हैं। पूर्वापेक्षाएँ:
xous-core रिपॉजिटरी के अंदर cargo xtask install-toolkit चलाएँ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 कोड स्कैन करके अन्य बैजों के साथ लाइट पैटर्न "मिक्स" कर सकते हैं। लाइट पैटर्न पूरी आबादी में साझा एक सामान्य कुंजी का उपयोग करके एन्क्रिप्ट किए जाते हैं - यदि आप उस कुंजी को निकाल सकते हैं, तो आप प्रभावी रूप से मनमाने लाइट पैटर्न के लिए "सीडर" बन सकते हैं। हालाँकि, शुरुआत में हर बैज में सीमित रंग सीमा होती है, और अपने बैज को अधिक रंगीन बनाने का एकमात्र तरीका उन लोगों के साथ बातचीत करना है जिनके पास वे रंग हैं जो आप चाहते हैं।
बातचीत निम्नानुसार आगे बढ़ती है:
क्रिप्टोग्राफ़िक एक्सचेंज के अधिक विवरण के लिए, defcon_scheme.md देखें।
वर्तमान योजना साझा कुंजी का एक हिस्सा लीक करने की है, ताकि जो कोई भी अपने शक्तिशाली ASIC क्रैकर का प्रदर्शन करना चाहता है, वह कुंजी को ब्रूट-फोर्स करने का प्रयास कर सके। यदि शो के अंत तक किसी ने भी कुंजी को ब्रूट-फोर्स या निकाला नहीं है, तो पर्याप्त बिट्स लीक किए जाएंगे ताकि एक उच्च-स्तरीय डेस्कटॉप GPU और एक दिन के प्रयास से ब्रूट फोर्स संभव हो सके।
एक बार जब आप सम्मेलन छोड़ देते हैं, तो आप मॉड्यूल के पीछे की ओर के दो स्क्रू हटाकर स्पष्ट प्लास्टिक कोर मॉड्यूल को अलग कर सकते हैं। आपके बैज किट में प्रतिस्थापन स्क्रू की एक जोड़ी और एक सिलिकॉन कैप शामिल है, ताकि बैज कैरियर से अलग होने पर बचे छेदों को सील किया जा सके।
इस प्रकार अलग किए गए मॉड्यूल को आप USB के माध्यम से कंप्यूटर से प्लग कर सकते हैं और इसे 2FA (FIDO2) टोकन के रूप में उपयोग कर सकते हैं। यह QR कोड स्कैन करके TOTP और सादे पाठ पासवर्ड संग्रहीत करने का भी समर्थन करता है। QR कोड इस ब्राउज़र एक्सटेंशन को स्थापित करके उत्पन्न किए जाते हैं। QR कोड वर्तमान समय को एन्कोड करते हैं। चूँकि डिवाइस में आंतरिक बैटरी नहीं है, यदि आप TOTP फ़ंक्शन का उपयोग करने की योजना बनाते हैं, तो डिवाइस को प्लग करते समय वर्तमान समय सेट करने के लिए आपको इनमें से एक QR कोड स्कैन करना होगा।
फर्मवेयर अपडेट https://ci.betrusted.io/releases/latest/baochip/dc34-badge/latest.zip पर प्राप्त करें। डिवाइस पर कॉपी करने से पहले ज़िप फ़ाइल को तीन घटक फ़ाइलों (xous.uf2, swap.uf2, loader.uf2) में निकाला जाना चाहिए!
अपडेट करने के लिए:
यह अंतिम बूट चरण आंशिक रूप से लिखे गए किसी भी सेक्टर को डिस्क पर फ्लश करने के लिए आवश्यक है; OS के आधार पर, बूट किए बिना डिवाइस को बंद करने से अंतिम सेक्टर का एक हिस्सा गायब हो सकता है।