PDF Security
PDF 電子署名 概要
電子署名
電子署名の様々なタイプを適用できます。
長期署名はPAdES-B-LTA、PAdES-LTV等に対応しています。
PDF SecurityはPDFおよびPDF/Aに準拠の電子署名を適用します。電子証明書の失効情報(CRLまたはOCSPによる)やタイムスタンプを埋め込むことができます。さらに、HSM(PKCS#11, ハードウェア・セキュリティ・モジュール)を利用すると、より信頼性の高い電子署名を適用します。
PDF Securityは、電子証明書・失効情報をチェックすることで電子署名の有効性を検証します。
署名領域に日本語を表示できます。
電子印鑑 (印鑑の画像)
可視署名では、電子印鑑(印影画像)を追加できます。追加した電子印鑑の電子署名の詳細情報情報(署名者や時刻など)を非表示にできます。
暗号化
PDF文書は、それが重要な場面で利用される場合、データの不正なアクセスや改竄から保護されなければなりません。このような場合、暗号化やアクセス許可フラグなどを利用してデータを保護します。
タイムスタンプ
電子署名を適用せず、タイムスタンプだけを追加できます。
利用分野
- 文書保管
電子文書の保管では、事前に電子署、タイムスタンプを付加します。
これは、電子文書(国税関連文書など)を長期保存する要件のひとつです。 - ソフトウェア開発者
PDF Securityは、多くの経験や高度なプログラミングテックニックなしで、必要なソリューション(アプリケーション)に素早く統合することができます。
- その他の利用分野
- PDF文書を暗号化や電子署名を施すアプリケーション(クライアント、サーバー、Web)
- 入力・出力管理における、集中型で大量の電子署名処理サービス
- ワークフロー支援システム(執筆者、レビュー、リリースなど)
- クライアント・ソリューション(電子署名署名アプリケーション)
- 電子書籍
製品の種類 (ライセンスのバリエーション)
PDF Securityは以下の種類の製品(ライセンス)があります。用途に合わせて選択してください。
- コマンド・ラインで利用する製品(Shellライセンス)
PDF Securityの機能をコマンドラインで利用するコンポーネントです。 バッチ処理などで処理する場合に適します。
- アプリケーションを開発するための製品(SDKライセンス)
クライアントPCまたはサーバーで開発するためのライセンスです。
利用のライセンスを含みません。 - ライブラリ(API)クライアントで利用する製品(クライアント・APIライセンス)
クライアントPCで利用するためのライセンスです。
開発のライセンスを含みません。 - ライブラリ(API)をサーバーで利用する製品(サーバー・APIライセンス)
PDF Securityの機能をサービスとして提供するための開発を含めたライセンスです。
開発のライセンスを含みません。
機能
電子署名
- PDF/A規格に準拠した電子署名
- PDFおよびPDF/A文書に適用された電子署名と検証
- 署名のタイプ
- 文書への電子署名
- MDP(Modification detection & prevention)署名
- 文書へのタイムスタンプ追加
- PAdES-B-LTA(long term availability and integrity of validation material)、PAdES-LTV(Long TermValidation)などで署名・検証
- 信頼チェーン、タイムスタンプ、失効情報の埋込
- 既存電子署名の有効期間を延長
- 文書の署名検証情報をDSS(Document Security Store)に追加
- 可視・不可視署名に対応
- 可視署名では、ページ、サイズ、色、位置、テキスト、背景画像など指定可能
- 一括署名では、OCSPやCRL、その他のデータをキャッシュ
- 様々なタイプの暗号化プロバイダに対応
- Windows certificate store
- ハードウェアモジュール HSM(Hardware Security Module)、スマートカード、およびUSBトークンなど
- オンライン署名サービス
- myBica Digital Signing Service
- Swisscom All-in Signing Service
- GlobalSign Digital Signing Service
- QuoVadis sealsign
- カスタム電子署名ハンドラー インターフェース
- 一括署名
- 複数署名
既存電子署名への処理
- 署名検証
- 電子署名を削除
- PDF文書から署名されたバージョン(レビジョン)を抽出
PDF文書の暗号化と復号
- PDF文書の使用制限を設定
- 印刷と印刷の解像度、変更、抽出やコピー、コメント追加、フォームへの追加、コンテンツ抽出、文書の構成
- 暗号化フィルターとストリームフィルターを設定
- 暗号化強度を設定
- 所有者とユーザーのパスワードを設定
スタンプ
- テキスト、画像、ベクトル・グラフィックをスタンプとして追加
- ハイパーリンクを追加
- PDF/A準拠のスタンプ
- 既存スタンプの変更
- 署名されたPDF文書へのスタンプは既存署名を保持
- レイヤーへのスタンプ
他
- PDF文書のメタデータ追加
- PDF文書をリニアライズ(linearize Web最適化)(PDF2.0を除く)
仕様
入力フォーマット
- PDFPDF1.0~1.7, PDF2.0
- PDF/APDF/A-1, PDF/A-2, PDF/A-3
出力フォーマット
- PDF/A(入力のフォーマットがPDF/Aの場合)
規格
- 標準:
- ISO 32000-1 (PDF1.7)
- ISO 32000-2 (PDF2.0)
- ISO 19005-1 (PDF/A-1)
- ISO 19005-2 (PDF/A-2)
- ISO 19005-3 (PDF/A-3)
- PAdES(ETSI EN 319 142)
B-B, B-T, B-LT, B-LTA, CMS
- PAdES(ETSI TS 103 172)
B-Level, T-Level, LT-Level, LTA-Level
- PAdES(ETSI TS 102 778)
Part2(PAdES Basic), Part3(PAdESBES), Part4 (PAdESLTV, Long Term Validation)
- Long term signature profiles for PAdES (ISO 145333)
- Cryptographic Suites (ETSI TS 119 312)
OS
- Windows 8, 8.1, 10 – 32 または 64Bit
- Windows Server 2016, 2019 – 32 または 64Bit
- Linux:
- Red Hat, CentOS, Oracle Linux 7以降 - 64Bit
- Fedora 29以降 - 64Bit
- Debian 8以降 - 64Bit
- 他 Linux kernel 2.6以降, GCC toolset 4.8以降 - 64Bit
- macOS 10.10以降 - 64bit
インターフェース
- API: C, Java, .NET, COM
プログラム言語
- C
- Java
- .NET Framework
- .NET Core (Windowsのみ)
- COM
サンプル
PDF文書に電子電子署名するサンプルです。
電子証明書はWindows Cryptgraphic Providerから取得し、必要な暗号アルゴリズムを取得します。 サンプルでは、Common Name(CN)で電子証明書を選択します。
電子証明書はWindows Cryptgraphic Providerから取得し、必要な暗号アルゴリズムを取得します。 サンプルでは、Common Name(CN)で電子証明書を選択します。
C# | C/C++ | 他のサンプル |
// Secureオブジェクト生成 pSecure = PdfSecureCreateObject(); // 入力ファイルをオープン if (!PdfSecureOpen(pSecure, szInputPath, _T(""))) { _tprintf(_T("入力ファイル %s をオープンできません。 %s (エラーコード: 0x%08x).\n"), szInputPath, PdfSecureGetErrorMessage(pSecure), PdfSecureGetErrorCode(pSecure)); iReturnValue = 1; goto cleanup; } // Windows Cryptographic Providerを使ってセッションを開始 if (!PdfSecureBeginSession(pSecure, _T(""))) { _tprintf(_T("Windows Cryptographic Providerに接続できません。 %s (エラーコード: 0x%08x).\n"), PdfSecureGetErrorMessage(pSecure), PdfSecureGetErrorCode(pSecure)); iReturnValue = 1; goto cleanup; } // 署名オブジェクトを生成 pSignature = PdfSignatureCreateObject(); //証明書を選択して、電子署名する PdfSignatureSetName(pSignature, szCertificate); PdfSecureAddSignature(pSecure, pSignature); // 署名されたPDF文書を作成 if (!PdfSecureSaveAs(pSecure, szOutputPath, _T(""), _T(""), ePermNoEncryption, 0, _T(""), _T(""))) { _tprintf(_T("署名されたファイル %s を作成できません。 %s (エラーコード: 0x%08x).\n"), szOutputPath, PdfSecureGetErrorMessage(pSecure), PdfSecureGetErrorCode(pSecure)); iReturnValue = 1; goto cleanup; } // 後始末 cleanup: PdfSecureClose(pSecure); PdfSecureEndSession(pSecure); _tprintf(_T("終了"));
C# | C/C++ | 他のサンプル |
// Secureオブジェクト生成 using (Secure secure = new Secure()) { // 入力ファイルをオープン if (!secure.Open(inputPath, "")) throw new Exception(String.Format("入力ファイル {0} をオープンできません。 " + "{1} (エラーコード: 0x{2:x}).", inputPath, secure.ErrorMessage, secure.ErrorCode)); // Windows Cryptographic Providerを使ってセッションを開始 if (!secure.BeginSession("")) throw new Exception(String.Format("Windows Cryptographic Providerに接続できません。 " + "{0} (エラーコード: 0x{1:x}).", secure.ErrorMessage, secure.ErrorCode)); // 署名オブジェクトを生成 using (Signature signature = new Signature()) { //電子証明書を選択し、電子署名する signature.Name = certificate; secure.AddSignature(signature); // 署名されたPDF文書を出力 if (!secure.SaveAs(outputPath, "", "", PDFPermission.ePermNoEncryption, 0, "", "")) throw new Exception(String.Format("署名されたファイル {0} を作成できません。 " + "{1} (エラーコード: 0x{2:x}).", outputPath, secure.ErrorMessage, secure.ErrorCode)); } // 後始末 secure.Close(); secure.EndSession(); } Console.WriteLine("終了");