A few years ago, I dreamed that I was walking into a giant underground bunker with a bunch of other scientists. Through crystal-clear dream logic, I immediately understood that I had joined an NSA project to re-implement modern computer hardware and software, starting with individual transistors.
In my dream, the NSA was worried about a Thompson-style backdoor in their hardware, even the hardware they designed and implemented themselves. Even visual inspection of the hardware design wouldn’t necessarily reveal the backdoor, because the hardware itself would build the backdoor into any new hardware designed. (This isn’t feasible in exactly this form in reality, but it was a dream, give me a break.)
So obviously, we had to re-implement computers from scratch, starting with something too small to have a backdoor – a single transistor. The thing I remember most vividly from this dream is how happy I was, getting to bootstrap computers from the transistor up – yay! Even if I have to live underground for 5 years!
I was reminded of this dream while reading Charlie Stross’s plea for crazy military ideas he hadn’t already heard of. Someone pointed out the DARPA Trust in Integrated Circuits program (described in IEEE as “The Hunt for the Kill Switch“). Some American general noticed that we were building fighter jets out of foreign computer chips and convened a panel which concluded that we had to spend a lot of money trying to find backdoors and kill switches in hardware.
One can consider the F00F bug to be a version of the kill switch. If Intel can’t find unintentional “kill switches” in its chips, what hope does some DARPA contractor have of finding an intentionally created and hidden kill switch or backdoor? I think my dream (literally and figuratively) of a secret underground NSA computing bootstrap project is more feasible, or at least more likely to succeed.
Does anyone have interesting links or ideas related to detecting (or planting) Thompson-style backdoors? One could imagine the techniques would be transferable in some way to hardware, given that hardware design is done almost entirely in hardware description languages – software, of a sort.