Reflections on Trusting Trust
Főnév
Reflections on Trusting Trust (tsz. Reflections on Trusting Trusts)
- (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, halogin.cfá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.
- Reflections on Trusting Trust - Szótár.net (en-hu)
- Reflections on Trusting Trust - Sztaki (en-hu)
- Reflections on Trusting Trust - Merriam–Webster
- Reflections on Trusting Trust - Cambridge
- Reflections on Trusting Trust - WordNet
- Reflections on Trusting Trust - Яндекс (en-ru)
- Reflections on Trusting Trust - Google (en-hu)
- Reflections on Trusting Trust - Wikidata
- Reflections on Trusting Trust - Wikipédia (angol)