Dla wielu programistów i administratorów Linux / UNIX znany jest dokument Kena Thompsona w angielskim oryginalnym tytule p.t. „Reflections on Trusting Trust„. Ten wpis jest dla ciekawskich świata otwartego oprogramowania (ang. Open Source) i faktów na temat mocy idei stwórczych!

Refleksje o zaufaniu do zaufania – streszczenie wykładu Kena Thompsona (1984)
Ken Thompson, jeden z twórców systemu Unix, wygłosił ten wykład z okazji otrzymania Nagrody Turinga. Jego przesłanie jest proste, ale głębokie: nie można bezwarunkowo ufać oprogramowaniu – nawet jeśli jego kod źródłowy wygląda na bezpieczny.
Główne punkty wykładu
1. Samoreprodukujący się program
Thompson zaczyna od pokazania, że można napisać program, który generuje swój własny kod źródłowy. To wprowadzenie do bardziej złożonego eksperymentu z kompilatorami.
2. Złośliwa modyfikacja kompilatora
Następnie opisuje, jak można zmodyfikować kompilator języka C, by dodawał ukryty kod do programu login. Ten kod umożliwia dostęp do systemu bez hasła – czyli klasyczny „koń trojański”.
3. Zaszczepienie złośliwego kodu
Najbardziej niepokojący element: nawet jeśli usuniemy złośliwy kod ze źródła kompilatora, skompilowany kompilator nadal będzie dodawał „konia trojańskiego” – ponieważ sam został wcześniej zainfekowany. To pokazuje, że źródło nie wystarcza do weryfikacji bezpieczeństwa.
4. Zaufanie jako fundament
Thompson podkreśla, że cały system informatyczny opiera się na zaufaniu: do kompilatorów, bibliotek, systemów operacyjnych. Jeśli którykolwiek z tych elementów zostanie zainfekowany, może to pozostać niewykryte przez lata.
Kluczowy cytat
„Morał jest oczywisty. Nie możesz ufać kodowi, którego sam w pełni nie stworzyłeś.”
Znaczenie dla bezpieczeństwa
Ten wykład zapoczątkował nową erę myślenia o bezpieczeństwie oprogramowania. Pokazał, że:
- Audyt kodu źródłowego nie wystarcza.
- Narzędzia kompilujące mogą być źródłem zagrożeń.
- Potrzebne są metody niezależnej weryfikacji – np. kompilacja z wielu źródeł, replikacja binarna, analiza zachowania.