アップデートの安全な配信を組織化するためのフレームワークである TUF 1.0 が利用可能になりました

TUF 1.0 (更新フレームワーク) のリリースが公開され、更新を安全に確認してダウンロードするためのツールが提供されます。このプロジェクトの主な目標は、リポジトリやインフラストラクチャに対する典型的な攻撃からクライアントを保護することです。これには、デジタル署名を生成したり、リポジトリを侵害するためのキーにアクセスした後に作成された架空のアップデートの攻撃者による宣伝に対抗することも含まれます。このプロジェクトは Linux Foundation の後援の下で開発されており、Docker、Fuchsia、Automotive Grade Linux、Bottlerocket、PyPI などのプロジェクトにおける更新配信のセキュリティを向上させるために使用されます (PyPI にはダウンロード検証とメタデータが含まれることが期待されています)。近い将来)。 TUF リファレンス実装コードは Python で書かれており、Apache 2.0 ライセンスに基づいて配布されます。

このプロジェクトは、既存のアプリケーション更新システムに簡単に統合できる一連のライブラリ、ファイル形式、ユーティリティを開発しており、ソフトウェア開発者側で重要な侵害が発生した場合に保護を提供します。 TUF を使用するには、必要なメタデータをリポジトリに追加し、ファイルのダウンロードと検証のために TUF で提供される手順をクライアント コードに統合するだけで十分です。

TUF フレームワークは、更新の確認、更新のダウンロード、およびその整合性の検証のタスクを実行します。更新プログラムのインストール システムは追加のメタデータに直接干渉することはなく、メタデータの検証と読み込みは TUF によって行われます。アプリケーションおよび更新インストール システムとの統合のために、メタデータにアクセスするための低レベル API と、アプリケーションとの統合の準備ができた高レベル クライアント API ngclient の実装が提供されます。

TUF が対抗できる攻撃の中には、ソフトウェアの脆弱性の修正や古い脆弱なバージョンへのユーザーのロールバックをブロックするためのアップデートを装った古いリリースの置き換えや、侵害されたファイルを使用して正しく署名された悪意のあるアップデートの宣伝などがあります。キーとして、無限の更新でディスクがいっぱいになるなど、クライアントに対する DoS 攻撃があります。

ソフトウェア プロバイダーのインフラストラクチャの侵害に対する保護は、リポジトリまたはアプリケーションの状態の検証可能な記録を個別に維持することによって実現されます。 TUF によって検証されるメタデータには、信頼できるキーに関する情報、ファイルの整合性を評価するための暗号化ハッシュ、メタデータを検証するための追加のデジタル署名、バージョン番号に関する情報、およびレコードの有効期間に関する情報が含まれます。検証に使用されるキーの有効期間は限られており、古いキーによる署名の形成を防ぐために定期的に更新する必要があります。

システム全体の侵害のリスクは、各当事者が直接責任を負う領域のみに限定される共有信頼モデルの使用によって実現されます。システムは、独自のキーを持つロールの階層を使用します。たとえば、ルート ロールは、リポジトリ内のメタデータ、更新およびターゲット アセンブリの生成時間に関するデータを担当するロールのキーに署名し、次にアセンブリを担当するロールは署名します。配信されたファイルの認証に関連付けられた役割。

アップデートの安全な配信を組織化するためのフレームワークである TUF 1.0 が利用可能になりました

キーの侵害を防ぐために、キーを迅速に取り消して置き換えるメカニズムが使用されます。個々のキーには必要最小限の権限のみが含まれており、認証操作には複数のキーを使用する必要があります (単一のキーが漏洩しただけでは、クライアントに対する即時の攻撃は許可されません。また、システム全体を侵害するには、すべての参加者のキーをセキュリティで保護する必要があります)。捕らえられた)。クライアントは、以前に受信したファイルよりも新しいファイルのみを受け入れることができ、データは認証されたメタデータで指定されたサイズに従ってのみダウンロードされます。

TUF 1.0.0 の公開リリースでは、完全に書き直され安定した TUF 仕様のリファレンス実装が提供されており、独自の実装を作成するとき、またはプロジェクトに統合するときに既製の例として使用できます。新しい実装では、含まれるコードが大幅に減り (1400 行ではなく 4700 行)、保守が容易になり、たとえば、特定のネットワーク スタック、ストレージ システム、または暗号化アルゴリズムのサポートを追加する必要がある場合に簡単に拡張できます。

出所: オープンネット.ru

コメントを追加します