知識マップ: 自動アップデートのセキュリティ設計 - HTTPSだけでは足りない理由

記事「自動アップデートのセキュリティ設計 - HTTPSだけでは足りない理由」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

この記事は、自動アップデート機能の安全性はTLSだけでは確保できず、クライアント側のtrust anchorと署名付きmetadataの検証によって成り立つと整理します。TUFが定義するrollback・freeze・mix-and-match攻撃には、最高既知バージョンの保持や有効期限、hash・size・versionの固定といった対策が有効で、検証失敗時はfail-openではなくfail-closedにすることが推奨されます。Windowsでは要件が合えばMSIX App InstallerやClickOnceを優先し、自前updaterを作る場合もAuthenticode署名の検証、発行元チェーンの固定、タイムスタンプ付き署名、鍵の分離運用、helperへの権限分離、kill switchやblocklistによる事故対応までを含めて設計する必要があるとしています。

自動アップデートのセキュリティ設計の知識マップ自動アップデートがsigned metadataとtrust anchorを前提にrollback・freeze・mix-and-match攻撃をどう防ぎ、MSIX/ClickOnceとの使い分けや鍵管理・権限分離とどうつながるかを示す図です。前提とする前提とする利用する防止する防止する防止する利用する推奨される対応用いるのは非推奨推奨される対応推奨される対応前提とするで確認できる利用する前提とする利用する軽減する推奨される対応前提とする利用する推奨される対応前提とする前提とする前提とする前提とする推奨される対応前提とする自動アップデート機能(updater)署名付き更新metadataupdateのtrust anchor(信頼の起点)公開鍵暗号mix-and-match攻撃(更新)freeze攻撃(更新)minimum allowed versionrollback攻撃(更新)TUF(The Update Framework)fail-closed設計検証失敗時の挙動fail-open設計MSIX + App InstallerWindowsアプリの更新配布ClickOnceコード署名証明書Get-AuthenticodeSignatureWinVerifyTrust発行元チェーンの固定証明書チェーン拇印(サムプリント)コード署名のタイムスタンプ証明書の期限切れ署名鍵の分離運用HSM/トークンでの秘密鍵保管updater権限分離(helperへの分離)kill switch(更新の緊急停止)更新のblocklist

概念間の関係(全27件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

自動アップデート機能(updater)
アプリが新しいバージョンを取得し、既存の実行物を置き換える機能。外部からファイルを取得する、それを信頼する、既存の実行物を置き換えるという3つの性質を併せ持つ。
署名付き更新metadata
release version・成果物のURL・hash・size・channel・有効期限などの更新判断材料をまとめて署名し、クライアント側で検証できるようにしたデータ。
minimum allowed version
クライアントが今まで見た最高のrelease versionを保持し、それより古いバージョンの適用を拒否する仕組み。rollback攻撃への対策になる。
fail-closed設計
異常時は止まる側へ倒す設計。署名検証に失敗したら更新を進めない。
fail-open設計
異常時でも進む側へ倒す設計。警告だけ出して更新を続けてしまう形。
MSIX + App Installer
MSIXパッケージの自動更新・修復を担うWindowsの配布基盤。
ClickOnce
.NETのWindowsデスクトップアプリを、利用者単位で簡単に配り、自動更新まで含めて回すための配布技術。マニフェストを中心に配布・更新・キャッシュ管理をまとめて扱う配布モデル。
コード署名証明書
ソフトウェアの発行元を証明し、改ざんを検出するための証明書。
発行元チェーンの固定
コード署名の検証で、Subject(識別名)ではなく、期待する中間CA/ルートの拇印が署名者からルートまでの経路に含まれることを確認して発行元を固定する方式。
コード署名のタイムスタンプ
署名時刻をRFC 3161タイムスタンプサーバーで証明する付与情報。証明書の期限が切れても署名の有効性を保つ。
署名鍵の分離運用
開発用・ステージング用・本番用の署名鍵を分け、本番用はHSMや署名サービス、承認フロー、監査ログを伴って運用すること。
updater権限分離(helperへの分離)
updater全体を管理者権限で動かさず、ダウンロードと検証は低権限で行い、実ファイルの置換だけを検証済みpackageを所定場所へ置く最小権限のhelperへ分離する設計。
Windowsアプリの更新配布
Windowsアプリの新しいバージョンを利用者の端末へ届ける仕組み全般。MSIX App InstallerやClickOnceなど既存基盤と、自前updaterが選択肢になる。

機械可読データ

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。