Not siding with Keurig, but just out of curiosity, how would you to create a DRM scheme that can't be bypassed with this replay attack? Apparently [0] the DRM works by shining a light on an ink marking and registering the wavelength of the light reflected back.
I figure one simple scheme would be to 'burn' the key after it is read. i.e. physically disable the DRM ink by heat/perforation/other ink, so that once used, the signature ink cannot be reused. Curious what other HN-ers would come up with. And hoping Keurig doesn't get any ideas from this. ;)
They could have used thermo-sensitive ink (using same technology that fax paper used some time ago), on a hot cup it would have automatically destroyed itself. However, they very likely don't care about the replay hack.
The authentication scheme is there to prevent mass-manufacturing counterfeit cups. Hipsters who modify devices are below noise level on their bottom line (them bragging about sticking it to the Man is free advertisement for the brand so even if there were a loss on a machine it's hard to tell if there is a net loss or profit).
Cut power to the heat source/declaw the perforator/plug up the ink jet. I have physical access, after all.
Keurig is in the position that they can attach a number to each one of their coffee cups, and the machine will refuse to brew if the number doesn't prove the cup is authentic. If they give all the cups the same number, as they apparently have chosen here, than all anyone has to do is present that number again, and voila, the coffeemaker will execute whatever cup they feed it.
Maybe they get smart and give each and every cup a different password. Of course the machines have to recognize these passwords, so they have to start with a known list of length N, where N is the total number coffee cups they ever expect to sell for this line of machines. They put all these passwords through their favorite one-way function, stuff the hashes in a newline-delimited text file, and hope it fits in a few gigabytes. Now once the machine encounters a matching password, it brews one cup, but "crosses off" that password and won't brew for it again.
Instead of starting with each machine having the entire list of numbers, wouldn't it just be easier to read each number it encounters, store it and then check future numbers against the stored list? There are sooo many more numbers my machine will never see. Why keep them all stored in all machines? And if they are concerned about running out of numbers and repeating them, there could be a timestamp attached to each locally stored number and have them expire from the list after X months. The chances that a person would save a bunch of K-cup tops to use to bypass the DRM 6 months later is pretty slim.
AFAIK, the original reason for the DRM was to prevent other companies from selling K-cups, so it would need a way to validate each cup, not just prevent reuse.
Nice, this should work. Although you missed the part where it uploads the crossed off password to the cloud so you can't give your used cups to your buddy.
And hoping Keurig doesn't get any ideas from this.
If Keurig wanted to they could get plenty of ideas from the consumer printer industry, where cartridges have embedded chips in them. Apparently the latest models include some form of crypto too; the older ones were just an EEPROM and were fairly easy to defeat (http://eddiem.com/photo/CIS/inkchip/chip.html) But they should also keep in mind that despite all these countermeasures, plenty of refill kits/aftermarket cartridges/chip resetters/etc. continue to be available, so they're fighting a losing war.
When I was drinking coffee, I would usually brew through a K-cup twice in a row to get a larger cup of coffee. My v1.0 machine makes me open the lid and close it again to brew the second time. I guess that method would not work with your idea. That would anger me even more than this DRM already would.
I figure one simple scheme would be to 'burn' the key after it is read. i.e. physically disable the DRM ink by heat/perforation/other ink, so that once used, the signature ink cannot be reused. Curious what other HN-ers would come up with. And hoping Keurig doesn't get any ideas from this. ;)
[0] http://www.theverge.com/2014/6/30/5857030/keurig-digital-rig...