2009-04-23 9 views
11

私はトンプソンのトロイの木馬コンパイラ(彼の1984 ACMチューリング賞受賞スピーチ「Reflections On Trusting Trust」で説明)のより良い理解を把握しようとしている、とこれまでのところ、これは私がそれを理解する方法である:「オリジナルをトンプソンのトロイの木馬コンパイラ

Unixのログインプログラムは、rootが指示したログインとパスワードを受け入れます。システムを書いた人だけが知っている特定のパスワードを受け入れるため、システムにrootとしてログインすることができます。

これは正しい概念ですか?私は全体のコンセプトを理解すれば100%確信しているわけではありません。

誰かが明確にすることができれば、それは助けになります。

(もブルース・シュナイアーCountering "Trusting Trust"を参照してください)

+0

おそらく信頼できる信頼のためのACMページにリンクする必要がありますか? – dmckee

答えて

15

できちんとした書き込みアップを発見しました。

変更は、ログインプログラムにコンパイルされたスーパーパワフルなパスワードを追加して、ルートアクセスを許可します。ログインプログラムを読むときにこのコードが表示されないようにするために、ログインプログラムのこのセクションを認識するようにコンパイラーに変更を加えました。私はその元のフォームをコンパイルし、スーパーパワフルなパスワードバイナリにコンパイルします。次に、コンパイラでこのコードの存在を隠すために、最初の変更が追加され、変更されたフォームが出力されるコンパイラのセクションを認識するコンパイラに対する別の変更が必要です。

変更されたコンパイラコードが存在すると、コンパイラをコンパイルして標準的な場所にインストールし、ログインプログラムとコンパイラのソースコードを変更しない形式に戻すことができます。インストールされたコンパイル済みコンパイラは、変更されていないログインプログラムを取得し、安全でない形式を出力します。同様に、インストールされたコンパイラは、修正されていないコンパイラのソースコードを独創的なものにコンパイルします。いずれかのソースコードを調べる者は、何も珍しいことではないことに同意するでしょう。

もちろん、どちらのプログラムのソースコードも、変更されたコンパイラがそれを認識しなくなるまで進化するまで動作します。修正されたコンパイラのソースコードはもはや存在しないので、それを維持することはできず、(コンパイラとログインが進化し続けると仮定すると)最終的に安全でない出力が生成されなくなる。

2

はい、それは右の概念です。それ以上にはあります。変更されたコンパイラも、変更されていないコンパイラソースを同様に変更された自身のコピーにコンパイルする必要があります。これには、そのソースの些細なバリエーションも含まれます。これは、基本的には、変更されたコンパイラが、停止問題。

+1

これは...面白い、混乱した方法で。それは不可能な何かを主張しますが、正しい答えとして受け入れられます。それはトムソン自身が論理煙の雲の中で消えてしまうように思えるでしょう。 – unwind

+0

あなたが「問題を止める」と言うまであなたは私を抱きました。 – Alex

関連する問題