8–5 参考資料

PDF電子署名の概要

PDF電子署名とは

PDF電子署名では、既存のPDFファイルに電子署名をして、署名値をその内部に含む新しいPDFファイルを作成します。本製品では、従来からのPDF電子署名の仕様であるISO 32000-1に加え、ISO32000-2で追加された長期保管に対応したPDF電子署名の仕様であるPAdES(ETSI TS 102 778)※に適合する電子署名を付けることができます。PAdESについての詳細は、[PAdES(PDF長期署名)とは?]の項を参照してください。

  •   但し、PAdES(ETSI TS 102 778)の「Part5: PAdES for XML Content」は除く。

ISO 32000-1のPDF電子署名仕様の詳細は以下の資料を参照してください。

  • ISO 32000-1:2008 Document management - Portable document format - Part 1: PDF 1.7 12.7 Interactive Forms, 主に12.7.4.5 Signature Fields pp. 446~451(署名フィールド)
  • ISO 32000-1:2008 Document management - Portable document format - Part 1: PDF 1.7 12.8 Digital Signatures pp. 466~478(電子署名)

PDF電子署名の種類

ISO 32000-1で規定されているPDF電子署名の中で、本製品では普通署名とMDP署名(証明)を付けることができます。なお、本製品の用語と、AcrobatなどのAdobe社製品やISO 32000-1の用語の対応は次の表の通りです。

本製品の用語 Acrobatの用語 ISO 32000-1の用語
普通署名承認用署名Approval Signature
MDP署名(証明)サイバータイム証明用署名

本製品では、ISO 32000-1に規定されているPDF電子署名のうち、署名フィールドをテキスト・フィールドなどのフィールドに対応させておき、署名フィールドに署名することで、対応するテキスト・フィールドなどを変更できないようにする機能(フィールドMDP署名)には対応していません。

MDP署名(証明書)では、法的内容証明を行うことが推奨されていますが、本製品では法的内容証明には対応できません。

PDFバージョンとの関係

PDFの電子署名はPDF1.3より規定されました。また、PDFのバージョンが上がるに従って機能が追加されています。ISO 32000-1で規定されている署名関連機能のPDFのバージョンとの関係は大体で次のようになっています。

署名関連機能のPDF のバージョンとの関係

図8・28 署名関連機能のPDF のバージョンとの関係

署名前のPDFファイルは、バージョンを1.6以降で作成することを推奨します。本製品では、PDFの署名辞書はPDF 1.5以降であればISO 32000-1準拠となります。なお、タイムスタンプを付与した場合、PDF 1.6以降であればISO 32000-1準拠となります。

本製品で、これよりも古いPDFバージョンのPDFにPDF電子署名とタイムスタンプを付けることもできますが、そうすると出力されるPDFファイルはISO 32000-1に準拠したものとはなりませんのでご注意ください。

互換運用性

本製品はAdobe社のAcrobatに依存せずにPDF電子署名やPDFのセキュリティを付与し、それらを検証する独自の署名ハンドラ、標準セキュリティハンドラを用意しております。これらを本製品のみで運用する場合、相互運用性は問題になりません。本製品はPDF電子署名機能についてAdobe Acrobat 7/8/9/X/XI/DC、Adobe Reader 7/8/9/X/XI/DCとの相互運用性を保証します。

例えば、Adobe Acrobatで作成した署名フィールドに本製品で署名したり、逆に本製品で作成した署名フィールドにAdobe Acrobat 7/8/9/X/XI/DCで署名したりすることが可能です。また、本製品によるPDF電子署名をAdobe Acrobat 7/8/9/X/XI/DC、Adobe Reader 7/8/9/X/XI/DCの署名検証機能で検証することができます。

タイムスタンプは、RFC3161-SHA1を使うものはAdobe Acrobat 7/8/9/X/XI/DCと相互運用可能です。RFC3161-SHA2(512bit)を使うものについては、Adobe Acrobat 8/9/X/XI/DCとのみ相互運用可能です。

パスワードによるセキュリティ設定は、Adobe Acrobat 7/8/9/X/XI/DCと相互運用できます。

  •  Adobe社によるAdobe Acrobat 7/8/9/X/XI/DC 2015 (Classic)/2017、およびAdobe Reader 7/8/9/X/XI/DC 2015 (Classic)/2017についてのサポートは既に終了しております。(2024年3月現在)

電子署名について

電子証明書の種類

電子証明書には、対応する秘密鍵を持つ証明書と、対応する秘密鍵を持たない証明書があります。対応する秘密鍵を持つ証明書を個人の証明書と表記し、また、対応する秘密鍵を持たない証明書を他人の証明書と表記することもあります。

電子署名には、対応する秘密鍵を持つ証明書が必要です。対応する秘密鍵を持たない他人の証明書ではPDF電子署名はできません。

電子証明書は通常は認証局が発行したものを使います。必ずしも、認証局が発行したものでない自己署名証明書でも署名することはできます。この自己署名証明書と認証局の証明書との違いは、信頼できる証明書発行機関である認証局が、証明書発行時に保有者の認証を行なっているかどうかです。

電子証明書の保存形式

対応する秘密鍵を持つ証明書は、一般的には秘密鍵と一体にしたPFX、または、PKCS#12形式のファイルとして受け渡されます。

Microsoft Windowsでは、PFX/PKCS#12ファイルはWindows証明書ストアにインポートして使います。本製品ではログオンしたユーザーのWindows証明書ストアに保存されている証明書、または直接証明書ファイルを指定して使用します。 Windows証明書ストアに保存されている証明書は、ログインしたユーザーのアカウントからパスワードなしに使うことができるという点で便利ですが、一方、そのアカウントにログインしないユーザーからは使えないという制約があります。

本製品に対応するICカード証明書

本製品で使用可能なICカード証明書は、読み取り装置にセットされているICカードに格納されている証明書が、ログオンしたユーザーのWindows証明書ストアに自動的に登録されるタイプの製品です。

本製品の電子署名機能

本製品の電子署名では、ハッシュアルゴリズムはSHA-1、SHA-2(SHA-256/384/512)です。公開鍵暗号アルゴリズムはRSA方式(鍵長は2048か4096ビット)をサポートしています。

長期署名について

長期署名とは

PDFファイルに付与された電子署名が正しいか否かは、電子署名に利用された電子証明書が信頼された認証局によって発行されたものであること、またその有効期間や失効情報によってその信頼性を確認することができます。

ただ、上に述べたように電子署名に利用された電子証明書に有効期間があるため、これを過ぎてしまうとその信頼性を保証することができなくなってしまいます。長期署名とは、署名データだけではなく、電子証明書や失効情報をまとめて管理することで電子証明書の有効期間を過ぎた後でも、電子署名の検証ができるようにする仕組みです。

長期署名の仕組み

長期署名の重要な仕組みとしてRFC3161タイムスタンプ技術があります。

電子署名が「誰が」作成したものなのかを保証するのに対し、タイムスタンプは、そのデジタルデータが「いつ(時刻)」存在したかを保証する電子署名の一種です。長期署名では、この「いつ」を保証するために「署名タイムスタンプ」を、「保証期間の延長」を行うために「ドキュメントタイムスタンプ」を利用します。

「電子署名+署名タイムスタンプ+電子証明書+失効情報」に対し、「ドキュメントタイムスタンプ」を付与し続けることで保証期間の延長を行います。

長期署名の仕組み

図8・29 長期署名の仕組み

上の図に示すように電子署名には有効期間があります。電子署名が付与された当時にその電子署名が有効であった証拠として「署名タイムスタンプ」が付与されるわけですが、これについてもやはり有効期間があり、その有効期間内に「ドキュメントタイムスタンプ」を付与し続けることで、これを保証するわけです。

また、長期署名では署名対象となるPDFファイルと電子署名+署名タイムスタンプ+電子証明書+失効情報の全体にタイムスタンプを付与します。これは、署名対象となるデータとその検証に必要な情報がタイムスタンプの暗号アルゴリズムで保護されることを意味します。タイムスタンプの暗号アルゴリズムは、個人の電子署名のそれよりも強固なものが利用されますので、電子署名を付与した当時の暗号アルゴリズムが脆弱化した後でも、長期署名をすることで電子署名の有効性を維持することができます。

長期署名の運用

実際のデータは図のような入れ子構造となっており、情報を重ねていくことで長期署名を実現しています。

長期署名の運用

図8・30 長期署名の運用

通常は、次の手順で運用します。具体的な方法については、本マニュアルのリンク先のページを参照してください。

  1. 対象となるPDFファイルに長期署名形式で普通署名を付与します。[普通署名の付与]
  2. タイムスタンプが付与されていない場合には、署名タイムスタンプを付与します。[タイムスタンプの付与]
  3. 認証局の証明書失効リスト(CRL)の更新後(通常、普通署名付与後、1日程が経過した後)、検証情報の追加を行います。[検証結果の追加]
  4. 最初のドキュメントタイムスタンプを付与します。[タイムスタンプの付与]
  5. 上記4の手順で付与したドキュメントタイムスタンプの有効期間内(通常10年程度)に検証情報の追加とドキュメントタイムスタンプの付与を行います。
    以降、この作業を同様のタイミングで継続して行うことにより、PDFファイルに付与した電子署名の有効性を維持し続けることができます。

PAdES(PDF長期署名)とは?

PAdES(PDF長期署名:PDF Advanced Electronic Signatures)とは、長期保管に対応したPDF電子署名の仕様です。このPAdES仕様は、欧州電気通信標準化機構(ETSI)によりETSI TS 102 778・EN 319 142-1として標準化されており、PDFの標準仕様であるISO32000-2:2017とPAdESプロファイルISO 14533-3:2017で定義されています。また、既にAcrobat Xでサポートが開始されており、今後のPDFの電子署名の標準となるものです。

PAdES仕様は、以下に示すようにPart 1~6までが公開されています。Part 1は概要となり、Part 2以降が具体的な仕様を示します。

表8・1 PAdES仕様のパート構成
Part 1:PAdES OverviewPAdES全体の概要を解説しています。
PAdES使用について最初に読むべき解説です。
Part 2:PAdES Basic既存のPDF仕様(ISO 32000-1/PDF1.7)に基づく署名プロファイルです。署名プロファイルとしてPKCS#7(CMS)を利用しています。
既存のPDF電子署名の仕様をまとめたものです。
署名データにPKCS#7を利用しているため厳密には長期署名仕様とは呼べませんが、現在PDF署名と呼ばれるものは、これに該当します。
Part 3:PAdES Enhanced署名プロファイルとしてCAdES-BES/CAdES-EPES/CAdES-Tを使った署名プロファイルです。
Part 4:PAdES Long Term(LTV)PAdES-LTV(Long Term Validation)Profile。長期署名の為に新たに加えられたDSS/VRI辞書を使って検証情報とドキュメントタイムスタンプをPDFに埋め込みます。
PAdES Basic/Enhancedで署名済みのPDFファイルに対する操作の仕様です。
Part 5:PAdES for XML ContentPDFに添付されたXMLドキュメントや、XFA(XML Forms Architecture )として埋め込まれたXMLフォームに対して、XAdESを使った長期署名プロファイルです。
Part 6:Visual Representations of Electronic Signatures署名の際にPDF文書内に配置される署名の外観や検証に関する仕様の概要です。

以下にPAdES仕様により生成される代表的な署名済みPDFの例を示します。

生成される代表的な署名済みPDFの種類

図8・31 生成される代表的な署名済みPDFの種類