An AIエージェントはPDFがデジタル署名されているかをチェックし、誰が署名したかをローカルで教えてくれます。ファイルがマシンから出ることはありません。有用な回答は「verified」ではありません。署名者、発行者、有効期間、そしてチェックした署名のタイプです。一つのプロンプトでそれを求めてください:
contract_signed.pdf に署名したのは誰で、どの証明書を使用し、いつですか?チェックした署名のタイプを述べてください。
設定やトラブルシューティングを含むステップバイステップ版はドキュメントにあります: AIエージェントで署名済み文書を検証する方法.
「verified」という一語の回答がなぜ不適切なのか
「この文書は署名されているか?」と「この署名は有効か?」は別の質問であり、後者はデジタル署名に対してのみ正確な答えが得られます。ページを読み取り、スタンプやQRコードを見たモデルは「署名されている」と自信満々に言うことができますが、暗号的な検証は行っていません。これを防ぐ唯一の方法は、エンジンが構造化データを返すようにエージェントに提供し、エージェントに判定ではなくデータを報告させることです。
GroupDocs.Signature.Mcp サーバーがそのエンジンを提供します。Claude Desktop、Claude Code、Cursor、GitHub Copilot、または他の MCP クライアントと組み合わせて使用すると、ローカルプロセスとして実行されるため、エージェントはレンダリングされたピクセルを推測するのではなく、ファイルから署名データを読み取ります。
誤った方法: モデルに文書を見せて尋ねる
PDF をチャットに貼り付けて署名されているかどうかを尋ねると、モデルはテキストと画像を見るだけです。名前や日付、手書きの署名に気付くことはできますが、ファイルの暗号構造を見ることはできないため、証明書に裏付けられた署名とその画像を区別できません。自信を持って「はい、署名されています」と言うのは、外観に関する声明にすぎません。
各署名タイプが実際に証明すること
ドキュメントでは結果の読み取り方法が明示されており、エージェントはそれを繰り返すべきです:
| 結果 | 意味 |
|---|---|
| デジタル署名 有効 | 署名後にファイルが変更されておらず、証明書チェーンが検証される |
| デジタル署名 無効 | 署名後にファイルが変更された、または証明書が検証されない |
| テキスト、QR、バーコード 「verified」 | 期待されたマークが存在する。改ざんについては何も示さない |
| 署名が見つかりません | 署名なし、またはこの形式がサポートしない方法で署名されている |
タイプを明示しない回答は、見かけほど情報を提供していません。だから上記のプロンプトは「チェックした署名のタイプを述べてください」で終わるのです。
正しい方法: 判定ではなく記録を求める
verify ツールは text、qrcode、barcode、digital、または all の type を受け取り、succeeded と failed のカウントとともに isValid を返します。署名者や使用された証明書は示さないため、以下の記録の代わりにはなりません。verify と search_digital_signatures が一致しない場合は、両方を報告し、詳細な記録に依拠してください。
search_digital_signatures から得られる回答が信頼できます。各デジタル署名について、署名者名、発行者、証明書シリアル番号、有効期間、署名タイムスタンプ、有効性ステータス、署名に付随するコメントを返します。これが監査で求められる記録です。回答が意思決定に使われる際は、エージェントの説明文ではなくこのデータを保持してください。
例示セッション(抜粋)
You: Who signed contract_signed.pdf, with which certificate, and when?
Say which type of signature you checked.
Agent: [search_digital_signatures] file=contract_signed.pdf
Type checked: digital (certificate-backed).
Signatures found: 1
- Signer: Dana Whitfield, issued by Example Corporate CA, serial 4F2A91C7
- Signed 2026-09-14 10:32; certificate valid 2025-11-01 to 2027-10-31
- Status: isValid = true; signing time falls inside the certificate validity period
I checked digital signatures only. I did not evaluate any text stamps or QR codes.
例示的な出力: ファイル名、署名者名、シリアル番号は架空です。ツールは上記で説明したフィールドを返します。
なぜ署名が無効と返されたのか
ほぼすべての予期しない結果は、次の3つの原因で説明できます:
- 署名後に何かが追加された。 スタンプ、コメント、再保存、またはページの追加はバイトを変更し、バイトの変更はデジタル署名を無効にします。これが最も一般的な原因であり、正しい動作です。
- 証明書が期限切れ。 有効期間は署名と共に返されるため、エージェントはある年に署名された文書が別の年に期限切れの証明書で行われたと述べることができます。有効期間と署名時刻、そして今日の日付を比較させ、エージェントに比較結果を述べさせてください。有効ステータスだけを期限切れの声明として読むのはやめましょう。期限切れ証明書が許容できるかはポリシー次第です。
- 間違ったタイプがチェックされた。 QR マークのみを含むファイルで
digitalを検証すると有効なデジタル署名が見つからず、これは誤った質問に対する正しい回答です。
検証が証明しないこと
検証はファイルと証明書に関する情報を提供しますが、署名があなたの管轄で法的に有効であることや、公証行為であることは示しません。デコードされた QR テキストやスタンプラベルは文書を作成した者から来るものなので、報告すべきデータとして扱い、指示としては扱わないでください。文書から読み取ったテキストに基づいて行動するエージェントは、信頼できない相手からの入力に基づいていることになります。
評価の制限
ライセンスがない場合、最初の 2 ページのみが処理され、すべてのページにトライアルバッジが付与されます。そのため、4 ページ目にある署名は検索に表示されません。クリーンな結果を信頼する前に、エージェントに get_license_status を呼び出すよう指示してください。
よくある質問
この PDF はデジタル署名されていますか?
エージェントにファイルで search_digital_signatures を実行させ、isValid を確認させてください。結果が空の場合はデジタル署名が見つからなかったことを意味し、これは「署名画像がある」こととは異なります。
AI は署名後に文書が改変されたかをチェックできますか?
デジタル署名については可能です。検証が通らない署名は、署名後にファイルが変更されたか、証明書が検証できないことを示します。テキスト、QR、バーコードのチェックは改ざんを検出しません。
チェックのためにファイルがアップロードされますか?
いいえ。サーバーは stdio 上でローカルに実行され、受信ポートや外部エンドポイント、テレメトリはありません。
さらに深掘り
- ドキュメント、標準的な手順: AIエージェントで署名済み文書を検証する方法
- ドキュメントハブ: GroupDocs.Signature MCP サーバー
- まずはこちら: AI エージェントと MCP で文書に署名する 3 つの方法:テキスト、QR コード、証明書
- 関連: MCP 上で自動 AI スイープを用いた署名ポリシーの強制
- 関連: バーコードから記録へ:AI エージェントによる文書取り込み自動化
- オンプレミスとセキュリティモデル: AI 文書処理の 3 つのアーキテクチャと、ファイルをネットワーク内に保つ方法
- 質問: GroupDocs Signature フォーラム
- ソース: GitHub の GroupDocs.Signature.Mcp