1.2. The Update Framework


システム管理者として、Red Hat Trusted Artifact Signer (RHTAS) 向けの The Update Framework (TUF) の Red Hat の実装を理解することは、開発者向けの安全なコーディング環境を維持する上で重要です。コードベースでのミックスアンドマッチ攻撃を防ぐために、TUF のルートメタデータと非ルートメタデータを定期的に更新できます。TUF メタデータを更新することで、クライアントは古くなったファイルや改ざんされたファイルを検出して拒否できるようになります。

1.2.1. Trusted Artifact Signer による The Update Framework の実装

Red Hat Trusted Artifact Signer (RHTAS) バージョン 1.1 以降では、RHTAS サービスで使用される公開鍵と証明書を保存するための信頼されたルートとして The Update Framework (TUF) を実装しました。The Update Framework は、ソフトウェア更新システムを保護するための洗練されたフレームワークであり、提供されたアーティファクトを保護するのに最適です。The Update Framework は、RHTAS サービスを信頼されたルートターゲットとして参照します。信頼できるターゲットは 4 つで、RHTAS サービスごとに 1 つずつあります (Fulcio、Certificate Transparency (CT) ログ、Rekor、および Timestamp Authority (TSA))。cosign などのクライアントソフトウェアは、RHTAS 信頼ルートターゲットを使用してアーティファクト署名に署名し、検証します。シンプルな HTTP サーバーが公開鍵と証明書をクライアントソフトウェアに配布します。このシンプルな HTTP サーバーには、個々のターゲットの TUF リポジトリーがあります。

デフォルトでは、RHTAS を Red Hat OpenShift または Red Hat Enterprise Linux にデプロイするときに、TUF リポジトリーが作成され、個々のターゲットが事前に設定されます。デフォルトでは、すべてのメタデータファイルの有効期限は、RHTAS サービスをデプロイした時点から 52 週間です。Red Hat では、有効期限を短く選択し、公開鍵と証明書を頻繁にローテーションすることを推奨しています。これらのメンテナンスタスクを定期的に実行すると、コードベースへの攻撃を防ぐことができます。

1.2.2. The Update Framework のメタデータファイルの更新

デフォルトでは、The Update Framework (TUF) メタデータファイルは、Red Hat Trusted Artifact Signer (RHTAS) のデプロイメント日から 52 週間後に期限切れになります。少なくとも、有効期限が切れる前に 52 週間ごとに 1 回は TUF メタデータファイルを更新する必要があります。Red Hat では、メタデータファイルを 1 年に 1 回以上更新することを推奨しています。

この手順では、ルートメタデータファイルと非ルートメタデータファイルを更新する手順を説明します。

前提条件

  • Red Hat OpenShift Container Platform 上で実行される RHTAS Operator をインストールする。
  • Securesign インスタンスを実行する。
  • oc バイナリーがインストールされているワークステーション。

手順

  1. OpenShift クラスターからワークステーションに tuftool バイナリーをダウンロードします。

    重要

    現在、tuftool バイナリーは、x86_64 アーキテクチャー上の Linux オペレーティングシステムでのみ使用できます。

    1. ホームページから ? アイコンをクリックして、Command line tools をクリックし、tuftool ダウンロードセクションに移動し、プラットフォームのリンクをクリックします。
    2. ワークステーションでターミナルを開き、バイナリー .gz ファイルを展開し、実行ビットを設定します。

      gunzip tuftool-amd64.gz
      chmod +x tuftool-amd64
      Copy to Clipboard Toggle word wrap

    3. バイナリーを $PATH 環境内の場所に移動し、名前を変更します。

      sudo mv tuftool-amd64 /usr/local/bin/tuftool
      Copy to Clipboard Toggle word wrap

  2. コマンドラインから OpenShift にログインします。

    構文

    oc login --token=TOKEN --server=SERVER_URL_AND_PORT
    Copy to Clipboard Toggle word wrap

    oc login --token=sha256~ZvFDBvoIYAbVECixS4-WmkN4RfnNd8Neh3y1WuiFPXC --server=https://example.com:6443
    Copy to Clipboard Toggle word wrap

    注記

    OpenShift Web コンソールからコマンドラインで使用するログイントークンと URL を確認できます。OpenShift Web コンソールにログインします。ユーザー名をクリックし、Copy login command をクリックします。入力を求められた場合はユーザー名とパスワードをもう一度入力し、Display Token をクリックしてコマンドを表示します。

  3. RHTAS プロジェクトに切り替えます。

    oc project trusted-artifact-signer
    Copy to Clipboard Toggle word wrap

  4. シェル環境を設定します。

    export WORK="${HOME}/trustroot-example"
    export ROOT="${WORK}/root/root.json"
    export KEYDIR="${WORK}/keys"
    export INPUT="${WORK}/input"
    export TUF_REPO="${WORK}/tuf-repo"
    export TUF_SERVER_POD="$(oc get pod --selector=app.kubernetes.io/component=tuf --no-headers -o custom-columns=":metadata.name")"
    export TIMESTAMP_EXPIRATION="in 10 days"
    export SNAPSHOT_EXPIRATION="in 26 weeks"
    export TARGETS_EXPIRATION="in 26 weeks"
    export ROOT_EXPIRATION="in 26 weeks"
    Copy to Clipboard Toggle word wrap

    要件に応じて有効期限を設定します。

  5. 一時的な TUF ディレクトリー構造を作成します。

    mkdir -p "${WORK}/root/" "${KEYDIR}" "${INPUT}" "${TUF_REPO}"
    Copy to Clipboard Toggle word wrap

  6. TUF コンテンツを一時的な TUF ディレクトリー構造にダウンロードします。

    oc extract --to "${KEYDIR}/" secret/tuf-root-keys
    oc cp "${TUF_SERVER_POD}:/var/www/html" "${TUF_REPO}"
    cp "${TUF_REPO}/root.json" "${ROOT}"
    Copy to Clipboard Toggle word wrap

  7. タイムスタンプ、スナップショット、ターゲットのメタデータをすべて 1 つのコマンドで更新できます。

    tuftool update \
      --root "${ROOT}" \
      --key "${KEYDIR}/timestamp.pem" \
      --key "${KEYDIR}/snapshot.pem" \
      --key "${KEYDIR}/targets.pem" \
      --timestamp-expires "${TIMESTAMP_EXPIRATION}" \
      --snapshot-expires "${SNAPSHOT_EXPIRATION}" \
      --targets-expires "${TARGETS_EXPIRATION}" \
      --outdir "${TUF_REPO}" \
      --metadata-url "file://${TUF_REPO}"
    Copy to Clipboard Toggle word wrap

    注記

    TUF メタデータファイルのサブセットに対して TUF メタデータ更新を実行することもできます。たとえば、timestamp.json メタデータファイルは、他のメタデータファイルよりも頻繁に期限切れになります。したがって、次のコマンドを実行するだけで、タイムスタンプメタデータファイルを更新できます。

    tuftool update \
      --root "${ROOT}" \
      --key "${KEYDIR}/timestamp.pem" \
      --timestamp-expires "${TIMESTAMP_EXPIRATION}" \
      --outdir "${TUF_REPO}" \
      --metadata-url "file://${TUF_REPO}"
    Copy to Clipboard Toggle word wrap
  8. ルートの有効期限が切れそうな場合にのみ、有効期限を更新します。

    tuftool root expire "${ROOT}" "${ROOT_EXPIRATION}"
    Copy to Clipboard Toggle word wrap

    注記

    ルートファイルの有効期限がまだ先の場合は、この手順をスキップできます。

  9. ルートバージョンを更新します。

    tuftool root bump-version "${ROOT}"
    Copy to Clipboard Toggle word wrap

  10. ルートメタデータファイルに再度署名します。

    tuftool root sign "${ROOT}" -k "${KEYDIR}/root.pem"
    Copy to Clipboard Toggle word wrap

  11. 新しいルートバージョンを設定し、ルートメタデータファイルを所定の場所にコピーします。

    export NEW_ROOT_VERSION=$(cat "${ROOT}" | jq -r ".signed.version")
    cp "${ROOT}" "${TUF_REPO}/root.json"
    cp "${ROOT}" "${TUF_REPO}/${NEW_ROOT_VERSION}.root.json"
    Copy to Clipboard Toggle word wrap

  12. これらの変更を TUF サーバーにアップロードします。

    oc rsync "${TUF_REPO}/" "${TUF_SERVER_POD}:/var/www/html"
    Copy to Clipboard Toggle word wrap

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat