ファイル署名:署名と検証

ファイル署名の検証と作成:OpenSSH ssh-keygen -Y、minisign、OpenSSL に対応し、PEM・OpenSSH・JWK 形式の Ed25519、ECDSA P-256/P-384、RSA 鍵を扱えます。ファイルと鍵はブラウザから出ません。

入力内容とファイルはブラウザ内に留まります

署名を検証

ここにファイルをドロップ

またはデバイスからファイルを選択

SSH 署名(-----BEGIN SSH SIGNATURE-----)、.minisig ファイル、または base64・hex・バイナリ .sig ファイルの生の署名。

PEM 公開鍵または証明書、OpenSSH .pub、authorized_keys または allowed_signers の行、JWK/JWKS、minisign 公開鍵。

SSH 署名のみ:ssh-keygen の -n の値(file、git など)。

結果

検証結果または新しい署名がここに表示されます。

このページの内容

ファイル署名は、任意のサイズのファイルの分離署名を検証・作成します。ssh-keygen -Y による OpenSSH 署名、minisign の .minisig ファイル、Ed25519・ECDSA P-256/P-384・RSA 鍵による OpenSSL の生の署名に対応します。ファイルはブラウザ内で 1 MiB のチャンク単位でハッシュ化され、ファイル・鍵・パスフレーズは一切アップロードされません。

詳細な機能

検証 では、ダウンロードしたリリース、バックアップ、文書を署名と照合します。ファイルをドロップし、署名 を貼り付けるか 署名ファイルを読み込む を使い、公開鍵 を指定します。形式は自動で判別されます:

  • OpenSSH 署名(ssh-keygen -Y sign、Git のコミットやタグにも使用):鍵には .pub ファイル、authorized_keys の行、allowed_signers ファイルを使えます。一致した行から署名者が分かり、その namespaces= 制限も守られます。名前空間 は署名時と同じ値(通常は file)である必要があります。鍵がなくても、署名に含まれる鍵で照合し、そのフィンガープリントを表示します。
  • minisign .minisig(事前ハッシュ BLAKE2b と旧式):鍵 ID と信頼済みコメントを検証するため、偽造されたコメントも検出されます。
  • openssl dgst -sign や openssl pkeyutl -rawin による 生の署名:バイナリ、base64、hex。ECDSA は DER または r‖s、RSA は PKCS#1 v1.5 または PSS、SHA-256/384/512。鍵は PEM(SPKI または PKCS#1)、X.509 証明書、OpenSSH の行、JWK を使えます。

署名 では 秘密鍵(OpenSSH、PEM(PKCS#8、暗号化 PKCS#8、EC、RSA)、JWK)で署名を作成します。暗号化された鍵には パスフレーズ を入力します。ssh-keygen -Y verify で読める SSH 署名(ssh-keygen -Y) か、ハッシュ・RSA パディング・ECDSA エンコード を指定する 生の署名(OpenSSL) を選べます。結果には署名、鍵のフィンガープリント、公開鍵、ssh-keygen または openssl でそのまま検証できるコマンドが表示されます。

実用例

リリースのダウンロードを確認:tool-1.4.tar.gz をドロップし、tool-1.4.tar.gz.sig を読み込み、プロジェクトの allowed_signers を貼り付けると、署名は有効です と署名者 [email protected] が表示されます。

minisign:アーカイブをドロップし、その .minisig を読み込んで、プロジェクトページの RW… 公開鍵を貼り付けます。ファイル名とタイムスタンプを含む信頼済みコメントが表示されます。

OpenSSL:openssl dgst -sha256 -sign key.pem -out data.sig data.bin で作った署名を public.pem で検証します。ハッシュとパディングは自動で判別されます。

同僚のために署名:自分の id_ed25519 を読み込み、SSH 署名(ssh-keygen -Y) と名前空間 file のまま ファイルに署名 をクリックし、.sig を allowed_signers の行と一緒に送ります。

このツールの使い方

  1. ファイルを選ぶ

    ファイルを ここにファイルをドロップ にドロップするか、ファイルを選択 をクリックします。チャンク単位でハッシュ化するため、サイズは問いません。

  2. モードを選ぶ

    署名を確認するなら 検証、作成するなら 署名 を選びます。

  3. 署名と鍵を指定する

    検証 では 署名 と 公開鍵 を貼り付け、SSH 署名なら 名前空間 を確認します。署名 では 秘密鍵 を貼り付け、暗号化されていれば パスフレーズ を入力し、署名形式 を選びます。

  4. 実行する

    署名を検証 または ファイルに署名 をクリックします。進捗にはハッシュ化済みのバイト数が表示され、キャンセル で中止できます。

  5. 結果を確認する

    緑または赤のメッセージで判定が示され、その下に鍵のフィンガープリント、方式、ハッシュ、署名者が表示されます。署名後は .sig をダウンロード を使うか、署名をコピーします。

ヒントとベストプラクティス

  • 信頼できる鍵なしの有効な署名は完全性を示すだけで、署名者は証明しません。必ずフィンガープリントを照合するか、署名者の鍵を指定してください。
  • git はコミットに名前空間 git で署名し、通常の ssh-keygen -Y sign はたいてい file を使います。
  • OpenSSL の RSA-PSS 署名はダイジェスト長と最大ソルト長の両方で検証するため、新旧どちらの OpenSSL の署名も検証できます。
  • Ed25519 の生の署名はハッシュではなくファイル全体に署名するため、ここでは 128 MiB までです。SSH 署名にはサイズ制限がありません。
  • 秘密鍵はこのタブ内でのみ使われ、保存されません。それでも普段使いの SSH 鍵ではなく、署名専用の鍵の使用をおすすめします。

次の改善にご協力ください

次に何を改善すべきですか?

候補を1つ選んでください。これらは案であり、提供を約束する機能ではありません。

1つ選択してください

投票では選択肢だけを匿名の集計値として送信します。入力内容、ファイルデータ、URL、Cookie、識別子は含まず、このブラウザーにも保存しません。ページを再読み込みすると再度投票できます。