セキュリティ / 検証

信頼すべきはインストールしたファイルであって、その出所のページではありません

KalderaShield のすべてのリリースは SHA-256 チェックサムとアップデータの署名を公開します。検証に必要なコマンドは 1 つです。誰かが改変して再配布したファイルを実行することと、パイプラインが作ったファイルを実行することとの違いがそこにあります。

公開されているもの

成果物の証拠の 3 つの層

SHA-256 チェックサム。すべてのリリースがインストーラーの隣に SHA256SUMS.txt を同梱します。ハッシュはリリースパイプラインが収集した正確なファイルから計算され、収集ステップは現在のビルドでない成果物を拒みます。中途半端に失敗したビルドが古いインストーラーを黙って再利用することはできません。

アップデータの署名。Tauri のアップデータバンドルは minisign で署名され、公開鍵はアプリケーション自体に埋め込まれています。アップデータの提示が正しく署名されていなければ、アプリはそれを拒否します。

リリースの署名。タグで管理されたリリースパイプラインは、公開されるすべての成果物に、ワークフロー実行の OIDC アイデンティティに紐づくキーレスの Sigstore モードで cosign の署名を付けます。パイプラインは署名ゲートも強制します。成果物の署名が検証されない限り、Windows 版と macOS 版のリリースは公開できません。

1 つ正直な注意点があります。コード署名証明書が存在しないあいだは、自分でビルドした Windows インストーラーや CI から入手したものには、Windows の正式なコード署名が付いていません。署名ゲートはそれらを公開リリースから締め出します。ビルドから入手した場合は、実行する前に SHA-256 ハッシュを検証してください。

3 ステップでの検証方法

ファイルのハッシュを計算する

Windows では Get-FileHash を実行します。Linux と macOS では sha256sum または shasum -a 256 を実行します。出力を SHA256SUMS.txt の該当行と比べてください。

チェックサムファイル自体を確認する

チェックサムは、それが記述するリリースとともに公開されます。公式リリースから SHA256SUMS.txt をダウンロードし、インストーラーのハッシュが一致すれば、そのファイルはパイプラインが作ったものです。

アップデータ自身に検証させる

アプリ内アップデートは、アプリケーションにコンパイルされた minisign の公開鍵で検証されます。ダウンロードした更新ファイルを手動で信頼する必要は一切ありません。

セキュリティアーキテクチャ

Windows のダウンロード警告とアンチウイルスについて

署名証明書が存在するまで想定内のこと

ダウンロードの実績のない未署名の実行ファイルは、Windows のダウンロード警告やアンチウイルスのヒューリスティックが警告するファイルの形そのものです。これは証明書を持たないことのコストであって、マルウェアの証拠ではありません。SHA-256 ハッシュを検証し、公開済みチェックサムと一致するハッシュをアンチウイルスがまだ検出する場合は、誤検知としてベンダーに報告してください。この制限はリポジトリのビルドワークフローのコメントに公開されています。

SHA-256

完全性

成果物ごとに SHA256SUMS.txt で公開されます。収集ステップは、記録されたビルドのタイムスタンプより古いインストーラーを拒みます。

minisign

アップデータの真正性

アップデータのバンドルはビルド時に署名されます。検証鍵はアプリ内に同梱され、latest.json が署名を指し示します。

cosign

リリースの真正性

公開されたリリース成果物は、リリース実行を行った GitHub の CI ワークフローの OIDC アイデンティティに紐づく形で、Sigstore によるキーレス署名が付けられます。

よくある質問

検証について

Windows が「Windows によって PC が保護されました」と表示します。どうすればよいですか。

これはウイルスの報告ではなく、未署名のファイルに対する Windows の警告機能の反応です。SHA256SUMS.txt と SHA-256 ハッシュを比べてください。一致すればそのファイルはパイプラインの出力です。リリースが署名証明書を持てば、この警告は恒久的に消えます。

SHA256SUMS.txt はどこにありますか。

すべてのリリースでインストーラーの隣、およびダウンロードページの検証セクションにあります。チャットのメッセージだけで届くチェックサムは検証ではありません。公開されているものを使ってください。

ダウンロードしたファイルを信頼せずに検証できますか。

ソースからビルドしてください。リポジトリは文書化された npm と cargo のコマンドで再現可能にビルドでき、ローカルのリリーススクリプトは同じ成果物の命名規則で独自のチェックサムを添えて生成します。

関連ページ

インストーラーをダウンロード