107 karma · joined March 7, 2014
Depending on what the system is used for, how valuable breaking into it would be, and how long you expect it to be up, you might need to rotate the key every so often, by having A and B agree on a new key. This is a little more complicated; since B now needs to check C's HMACs against two keys (the original and the new one) until every message signed by the original key has expired.
A and B just need to share the HMAC key. Handling (and changing) this key can be tricky; if an attacker acquires it, the entire scheme falls over.
http://www.range-r.com/FAQ/index.htm
The RF bands they're using apparently don't go through metal so well.
Here's a fizzbuzz(char*, int) function that can accept any number up to 99999999, and will put the correct FizzBuzz result into the provided buffer (either the printed number, "Fizz ", " Buzz", or "FizzBuzz"). As promised, it's loop-free, and as a bonus it should be constant-time as well:
Assembly: http://pastebin.com/EnJEuxnp compiled from this C: http://pastebin.com/PCQQQ2cn [edit] generated from this Python: http://pastebin.com/ijr3thE2
Pastebinned since it's about 700 assembly instructions.
Unrolling the loop and printing to the screen are left as exercises...
It really does feel like Apple blacklisted older machines from using Continuity; only third-party kext hacking can get things started again.
[1] https://github.com/dokterdok/Continuity-Activation-Tool/
They evict cache lines using the CLFLUSH x86 instruction, which I believe is unprivileged.
Maybe you trust StartSSL with your private key, maybe you don't, but in either case not giving them your private key is preferable.
We think it's likely that they went through the same sort of evaluation process that put the Secure 1000 into service, and that they should be publicly reviewed by independent researchers.
We'll be giving a talk on this work tomorrow at the USENIX Security, but I'm happy to answer any questions you have here before then.
We didn't try meat due to the mess, but it would almost certainly work as well!
(Technically, in this X-ray energy spectrum, the amount of backscatter is related to the "effective Z" of the material, where Z is the atomic number of the elements involved. Materials made from lighter elements like carbon and oxygen? Backscatters well. Heavy elements like iron? Absorbs x-rays.)
As for procurement, we purchased our machine on eBay from a private seller who purchased it from a U.S. government surplus auction.
The Secure 1000s have been removed; the L3 ProVisions are still deployed in airports.
We'll be giving a talk on this work tomorrow at the USENIX Security conference, but I'd be happy to answer questions here before then!
We only had a person in front of the X-ray scanner a few times, to minimize exposure. Most of the time we scanned a radiological "phantom", which is designed to look exactly like a human under the X-ray spectrum.
Floating point, as IEEE standard? Beautiful. Elegant. One of my favorite technical standards. Other than the +0/-0 thing, it's perfect.
Floating point, as implemented? Ugh. You've got processors which implement some subset of x87, MMX, SSE, SSE2, SSE4, and AVX, all of which handle floating point slightly differently. Different rounding modes, different precisions, different integer conversions. Calling conventions differ between x32 and x64. Using compiler flags alone on Linux x64, you can make 'printf("%g", 1.2);' print 0. Figuring out the intermediate precision of your computations takes a page-sized flowchart: http://randomascii.files.wordpress.com/2012/03/image6.png
It's a mess.
Disclosure of critical vulnerabilities in implantable devices is far more fraught than your normal critical software 0-day. These devices require surgery for replacement, and a small number of those surgeries will have possibly fatal complications. The cost of immediately replacing all existing vulnerable devices could literally be measured in lives. (And that's even assuming that the device manufacturer fixed the problem!)
Implantable software is already a very tricky area, and there's no signs that it'll get any easier.
[1] Pacemakers and Implantable Cardiac Defibrillators: Software Radio Attacks and Zero-Power Defenses, http://www.secure-medicine.org/public/publications/icd-study...