質問: cコンパイラを最初からコンパイルし、次にunix / linuxを最初からコンパイルする方法 私が米国/英国以外の大規模なサービス組織で働いているとしましょう。 unixサーバーとlinuxサーバーを幅広く使用しています。 この記事 を通して読むと、cコンパイラにバックドアを挿入するのは簡単であり、そのコンパイラでコンパイルされたすべてのコードにもバックドアが含まれると述べています。 nsa/gchqのバックドア/弱点をすべての暗号化方法、ハードウェアおよびソフトウェアに組み込むという義務に関する最近のリークを考えると、コンパイラーは現在、重大な障害点です。潜在的にすべての標準的なunix/linixディストリビューションが侵害される可能性があります。不正な政府によってシステム、データ、およびお客様のデータが侵害されることは許されません。この情報を踏まえて、信頼できるコンパイラをゼロから構築したいと思います。次に、そのコンパイラを使用してオペレーティングシステムとアプリケーションをソースコードから構築できるように、構築するための安全な基盤があります。質問ソースコードからコンパイラをコンパイルして(一見鶏卵のように見える)、信頼できるunix/linuxディストリビューションを最初からコンパイルするための正しい(そして安全な方法)は何ですか?私や他の人がセキュリティの欠陥についてソースコードを読んで理解する能力を持っていると想定できます。そのため、ソースコードはコンパイルする前に最初に吟味されます。私が実際に求めているのは、このコンパイラを最初から安全に作成するための作業ガイドであり、カーネル、osやアプリケーションの他の部分のコンパイルに使用できます。そのスタックで実行されているオペレーティングシステムまたはアプリケーションに信頼を置く場合、セキュリティスタックはベースレベルで開始する必要があります。はい、私はそれが構築されているときにコンパイラにいくつかのマイクロコードを挿入するハードウェアのバックドアがあるかもしれないことを理解しています。米国で設計されていないチップを使用する場合を除いて、現時点でできることはほとんどありません。最初にこのレイヤーを並べ替えて、バックドアが挿入される前に古いコンピューターで構築できると想定します。ブルース・シュナイアーが言うように: "エンジニアに私はこう言います:私たちはインターネットを構築しました、そして私たちの何人かはそれを破壊するのを助けました。今、私たちのそれら自由を愛する人はそれを修正しなければなりません。」追加リンク: http://nytimes.com/2013/09/06/us/nsa-foils-much-internet-encryption.html?pagewanted=all&_r= http://theguardian.com/commentisfree/2013/sep/05/government-betrayed-internet-nsa-spying
回答: 信頼できるコンパイラが必要な場合は、 compcert プロジェクトのような学術研究を見ることができます。これは、inria(フランスのit公的研究所)によって構築されたコンパイラーであり、「認定」されるように設計されています。