PDF、組版と文書変換のアンテナハウス株式会社

サイトマップ
hr トップ
ページ
hr デスクトップ
製品情報
hr システム
製品情報
hr DITA
サービス
hr 電子書籍
サービス
hr サポート hr 製品の購入
について
hr お問い合わせ hr 会社案内 hr

OEMについて詳しくはこちら

PDF電子署名モジュール 機能紹介:サンプル・デモ

PDFへの電子署名付加と署名バージョン

『PDF電子署名モジュール』を使って、PDFへの電子署名の簡単なデモをしてみたいと思います。このデモでは次のことを目的としています。

  1. PDFに公開鍵によるセキュリティを設定します。
  2. 暗号鍵(公開鍵)および暗号鍵・利用者鍵(公開鍵・秘密鍵ペア)を生成します。

データ

このデモでは次のデータを使用します。

Hanako.pfx 佐藤 花子の電子証明書+秘密鍵ペア
Tanaka.pfx 田中 一郎の電子証明書+秘密鍵ペア
Manager.pfx 管理者の電子証明書+秘密鍵ペア
Hanako.gif 佐藤 花子の印影
Tanaka.gif 田中 一郎の印影
Manager.gif 管理者の印影
Shinsei.pdf 申請書用紙PDF

200709031.GIF

pfxファイル(証明書+秘密鍵ペア)は、Windows証明書ストアにインストールしておく必要があります。pfxファイルをマウスで右クリックすると電子証明書インストール・ウイザードが表示されますので、その画面に従ってインストールします。

Shinsei.pdfは、購入申請の用紙ですが、申請者が記入して署名、次に、購買担当者が記入して署名、最後に承認者が記入して署名というワークフローを想定しています。オリジナルPDFをダウンロード

署名フィールドの作成

オリジナルPDFの署名枠に署名フィールドを作成します。PDF電子署名モジュール(コマンドライン)では次のように実行します。

>PdsCmd -sign -field -sf Field1 1 460 645 500 685 -sf Field2 1 460 555 500 595
 -sf Field3 1 460 460 500 500 -in Shinsei.pdf -out Shinsei1.pdf

200709032.GIF

そうしますと、図のようにPDFに署名フィールドができます。
PDFファイルをダウンロード

購入申請者の記入と署名

これを申請用紙の雛形として、購入申請者(佐藤 花子)が希望品目を記入します。記入にはAcrobat8を使いました。

200709033.GIF

記入した結果は図のようになります。
PDFファイルをダウンロード

この申請書にPDF電子署名モジュールで、佐藤 花子の電子署名を付加します。コマンドラインは次のようになります。
>PdsCmd -sign -add Field1 -sign-type nml -ap-type wgt
-finger-print "8F17780F938EFB93FFB2E625D2D5C893E776B8BC" -sign-flag 0x3
-graphic-type file -file-path C:\demo200709\Hanako.gif -text-flag none
-in Shinsei2.pdf -out Shinsei3.pdf

署名対象として署名フィールド名:Field1を指定し、署名のタイプは通常署名:-sign-type nml、署名の外観はウイジット注釈: -ap-type wgt、Windows証明書ストアからフィンガープリントで証明書を検索し、外観のグラフィックファイルとしてC:\demo200709\Hanako.gifを指定しています。

200709034.GIF

図のように署名が付きます。
PDFファイルをダウンロード

購買担当者の記入と署名

200709035.GIF

このPDFに購買担当者(田中 一郎)が見積もり金額を記入します。
このデモでの記入処理には、Acrobat8をつかっています。
Acrobat8でなくてもPDFの電子署名の仕様に準拠したソフトウエアで記入作業ができます。但し、署名済みのPDFへの記入処理に、PDF電子署名の仕様に準拠していないソフトウェアを使うと、署名対象部分のデータが変更されてしまいます。電子署名の付いたPDFを更新するためには、電子署名の対象範囲を変更しないで増分更新によりPDFに追記するソフトウェアを使わねばなりません。

この追記されたPDFにさらに、購買担当者(田中 一郎)の署名をつけます。署名の付加は、PDF電子署名モジュールを使います。
>PdsCmd -sign -add Field2 -sign-type nml -ap-type wgt
-finger-print "660C986FED93E9C1013B6A307290ACBEE49BCC9D" -sign-flag 0x3
-graphic-type file -file-path C:\demo200709\Tanaka.gif -text-flag none
-in Shinsei4.pdf -out Shinsei5.pdf

200709036.GIF

結果は図のようになります。
PDFファイルをダウンロード

承認者の記入と署名

200709037.GIF

次に承認者がPDFに記入します。
PDFファイルをダウンロード

最後に承認者(マネージャ)の署名をします。
>PdsCmd -sign -add Field3 -sign-type nml -ap-type wgt
-finger-print "958E94CE119EDFE6ECD4AA563F8FB87CA17A2218" -sign-flag 0x3
-graphic-type file -file-path C:\demo200709\Stamp.gif -text-flag none
-in Shinsei6.pdf -out Shinsei7.pdf

200709038.GIF

最終的なPDFは図のようになります。
PDFファイルをダウンロード

署名バージョン

VerifySign.GIF

このPDFには、署名が3つ付いています。Acrobat8で全ての署名を検証しますと、次のように、3つの署名のうち2つは署名後変更がなされていて、3つ目は署名後変更がない、という結果になります。
署名時に文書のリビジョンが確定し、リビジョンが3つあることが分かります。
このように、PDFに電子署名をしますと、そのPDFが文書のバージョンとして確定します。Adobeのリーダでは、PDF電子署名を選択し、署名バージョンを表示としますと、署名後に追加された情報を取り除き、署名した時点での状態を表示できます。

SignedVersion1.GIF

例えば、最初の署名を選択して、「署名バージョンを表示」とします。

ViewVer1.GIF

そうしますと、図のように、最初の署名時のPDFの状態を画面に表示します。
PDF電子署名モジュールによるPDFへの署名は、以上に説明しましたように、Acrobat8による署名と同様に取り扱うことができます。

PDF電子署名の検証と署名バージョンPDFの取得

PDF電子署名モジュールは、PDFの電子署名を様々な側面から検証する機能もあります。次に検証機能のいくつかを使用して見ます。

PDFの署名フィールドリストの表示

3つの署名の付いたPDF(管理者が署名したもの)の署名フィールドの一覧を取ることができます。コマンドラインでは次のようにします。
>PdsCmd -verify -sigfldlist -in Shinsei7.pd
1 "Field1" 署名済み 署名後修正あり
2 "Field2" 署名済み 署名後修正あり
3 "Field3" 署名済み 署名後修正無し
このように署名フィールドの一覧を表示すると共に、署名済みか、署名後修正があったかどうかを表示します。

署名フィールドの状態表示

署名フィールドのプロフィールを取得する機能があります。次のように使います。
>PdsCmd -verify -profile 1 -in Shinsei7.pdf
Signature field Number = 1
Signature field Name = Field1
Signature field Page = 1
Signature field Rect = 460 / 645 / 500 / 68
Signed = Yes. (modified)
Signature Dict Name = Hanako Sato
Signature Dict Date = 20070902150038+0900
Signature Dict Reason =
Signature Dict Location =
Signature Dict ContactInfo =
Signature Data Subject name = Hanako Sato
Signature Data Issuer name = Hanako Sato
Timestamped = No.
署名フィールドの大きさ(位置)、署名されているかどうか、証明書の名前、署名日時などの状態が表示されます。

署名の一括検証

すべての署名を一括で検証することができます。次のように入力します。
>PdsCmd -verify -all -in Shinsei7.pdf
Verify [1] : 検証結果は有効ですが署名後に修正されています。
Certificates [1] : ルート証明書の信頼性が確認できません。
Verify [2] : 検証結果は有効ですが署名後に修正されています。
Certificates [2] : ルート証明書の信頼性が確認できません。
Verify [3] : 検証結果は有効です
。 Certificates [3] : ルート証明書の信頼性が確認できません。
署名の検証と証明書の検証の結果を表示します。上の例で、「 ルート証明書の信頼性が確認できません。」となるのは、この署名に使用した証明書が、自己署名証明書で自分自身がルート証明書なのですが、Windows証明書ストアで信頼できるルート証明書に登録されていないためです。

署名バージョンPDFの取得

署名時点のPDFを取得することができます。例えば、最初の署名時点のPDFを取得するには次のようにします。
>PdsCmd -verify -getpdf 1 -in Shinsei7.pdf -out Shisei-ver1.pdf
出力されたPDFは、最初の署名時点のPDFであり、佐藤 花子の署名したShinsei3.pdfと同じものとなります。

スペース
トップページサポートお問い合わせ会社案内
サイトマップ個人情報保護の考え方とお願い
Copyright Antenna House, Inc. All rights reserved.
Antenna House is a trademark of Antenna House, Inc.