2010-09-08

Acrobat9/Reader9での署名検証結果の表示変更  [by miyachi]

昨日某所の会合でPDF電子署名外観に関する話をしていました。検証結果の表示についてどう表示されるのかをふと確認しておこうと思いその場で Adobe Reader 9 で開いてみました。AdobeのReader/Acrobatでは標準ではPDFを開く時に電子署名があれば検証をして結果を表示してくれます。例えば検証の成功・不明・失敗を開いた例が以下となります。

Adobe Reader9

ん?何か違和感が…良く見ると Adobe Reader/Acrobat 8 では署名外観の上に、成功ならチェックマークが、不明なクエスチョンマークが、失敗ならバツマークが付いていたのが表示されなくなり、ツールバーの下(PDFページ表示の上)にある署名ペインに検証結果が表示されています。比較の為に以下に Adobe Acrobat 8 で同じファイルを開いた例を示します。

Adobe Acrobat8

この変更はどういう意図なのか等を私なりに考察してみます。興味がありましたら [続きを読む] にて。

まずPDFの署名外観に関しておさらいします。電子署名はPKI的にはPKCS#7や長期署名ではCAdESと言った署名データそのものが実体となります。PDFでは署名辞書のContentsキーの要素として署名データがHEX値で格納されます。一方PDF署名には署名註釈をオプションとして付与可能であり、このWidget註釈により署名の外観を表示することが出来ます。印影のような画像であったり任意のテキスト(Acrobatでは署名者や署名時刻等)を表示可能です。

署名外観は複数のレイヤー(層)で指定されます。基本になるのはn0レイヤー(バックグラウンド)とn2レイヤー(署名外観)の2つの層です。n0レイヤーは署名前の署名フィールドで表示される層であり、n2レイヤーが署名後の署名外観を表示する層となります。これは現在のISO32000-1でも同じになります。なお署名の外観に関しては署名ハンドラに依存する部分が大きく、PDF標準規格からは少し外れた話になります。つまりここではAdobeの標準署名ハンドラに依存した話をしていると言うことです。

次にPDFとAcrobat/Readerの歴史にも関係する話になります。Acrobat4/5(PDF1.3/1.4)では前述のn0/n2レイヤー以外に、n1/n3/n4レイヤーが指定可能でした。n1レイヤーが検証結果が不明時の外観を、n3/n4レイヤーでその他検証状態等の概観を指定するレイヤーでした。しかしn1/n3/n4レイヤーはAcrobat6(PDF1.5)以降では使われなくなり、生成されなくなりました。一般にPDF電子署名が我慢すれば使えるレベルになったのがAcrobat6以降と言われていますので、n1/n3/n4レイヤーは無視して構わないでしょう。

PDFの署名外観に関してはAdobe社が標準署名ハンドラの資料として公開しているドキュメントがあります。

 Digital Signature Appearances V9 2008-May
 Digital Signature Appearances 2006-Oct
 Digital Signature Appearances (日本語) 2003-May

2008年に今回のAcrobat/Reader 9用の仕様が公開されていました。気が付かなかった…orz 上記3資料を比べるとPDFの署名外観の変遷が理解出来そうです。まだ2008年版を熟読した訳ではありませんが、やはり検証結果は署名フィールド上では無く上部の署名ペインでの表示になったと言う理解で正しいようです。

ところでこのV9の仕様変更により複数の署名があるPDFファイルの検証時にどれか1つエラーがあった場合に少し面倒になりました。マウスを署名外観上に移動すると検証結果がツールチップスとして表示されるのですが、一見してどの署名が不正だったかが判別できなくなってしまいました。以下の例は2つ署名があり、右側の署名が不正な場合です。Acrobat/ReaderのV9では以下のように表示されます。マウスを移動して初めてどの署名が有効だったか無効だったかが分かります。

Adobe Reader9 2

これに対して以下はAcrobat8で同じファイルを開いた例です。ご覧のようにどの署名が無効でどの署名が有効だったのか一目で分かります。

Adobe Acrobat8 2

AdobeのAcrobat/Readerで署名外観がどのように表示されるかはPDF仕様の範囲では無くAdobeの実装と言う事になります。ただし特に日本ではAcrobat/Readerの利用が多い現状を考えると影響は大きいと言えるでしょう。ISO32000-1のドラフト時には「Digital Signature Appearances 2006-Oct」を参照していたのでそちらばかりを見ていて2008年版の存在に気が付かなかったのが後悔されます。今から2008年版の「Digital Signature Appearances V9」を読むことにします。

最後に何故このような仕様変更が行われたかを考察してみましょう。従来の仕様ですと検証結果によってページ内の表示が変化することになります。方針としてページ内の表示は状況により変化しないようにと言う仕様変更だろうと予想しています。
2010-09-08 13:59:17 - miyachi - [PKI/暗号] -

コメント一覧

コメント無し

コメントを書く

このアイテムは閲覧専用です。コメントの投稿、投票はできません。