hardware6 min read
The DEF CON 34 Badge Is an Open-Source FIDO2 Key — and It's Already Been Cracked
bunnie Huang's Baochip-1x made its first major production run as ~27,000 DEF CON 34 badges: a removable, physically-inspectable RISC-V module with an OLED, a QR camera, and a FIDO2 token mode. Within two weeks, someone extracted the shared light-game key.
DEF CON 34's badge runs bunnie Huang's Baochip-1x: an open-source RISC-V SoC (CERN Open Hardware Licence v2, Weakly Reciprocal) in a transparent package you can image with infrared light, running the pure-Rust Xous OS. Unscrew two screws (T6 star/Torx) and it becomes a FIDO2 + TOTP + plaintext-password token for your own stack. The light-game's shared key K0 has already been extracted, a browser tool now forges valid gene exchanges, and DEF CON's own badge page admits 'there's already a patch.'
DEF CON 34's badge is a computer. Not "a badge with some electronics in it": a removable, physically inspectable RISC-V computer with an OLED, a QR-scanning camera, and a light show, which you can unscrew from the conference carrier (two screws, a T6 star/Torx bit) and plug into a USB port as a FIDO2 security token. And it's built on the Baochip-1x, bunnie Huang's open-source silicon, which made its first major distribution as roughly 27,000 of these badges at DEF CON 34 (Aug 6–9, 2026, Las Vegas).
What it is, and where you'd get one//
The badge came with the DEF CON 34 human ticket. Spare badges were $100 at Registration on conference Sunday (Aug 9), from 10am, while supplies lasted, and DEF CON said leftovers would be sold online soon. As of this writing that online drop hasn't landed, so the honest status is "you had to be there," plus watch the shop.
The specs, straight from WIRED's feature and the official badge page:
- Baochip-1x SoC: a 350 MHz RISC-V core (open implementation), 4× 700 MHz PicoRV32 IO cores, 2 MB SRAM, 4 MB RRAM. "On the edge of being able to run Linux," in Huang's words. It already runs MicroPython, and there are C and Rust SDKs.
- Removable clear core module: a 128×128 OLED, face buttons (the middle one activates the camera), and 8 perimeter LEDs. The camera is intentionally nearsighted, "great at scanning QR codes and pretty much bad at everything else," and by default uses only black-and-white data with no photo storage, per DEF CON's ban on surreptitious recording.
- OS: Xous, a pure-Rust microkernel from beTrusted.io with virtual memory and message passing.
- Openness: chip source at github.com/baochip/baochip-1x under the CERN Open Hardware Licence v2 (Weakly Reciprocal), a published hardware reference and block diagram, a hi-res reference die image from Fail Sec Labs, IRIS tooling for taking your own chip images, and Baobit reproducible builds so you can rebuild the firmware from source and compare hashes against what's actually on your badge.
The "mostly open" caveat is real: the Baochip-1x shares its wafer run with Crossbar, and the same die carries a Crossbar microprocessor (proprietary ARM core) that's disabled in the Baochip, since Huang doesn't hold distribution rights. Some low-level TSMC 22nm physical-design elements stay proprietary too. Huang's framing, via WIRED: "very, very far beyond any [other] security-oriented chip." Mostly is not fully.
How it actually works//
Conference mode is a light-breeding game. Each badge carries a light "genome" (the color palette and motion pattern for the ring LEDs), and you get more colors by mating with other badges: one badge shows a nonce QR code, the donor badge (middle button) scans it and returns an encrypted light-pattern QR, and you accept or roll back. The exchange is AES-256-GCM-SIV under a shared key, K0, provisioned into every badge; new patterns are encrypted to the requesting badge's nonce, and your starting palette is deliberately limited. The only way to become more colorful is to trade with people who have the colors you want.
The crypto is documented in the repo (defcon-scheme.md), and the shared key was designed to be crackable on purpose: at the documented 48 bits, it's roughly one day on an RTX 4090 at the estimated 3 billion keys/second (the scheme doc's own estimate: "a single RTX4090 should be able to crack 48 bits of key in about 1 day's time").
Token mode is the post-con payoff. Detach the core from the carrier, plug it into USB: it becomes a FIDO2 key that also stores TOTPs and plaintext passwords. Registration is QR-based. A browser extension (Chrome and Firefox) turns the current URL and time into a scannable code, and because the module has no battery, you scan one of those time-encoding QR codes on first plug-in to sync the TOTP clock. The encrypted key/value store is the PDDB ("Plausibly Deniable Database"), and it's where the badge's provisioned secrets, including K0, live.
Transparency is the feature. The package is built so infrared light can pass through the back of the silicon, letting you image the die and compare it against the published reference instead of trusting the fab. Huang demoed the technique at the conference; per Tech Times, the DIY version is an ~$180 infrared camera modification. That's the whole point of the exercise: you don't have to trust that the silicon is what the design says it is.
Firmware updates are a USB mass-storage .uf2 drop (loader/xous/swap), and the two most common ways to brick a badge are documented on the help page: not typing sync on Linux, and not pressing a button to commit the files after copying. Loading your own code puts the badge in developer mode, a one-way door that erases the provisioned secrets, which kills the light game "at least until the light encryption key is extracted... I expect that won't take too long," per the badge page.
The K0 is out (already)//
The public hunt opened during the conference, and within two weeks Andrew Mohawk published the writeup that makes the K0-extraction threat concrete:
- The foothold: an unsigned loader jump first found by nastea1 — the loader jumps to a first word it never verifies.
- K0: rather than tripping developer mode, Mohawk booted a temporary Xous image and read K0 from the PDDB without any persistent write. The shared key, out of a sealed, never-reflashed badge. With K0 you can be a seeder: inject arbitrary light patterns into any badge.
- Flag1, a separate provisioned secret: via a keystore IPC bug.
- IFR: an extension of nastea1's instruction-fetch reader.
- The payoff: "Gene Mate," a browser tool that produces valid, accepted gene-exchange reply QRs — you can breed lights on someone else's badge without standing next to them.
K0 has been released in Gene Mate, and the source lives at AndrewMohawk/dc34-badge. Independent researchers have published their own finds — verified QR parser bugs and serial secret leaks (thehinac/dc34_badge) and no-firmware LED hacks through the sanctioned BIO uploader (noodlemctwoodle/dc34-badge). DEF CON's own help page now carries a "Found a secret key? Other 0-days? ... drop a note to [email protected]" section, and its firmware section admits: "You know the drill: vulnerabilities are found, vulnerabilities are patched. And yes, there's already a patch."
One repo note before you star things: dc34-vault, the badge app source, is now orphaned and will be archived; it's merged into xous-core (PRs go there, the Tetris app is still pending migration).
The honest take//
- It's a hobby chip, not a security appliance. 350 MHz, 2 MB SRAM. Huang's own estimate: it should shrug off attacks in the tens-of-thousands-of-dollars range; a lab with millions and hardware-analysis capability could probably beat it.
- "Mostly open" is doing real work in that sentence. The Crossbar core on the same die is disabled, not absent, and TSMC's 22nm physical-design IP stays closed.
- Developer mode is a one-way door that erases your secrets. The badge page is upfront about it, but "reversible" is not on the list.
- No battery means a QR time-sync ritual before TOTP works on each cold plug-in. Minor, but it's a ritual.
- You probably didn't have to be there. The $100 spare was an in-person, Sunday-morning, while-supplies-last thing, and the online drop is unconfirmed.
- It doesn't replace your YubiKey for an enterprise MFA stack: no vendor attestation, no enterprise enrollment pipeline, one person's ecosystem. It's a verifiable second factor, which is a different value proposition.
The easter egg//
Detach the core from the carrier and what's left is, in the badge page's words, a bird on a board. bird.cheeso.io is running a photo contest of exactly that for 42 days from the end of con. Also: the official chip-community Discord link on the badge page expires Aug 30 — grab it while it's there.
Filed under
Sources
7 cited · 1 primary- defcon.org/html/defcon-34/dc-34-index.htmlReporting
- defcon.org/34bReporting
- github.com/bunnie/dc34-vaultPrimary
- wired.com/story/defcon-34-badge-baochip-andrew-bunnie-huangReporting
- andrewmohawk.com/2026/08/16/dc34-badge-hackinReporting
- techtimes.com/articles/322671/20260802/def-con-34-badge-features-first-verifiable-open-source-silicon-production-scale.htmReporting
- cheeso.io/defcon-34-badgeReporting