pikesaku’s blog

個人的な勉強メモです。記載内容について一切の責任は持ちません。

PDFファイルにデジタル署名をつけるで悩んだ

参考

完全図解!PDFファイルに電子署名をする方法!
証明書ベースの署名、Adobe Acrobat
Adobe Acrobat の証明書署名について

悩んだ点

PDFに電子署名をつける仕組みについて悩んだ。
完全図解!PDFファイルに電子署名をする方法!
上記読み、以下理解をした。
・送信側は自分用の証明書を発行してもらってる。(秘密鍵 & 公開鍵含む証明書)
・送信側は秘密鍵でPDFファイルにデジタル署名を付与する。
・送信側は公開鍵を含む証明書を、エクスポートして事前に受信側に渡す。
・受信側は証明書をインポートする事で、公開鍵をゲットでき、PDFに付与されたデジタル署名の検証ができる。
この考えだと、証明書発行機関や、組織のPKIシステムが発行する証明書を使ったとしても、受信側に送信側の公開鍵をインポートする必要がある。
こんな不便な仕組み???なわけない!でも、仕組みはどうなってるの?と悩んだ。

ポイント!!

証明書ベースの署名、Adobe Acrobat

証明書ベースの署名を適用すると、Acrobat はハッシュアルゴリズムを使用してメッセージダイジェストを生成し、署名者の秘密鍵を使用し それを暗号化しますAcrobat は、この暗号化されたメッセージダイジェストを、証明書の詳細、署名の画像、および署名された時点での文書のバージョンと共に、PDF に埋め込みます。

→「証明書の詳細」の中に、公開鍵も含まれる!なので、公開鍵もPDFに付与されるって事!

では、以下URLの「受信側で、この証明書を「信頼済みルートとして使用」とする。」は何か?
完全図解!PDFファイルに電子署名をする方法!

公開鍵を渡すことと誤解してた。公開鍵はPDFについてるので渡す必要なし。
公開鍵を渡すのでなく、証明書を信用する為に、ルート証明書を渡す操作だった。
受信側が署名付PDFを検証するときは、以下をしてるのだろう。
・PDFに付与された証明書は信用できる?証明書のデジタル署名を検証しよう!(シグニチャが複号できるか?)
・信頼済ルート登録済みなら、複号できるので信用する。
・証明書の中の公開鍵の情報を使って、PDFに付与されたデジタル署名を検証する。(シグニチャが複号できるか?)
・複号できたら、信用できる。ハッシュチェックして改ざんもチェック

上記は自己署名の場合。
証明書発行機関や、組織のPKIシステムが発行する証明書を使ってる場合は、以下になる。
・ユーザーA,Bは、それぞれ自分用の証明書を発行してもらってる。(秘密鍵 & 公開鍵含む証明書)
 ユーザーAが送信側、ユーザーBが受信側だとする。
・ユーザーAがPDFファイルに秘密鍵で署名をする。(自分の公開鍵含む証明書も付与)
・ユーザーBは署名付PDFファイルについてる証明書を検証する。同じPKIから発行された証明書なので、自分の信頼できるルートで検証成功。
・証明書を信用できるので、その中の公開鍵を使って、PDFの署名を検証する!
この流れだろう!組織のPKIの場合、PDFソフトウェアの信頼できるルートにデフォルトでは登録されてないので、最初にルート証明書の登録が必要。

デジタル署名の考え

暗号化技術メモ - pikesaku’s blog
・メッセージをハッシュアルゴリズムでハッシュ化し、秘密鍵で暗号化したものがシグニチャ
・メッセージ、ハッシュアルゴリズムシグニチャこの3点の情報で改ざん検知をする
・メッセージが改ざんされても、受信側でシグニチャ見て改ざん検知できる。
 ただ、中間者攻撃で、3点情報全て書き換えられると検知できない。
シグニチャが複号できる=信頼する。なので、3点全て書き換えられた場合、シグニチャが複号できない=信用できない=改ざんって判断になる。
・デジタル署名的に、シグニチャ複号できるは必須なのだろう。

・証明書は公開鍵を安全に配布する仕組み。「安全に」はデジタル署名によるもの。

・証明書には以下情報が含まれる。
 証明書情報(公開鍵含む) ※デジタル署名の考え的には、メッセージ
 ハッシュアルゴリズム
 シグニチャ(メッセージをハッシュアルゴリズムでハッシュ化したデータを証明書の発行者の秘密鍵で暗号化)
・証明書を配布する時に、受信者はシグニチャが複号できる=信頼できる発行機関からのものと判断する。あと証明書自体の改ざんチェックもする。