PublicKeySecurityHandler
PublicKeySecurityHandlerは、Apache PDFBoxのJavaクラスであり、PDFドキュメントに対して公開鍵暗号方式ベースのセキュリティを実装します。
PublicKeySecurityHandlerは、Apache PDFBoxのJavaクラスであり、PDFドキュメントに対して公開鍵暗号方式ベースのセキュリティを実装します。このセキュリティハンドラを使用することで、開発者はパスワードではなくデジタル証明書を使用してPDFコンテンツを暗号化し、アクセス権限を制御できます。本クラスは、 ( Citation: N.A., 2020 (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) で定義されている公開鍵セキュリティメカニズムをサポートし、証明書ベースの認証を通じて機密性の高いPDFドキュメントを保護します。
PublicKeySecurityHandlerは、Apache PDFBoxのセキュリティハンドラアーキテクチャの具象実装であり、非対称暗号化(公開鍵・秘密鍵のペア)を使用してPDFドキュメントを保護します。共有秘密に依存する標準的なパスワードベースのセキュリティハンドラとは異なり、PublicKeySecurityHandlerは受信者の公開鍵証明書を使用してドキュメントを暗号化し、対応する秘密鍵の保有者のみがコンテンツを復号化してアクセスできるようにします。
本クラスは主に2つの機能を提供します。指定された受信者に対して特定のアクセス権限を持つPDFドキュメントの暗号化と、デジタル署名の適用の促進です。暗号化に使用される場合、印刷、コピー、編集などのドキュメント権限を受信者ごとにきめ細かく制御できます。各受信者には証明書を通じて特定の権限が割り当てられ、ドキュメント暗号化キーは承認されたユーザーごとに個別に暗号化されます。
PublicKeySecurityHandlerは、StandardSecurityHandler(パスワードベースの保護)とは異なり、パスワード配布の必要性を排除し、証明書ベースのID検証を通じてより堅牢なアクセス制御を実現します。このアプローチは、公開鍵基盤(PKI)システムに依存するエンタープライズセキュリティインフラストラクチャと整合します。
機密文書を扱う開発者にとって、PublicKeySecurityHandlerは既存の証明書管理システムと統合できるエンタープライズグレードのセキュリティを提供します。これは特に、ドキュメントアクセスが特定の個人に追跡可能である必要があり、パスワード共有がコンプライアンスリスクをもたらす、医療、金融、政府などの規制産業において重要です。
本クラスにより、開発者はパスワード管理の運用オーバーヘッドなしに、大規模組織全体にスケールするドキュメントセキュリティワークフローを実装できます。異なるセキュリティレベルのパスワードを配布・管理する代わりに、組織は既存のPKIインフラストラクチャと認証局を活用できます。これにより、パスワードの再利用、送信、保管に関連するセキュリティ脆弱性が軽減されます。
実用的な観点から、PublicKeySecurityHandlerを使用することで、開発者は特定の個人またはグループのみが開くことができるPDFを作成でき、各受信者が異なる権限を持つことが可能です。これは、経営幹部がフルアクセスを持ち、監査人が閲覧のみのバージョンを受け取るような財務報告書の配布シナリオで非常に有用です。すべて単一の暗号化ドキュメントから実現できます。
PublicKeySecurityHandlerは、PDFドキュメント用にランダムな暗号化キーを生成し、そのキーを各受信者の公開鍵証明書を使用して個別に暗号化することで動作します。ドキュメントコンテンツ自体は、標準的な対称暗号化アルゴリズム(AESなど)を使用して一度暗号化され、一方でドキュメント暗号化キーは非対称的に複数回(受信者ごとに1回)暗号化され、PDFの暗号化辞書に保存されます。
受信者がドキュメントを開くと、PDFリーダーは自分の証明書に対応する暗号化キーエンベロープを見つけ、秘密鍵を使用して復号化し、結果として得られるドキュメントキーを使用してコンテンツを復号化します。この二層暗号化アプローチ(コンテンツには対称暗号化、キー配布には非対称暗号化)は、セキュリティとパフォーマンスのバランスを取ります。対称暗号化は大きなドキュメントに対して計算効率が良く、非対称暗号化は安全なキー配布を提供します。
Apache PDFBoxでは、開発者はPublicKeySecurityHandlerをインスタンス化し、X.509証明書ファイルから取得した受信者証明書で構成します。各受信者は、ドキュメントに対して実行できる操作を制御する特定の権限フラグとともに追加されます。ハンドラはドキュメント保存プロセス中にPDFBoxの暗号化フレームワークと統合され、 ( Citation: N.A., 2020 (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) で定義されている公開鍵セキュリティハンドラの暗号化仕様を実装します。
本クラスは、PDF標準で指定されているさまざまな暗号化強度とアルゴリズムもサポートしており、さまざまな鍵長と暗号モードが含まれます。開発者は、ファイル添付のみを暗号化するか、ドキュメント全体を暗号化するかを指定でき、機密性と真正性検証の両方が必要なドキュメントのために、暗号化とデジタル署名を組み合わせることができます。
- StandardSecurityHandler – ユーザーパスワードとオーナーパスワードを使用したパスワードベースのPDF暗号化を実装するApache PDFBoxクラス
- Digital Signature(デジタル署名) – ドキュメントの真正性と完全性を検証するための暗号化メカニズムで、暗号化と併用されることが多い
- X.509 Certificate(X.509証明書) – PublicKeySecurityHandlerで公開鍵をIDにバインドするために使用されるデジタル証明書標準
- Encryption Dictionary(暗号化辞書) – 保護されたドキュメントの暗号化パラメータと受信者情報を保存するPDF構造
- Access Permissions(アクセス権限) – 印刷、コピー、変更などのドキュメント操作を制御するフラグで、受信者ごとに設定可能
- (N.A.) (2020)
- (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html
