第5回 PDFのセキュリティ

PDFの「セキュリティ」にはふたつの意味がある

メールに添付されたPDFや、インターネットで公開されているPDFをダウンロードして開くことは、日常生活の中でごく普通に行われています。
 ところが、世の中には悪意をもった人々がそうしたPDFに悪さをし、配布していることをご存じでしょうか。そのPDFには「特別な仕組み」が仕込まれていて、何も対処せずにそのPDFを開いてしまうと、パソコンやスマホがいわゆる「マルウェア」*1に汚染してしまうのです。一般にインターネットの世界では、コンピュータウイルスなどマルウェアへの感染を防ぐ対策を「セキュリティ」と呼んでいます。冒頭でご紹介した問題への対処もPDFの「セキュリティ」と呼んでよいのですが、PDFの世界ではもうひとつ「セキュリティ」と呼んでいるものがあります。PDFの仕様書に書かれているPDFの「暗号化」と、それに連動した「機能制限」のことを「セキュリティ」と呼んでいます。
 両者は異なった概念ですが、技術的背景が異なっているかというとそうとも言えないので、なかなか難しい話ではあります。こうした点を留意しながら、できるだけわかりやすくPDFのふたつの「セキュリティ」について解説をしてみたいと思います。

PDFの「セキュリティ」にはふたつの意味がある

PDFビューアのぜい弱性を悪用してハッキングする手口

身近な取引先からPDFファイルの見積書や請求書がメールに添付されて送られてきたとします。ご存じのようにセキュリティ対策ソフトがそうしたメールの中身を事前にチェックしてくれており、通常ならそのままPDFを開いて内容を確認することが多いのではないでしょうか。
 ところが、これには大きく2つの抜け穴が考えられます。ひとつは、セキュリティ対策ソフトが感知できる仕組みにはタイムラグがあり、未知のハッキング手法に対応できないケースです。もうひとつは、暗号化されたZIPファイルなどで送られてくると、中身がチェックできないため、セキュリティチェックを素通りしてしまうケースです。
 某有名なPDFのビューアに対するセキュリティ関連の注意喚起の報告が、2020年では4件、2021年では1件(2021年12月調べ)、JPCERT/CC*2から公開*3されています。これらの報告を見ると、多くはPDFのアクション機能を悪用してハッキングする手口です。こうしたPDFが前述のセキュリティチェックの穴を素通りしてしまうと、パソコン等が「マルウェア」に感染し、最悪、組織全体が感染するような非常に深刻な事態になりかねません。

PDFビューアのぜい弱性を悪用してハッキングする手口

悪意の仕組みが組み込まれたPDFから自分のパソコンを守る方法

メールアドレスはいくらでも偽装できるので、メールアドレスやメールの文面を信じてはいけません。メールを送信した本人が実在する取引先であっても、添付ファイルが差し換えられている、あるいは汚染されたファイルを取引先が知らずに送ってきているかもしれません。
 メールやダウンロードなどインターネット経由で受け取ったPDFファイルは、まずはセキュリティ対策ソフトを使ってメールのチェックを行うことが何より重要です。また、ZIPファイルで暗号化されているファイルは事前のチェックができないので、解凍した後に必ずチェックをします。ファイルを開く前に再度セキュリティ対策ソフトでファイルをチェックすると覚えておきましょう。
 しかし、それでも十分ではありません。セキュリティ対策ソフトを最新にしておいても、未知の手口を使っている場合は対抗できないからです。
 現時点でもっとも安全にPDFを開く方法は、PDFのハッキング手口を最初から使えないようにしておくことです。悪用の手口で最も多いのは、JavaScriptの動作(PDFを開いたら動作する)や外部サイトへのリンクです。「PDF-XChange Editor」ではこの2種類の動作についてユーザーが事前に確認できるようになっています(図1、図2)。
 もし、こうした動作に不安がある場合は、お手元のPDFビューアの「設定」や「オプション」などにあるJavaScriptの動作や、外部サイトへのリンクをクリックした際の動作がどうなるか、確認しておきましょう。

図1:「PDF-XChange Editor」の「設定」にある「JavaScript」の設定画面で警告を表示するように設定できます(標準設定)。
図1:「PDF-XChange Editor」の「設定」にある「JavaScript」の設定画面で警告を表示するように設定できます(標準設定)。
図2:「PDF-XChange Editor」の「設定」にある「セキュリティオプション」の設定画面。信頼できる外部リンク以外は機能しない指定ができます(標準設定)。
図2:「PDF-XChange Editor」の「設定」にある「セキュリティオプション」の設定画面。信頼できる外部リンク以外は機能しない指定ができます(標準設定)。

PDFの機能を制限する「セキュリティ」

次にもうひとつの「セキュリティ」についてご紹介します。
 PDFは暗号化することができます。暗号化されたPDFは利用できる機能を制限できることがPDFの仕様で定められています。例えば、PDFの文字のコピーの可否や注釈がつけられるかどうかなどの制限が設定できます。こうした「暗号化」と「機能制限」の仕組みをPDFの仕様書の中で「セキュリティ」と呼んでいます。
 PDFを開いた際に正しいパスワードを入力しないと画面にPDFを表示することができなという制限もこの仕組みで実現しています。この場合の「セキュリティ」は、PDFに書かれている機密情報の漏洩を防ぐ、あるいは改ざんを防ぐといった意味として使われていると考えられます。

PDFの機能を制限する「セキュリティ」

PDFの「セキュリティ」で制限できる機能

PDFには2種類のパスワードを設定できます。

  • ●オーナーパスワード(機能の制限の変更とパスワードの変更に必要なパスワード)
  • ●ユーザーパスワード(PDFを開くために必要なパスワード)

オーナーパスワードをPDFに設定する際に下記の機能を指定することができます。

  • ●印刷を許可する/許可しない・(印刷許可の場合)高精度印刷を許可/低解像度印刷を許可
  • ●ページの抽出以外の内容の修正を許可/許可しない
  • ●署名と対話フォームへの入力を許可/許可しない
  • ●注釈の追加・変更および署名と対話フォームへの入力を許可/許可しない
  • ●ページの挿入・削除・回転
  • ●テキストや画像のコピーを許可/許可しない
  • ●アクセシビリティの目的(スクリーン・リーダなど)でテキストの抽出を許可
PDFの「セキュリティ」で制限できる機能

一見、上記のオーナーパスワードが重要に感じられますが、実はユーザーパスワードを設定していないと、PDFの内容は守られません。なぜなら、オーナーパスワードだけ設定したPDFは普通に表示できてしまうので、オーナーパスワードで設定したPDFの機能制限を無視できてしまうのです。機能の制限はPDFビューアの機能に任されているので、実際、この機能制限を無視したWebブラウザやネットのサービスが存在します。
 このような事情から、PDFの内容を機密にしたい場合は、必ずユーザーパスワードを設定する必要があります。その場合、PDFを見てほしい相手にはユーザーパスワードを伝えなくてはなりませんが、暗号化したZIPファイルの運用方法と同じく、PDFとユーザーパスワードを一緒に送ることはあり得ず、パスワードをPDFとは別に管理する不便さが伴います。さらに、いったんパスワードが漏洩するとPDFの機密を守る手段がありません。

PDFの改ざんを防ぐ「セキュリティ」

PDFはデジタル証明書を使って暗号化する方法もあります。この場合はパスワード方式と違い、復号(暗号を暗号化前の状態に戻す)のための鍵を持っていないとPDFを表示することができません。
 鍵の管理は通常はOSやブラウザの仕組みを利用します。デジタル証明書は、官公庁や企業・団体といった限られた範囲ではあるものの様々に利用されており、そうした環境ではPDFへの適用も難しくはありません。
 このデジタル証明書は電子署名を付けることにも利用できます。PDFに電子署名を付けることも比較的簡単です。この電子署名を付与することで、署名前と署名後にPDFに違いがあるかどうかを知ることができます。もし違いがあれば、そのPDFは何らかの編集操作、つまり改ざんされていることを意味します。
 PDFの電子署名は、まずPDF全体をある仕組みでハッシュ値という特別な値を計算します。PDFを1ビットでも変更してしまうと、ハッシュ値の再計算値は2度と同じになりません。どんなに工夫して改ざんしても同じ値にならない仕組みなので、後からの編集をごまかすことができません。
 電子署名はそのハッシュ値を含めた内容を暗号化して署名内に保存するため、復号用の鍵をもっていないと改ざんされているかも含めてPDFの中身を検証できない仕組みになっています。デジタル証明書を使った「セキュリティ」も、パスワードの時と同様、鍵の管理が難しく、このことが広く普及しない理由のひとつと考えられます。

PDFの改ざんを防ぐ「セキュリティ」

より重要度を増しているPDFのセキュリティへの理解

PDFは電子書類のデファクトスタンダードとしてゆるぎないポジションにあります。PDFの「セキュリティ」を設定することも比較的簡単です。ただ、PDFを「パスワード」で暗号化してしまうような「セキュリティ」設定は、「機能制限」が簡単に破られてしまうことを承知で運用しなければなりません。
 また、開くために鍵やパスワードが必要な「セキュリティ」設定されたPDFを単体で運用する場合、十分な配慮が必要です。鍵やパスワードがが失われると二度とPDFを開くことができなくなります。※PDFを長期保存するための仕様を定めた国際規格「PDF/A」では、PDFのセキュリティ設定を禁止しているほどです。
 PDFの「セキュリティ」設定は、PDFの別のリスクを負うことになります。便利だろうと気軽に「セキュリティ」設定してしまったPDFは、後々問題が起きる可能性があるということを十分に理解した上で、上手に利用したいものです。

より重要度を増しているPDFのセキュリティへの理解
  • *1:マルウェア:悪意のあるソフトウェアや悪質なコードの総称。コンピュータウイルスなどが含まれる。
  • *2:日本のサイバー空間のセキュリティ対策を担う非営利団体。
  • *3:https://www.jpcert.or.jp/at/2021.html
記事一覧を見る
ページ先頭へ