Cコンパイラを最初からコンパイルしてからUnix / Linuxを最初からコンパイルする方法

Cコンパイラを最初からコンパイルしてからUnix / Linuxを最初からコンパイルする方法

私がアメリカ/イギリス以外の大規模なサービス組織で働いているとしましょう。私たちはUNIXとLinuxサーバーを広く使用しています。

最後まで読んでこの記事Cコンパイラにバックドアを挿入するのは簡単で、コンパイラを使用してコンパイルされたすべてのコードにもバックドアが含まれていることに言及しました。現在、すべての暗号化方法、ハードウェア、およびソフトウェアのバックドア/弱点を承認するNSA / GCHQの最近の漏洩に照らして、コンパイラは重要な障害点です。すべての標準のUNIX / Linixディストリビューションが破損する可能性があります。私たちは、当社のシステム、データ、および顧客データが不良政府によって侵害されることを許可することはできません。

この情報を使用して、最初から信頼できるコンパイラを構築し、セキュリティベースを確保し、そのコンパイラを使用してソースからオペレーティングシステムとアプリケーションを構築できます。

質問

ソースからコンパイラを構築し(一見鶏や卵が必要な場合)、信頼できるUnix / Linuxディストリビューションを最初からコンパイルする正しい(そして安全な)方法は何ですか?

私または他の人がソースコードのセキュリティ上の欠陥を読んで理解する能力があると仮定することができるので、コンパイルする前にまずソースコードを確認します。私が本当に望むのは、カーネル、オペレーティングシステム、およびアプリケーションの他の部分をコンパイルするために使用できるこのコンパイラを最初から安全に生成するための作業ガイドです。

スタック上で実行されているオペレーティングシステムまたはアプリケーションに自信を持っている場合は、セキュリティスタックを基礎レベルで起動する必要があります。はい、コンパイラがビルドされると、一部のマイクロコードをコンパイラに挿入できるハードウェアバックドアがある可能性があることがわかります。米国以外の場所で設計したチップを使用する以外に、現時点ではできることはありません。まず、このレイヤーを並べ替えてバックドアを挿入する前に、古いコンピューターでそれを構築できるとします。

ブルース・シュネルが言ったように、「私はエンジニアにこう言います。私たちはインターネットを作り、私たちのいくつかはそれを妨げるのを助けました。

追加リンク:

ベストアンサー1

AFAIKは安全を完全に保証する唯一の方法はアセンブリ言語(または直接ディスクの修正)。これでコンパイラがバックドアを挿入しないことを確認できます。これは実際にコンパイラを完全に削除するので効果的です。

ここでコンパイラを使用して、最初からGNUツールチェーンなどをブートストラップできます。その後、カスタムツールチェーンを使用してコンパイルできます。最初からLinuxシステム。

作業を容易にするために、C(または他の言語)で書かれた2番目の中間コンパイラを持つことができます。したがって、コンパイラAをアセンブリとして作成し、そのコンパイラをC / C ++ / Python / Brainfuck /何でも再構築してコンパイラBを取得し、コンパイラAを使用してコンパイルします。次に、コンパイラBを使用してgccと友達をコンパイルします。

おすすめ記事