Reflections on Trusting Trust
Unix was one of the first operating systems to be popular in the entire industry that allowed professionals to do all kind of stuff, an interesting program that Ken talks about is a self replicating program, where executing the program generates a new exact copy of itself, but is not necessarily copying it self. The first one were created in Fortran, but this programs can be built in multiple programming languages, including C and many others.
The chicken and egg problem is a relatively hard to solve problem for a lot of situations, where you need "A" (an chicken) to create "B"(an egg), but this "B" only can be created by "B",. So you have a contradiction that in theory can not be solved. Fortunately, for a compiler, you can use a temporary "B" and use it to generate "A", then use "A" to replace "B". In this example, the compiler for C is written in C. Where new tools and functionality is added to the compiler every time it compiles itself, we could say that the compiler is "learning". This is used to introduce "bugs" (in this case is basically malware) that injects it self only in specific situations and this demonstrates something really bad. Programmers can't do anything alone, we use all the time stuff built by others, we use an operating system built by someone else, compilers built by someone else and modify code written by someone else. If we tried to do anything from scratch, we would all be doing nothing useful and productive. There is a lot of microcode built in the silicon of our processors and we can't access to that code, we are trusting this companies without having a single clue about what they are doing with our information in the lowest level where there is zero access. Hacking it's a serius crime, but if being caught its so hard and it's done by the biggest companies in the world, the only thing we can do it's accept it.
Comentarios
Publicar un comentario