PDF電子署名

PFX/P12証明書で署名し、既存の署名を検証

1ファイル選択2設定3処理4保存

PDFを選ぶと内容を解析して表示します。

ファイルはこのブラウザ内でのみ処理されます。サーバーにはアップロードされません。

PFX/P12証明書で署名し、既存の署名を検証

別のツールで続ける
作業の設定
設定
検証のみ: 文書内の署名を確認し、ファイルは元のまま残します

暗号化されたPDFは先にパスワードを解除してください。ページの内容を中心に処理するため、しおり・添付・フォーム・署名の保持は保証されません。原本を保管し、結果をご確認ください。

PDF電子署名について

このツールが入れるのは署名の「画像」ではなく、暗号技術による電子署名です。PFX/P12ファイルからRSA秘密鍵と証明書を取り出し、文書のバイト列のSHA-256ハッシュに署名したCMS(PKCS #7)データをPDFの署名フィールドに格納します。ページに見えるボックス(氏名・理由・日時、任意の印影PNG)は署名の外観にすぎず、検証に使われるのは目に見えないCMSデータです。

もう1つのモードは検証です。文書内のすべての署名を探し、署名範囲(ByteRange)がファイル全体を覆っているか、その範囲のハッシュが署名内の値と一致するか、署名値が署名者証明書の公開鍵で正しく検証できるかを確認し、証明書の名前・発行者・有効期間を表示します。検証モードはファイルを変更しません。

署名画像と電子署名の違い

手書きサインや印影のPNGをページに貼っただけなら、誰でもコピーして別の文書に貼れますし、貼った後に本文を書き換えても痕跡は残りません。電子署名は文書全体のハッシュに秘密鍵で署名するので、署名後に1バイトでも変わればハッシュが変わり検証に失敗します。しかも署名を作れるのは秘密鍵の持ち主だけです。

このツールで印影PNGを指定すると、両方が重なります。印影は署名ボックスの外観に描かれ、その下に本物のCMS署名があります。印影画像のコピーは防げませんが、コピーされた画像に署名はついていきません。

このツールの署名形式を正確に言うと

署名辞書は /Filter /Adobe.PPKLite、/SubFilter /adbe.pkcs7.detached で記録されます。ISO 32000が定める基本的なPDF署名形式で、Acrobatや多くのビューアが検証できます。ハッシュはSHA-256、署名アルゴリズムはRSA(PKCS #1 v1.5)で、署名属性に署名時刻(signingTime)を入れます。

欧州標準PAdES(ETSI EN 319 142-1)のベースライン署名ではありません。PAdESのベースラインはSubFilterに ETSI.CAdES.detached を使い、署名証明書を指す属性などを求めますが、このツールはその形式を作りません。また次の機能がありません。

  • タイムスタンプ(RFC 3161):署名時刻はパソコンの時計で記録されます。時刻認証局が保証した時刻ではありません。
  • 長期検証情報(LTV):失効リスト(CRL)やOCSP応答を文書に埋め込みません。証明書の期限が切れた後、署名時に有効だったことを文書だけで示すのは難しくなります。
  • 変更許可の検査(DocMDP):新しい署名は元のファイルの後ろに増分更新として追加するので、前の署名は有効なまま残ります。ただし検証時に、署名の後に追加された更新が追加署名なのかページ内容の変更なのかは判定しません。
  • ECDSA鍵:RSA秘密鍵を含むPFXのみ対応です。ECDSA証明書を選ぶと理由を示して止まり、ECDSA署名は検証せずに理由をレポートに書きます。

検証結果「有効」が意味すること、しないこと

このツールの「有効」は数学的な検査を通ったという意味です。署名後にファイルが変わっておらず、署名値が文書内の証明書の公開鍵と合っています。しかし、その証明書を誰が発行したかを信頼リストと照合したり、失効していないかCRL・OCSPで問い合わせたりはしません。自己署名証明書なら誰でも好きな名前で作れるので、「有効」でも署名者の名前をそのまま信じてはいけません。証明書の発行者とフィンガープリントを別の経路で相手に確認するか、Acrobatのように信頼リストを使うビューアでも開いてください。検証レポートは結果の横にこの限界を記し、照合用に証明書のSHA-256フィンガープリントを表示します。

署名範囲がファイル全体を覆っていないという結果も重要です。署名範囲が完全な以前の版(%%EOFで終わる)で終わり、その後ろが増分更新なら、ツールは範囲を「以前の版全体」と表示し、署名した版がそのままかどうかで有効性を判定します。追記された内容は正当な追加署名の場合もあれば、署名後にページ内容を変えた場合もあり、ツールはその内容を検査しません。それ以外の形で範囲がずれていれば無効です。

使える証明書

秘密鍵を含めてエクスポートしたPFX/P12ファイルなら使えます。勤務先が発行した文書署名用証明書、認証局発行の個人向け証明書、OpenSSLで作った自己署名証明書などです。マイナンバーカードの署名用電子証明書は秘密鍵をカードの外に取り出せないため、このツールでは使えません。自己署名証明書で署名した文書はAcrobatで署名者を確認できない旨が表示され、受け取る側が証明書を信頼済みに追加すると緑色の表示になります。

例

署名後に数字を1つ書き換えた場合

入力
署名済みの契約書を別の編集ソフトで開き、金額100万円を150万円に変更して保存
結果
検証:ハッシュ不一致(書き直した場合)、または署名範囲「以前の版全体 — 後ろに増分更新」(増分保存した場合)

ファイルを書き直すソフトならハッシュが変わります。増分保存するソフトなら署名した版はそのままなので署名は有効のままですが、レポートの署名範囲に後から追記があると表示されます。ツールは追記内容を判定しないので、この表示が出たら署名した原本と比べてください。

自己署名証明書で署名した見積書

入力
OpenSSLで作った自己署名PFX、印影PNGあり
結果
このツール:有効/Acrobat:署名は改ざんされていないが署名者の身元は不明

完全性は保証されますが、身元は受け取る側が証明書を信頼するかどうか次第です。取引先と事前に証明書のフィンガープリントを交換しておけば実務で使えます。

2人が順番に署名する稟議

入力
Aがこのツールで署名 → Bがこのツールで追加署名
結果
A・Bの署名とも有効(Aの署名範囲:以前の版全体)

Bの署名はAが署名したファイルの後ろに増分更新として追加されるので、Aが署名したバイト列は1バイトも変わりません。Acrobatなど別のソフトで署名を続けても同じです。

使い方

  1. PDFを選び、「署名を追加」か「検証のみ」を選びます。
  2. 署名する場合:PFX/P12ファイルとパスワードを入力し、ページ・ボックス位置・表示内容・印影画像を決めます。
  3. 実行すると署名済みファイルが作られ、すぐに検証結果が表示されます。

主な用語

CMS(PKCS #7)
署名値・署名者証明書・署名属性を入れるデータ形式。PDF署名の /Contents に入ります。
ByteRange
署名が覆うファイルの範囲。署名データの入る場所を除いた残り全体である必要があります。
PAdES
ETSI EN 319 142 で定められた欧州のPDF高度電子署名形式。タイムスタンプや長期検証の段階を定義します。
自己署名証明書
認証局を通さず自分で発行した証明書。暗号的には動作しますが、身元の保証はありません。

よくある質問

印影画像を入れれば電子署名になりますか?

このツールでは印影は必ず本物のCMS署名と一緒に入ります。画像を置くだけならPDFに文字・画像を追加するツールで足りますが、改ざん検知はできません。

マイナンバーカードで署名できますか?

できません。カード内の秘密鍵は取り出せない設計で、PFXファイルとして読み込めないためです。

PAdES署名ですか?

いいえ。adbe.pkcs7.detached 形式で、タイムスタンプも長期検証情報もありません。PAdESが求められる電子契約や行政手続きには専用の署名サービスを使ってください。

検証で「有効」と出れば信用できますか?

署名後にファイルが変わっていないことまでです。証明書の信頼性や失効は確認しないので、署名者の身元は別に確かめてください。

関連ガイド

出典

基準日:

プライバシーとデータの扱い