Reflections on Trusting Trust
Ken Thompson created the modern world. When he was given the Turning award in 1984 for that small accomplishment he gave a small speech that proves that you can't trust him. At all.
It's a simple three step proof.
- If a compiler has a backdoor that infects programs, we'll only find the hack by reading the source code of the compiler.
- Compilers are compiled by a programming language, just like any other program.
- If the compiler has a backdoor that infects a compiler, we cannot find hack by reading the source code, not after it has been bootstrapped.
It's a beautiful little paper that will make you question the whole notion of security.
Since this is an exercise divorced from reality, the usual vehicle was FORTRAN. Actually, FORTRAN was the language of choice for the same reason that three-legged races are popular.