memo.xight.org

日々のメモ

Reflections on Trusting Trust - Ken Thompson のバックドア

Summary

Ken Thompson 氏は,1970年初頭にログイン名 kt でログインできるバックドアを仕込んでおいた.
氏が1984年に論文で発表されるまで,誰にも見破れなかった.

login.c にバックドアのコードを記述したら,すぐに見つかってしまう.
Cコンパイラが login.c をコンパイルするときにバックドアを仕込むようにする.

Cコンパイラは自分自身が self-compileされる際に,クラックコードを再挿入する.
このCコンパイラでコンパイルされたCコンパイラは,常に login.c にバックドアを仕込むコンパイラになる.

ソースコード上のクラック部分は元に戻して,バイナリとソースを一緒に配布すればOK.

Reference

ACM Classic: Reflections on Trusting Trust
http://www.acm.org/classics/sep95/

via

えびめも - 2004-04-13
http://www.ebimemo.net/diary/?date=20040413#p02

NAKAMURA Minoru's Diary - 2006-04-16
http://www.nminoru.jp/~nminoru/diary/2004/04.html#2004-04-16