
App Vault per il badge DC34
vault per DC34[!WARNING] Caricare il proprio firmware sul badge cancellerà la chiave di crittografia leggera e farà entrare il badge in modalità sviluppatore.
NOTA: questo repository è ora orfano e verrà presto archiviato, poiché è stato integrato in xous-core. Esisteva nel repository github di bunnie solo perché doveva rimanere privato prima della conferenza; ora che è pubblico, verrà mantenuto come parte di xous-core. Si prega di indirizzare tutte le future PR a xous-core. La PR di Tetris verrà infine migrata come applicazione separata, quindi il repository rimarrà attivo finché non verrà completata quella attività.
Questa è l'applicazione vault personalizzata per Defcon34.
Fornisce l'interattività del badge durante la conferenza, ovvero la personalizzazione delle luci tramite la scansione di codici QR crittografati tra i badge.
Ci sono un paio di easter egg nascosti nel codice qui, se vi interessa cercarli, e forse anche una flag da catturare se guardate abbastanza attentamente.
Presuppone la seguente struttura di directory:
.
├── dc34-api
├── dc34-console
├── dc34-vault
└── xous-core
E che questi comandi vengano eseguiti da dentro la directory xous-core. Prerequisiti:
cargo xtask install-toolkit all'interno del repository xous-coreecho "===== 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
Quando il modulo core è accoppiato al carrier del badge, il modulo è impostato per impostazione predefinita in modalità "conferenza", che mostra il logo Defcon, alternato a un'immagine a scelta se la caricate utilizzando https://github.com/bunnie/dc34-image.
Potete "mescolare" i pattern luminosi con altri badge scansionando i codici QR. I pattern luminosi sono crittografati utilizzando una chiave comune e condivisa su tutta la popolazione: se riuscite a estrarre quella chiave, potete effettivamente diventare un "seeder" per pattern luminosi arbitrari. Tuttavia, inizialmente ogni badge ha una gamma di colori limitata, e l'unico modo per rendere il vostro badge più colorato è interagire con qualcuno che possiede i colori che desiderate.
L'interazione procede come segue:
Per maggiori dettagli sullo scambio crittografico, consultate defcon_scheme.md.
Il piano attuale è di divulgare una parte della chiave condivisa, così che chiunque voglia mettere in mostra il proprio possente cracker ASIC possa tentare di forzare la chiave con brute force. Se nessuno avrà forzato o estratto la chiave entro la fine dello show, verranno divulgati abbastanza bit da rendere un attacco brute force fattibile con una GPU desktop di fascia alta e un giorno di lavoro.
Una volta lasciata la conferenza, potete staccare il modulo core in plastica trasparente rimuovendo le due viti sul lato posteriore del modulo. Un paio di viti di ricambio e un cappuccio in silicone sono inclusi nel kit del badge per sigillare i fori lasciati dal distacco dal carrier del badge.
Una volta staccato, potete collegare il badge a un computer tramite USB e usarlo come token 2FA (FIDO2). Supporta anche la memorizzazione di TOTP e password in chiaro tramite la scansione di codici QR. I codici QR sono generati installando questa estensione del browser. I codici QR codificano l'ora corrente. Poiché il dispositivo non ha una batteria interna, dovrete scansionare uno di questi codici QR quando collegate il dispositivo per impostare l'ora corrente se intendete utilizzare la funzione TOTP.
Ottenete gli aggiornamenti del firmware su https://ci.betrusted.io/releases/latest/baochip/dc34-badge/latest.zip. Il file zip deve essere estratto nei tre file costituenti (xous.uf2, swap.uf2, loader.uf2) prima di copiarlo sul dispositivo!
Per eseguire un aggiornamento:
Questo ultimo passaggio di avvio è necessario per scaricare su disco eventuali settori scritti parzialmente; spegnere il dispositivo senza avviarlo può causare la perdita di una parte dell'ultimo settore, a seconda del sistema operativo.