« 2008年06月08日 | メイン | 2008年06月10日 »

2008年06月09日

PDFで電子署名による改竄防止とは?署名後の変更検出

「PDF電子署名モジュール」を発売以来、

PDF電子署名を使えば、改竄防止ができますか?

というお問い合わせを、何度もいただいています。電子署名は、改竄への抑止効果を期待できるという意味では広い意味では改竄防止のために役立つでしょう。一方、PDFの改竄をできなくするという狭い意味では、改竄防止にはなりません。

一般に、改竄は本来なされるべきでない変更を意味すると思います。このような改竄とは行かなくても、PDFに署名を施した後で、PDFを変更することは自由にできます。例えば、最初の署名後、別の人が署名することなども変更の一例です。(このような適切な更新は、改竄には含めないと思いますが)。

PDFに電子署名することで、署名した時点からPDFが変更・改竄されていないかどうかを検証できるようになります。そして変更・改竄されていればそのことを検出するものです。

このような署名対象の署名後の変更・改竄の検出は、電子署名の効用の一つです。

こうした署名を使った変更・改竄検出処理の内部的な処理は大雑把には次のようなものです。

1.PDF署名ツールは、署名時点のPDFのハッシュ値を計算します。そしてハッシュ値を暗号化してPDF内に保管します。

2.署名検証ツールは、PDF内に保管されているハッシュ値の暗号を解いて署名時のハッシュ値を取り出します。そして、別途独自に現在のPDFのハッシュ値を計算します。
署名時のハッシュ値と、独自に計算した現在のPDFのハッシュ値を比較して、同一か、違っているかを調べます。

二つのハッシュ値が同じであれば、PDFは署名後変更も改竄もされていないとします。
ハッシュ値が違っていれば、そのPDFは署名後変更または改竄されたということになります。

さらに、PDFの場合は、署名済みの範囲を変更しないで、変更箇所を増分更新として記録することで適切な変更を行なえば、不適切な変更である改竄と区別ができます。

以上は、一般的な署名検証ツールの処理です。Adobe Readerには署名検証ハンドラが内蔵されており、署名後の変更・改竄についての検証を行なうことができます。Adobe Readerの内部的な処理は、上の説明より少し詳細なチェックになっているようです。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック