August 23, 2026
I Hacked My Dorm's Laundry Machines.
The cipher broke in 2008; the assumption didn't.
A few weeks ago, I came across a post on reddit about a device called a Flipper Zero: a little orange multitool that reads and writes NFC tags, RFID badges, that kind of thing. I talked myself into ordering one, not because I had a specific use in mind but because it seemed like a cool piece of hardware to tinker with. It arrived a few days later and mostly sat charging on my desk for a week doing nothing while I occasionally read through the documentation. The first real thing I pointed it at, once I’d run out of the built-in demo tags, was the laundry card sitting in my wallet.
I’ve tapped that same white card against the same plastic sensor every week for two years, and I never once thought of it as a security system. It doesn’t ask to be thought about. Tap it, it beeps, then the machine runs. I assumed there was a wall behind that beep. Cards you can’t clone, a chip that keeps its secrets, a balance only one machine in the building was ever allowed to touch. I didn’t know the specifics, and that felt like the point. Someone else had solved this so I wouldn’t have to. When it came time to look inside the card, I expected to spend maybe twenty minutes confirming there was nothing to look or poke at, and then go to bed.
Twenty minutes in, I wasn’t confirming anything. I was reading a PDF from a security conference, dated years before I was old enough to do my own laundry, describing a critical flaw in the exact chip sitting in the card on my desk. Not a similar chip. This one. I kept scrolling, assuming I’d eventually hit the part where someone fixed it. I didn’t. The paper just ends, the way academic papers end, with a conclusion and a list of references, and the card it’s describing was still being handed to me, in this exact configuration, in 2026.
Two things were true at once, and it took me a minute to notice they were the same thing. The first was that the keys guarding my card’s memory weren’t secret at all. Two of them are sitting in a public dictionary of keys maintained by hobbyists on GitHub, not because someone leaked this specific vendor’s secret, but because these same six bytes show up often enough across other, unrelated systems that cataloguing them became worth someone’s time. The second was that even the sectors whose keys weren’t handed to me for free didn’t stay closed for long, because the cipher protecting all sixteen of them had been openly, mathematically broken almost two decades earlier. Neither fact, on its own, explained why this was still true in my hand tonight. Put together, they did. Nobody treated a widely known key as something worth replacing for the same reason nobody rushed to react to the 2008 papers: both required someone to imagine a customer who’d actually go looking. For a long time, on average, there wasn’t one.
Here’s a more technical description for those who are curious:
A MIFARE Classic 1K card has 16 sectors, 4 blocks each, and each sector is gated by a pair of six-byte keys before a reader can get in.
The card’s balance lives inside a “value block” located somewhere in one of those 16 sectors (not exactly, but for ease of explanation). These are 16 bytes that store a number, its own bitwise inverse, and a repeat of the number again, specifically so the reader can detect a corrupted write rather than accept it.
My card’s first two sectors opened on the first try, using values pulled from the dictionary I mentioned earlier. That got me a foothold, and a foothold was enough: “Nested attacks”, a technique for deriving the rest of a card’s keys from a single known key, offline, using nothing but the card itself, was published by a team at Radboud University in 2009. It exists because the cipher underneath all 16 sectors (a 48-bit scheme called Crypto-1) had already been reverse-engineered the year before that, in 2008, by a researcher named Karsten Nohl, who took the chip apart and reconstructed the algorithm from its own silicon.
The whole thing only took around 3 hours. I didn’t discover anything new. All I did was spend the evening researching the topic, modifying a public nested attack tool to work with the nonces I collected, then edit the bytes on the card after gaining access to its data.
So the “wall” guarding my balance was never really cryptographic, at least not since I was 5. Even where the keys weren’t public defaults, the cipher behind them had a known, practical break, free tools, over a decade of maturity. And once I could see the balance itself, the reader wasn’t checking who put that number there, it was checking that the number was internally consistent, which is the kind of check that catches a card that got too close to a magnet, not a person who edited the bytes on purpose. Every layer of this system assumes the person on the other end of the tap is a customer and nothing else. The cipher being broken and the access model being trusting aren’t two separate weaknesses stacked on top of each other. They’re the same bet, made twice, at two different layers of the same design.
That’s the actual discovery, and it isn’t about the cipher.
It’s that the whole design only works if the person holding the card is exclusively a customer. Someone who wants clean laundry, not someone who also owns a device that speaks the card’s language. Every gate I walked through was real in the sense that it existed. None of them were built to stop someone willing to look, because the system was never designed around that person showing up. It was designed around the person who taps and leaves, which, for most of this system’s life, was functionally everyone.
A lot of vending machines still work the same way. Hotel door locks, elevator access cards, older transit fare tickets in my city, the list goes on. They’re all making a small, quiet bet that the population holding the object and the population capable of reading it are two different groups, and will stay that way.
A system designed for honest people with dumb cards works exactly as long as the cards stay dumb and the people stay uninterested. Neither of those is a security property. They’re a demographic bet, and it’s a bet that gets worse odds every year as the population of people who are both curious increase and tools like these become more and more accessible, whether or not the cipher underneath it ever changes.
The math stopped holding in 2008. The assumption sitting on top of it kept working for a lot longer, on the strength of nothing but who usually doesn’t check, and that’s a much shakier thing to be resting on than anyone building these systems seem to have accounted for.