Archive for April 2009
Ken Thompson once inserted a backdoor in the Unix login program by modifying the C compiler to compile a version of itself that would include the backdoor creating code. He could then delete the backdoor from the C compiler’s source code. Since the creation of the backdoor was now part of the machinery of compilation, the binary executable C compiler, it did not need to be part of the C compiler’s source.
Once upon a time I did a PhD. Tradition in Holland has it that you can add a list of “positions” to your thesis, often unrelated to the PhD work, that you are willing to defend during the Q and A section of the PhD ceremony. I included a position that said something along the lines of “Our DNA does not contain all information necessary for our procreation”. What this alludes to is that there are bound to be “backdoors” in the machinery that creates us from our DNA.
The original source code for Ken Thompson’s C compiler backdoor could be deleted, because it was now part of the machinery. Similarly, it seems likely that the machinery that creates our proteins from our DNA will have evolved in such a way that parts of it no longer need to be coded for by the DNA directly. The information to recreate the machinery is now partly in the machinery itself, and over time the DNA encoding for those parts will have disappeared since the evolutionary pressure to keep that DNA intact is no longer there.
We start out life with DNA from our parents, but we also receive the protein building machinery from our mothers in the fertilized egg. Over time that machinery has evolved to great complexity. Our C compiler has many backdoors that it depends on for its proper functioning. And like Ken Thompson’s backdoor, there is no need to keep its DNA around. Our procreation needs not only our source code, but also that complex backdoor-rigged machinery that turns our source code into us.