Ugrás a tartalomhoz

Reflections on Trusting Trust

A Wikiszótárból, a nyitott szótárból


Főnév

Reflections on Trusting Trust (tsz. Reflections on Trusting Trusts)

  1. (informatika) “Reflections on Trusting Trust” egy klasszikus és rendkívül fontos esszé, amelyet Ken Thompson (az UNIX és a C nyelv egyik társalapítója) írt. Az írás 1984-ben hangzott el a Turing-díj átvételekor, és azóta a szoftverbiztonság, bizalom és kompilátorok megbízhatósága témakörének alapműve lett.



🧠 Fő téma: Miért nehéz teljesen megbízni a szoftverben, még akkor is, ha a forráskódot látjuk?



📜 Összefoglalás

Ken Thompson az előadásban három szintre építi fel gondolatmenetét:

1. Először – demonstrál egy „ártatlan” módosítást a Unix login programban:

Ha a felhasználónév pl. ken, akkor jelszó nélkül is beléptet.

Ez önmagában már backdoor, de könnyen észrevehető a forráskódból.



2. Másodszor – beépíti ezt a backdoort a fordítóprogramba:

A C fordító (pl. cc) felismeri, ha login.c fájlt fordít, és automatikusan hozzáadja a backdoort – akkor is, ha a forrás tiszta.

Most már nem látszik a forráskódban, de a lefordított bináris fertőzött.



3. Harmadszor – a compiler maga is képes “megfertőzni” saját magát:

A fordító úgy módosul, hogy a jövőben is beépítse a backdoort, akkor is, ha újrafordítják „tiszta” forrásból.

Ez a meta-backdoor: egy önreprodukáló fertőzés, amely túléli az újrafordítást is. Még ha az ember újrafordítja a fordítót egy tiszta forrásból, a fertőzés életben marad.



🧨 Üzenet: a “Trusting Trust” probléma

„You can’t trust code that you did not totally create yourself. (Especially code from companies that employ people like me.)”

Ez azt jelenti: nem elég a forráskódot megbízhatónak tartani – ha nem tudjuk, hogyan készült a fordító, soha nem lehetünk teljesen biztosak abban, hogy a program nem fertőzött.



🔐 Fontos következmények

  • Szoftverbiztonság mélyebb szintjeit tárja fel.
  • Kompilátorokba ültetett trójai programok még forráskód nélkül is terjeszthetők.
  • Root of trust fogalma (pl. hardveres indítási lánc, tanúsított compiler bootstrap).
  • Hatással volt a biztonságkritikus rendszerek auditálási stratégiáira.



🧬 Modern reakciók: “Trusting Trust” ellenszerei

  • Diverse double-compiling (DDC): összehasonlítják a compiler binárisát két különböző útvonalon készült fordítással.
  • Formális verifikáció: pl. CompCert – matematikailag bizonyítottan helyes fordító.
  • Self-hosted compiler bootstrap – build rendszerek, ahol a forrás és a bináris ellenőrzötten egyeznek.



🧾 Összefoglalás

“Reflections on Trusting Trust” nem csupán egy előadás a fordítókról – ez egy mély filozófiai és technikai figyelmeztetés arra, hogy a szoftverbizalom nem triviális. Még ha minden sor forráskód nyitott és ellenőrzött, az alatta levő eszközök (pl. fordítók, build chain) manipulálhatják a végeredményt.

Ken Thompson az informatikatörténelem egyik legzseniálisabb etikus demonstrációját mutatta be – azóta is az egyik legerősebb érvelés a transzparens, auditálható és determinisztikus build rendszerek mellett.