99%のユーザーと同様に、既製のバイナリからUbuntuをインストールします。
これらのバイナリが実際にUbuntuの元のソースコードからのものであることを確認するにはどうすればよいですか?
NSA /誰かがUbuntuまたはLinode(私のVPSプロバイダー)と協力してバイナリを混乱させていないことを確認するのは良いことです。バイナリを検証できた場合、最初にそれらを呼び出すことは簡単であるため、最初にこれを試みることはほとんどありません。
99%のユーザーと同様に、既製のバイナリからUbuntuをインストールします。
これらのバイナリが実際にUbuntuの元のソースコードからのものであることを確認するにはどうすればよいですか?
NSA /誰かがUbuntuまたはLinode(私のVPSプロバイダー)と協力してバイナリを混乱させていないことを確認するのは良いことです。バイナリを検証できた場合、最初にそれらを呼び出すことは簡単であるため、最初にこれを試みることはほとんどありません。
回答:
ソースコードをダウンロードして、自分でコンパイルできます。しかし、待ってください。CanonicalがNSAと共同作業を行った場合、キーロガーやリモートでアクティブにできるものを許可するコードを入力した可能性があるため、最初にそのソースコードを確認する必要があります。
そう...
しかし、待ってください- コンパイラを信頼できますか?
「Ubuntuがそう言うから」を受け入れたくない場合は、受け入れられません。
Ubuntuは、自分のマシンでパッケージをコンパイルする便利な手段を提供します。ただし、ダウンロードしたバイナリパッケージの実行可能ファイルがそのソースコードから取得されたことを確認する方法はありません。Ubuntuが使用する署名プロセスは、サードパーティがパッケージを改ざんするリスクを大幅に減らしますが、ダウンロード可能なソースコードに反映されないコンパイルの前に有害なコードが追加されていないことを信頼する必要があります。
理由は、コンパイルされたパッケージにあるものとまったく同じバイナリを入手するのが非常に難しいためです。これらは正確なコンパイラのバージョン、そのオプションに依存し、おそらくバイナリにコンパイルされたパスまたは環境変数もあります。そのため、コンパイル時に正確に同じバイナリを取得できなくなり、ダウンロードしたバイナリが「検証」されます。
実際、正確にこの問題の周りに小さな研究コミュニティがあります-コンパイルを再現可能にする方法。
とはいえ、ダウンロードしたバイナリと自己コンパイルされたバイナリを手動で比較すると、追加/変更されたコードを検出できるため、バイナリとソースコードを提供する誰かがバイナリ内の何かを隠すのは危険です。
しかし、すでに述べたように、コンパイラを信頼するという問題もあります...
2つの異なるマシンでまったく同じバイナリを作成するのは難しい問題です。TORプロジェクトは、ビルドの通常の一部としてこれを行います。彼らがそれを行う方法 の説明があります。DebianとFedoraには、このディストリビューションでこれを可能にするプロジェクトがあるようですが、まだ初期段階です。これは、Ubuntuの中で行われるすべての作業があるように見えるしていません。
Ubuntuバイナリパッケージを再現するには、作成された環境を可能な限り再現する必要があります。それから始めるには、まず、このパッケージがどこでどのようにコンパイルされているかを調べる必要があります。その情報は簡単に見つけられるようには見えません。
UbuntuのMD5で確認します。ファイルから取得したMD5がUbuntuによって公開されたMD5と一致する場合、その間のバイナリを改ざんした人はいません。
それは大変な仕事です。ここでの信頼はこの複雑な仕事よりも優れていると思います。しかし、あなたは信頼できますか?
オープンソースソフトウェアは、ユーザーがコードを変更するのに多くの自由を与えるため、誰も信頼できません。
この目的のためのシナリオを作成してUbuntu == source code
みましょう、私はそれを確認したいのですが、待ってくださいパッケージをソースと比較しようとしないのはなぜですか?
しかし、私にとっては、タイムスタンプ、環境が異なるため、マイナーな異なる結果が得られますが、ソースコードからではないことを証明しています!
apt-get source
か、それを使用して独自のコードをコンパイルできます。この質問を参照してください:askubuntu.com/questions/28372/…–