[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Is Open Source safe? [Linux Weekly News]
Vlad Stesin <[email protected]> writes:
>I don't quite understand the logic behind this. The fact that the
>program's source is available is itself a proof that there are no
>backdoors. Anyone can read the source code and make sure it's OK.
>
You're missing the point that Thompson and Ritchie made in
"Reflections on Trusting Trust." To summarize:
1. They added a Trojan Horse function to the login sources.
2. They added code to the C compiler that recognized the
login source code and inserted the Trojan Horse function,
then they erased it from the login sources.
3. They added code to the C compiler that recognized the
C compiler sources and added the code noted in step 2 above.
4. They then erased the source from the C compiler.
Now,
1. If you recompile login using a distributed C compiler, the
Trojan Horse will be added to the executable, but will not
be visible in the source.
2. If you recompile the C compiler using an existing C compiler,
it will add the Trojan Horse insertion function, but this,
too, will not be visible in the C sources.
I might have missed a step or two here, but you probably get
the picture. The only way to detect the Trojan Horse is to
read the executables. In the actual case, if I remember
correctly, Ken and Dennis didn't try to conceal all their
tracks, so the Trojan Horse was visible in the global symbol
(nm) listing.
>From personal experience, I am aware of at least one manufacturer
of safety-critical computer-controlled hardware who read the
assembly language output by the compiler to validate the actual
machine instructions that were generated.
Martin Minow
[email protected]