« 2007年05月11日 | メイン | 2007年05月13日 »
2007年05月12日
PDFと署名(24) — PDFの署名が複雑な事情
PDFの署名は、次の二つの点で非常に込み入っています。
○その第一はPDF Referenceで決める署名の付け方が込み入っていることです。
署名は対話フォーム(AcroForm)の一種である「署名フィールド」として定義されており、まず署名フィールドを作って、署名すると、そこに署名辞書ができます。
またPDF署名には外観をつけることができ、署名の外観は注釈の一種として定義されます。この署名に外観をつけるというのは、PDF特有の機能になります。
そこで、署名辞書のない(未署名の)署名フィールド、署名済みの署名フィールド、外観のある署名、外観のない署名などのパターンができてしまいます。このようにPDF署名は、署名する・しないという単純な状態ではなく、複雑な状態をもつため、ユーザが理解するのがとても難しくなってしまいます。
○その第二は、PDFの署名は、PDF Reference 1.3(Acrobat4)で初めて導入された比較的新しい機能ですが、その後、PDF Reference 1.5(Acrobat6)で大幅に変更になっています。つまりPDFのバージョンによって大幅に変更になっている点がある、ということです。
これを示すために、署名に関連する各種の辞書のキーがPDF1.3からPDF1.5でどのように変わったかを表にしてみました。次の表を見ますと、PDF 1.5で署名関連の辞書が大幅に変更になっていることが一目瞭然です。また、PDF1.6、PDF1.7で細かい仕様拡張が行われています。
○フィールド辞書のキー
Field Dictionary | |||||
---|---|---|---|---|---|
PDF 1.3 | PDF 1.4 | PDF 1.5 | PDF 1.6 | PDF 1.7 | |
FT | FT | FT | FT | FT | |
FT | Parent | Parent | Parent | Parent | |
Parent | Kids | Kids | Kids | Kids | |
Kids | T | T | T | T | |
T | TU | TU | TU | TU | |
TU | TM | TM | TM | TM | |
TM | Ff | Ff | Ff | Ff | |
V | V | V | V | V | |
DV | DV | DV | DV | DV | |
AA | AA | AA | AA | AA | |
/FT /Sig固有 | Lock | Lock | Lock | ||
SV | SV | SV |
○Lock辞書
Lock | ||||
---|---|---|---|---|
PDF 1.3 | PDF 1.4 | PDF 1.5 | PDF 1.6 | PDF 1.7 |
Type | Type | Type | ||
Action | Action | Action | ||
Fields | Fields | Fields |
○SV辞書
SV | ||||
---|---|---|---|---|
PDF 1.3 | PDF 1.4 | PDF 1.5 | PDF 1.6 | PDF 1.7 |
Type | Type | Type | ||
Filter | Filter | Filter | ||
SubFilter | SubFilter | SubFilter | ||
DigestMethod | ||||
V | V | V | ||
Cert | Cert | Cert | ||
Reasons | Reasons | Reasons | ||
MDP | MDP | |||
TimeStamp | TimeStamp | |||
LegalAttestation | LegalAttestation | |||
AddRevinfo | ||||
Ff | Ff | Ff |
○SVのCert辞書
Cert | ||||
---|---|---|---|---|
PDF 1.3 | PDF 1.4 | PDF 1.5 | PDF 1.6 | PDF 1.7 |
Type | Type | Type | ||
Subject | Subject | Subject | ||
SubjectDN | ||||
KeyUsage | ||||
Issuer | Issuer | Issuer | ||
OID | OID | OID | ||
URL | URL | URL | ||
URLType | ||||
Ff | Ff | Ff |
○署名辞書のキー
署名辞書 | ||||
---|---|---|---|---|
PDF 1.3 | PDF 1.4 | PDF 1.5 | PDF 1.6 | PDF 1.7 |
Type | Type | Type | Type | Type |
Filter | Filter | Filter | Filter | Filter |
SubFilter | SubFilter | SubFilter | SubFilter | SubFilter |
Contents | Contents | Contents | Contents | Contents |
Cert | Cert | Cert | ||
ByteRange | ByteRange | ByteRange | ByteRange | ByteRange |
Reference | Reference | Reference | ||
Changes | Changes | Changes | ||
Name | Name | Name | Name | Name |
M | M | M | M | M |
Location | Location | Location | Location | Location |
Reason | Reason | Reason | Reason | Reason |
ContactInfo | ContactInfo | ContactInfo | ||
R | R | R | ||
V | V | V : 署名辞書形式のバージョン | ||
Prop_Build | Prop_Build | Prop_Build | ||
Prop_AuthTime | Prop_AuthTime | Prop_AuthTime | ||
PropAuthType | PropAuthType | PropAuthType |
○reference 辞書
reference | ||||
---|---|---|---|---|
PDF 1.3 | PDF 1.4 | PDF 1.5 | PDF 1.6 | PDF 1.7 |
Type | Type | Type | ||
TransformMethod | TransformMethod | TransformMethod : DocMDP, UR, FiledMDP, Identity | ||
TransformParams | TransformParams | TransformParams | ||
Data | Data | Data | ||
DigestMethod | DigestMethod | DigestMethod | ||
DigestValue | DigestValue | DigestValue | ||
DigestLocation | DigestLocation | DigestLocation |
○DocMDP TransformParam 辞書
DocMDP TransformParam | ||||
---|---|---|---|---|
PDF 1.3 | PDF 1.4 | PDF 1.5 | PDF 1.6 | PDF 1.7 |
Type | Type | Type | ||
P | P | P | ||
V | V | V |
○UR TransformParam 辞書
UR TransformParam | ||||
---|---|---|---|---|
PDF 1.3 | PDF 1.4 | PDF 1.5 | PDF 1.6 | PDF 1.7 |
Type | Type | Type | ||
Document | Document | Document | ||
Msg | Msg | Msg | ||
V | V | V | ||
Annots | Annots | Annots | ||
Form | Form | Form | ||
FormEx | FormEx | |||
Signature | Signature | Signature | ||
EF | EF | |||
P | P |
○FieldMDP 辞書
FieldMDP | ||||
---|---|---|---|---|
PDF 1.3 | PDF 1.4 | PDF 1.5 | PDF 1.6 | PDF 1.7 |
Type | Type | Type | ||
Action | Action | Action | ||
Fields | Fields | Fields | ||
V | V | V |