Skip to main content
Interwork Corporation
IDR Solutions Product Support Portal
PDF開発用語集 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動

Security encoding

Security encodingとは、PDF security handler内で使用される文字エンコーディング方式であり、パスワード文字列やその他のセキュリティ関連テキストデータを適切に解釈・処理するために用いられます。

カテゴリ: Text & Fonts
キーワード: security encoding, Security encoding

概要

Security encodingとは、PDF security handler内で使用される文字エンコーディング方式であり、パスワード文字列やその他のセキュリティ関連テキストデータを適切に解釈・処理するために用いられます。 ( Citation: N.A., (N.A.). (). Document management — Portable document format — Part 2: PDF 2.0 International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) によれば、適切なエンコーディングは、異なるPDF実装やプラットフォーム間でパスワードや暗号化キーが一貫して処理されることを保証するために不可欠です。エンコーディング方式は、暗号化されたPDF文書を開く際にユーザーパスワードやオーナーパスワードがどのように検証されるかに直接影響します。

定義

Security encodingとは、PDFのセキュリティ操作、特にパスワードベースの暗号化と認証に使用されるテキスト文字列に適用される特定の文字エンコーディング標準です。PDFワークフローにおいて、security encodingは通常、ユーザーが提供したパスワード文字列を標準化されたバイト表現に変換し、保存された暗号化キーと一貫してハッシュ化・比較できるようにすることを含みます。これは、コンテンツを正しく表示することに焦点を当てたPDFの一般的なテキストエンコーディングとは異なり、security encodingは入力元やシステムロケールに関係なく、暗号化操作が同一の結果を生成することを保証します。

PDF文書で最も一般的なsecurity encodingは、PDFバージョンと使用されるsecurity handlerに応じて、Latin-1(ISO 8859-1)またはUTF-8を使用します。古いPDF security handler(PDF 2.0以前)は伝統的にパスワード処理にPDFDocEncodingまたはLatin-1を使用していましたが、最新の実装ではパスワードに国際文字を使用できるようにUnicodeベースのエンコーディングをサポートしています。

重要性

PDFのセキュリティ機能を扱う開発者にとって、security encodingを理解することは以下の理由から重要です。

相互運用性: 誤ってエンコードされたパスワードは、ユーザーが正しい文字を入力しても認証に失敗します。暗号化時に特定の文字セットでエンコードされたパスワードは、復号化時に同じエンコーディングを使用する必要があり、そうでなければ暗号化キーが一致しません。

国際化: グローバルなユーザーにサービスを提供するアプリケーションは、パスワード内の非ASCII文字を正しく処理する必要があります。適切なsecurity encoding実装がなければ、アクセント付き文字、非ラテン文字、特殊記号を含むパスワードを持つユーザーが暗号化された文書にアクセスできない可能性があります。

セキュリティへの影響: 不適切なエンコーディングは、パスワード強度が低下したり、異なる文字シーケンスが同一のバイト表現を生成したりして、不正アクセスを許す脆弱性を生み出す可能性があります。開発者は、これらのセキュリティ上の弱点を防ぐために、PDFライブラリがパスワード文字列を一貫して正規化およびエンコードすることを保証する必要があります。

仕組み

Security encodingは、ユーザー入力と暗号化処理の境界で動作します。

パスワードの正規化: ユーザーがPDFの暗号化または復号化のためにパスワードを提供すると、PDFプロセッサはまずsecurity handlerの仕様に従って文字列を正規化します。これには、文字列を特定のUnicode正規化形式に変換することが含まれる場合があります。

エンコーディング変換: 正規化されたパスワード文字列は、適切な文字エンコーディングを使用してバイトシーケンスに変換されます。PDF security handlerの場合、これは通常、(レガシー互換性のための)Latin-1または( ( Citation: N.A., (N.A.). (). Document management — Portable document format — Part 2: PDF 2.0 International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) 標準をサポートする最新の実装のための)UTF-8のいずれかです。

暗号化処理: 結果として得られるバイトシーケンスは、鍵導出関数または暗号化アルゴリズムへの入力として使用されます。セキュリティメカニズムが正しく機能するためには、暗号化と復号化の両方の操作で完全に同一のバイトシーケンスが生成される必要があります。

パディングと切り捨て: 一部のsecurity handlerは、基礎となる暗号化アルゴリズムの最小または最大長要件を満たすために、パスワードのバイトシーケンスに特定のパディングまたは切り捨てルールを適用します。

関連用語

  • Encryption dictionary – security handlerやエンコーディング方式を含む暗号化パラメータを指定するPDF辞書オブジェクト
  • Security handler – PDF文書における暗号化、復号化、アクセス許可を管理するコンポーネント
  • Character encoding – PDFのテキスト文字列やコンテンツストリームにおいて、文字をバイト値にマッピングする一般的なシステム
  • PDFDocEncoding – PDFで特定の文字列オブジェクトに使用される専用文字エンコーディングで、レガシーなパスワード処理に関与することがある
  • User password – 暗号化されたPDFコンテンツのロックを解除するために適切なsecurity encodingを必要とするパスワード文字列

出典

(N.A.) (2020)
(N.A.). (). Document management — Portable document format — Part 2: PDF 2.0 International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html