
# Vault-App für das DC34-Badge
vault-Anwendung[!WARNING] Wenn du deine eigene Firmware auf dein Badge lädst, wird der Light-Encryption-Key gelöscht und dein Badge wechselt in den Entwicklermodus.
HINWEIS: Dieses Repo ist jetzt verwaist und wird bald archiviert, da es in xous-core zusammengeführt wurde. Es existierte nur im bunnie-GitHub-Repository, weil es vor der Konferenz privat sein musste; jetzt, da es öffentlich ist, wird es als Teil von xous-core gepflegt. Bitte richte alle zukünftigen PRs an xous-core. Der Tetris-PR wird schließlich als separate App migriert, daher bleibt das Repo aktiv, bis diese Aufgabe erledigt ist.
Dies ist die vault-Anwendung, wie sie für Defcon34 angepasst wurde.
Sie bietet die Interaktivität des Badges während der Konferenz, nämlich das Anpassen der Lichter durch das Scannen verschlüsselter QR-Codes zwischen Badges.
Es gibt ein paar Easter Eggs, die hier im Code versteckt sind, falls du danach suchen möchtest, und vielleicht sogar eine Flagge, die du erbeuten kannst, wenn du genau genug hinschaust.
Es wird die folgende Verzeichnisstruktur vorausgesetzt:
.
├── dc34-api
├── dc34-console
├── dc34-vault
└── xous-core
Und dass diese Befehle von innerhalb des xous-core-Verzeichnisses ausgeführt werden. Voraussetzungen:
cargo xtask install-toolkit innerhalb des xous-core-Repos ausecho "===== 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
Wenn das Kernmodul mit dem Badge-Träger verbunden ist, wechselt das Modul standardmäßig in den „Konferenzmodus", der das Defcon-Logo anzeigt, abwechselnd mit einem Bild deiner Wahl, wenn du eines über https://github.com/bunnie/dc34-image hochlädst.
Du kannst Lichtmuster mit anderen Badges „mischen", indem du QR-Codes scannst. Die Lichtmuster werden mit einem gemeinsamen, über die gesamte Population geteilten Schlüssel verschlüsselt – wenn du diesen Schlüssel extrahieren kannst, kannst du effektiv ein „Seeder" für beliebige Lichtmuster sein. Anfangs hat jedoch jedes Badge einen begrenzten Farbbereich, und der einzige Weg, dein Badge bunter zu machen, besteht darin, mit jemandem zu interagieren, der die gewünschten Farben besitzt.
Die Interaktion läuft wie folgt ab:
Weitere Details zum kryptografischen Austausch findest du in defcon_scheme.md.
Der aktuelle Plan ist, einen Teil des gemeinsamen Schlüssels preiszugeben, damit jeder, der seinen muskulösen ASIC-Cracker vorführen möchte, einen Versuch beim Brute-Forcing des Schlüssels unternehmen kann. Wenn bis zum Ende der Veranstaltung niemand den Schlüssel per Brute-Force erzwungen oder extrahiert hat, werden genügend Bits preisgegeben, sodass ein Brute-Force mit einer High-End-Desktop-GPU und einem Tag Aufwand machbar sein sollte.
Sobald du die Konferenz verlassen hast, kannst du das klare Kunststoff-Kernmodul abnehmen, indem du die beiden Schrauben auf der Rückseite des Moduls entfernst. Ein Paar Ersatzschrauben und eine Silikonkappe sind in deinem Badge-Kit enthalten, um die Löcher zu verschließen, die durch das Abnehmen vom Badge-Träger entstehen.
So abgenommen kannst du dein Badge über USB an einen Computer anschließen und es als 2FA- (FIDO2-) Token verwenden. Es unterstützt auch das Speichern von TOTPs und Klartext-Passwörtern durch das Scannen von QR-Codes. Die QR-Codes werden durch die Installation dieser Browser-Erweiterung generiert. Die QR-Codes kodieren die aktuelle Zeit. Da das Gerät keine interne Batterie hat, musst du einen dieser QR-Codes scannen, wenn du das Gerät anschließt, um die aktuelle Zeit zu setzen, falls du die TOTP-Funktion nutzen möchtest.
Firmware-Updates erhältst du unter https://ci.betrusted.io/releases/latest/baochip/dc34-badge/latest.zip. Die ZIP-Datei muss in die drei enthaltenen Dateien (xous.uf2, swap.uf2, loader.uf2) extrahiert werden, bevor sie auf das Gerät kopiert wird!
So führst du ein Update durch:
Dieser letzte Boot-Schritt ist erforderlich, um teilweise geschriebene Sektoren auf die Festplatte zu spülen; das Ausschalten des Geräts ohne Booten kann dazu führen, dass ein Teil des letzten Sektors verloren geht, abhängig vom Betriebssystem.