« PDFと署名(21) — 電子証明書ICカードはなぜVistaで使えない? | メイン | PDFと署名(23) — 署名ハンドラ »

2007年05月09日

PDFと署名(22) — PDFと公開鍵暗号

PDFと公開鍵暗号の関係について、PDF Referenceから整理してみます。

まず、PDFでは、公開鍵暗号を(1)暗号化と(2)署名の二通りの方法で利用できます。
(1)暗号化は、PDFを渡したい相手の公開鍵を使ってPDFを暗号化する機能です。PDFのセキュリティで一般的なのはパスワードによる暗号化です。これは相手によらずPDFを一定のパスワードで暗号化します。それに対して公開鍵による暗号化では、PDFを渡したい相手の公開鍵を使って暗号化しますので、相手毎に異なる条件でセキュリィを設定することができます。

この公開鍵暗号化によるPDFのセキュリティについては、既に、2006年11月19日 PDFのセキュリティ機能(7)—公開鍵セキュリティ・ハンドラで概略を紹介しています。

(2)署名は、PDF文書への電子署名です。一般文書への電子署名と同じように、PDF署名では、署名した人が誰かを確認したり、あるいは、文書の署名者に否認防止(知らないよと言わせない)、改竄の有無の検出を行うことができます。さらに、PDF署名は様々な高度な署名の利用ができることになっています。

PDF Referenceで規定しているPDF電子署名の仕様概要は以下の通りです。

注意しなければならないのは、仕様として規定されていても、それを正しく実装したアプリケーションがないと利用できないことです。さらに、正しく実装するだけではなく、それが簡単に使いこなせないと活用できません。また、身近に使いこなすには、安価なツールも必要になります。そういうツールがないと絵に描いた餅になってしまいます。とりあえずは、絵に描いた餅だと思って読んでみてください。

1.PDFでは、署名は署名ハンドラが取り扱います。この署名ハンドラは、プラグインとして実現でき、独自の様々な機能も実現できます。つまり、自分でハンドラを書いて特殊なこともできるというわけです。

2.署名の情報は、PDFの中の署名辞書に登録されます。署名ハンドラは、署名辞書に独自のエントリを定義することもできます。

3.署名は、データまたはデータの一部のダイジェストを計算し、それをPDFの中の保存することで作成します。署名の検証では、ダイジェストを再計算し、PDFの中に保存されていた値と比較します。もし、一致すれば、文書は変更されていないことになりますが、不一致になりますと文書が署名されてから変更されたことになります。

4.PDFではダイジェストを計算する方法に二つの方法があります。第一は文書の中の全体または特定領域の範囲を指定して計算する方法。第二はメモリの中の特定のオブジェクトを辿ってダイジェストを計算する方法です。この第二の方法はPDF独自ではないでしょうか。これによって、かなり複雑なPDF独自の署名機能を実現できると思います。

5.PDFには幾つかの標準タイプの署名を含むことができます。
(1)1つ以上の通常の署名
(2)最大1個の変更検出・変更防止署名
(3)最大2個のユーザ権利の使用権を指定する署名

ここまで読んだだけで、PDFでは、どうもかなりいろんな種類の署名ができそうだと思われますね。

投稿者 koba : 2007年05月09日 08:00

トラックバック

このエントリーのトラックバックURL:
http://blog.antenna.co.jp/PDFTool/mt-tbng2.cgi/682

コメント

コメントしてください




保存しますか?