タグ別アーカイブ: デジタル署名

【PDFテックの知恵袋】PDFにデジタル署名ができるかどうか。これは複雑すぎて生成AIでは正答できないかもしれません。

先日、弊社のAntenna House PDF Driverのお客さんから質問がありました。
「PDF Driverで作成したPDFのセキュリティ[1]が次の図のように「署名」許可になっている。しかし、Adobe Readerで電子署名できないがなぜでしょうか?」

最近のAdobe Readerの署名機能はどうなっているか? 気になったので調べてみました。

Adobe Readerでデジタル署名はできる?

まず、Adobe Reader(バージョン:2025.001.20435)の「すべてのツール」のメニューを見ると、署名に関連しそうなのは「入力と署名」「証明書を使用」の二つです。

このうち、「入力と署名」はどうやら、自分のイニシャルや画像などで署名する機能のようです。これはデジタル署名ではありません[2]。一方、「証明書を使用」では、署名フィールドを作成し、デジタル署名を付加するという一連の操作ができます。

デジタル署名を選択すると次のダイアログが表示されます。

先に進むと、電子証明書を作成または既存の電子証明書を使用して署名する操作ができます。このようにAdobe Readerの「証明書を使用」でデジタル署名ができます。

しかし、「証明書を使用」では署名フィールドを作成する(だけ)、あるいは、署名フィ―ルドを作成済みのPDFの署名フィールドを指定して、そこにデジタル署名を付加することはできません。

セキュリティ設定されたPDFの場合

PDFにセキュリティ設定されているとどうでしょうか?

最初の図に示したPDFのセキュリティ設定状態では「署名」は許可になっています。しかし、このようなセキュリティ設定がされたPDFをAdobe Readerで開いて「証明書を使用」を選択すると、次のようにメニューがグレーになってしまいます。

一方、他のツール[3]でPDFに「署名フィールド」を作成したうえで、最初のPDFと同じセキュリティ(「署名」を許可)を設定して保存したPDFを作成します。これをAdobe Readerで開くと次のように署名フィールドが表示されます。

Adobe Readerで、この署名フィールドを選択すると、デジタル署名を付加できます。次の図は署名フィールド設定後にセキュリティ設定をしたPDFをAdobe Readerで開いて、署名フィールドを選択してデジタル署名を付与した結果の表示です。

PDFのデジタル署名の仕組みとAdobe Readerの動作

ややこしくて分かりにくいですが、PDFのデジタル署名の仕組みを大雑把に整理すると、次のようになっています。
(1)「署名フィールド」を作成する操作と、署名やタイムスタンプの関連データ(署名データ)を計算する操作、「署名フィールド」を指定して署名データを設定する操作に分かれている。
(2)PDFのセキュリティ設定で「内容の変更を禁止」すると、「署名フィールド」を作成できない。結果、署名データを設定する操作もできない。
(3)署名フィールドを作成済のPDFを第三者に渡して、デジタル署名の付与のみをしてもらうことができる。このとき、PDFには「内容の変更を禁止」、「署名を許可」する設定ができる。
(3)PDFのセキュリティ設定で「内容の変更を禁止」されていても、「署名フィールド」があって、「署名を許可」になっていれば、署名フィールドに署名データを設定できる。

Adobe Readerの動作は次のようになっています。
(1)セキュリティ設定されていないPDFであれば、署名フィールドの作成とデジタル署名を一括操作でできる。
(2)しかし、署名フィールドの作成のみを行うことはできない。
(3)セキュリティ設定で「内容の変更を禁止」されていても、「署名フィールド」があって、「署名」を許可されていればデジタル署名を付加する操作はできる。

生成AIの回答は

さて、このような複雑な条件の組み合わせで決まる動作の可否を生成AIで正しく回答できるでしょうか?

まず、Google AIに聞いてみました。まず、「Adobe Reader でPDFにデジタル署名はできますか?」と聞くと、次のような回答になります。

これは、最新のAdobe Readerでの操作手順とは違っています。しかし、回答はあながち間違いとも言えません。

次に、「セキュリティの設定されたPDFにAdobe Reader でPDFにデジタル署名はできますか?」と聞くと、次のような回答になります。

回答が正しいかどうかは、厳密にはセキュリティ設定の条件にもよります。しかし、ざっくりいうと、上のGoogle AIの回答は誤っているのではないでしょうか。

弊社でも、PDFに関する質問に生成AIを利用して回答するシステム「コンシュルジュWebサービス」を開発しています(現状は社内でいろいろ検証中で非公開です)。そこで、検証中の「コンシュルジュWebサービス」に聞いてみました。回答は次のようになります。

昔は、Adobe Reader でPDFにデジタル署名はできなかったのですが、いまは、できるようになっています。こうした背景を知っていると「コンシュルジュWebサービス」の回答は、少しばかり古いということがわかります。AIに与える情報が古いという問題であれば新しくすることで解決できるでしょう。

しかし、生成AIを利用して、「このような種類の微妙な質問まで、常に正答させることができるのだろうか?」と若干不安に感じる面もあります。このあたりは人間でもいろいろ調べないと正しく回答できないことです。なので、もし生成AIで完全な正答が得られるなら、人間は要らなくなってしまうのですが。

参考資料

[1] PDF資料室:PDFの標準セキュリティ機能
[2] 電子署名とデジタル署名の使い分けを推進しよう
[3] 例えば、『瞬簡PDF統合版・官公庁向け』バージョンでは、署名フィールド作成機能があります。




アウトライナー
PDFを解析して しおり・目次を自動生成


瞬簡PDF 統合版 2024
アンテナハウスPDFソフトの統合製品!

電子署名とデジタル署名の使い分けを推進しよう

日本ネットワークセキュリティ協会(JNSA)電子署名ワーキンググループの「デジタル署名検証ガイドライン第1.1版」(2023年12月20日発行)によると、電子署名とデジタル署名の使い分けは次のようになっています。

「電子署名とは、電磁的記録(電子文書)に関連付けられ、検証により確認可能な、電子的措置であり、その効力を持たせるために様々な方式がある。欧米では電子署名 (electronic signature)とデジタル署名(digital signature)を区別し、電子署名は広い意味で、本人と電子文書との関係を示すために本人が作成した電子データを指し、デジタル署名は、署名者の身元とデータが改ざんされていないことを、公開鍵暗号技術を使って検証できる技術を指す。」(1.2スコープ)

つまり、電子文書への署名を幅広く意味するのが電子署名であり、公開鍵暗号技術を使った電子署名をデジタル署名といいます。

日本は平成13年(2000年)4月に電子署名法が施行されてデジタル署名が契約などの実務に使われるようになってきました。当時は、電子署名とデジタル署名という用語を、現在のように使い分けていませんでした。

それから25年経過して、近年は、JNSAの資料のように使い分けるようになっています。

しかし、Webなどで検索すると、電子署名とデジタル署名という言葉が明確に使い分けされていなくて、非常に混乱しています。ただでさえ難しいデジタル署名が、用語の混乱でますますわけがわからなくなっているようです。電子署名ができると書いてあっても、ではデジタル署名ができるのか、できないのかといった基本的な点も判断しにくいとWebページすらまれではありません。

これからは、電子署名とデジタル署名をきちんと使い分けることで、文章の意味を明確にしていこうと思います。

参考
電子署名法の概要と認定制度について




アウトライナー
PDFを解析して しおり・目次を自動生成


瞬簡PDF 統合版 2024
アンテナハウスPDFソフトの統合製品!

自社製品ソフトウェア・プログラムに対するデジタル署名の実施とその適用拡大について

インターネットが普及してさまざまなことが便利になった半面、インターネットのマイナスの側面の一つとして、情報セキュリティリスクが非常に大きくなりました。とくにインターネットでの情報のやりとりは無料が原則なのですが、結局、それが情報の質の低下をもたらすという結果になってしまっているようです。

インターネットを経由して、情報を入手し、利用するときは、入手したその情報が真に信頼できるものなのかを自分自身で確認しなければなりません。Windowsには、そのための仕組みとして「Microsoft Defender SmartScreen」が用意されています。これは主にダウンロードするWebサイトの評価やダウンロードしたプログラムの評価を行って、悪意のあるデータがパソコンに取り込まれることを防ごうとするものです。

コードサイニング

当社が販売しているようなソフトウェア製品の場合、ユーザーは、ダウンロードなどで入手したプログラムを自分のパソコンにインストールする前に、真に信頼できるかどうかを確認する必要があります。誰が開発したプログラムがなのか、配布されてから改竄されていないかどうかを確認できるようにするために、プログラムへのデジタル署名(コードサイニングという)が使われます。これはプログラムの配布元が、自己の証明書を使ってプログラムに署名するものです。

Windows側の防衛の仕組みとコードサイニングを組み合わせることで、ダウンロードしたプログラムの配布データとしての信頼性を高め、また信頼できるプログラムを選別してスムーズにインストールできるようになっています。

電子証明書発行時には、証明書を発行する認証局が、発行申請者を審査します。コードサイニング証明書には、通常の証明書とEV証明書があります。EV証明書は発行時の審査基準が通常の証明書より厳しくなっています。

前置きが長くなりましたが、アンテナハウスは2018年7月より「EVコードサイニング証明書」を使用して当社が提供するソフトウエア(インストーラ、アプリケーション、ドライバ、ソフトウエアプログラム)にデジタル署名を実施しております。

配布するプログラムにEVコードサイニングを行うと次のメリットがあります。

  • コードが改ざんされていないことを証明できる
  • プログラムの配布元を確認できる
  • ダウンロードやインストール時に、Microsoft Defender SmartScreen の警告メッセージを回避できる

最近はさらにWindows側のセキュリティ基準が厳しくなって、製品を構成する部品(Windows版ではDLL)ファイル一つ一つにデジタル署名が必要になってきています。そこで、現在、自社製品のWindows版の、原則としてすべての、部品ファイルにEVコードサイニング証明書によるデジタル署名を施すよう準備しています。

デジタル署名の確認

Windowsでプログラムにデジタル署名がされているかどうかはファイルのプロパティで確認できます。次の図の左は、デジタル署名がなされていないプログラムのプロパティダイアログです。それに対して右は署名されたプログラムのプロパティです。署名されていると「デジタル署名」というタブが追加されていることがわかります。

「デジタル署名」タブを表示すると、署名の一覧が表示されます。

リストを選択して、署名の詳細をみることができます。

こうして、プログラムの配布元の情報や配布されてから改竄されていないことを確認できることになります。

詳細記事

「EVコードサイニング証明書」を使用したデジタル署名について

参考資料

1.Microsoft Defender SmartScreenのページ(Microsoft)
2. EV証明書 (Extended Validation 証明書)とは




アウトライナー
PDFを解析して しおり・目次を自動生成


HTML on Word
WebページをWordで作る!