パブリックソースコードと比較してLinuxディストリビューションを確認するには?

パブリックソースコードと比較してLinuxディストリビューションを確認するには?

この質問は、ビルド成果物と署名を「信頼できるソース」(オペレーティングシステムメンテナンス担当者)まで追跡する方法に関するものではありません。私はこの質問をするDeepin Linuxディストリビューション覚えておいて、これらのいくつかはユーザーはISOイメージのダウンロードとインストールについて正当な懸念を抱いています。中国会社で製作・配布しました。

セキュリティ専門家がオペレーティングシステムの配布コードの膨大な部分をスキャンして整理することができますが、信頼できるすべての上流の依存関係を無視してもメンテナンス者がビルド中にパブリックコードベースの外で何か悪いことに陥っていないかどうか確信できますか?Ubuntuのようなよく知られているディストリビューションの場合でも、「信頼するが検証する」という考え方を持つことをお勧めします。

私が見た典型的な答えは」自分で作ってみてください!小規模なオープンソースアプリケーションやライブラリでは難しくないかもしれませんが、完全なLinuxディストリビューションの場合、このプロセスはDeepin OSをターゲットとするLinux初心者にとっては難しい作業です。これは絶対に不可能です。

理想的には、重要なオープンソースソフトウェアのすべてのリリースは、同じコミットとフックされた依存関係に基づいて構築されます。独立した当事者によって、実行可能ファイルのコマンドレベルで、これらのビルド内のすべての成果物を比較して実際に「同じ」であることを確認するツールがあります(タイムスタンプによる違いを無視)。

もしそうなら、そのようなツールは存在しますか?

ベストアンサー1

残念ながら、現在のソースコードのディストリビューションを自動的に確認する方法はありません。ただし、ある程度使用できるいくつかの中間結果があります。繰り返し可能なビルドプロジェクト主な原動力だ。

再現性とは、同じ入力を使用する能力を意味します。そして同じツール、同じ出力アーティファクトを生成します。様々な種類繰り返し可能なタスクを構築するプロジェクトに参加してください。これはある程度の再現性を可能にする。たとえば、次のようになります。

  • 多くの Debian パッケージは再現可能なので、同じソースパッケージと同じビルド環境 (コンパイラ、ビルド依存関係など) が与えられると、まったく同じパッケージが得られます。
  • Debian の公式 Docker イメージ繰り返し可能したがって、同じ参照パッケージを提供します(いいえソースコード)と同じビルドツールを使用すると、まったく同じルートファイルシステムを取得できます。

上記で作成された成果物のエンドユーザーの確認はまだできません。特に、ビルド環境を文書化するファイルがまだ公開されていないからです(私の知る限り)。しかし、それらは保存されているので、ある時点でこれが可能になります。

私はどんな「大規模」ディストリビューションも検証はどこかソースコードから配布メディア(ISOなど)までの再現性をサポートしていないと思います。道路には多くの障害物があります。

  • ただし、すべてのソフトウェアを繰り返し構築できるわけではありません。
  • 再現可能なアーティファクトにはビルド環境に関する「知識」が含まれ、リリース準備中に変更可能です(したがって、リリース検証には履歴の再構成が含まれます)。

今すぐは考えていない他の人もいるかもしれません。完全に再現可能な配布媒体をリリースするので、これは技術的に可能ですが、分配する再現可能。リリースが再現可能な方法でリリースされない場合、外部の当事者はそれを確認できません。 (これは外部監査の存在を妨げず、時には便利です。)

さまざまなものを見てくださいプロジェクトReproducible Builds Webサイトで引用したものの中には、それをより簡単にすることに焦点を当てています。全体的な。 Reproducible Buildsプロジェクト自体は多くのものをリリースします。ツールこれは、再現可能なアーティファクトを生成し分析するのに役立ちます。

再現性と検証の可能性がなくても、あなたの質問の1つは概ね解決されました。

メンテナンス者がビルド中にパブリックコードベースの外で何か悪いことに陥っていないかどうか確信できますか?

ほとんどのディストリビューション(Deepinについてはわかりません)は、独自のビルドインフラストラクチャに構築されたバイナリアーティファクトのみをリリースするため、メンテナンス担当者はパブリックコードベース(アーティファクトが文書化されている場所)の外に何も配置できません。これは、主な関心事である展開自体に対する暗黙の信頼を排除するのではなく、少なくともそのソースコードを公開することなく悪意のあるアーティファクトをリリースすることができる個々の管理者の能力を排除します。

ケントンプソンの古典""も参照してください。信頼に関する考え」、そしてコンパイラの信頼に関するフォローアップ研究;そして次の質問:

おすすめ記事