現代暗号

デジタル署名の仕組みと電子証明書の基礎

更新: 秋山 拓真
現代暗号

デジタル署名の仕組みと電子証明書の基礎

Acrobatで受け取ったPDF契約書を開いた瞬間、「署名は無効」の赤い警告が出て、見た目ではサインが入っているのに何が足りないのか、筆者も最初は止まりました。

Acrobatで受け取ったPDF契約書を開いた瞬間、「署名は無効」の赤い警告が出て、見た目ではサインが入っているのに何が足りないのか、筆者も最初は止まりました。
e-Taxでは送信時に英数字6〜16文字の暗証番号を求められ、マイナポータルで使う4桁と混同して手が止まり、他人から渡された公開鍵も「これ、本当に本人のものなのか」は証明書を見ないと判断できないと痛感したものです。
この記事は、デジタル署名と電子署名と電子証明書の違いが曖昧なまま、PDF署名の確認やマイナンバーカードの電子証明書の使い分けで迷っている人に向けて書いています。
デジタル署名は暗号技術、電子署名はそれを含む広い概念、電子証明書は公開鍵の持ち主を証明する電子文書だと地図を先にそろえると、混乱は一気にほどけます。
仕組みも、文書をハッシュ化し、その要約に秘密鍵で署名し、公開鍵で検証し、さらに証明書で公開鍵の持ち主を確認する、と一本の流れで押さえると腑に落ちます。
見た目のサイン画像ではなく、検証可能な署名こそが実務の分岐点であり、署名用と利用者証明用の違い、PDFの検証画面で見るべき項目、CRLやOCSP、期限と鍵管理まで押さえておくと現場で判断を誤りません。

デジタル署名とは何か

核だけ先に置くと、デジタル署名は文書の改ざん検知と送信者性の確認を担う技術で、電子証明書はその公開鍵が誰のものかを結び付ける仕組みです。
ここが曖昧なままだと、「署名済み」と表示されていても何を信用してよいのか判断できません。
逆にこの二層構造で捉えると、PDF署名もマイナンバーカードの署名用電子証明書も、同じ公開鍵基盤の上で動いていることが見えてきます。

デジタル署名・電子署名・電子証明書の違い

まず言葉を分けます。
デジタル署名は、公開鍵暗号とハッシュ関数を使って、文書が途中で書き換えられていないことと、対応する秘密鍵を持つ主体が署名したことを検証する技術です。
ここでのポイントは、文書全体をそのまま暗号化するのではなく、通常は文書をハッシュ化して得た短い値に対して署名することです。
この構造のおかげで、大きなPDFでも現実的な速度で検証できます。

一方で電子署名は、もっと広い概念です。
電子的な手段で付される署名一般や、その制度上の扱いまで含みます。
実務では「電子署名」という言葉が契約サービス全体を指し、「デジタル署名」がその中核技術を指す、という整理にしておくと混乱しません。
見た目として氏名が表示されるPDFでも、裏側で暗号学的な検証ができるものと、単なる画像貼り付けにとどまるものは別物です。

電子証明書は、そのデジタル署名を信頼できる形にするための土台です。
公開鍵だけ渡されても、その鍵が本当に相手本人や相手企業のものかは分かりません。
そこで認証局が、公開鍵と個人・組織の対応関係を証明する電子証明書を発行します。
署名を検証するときは、署名値そのものだけでなく、その公開鍵がどの主体に結び付いているのかも同時に見ています。

以前、社内で「電子署名って、名前の画像を貼ればいいんですよね」と聞かれたことがありました。
筆者はその場で、画像の貼り付けは見た目の演出にはなっても、改ざんされていない証拠にも、その文書を誰が出したかの証明にもならない、と説明しました。
すると相手は「じゃあ印影画像をPDFに置いただけでは、本人確認にならないんですね」と返してきて、そこでようやく技術の話と制度の話がつながりました。
この手のすれ違いは珍しくなく、用語を分けるだけで議論が急に噛み合います。

何を検証しているのか

デジタル署名の検証で見ているのは、主に二つです。
ひとつは改ざん検知です。
署名後に1文字でも変わればハッシュ値が変わるため、検証は通りません。
もうひとつは送信者性です。
正しく検証できたという事実から、対応する秘密鍵を持つ主体が署名処理を実行したことが分かります。
ここが暗号の美しいところなのですが、秘密鍵そのものは相手から受け取っていないのに、公開鍵だけで署名の正当性を確かめられます。

ただし、これだけでは「その公開鍵の持ち主が本当に相手本人か」はまだ確定しません。
そこで電子証明書が入ります。
証明書には公開鍵、所有者情報、発行者情報、有効期間などが入り、認証局の署名で保護されます。
受信側はその証明書をたどって信頼できる認証局につながるかを確認し、必要に応じて失効確認も行います。
代表的な方式がCRLとOCSPです。
証明書が期限内でも、鍵漏えいなどで失効していれば、その署名をそのまま信用するわけにはいきません。

日本での法的な位置づけ

日本では電子署名法が2001年4月1日に施行され、一定の要件を満たす電子署名が付された電子文書等には、真正に成立したものと推定される枠組みがあります。
つまり、単に「電子データだから弱い」という扱いではなく、要件を満たせば法的な評価の土台が与えられています。
この点は紙と印鑑だけを前提にしていると見落としがちです。

ただし、この推定が働くかどうかは、どんな電子署名でも一律という話ではありません。
契約、登記、税務申告、社内承認では、求められる制度要件や本人確認の強さが異なります。
暗号技術としてのデジタル署名が成立していても、それだけで個別制度の要件を自動的に満たすわけではない、という切り分けは欠かせません。
技術の正しさと制度上の適合性は、重なる部分はあっても同一ではないからです。

マイナンバーカードでもこの違いははっきりしています。
署名用電子証明書は電子文書の作成・送信に使い、利用者証明用電子証明書はログイン時の本人確認に使います。
前者は「この文書を本人が作成・送信した」という文脈、後者は「今アクセスしているのが本人である」という文脈です。
同じカードに載っていても役割は分かれており、デジタル署名の話を理解すると、この設計にも筋が通って見えてきます。

制度の話をすると難しく感じますが、骨格はシンプルです。
デジタル署名で改ざん検知と送信者性を確かめ、電子証明書でその公開鍵の持ち主を確かめる
この順番で捉えると、「署名が付いているのに無効と出る」「本人確認用と文書署名用がなぜ分かれているのか」といった現場の疑問が、一つの線でつながります。

なぜデジタル署名が必要になったのか

紙の契約書では、本人の手書き署名や押印が「誰が意思表示したのか」を示す目印として機能してきました。
紙そのものが物理的な実体を持つので、原本を見比べたり、筆跡や印影、保管の連続性を手がかりにしたりして、後から争いになったときも一定の検証ができます。
ところが文書がメール添付のPDFや業務システム上のデータに置き換わると、この前提が一気に崩れます。
ファイルは同じ見た目のまま複製でき、内容の差分も外見だけでは分かりません。
だからデジタル環境では、少なくともなりすましを防げること、改ざんを検知できること、後から検証できることの三つを満たす仕組みが必要になりました。

筆者が実務でこの必要性を痛感したのは、メール添付で届いた契約書を扱ったときです。
件名には「最終版」とあり、本文にもそれらしい説明が書かれていましたが、手元の前版と見比べると差分が分からず、ファイル名だけが少し変わっていました。
送信者の表示名が正しくても、そのメールが本当に本人由来か、添付後にどこかで内容が差し替わっていないか、画面の見た目だけでは判断できません。
この場面で欲しかったのは、きれいなサイン画像ではなく、「この内容に対して、この鍵の持ち主が署名し、その後は1文字も変わっていない」と機械的に確かめられる証拠でした。
改ざん検知の価値は、こういう曖昧さを消せる点にあります。

紙の署名とデジタル署名は、何を証明するのかが違う

手書き署名は、筆跡や書き方の癖、押印の形といった人間が目で読む特徴に寄っています。
そこには長い実務慣行がありますが、同時に「似せて書く」「画像として貼り付ける」といった偽装とも隣り合わせです。
デジタル署名はここを別の方向から解決します。
見た目が本人らしいかではなく、文書から計算したハッシュ値に対して秘密鍵で署名し、対応する公開鍵で検証できるかを見ます。
直感に反するかもしれませんが、デジタルでは筆跡のような感覚的特徴より、誰でも同じ手順で再現確認できる数学的証拠のほうが強いのです。

この違いは、後からの検証でも効いてきます。
紙の署名は鑑定や保管状況の立証に寄りがちですが、デジタル署名は検証手順そのものが標準化されています。
署名時点の文書ハッシュと署名値の対応が崩れていれば、途中で内容が変わったと判断できます。
つまり、デジタル署名は「本人っぽく見える印」を残すものではなく、「その文書がその時点でその鍵により承認された」ことを機械で確かめられる形に変える技術です。

なりすまし防止と改ざん検知は、デジタル文書の基礎条件

デジタル文書でまず問題になるのが、送信者名やメールアドレス表示だけでは本人性が足りないことです。
差出人欄に相手企業の名前が出ていても、それだけで真正とは言えません。
そこで必要になるのが、秘密鍵を持つ本人しか生成できない署名です。
検証側は公開鍵で署名を確かめることで、「少なくとも対応する秘密鍵を持つ主体がこの署名処理をした」と判断できます。
これがなりすまし防止の核です。

もう一つの柱が改ざん検知です。
文書は通常、そのまま署名するのではなく、まずハッシュ関数で短い要約値に変換されます。
文書の内容が少しでも変わるとハッシュ値も変わるため、署名検証は通りません。
契約金額の1桁、日付、条項番号のような小さな変更でも検出できるのは、この性質によります。
紙の書面では見落としが起こりうる細部も、デジタル署名なら計算結果として表面化します。

公開鍵暗号が求められた背景には、鍵配送問題がある

ここで公開鍵暗号の登場背景につながります。
もし署名も暗号化も共通鍵だけで組もうとすると、相手と事前に同じ秘密を安全に共有しなければなりません。
これが鍵配送問題です。
遠隔の相手と先に安全な手段を持っていないのに、どうやって安全な鍵を渡すのかという、出発点の難しさがありました。
公開鍵暗号はこの行き詰まりをほどくために生まれました。
公開してよい鍵と本人だけが持つ鍵を分けることで、事前に秘密を配らなくても暗号化や検証の仕組みを回せるようになったわけです。

この発想が出てくると、「秘密に送る」だけでなく「本人が承認したと証明する」ことも同じ理論圏で扱えます。
つまり、公開鍵暗号は通信の秘匿だけの道具ではなく、署名という要請と一体で発展した技術です。
離れた場所にいる相手へ安全に文書を届けたい、しかもその文書が誰のものか後から争えない形で残したい。
その要求に対して、公開鍵暗号とハッシュ関数の組み合わせが最も筋の通った答えになりました。

見た目のサイン画像では足りない理由

実務で混同されやすいのは、PDFの末尾に手書き風フォントの名前や印影画像が入っていれば「署名済み」に見えることです。
しかしそれは、紙で言えば印刷された印影に近く、真正性の担保とは別です。
ファイルの見た目にサインが載っていても、内容が後から書き換えられていない保証にはなりませんし、その画像を誰が置いたかも確定しません。
デジタル署名が必要なのは、見た目の演出を超えて、検証可能な状態を文書に埋め込むためです。

この点を理解すると、手書き署名のデジタル化とは「紙のサインを画面に再現すること」ではなく、「紙で担っていた信頼機能を、数学で置き換えること」だと見えてきます。
誰が署名したかを示し、内容が変わっていないと分かり、後から第三者が確かめられる。
その三点を揃えるために、デジタル署名は必要になりました。

仕組み:ハッシュ・秘密鍵・公開鍵で何が起きているか

ハッシュ関数(message digest)の役割

デジタル署名の中核にあるのは、文書そのものではなく、まず文書から計算したハッシュ値に印を付けるという発想です。
このハッシュ値は message digest(メッセージダイジェスト) とも呼ばれ、長い文書を一定長の短い値に要約したものだと考えるとつかみやすくなります。
ここが暗号の美しいところなのですが、署名したい対象をいったん短い代表値に変えることで、文書が何ページあっても、署名処理の入口はいつも同じ形に揃います。

直感に反するかもしれませんが、現代的な実装では文書全体をそのまま秘密鍵で処理するのではありません。
そうではなく、まずハッシュ関数でメッセージダイジェストを作り、その短い値に対して署名します。
この構成が効率面でも安全設計の面でも筋が通っています。
長い本文、画像を含むPDF、添付が多い契約文書でも、署名対象はコンパクトな要約値になるからです。

ハッシュ関数には、入力が少しでも変わると出力が別物になる性質があります。
たとえば契約書の金額の1文字、氏名の1文字、改行1つでも、計算されるメッセージダイジェストは一致しません。
だから署名は「この見た目の文書にサインした」という曖昧なものではなく、「この内容から得られるこのダイジェストに対して承認した」という、機械で再現可能な証拠になります。

筆者はこの説明をするとき、短いテキストで手順を声に出して追う形をよく使います。
たとえば「契約します」という短文を頭に置きます。
まずその文をハッシュ化して、短いダイジェストに変える。
次に、そのダイジェストに秘密鍵で署名する。
受け取った側は同じ文からもう一度ダイジェストを計算し、署名の検証結果と突き合わせる。
この流れを実際に口にすると、「文書全部に重たい印鑑を押す」のではなく、「文書の指紋に印を付ける」と捉えたほうが腑に落ちます。

署名の生成ステップ

署名を作る側で起きていることは、流れで見るとシンプルです。

  1. 文書をハッシュ化する

まず文書全体にハッシュ関数を適用し、メッセージダイジェストを得ます。元の文書が長くても、この段階で署名対象は短い値にまとまります。

  1. ハッシュを秘密鍵で署名する

次に、そのメッセージダイジェストに対して秘密鍵で署名します。
ここで使う秘密鍵は本人だけが保持している前提なので、この署名値を正しく作れるのは、その鍵の持ち主だけです。

  1. 署名と文書を送付する

送るのは文書だけでも署名だけでもなく、通常は文書と署名をセットにします。PDF署名やCMSのような署名コンテナでも、考え方の芯は同じです。

このとき、署名は文書を読めなくする処理ではありません。
文書の内容を秘密にするのではなく、その内容に対して承認の痕跡を付けています。
筆者が実装検証の場でよく意識するのもこの点で、署名生成は「秘匿」ではなく「結び付け」です。
文書内容と、秘密鍵の持ち主による承認事実を数学的に結び付ける工程だと見ると整理できます。

短いテキストで追体験すると、手順はもっと明快です。
「この文をハッシュ化する」「出てきたダイジェストに秘密鍵で署名する」「文と署名を一緒に渡す」と、順にたどるだけです。
数値やビット列の中身を知らなくても、どこで文書が要約され、どこで秘密鍵が使われるかが見えれば、署名生成の骨格はつかめます。

署名の検証ステップ

受け取った側の検証も、基本構造は対応しています。

  1. 受信側で文書をハッシュ化する

まず受け取った文書から、送信側と同じ手順でメッセージダイジェストを計算します。
ここで得られる値は、「この受信文書が今この内容であるなら、このダイジェストになる」という計算結果です。

  1. 署名を公開鍵で検証する

次に、添付された署名を公開鍵で検証します。
ここで行われるのは復号ではなく、署名値が対応する秘密鍵によって正しく作られたかを確かめる処理です。
検証の結果として、署名が示しているダイジェストと整合するかが分かります。

  1. 二つのハッシュが一致すれば改ざんなしと判断する

受信文書から自分で計算したダイジェストと、署名検証で対応が確認できたダイジェストが一致すれば、その文書は署名後に変わっていないと判断できます。
一致しなければ、文書か署名のどちらかに不整合があります。

この手順も、短文で声に出してたどると腹落ちします。
「受け取った文からもう一度ハッシュを作る」「署名を公開鍵で検証する」「両方のダイジェストが同じか比べる」。
この三段階です。
筆者は初学者向けに説明するとき、あえて抽象度を保ったままこの読み上げをします。
具体的な数値を追わなくても、送信側は秘密鍵で署名し、受信側は公開鍵で検証するという役割分担だけで、仕組みの輪郭がきれいに見えるからです。

ここで得られる保証は二つあります。
ひとつは、対応する秘密鍵を持つ主体しかその署名を生成できないこと。
もうひとつは、文書内容が途中で変わっていればダイジェストが一致しないことです。
送信者確認となりすまし防止、改ざん検知が同時に成立するのは、この組み合わせによります。

暗号化(encryption)との違い

デジタル署名の説明でよく出てくる「秘密鍵で暗号化して、公開鍵で復号するようなもの」という比喩は、入口としては分かりやすく見えても、技術的には不正確です。
署名は暗号化ではありません。
受信側が行うのも復号ではなく、あくまで署名検証です。

暗号化(encryption)の目的は、読める文を読めない形に変えて、許可された相手だけが内容を取り出せるようにすることです。
つまり主眼は秘匿です。
一方のデジタル署名は、文書の内容を隠すのではなく、その内容が特定の秘密鍵で承認され、その後変わっていないことを示します。
主眼は真正性と完全性です。
同じ公開鍵暗号の世界に属していても、目指している機能が違います。

たとえばTLS 1.3で使われる暗号化は通信内容を他人に読ませないためのものですが、証明書や署名の検証は「この公開鍵は本物か」「この相手が提示した情報は整合しているか」を確かめるためのものです。
ここを混ぜると、署名を「鍵で読みにくくしたデータ」と誤解しやすくなります。
実際には、署名アルゴリズムには署名生成と署名検証という専用の手続きがあり、暗号化アルゴリズムの復号手順をそのまま裏返して使っているわけではありません。

筆者はこの違いを、「暗号化は手紙を封筒に入れる操作、署名は便箋の内容に対して本人確認付きの封印を付ける操作」と言い換えることがあります。
封筒は中身を隠しますが、封印は中身を隠しません。
代わりに、誰が封をしたかと、途中で開けて書き換えられていないかを見せます。
デジタル署名も同じで、秘密鍵を使うからといって暗号化そのものだと考えると、検証という本質を見失います。

電子証明書はなぜ必要か

認証局(CA)とX.509

デジタル署名の仕組みだけを見ると、改ざん検知と「その秘密鍵を持つ人が署名した」という確認まではできます。
ですが、ここでひとつ本質的な問題が残ります。
その公開鍵が、本当にその人のものだとどう分かるのかという点です。
署名そのものは、秘密鍵と公開鍵が対応していることを示すだけで、公開鍵の持ち主が誰かまでは教えてくれません。

筆者がこの点を強く意識したのは、知らない相手の公開鍵をSNS上で見つけたときでした。
投稿に「これが私の公開鍵です」と書かれていても、その投稿者が本当に本人なのか、鍵が差し替えられていないのか、その場では判断できません。
公開鍵が載っている事実と、その公開鍵を信用してよい事実は別物です。
ここが暗号の美しいところなのですが、数学だけでは埋まらない「身元確認」の層が必要になります。

その役割を担うのが認証局(CA: Certification Authority)です。
CAは、ある公開鍵が特定の個人や組織、ドメイン名と結び付いていることを確認し、その結果を公開鍵証明書として発行します。
インターネットで広く使われる形式がX.509証明書で、標準的な定義は RFC 5280 にまとまっています(RFC 5280:

信頼の連鎖とルート証明書

では、そのCA自体は誰が信用するのかという問いが出てきます。
ここで登場するのが信頼の連鎖です。
証明書は単独で宙に浮いているわけではなく、通常は「エンドエンティティ証明書」「中間CA証明書」「ルート証明書」という鎖の形でつながっています。

たとえばAcrobatやWebブラウザが証明書を検証するとき、目の前の証明書だけを見て終わりません。
その証明書に署名した発行者をたどり、さらにその上位の発行者をたどり、最終的に端末やOSがあらかじめ信頼しているルート証明書まで到達するかを確認します。
この鎖が切れていなければ、「この公開鍵は信頼済みの基点から連なってきたものだ」と判断できます。

紹介状の連鎖で考えると直感的です。
見知らぬ人がいきなり「私はAです」と名乗っても、そのままでは信用しにくいものです。
ですが、信頼している人からの紹介状があり、その紹介者もさらに信頼済みの人物から認められているなら、最初の相手への信頼を段階的に渡せます。
証明書チェーンも同じで、信頼は一足飛びに生まれるのではなく、検証可能な署名の連なりで受け渡されます。

ルート証明書は、この連鎖の出発点です。
自己署名されているため、数学的に外部から保証されるのではなく、OSやブラウザ、PDFビューアが「このCAは信頼する」と事前に組み込んでいることが意味を持ちます。
直感に反するかもしれませんが、PKIの世界ではどこかに「最初に信じる地点」が必要で、それがルート証明書です。

この観点で、さきほどのSNSの公開鍵の例を見直すと判断基準が変わります。
投稿文に貼られた鍵そのものではなく、その鍵に対応する証明書があるか、その証明書はどのCAが発行したか、そこからルートまで正しくつながるかを見ます。
信用しているのは文字列としての公開鍵ではなく、公開鍵と身元情報を結び付けた証明書のチェーンです。

証明書の中身

公開鍵証明書は、単なる「鍵の入れ物」ではありません。
中には、検証に必要な情報がきちんと構造化されています。
X.509証明書で押さえておきたい主要項目は次の通りです。

項目役割
Subject証明書の主体。個人名、組織名、ドメイン名など
Issuerその証明書を発行したCA
SubjectPublicKeyInfo主体の公開鍵情報
serialNumber証明書を一意に識別する番号
validity有効期間。notBefore と notAfter を含む
extensions用途や追加条件を示す拡張領域

このうち初学者が見落としやすいのが、証明書には用途の情報も入っていることです。
たとえば KeyUsageExtendedKeyUsage には、その鍵を何に使ってよいかが記述されます。
電子署名向けなのか、サーバ認証向けなのか、クライアント認証向けなのかといった制約がここで表現されます。
同じ公開鍵暗号でも、証明書に書かれた用途が違えば期待される役割も変わります。

SubjectAltName も実務ではよく登場します。
Webサーバ証明書では、どのドメイン名に対して有効なのかをここに並べます。
PDF署名や個人向け電子証明書では、氏名や識別情報との結び付きに目が向きがちですが、証明書は利用場面ごとに「何を誰に結び付けるか」が少しずつ違います。

有効期限やシリアル番号にも意味があります。
有効期限は、いつまでも同じ鍵を信用し続けないための境界線です。
シリアル番号は、その証明書を個体として識別し、失効確認の対象にするために使われます。
証明書は発行された瞬間に永続の身分証になるのではなく、誰の鍵か、どのCAが出したか、いつまで有効か、何に使えるかまで含めて初めて意味を持ちます。

印鑑証明の比喩で直感化

電子証明書の話は、公開鍵・秘密鍵・CA・ルート証明書と用語が続くので、一度比喩に置き換えると視界が開けます。
筆者は初学者に説明するとき、印鑑証明書をよく使います。

紙の契約で実印を押したとしても、その印影だけでは「この印鑑が本当に本人の実印か」は分かりません。
そこで市区町村が発行する印鑑証明書を添えて、押された印と登録済みの印が結び付いていることを示します。
これと同じで、デジタル署名の署名値だけでは「この公開鍵が本当にAさんのものか」は分かりません。
そこでCAが発行する電子証明書を添えて、公開鍵と本人または組織の結び付きを示します。

この比喩で対応関係を並べると、理解がぐっと締まります。
秘密鍵は本人しか持たない実印に近く、公開鍵はその印影を照合するための公開情報に近い位置づけです。
そして電子証明書は、印鑑証明書のように「その対応関係を公的な立場で確認した文書」です。

信頼の連鎖も、紹介状や公的証明の積み重ねと考えると腑に落ちます。
本人の申告だけでは足りず、信頼している窓口がその身元を確認し、その窓口自体もさらに上位の信頼基盤につながっている。
この階層があるから、見知らぬ相手の公開鍵でも、数学と制度の両面から受け入れられます。

マイナンバーカードに搭載される電子証明書も、考え方は同じです。
署名用電子証明書は、電子文書を作成・送信した本人性と改ざんの有無を扱うための証明書で、利用者証明用電子証明書はログインした本人であることを示すための証明書です。
どちらも「公開鍵だけを単独で信じる」のではなく、証明書によって公開鍵と本人を結び付けるという点で共通しています。

ここまで来ると、電子証明書が必要な理由ははっきり見えてきます。
デジタル署名は文書と鍵の対応を示せますが、その鍵が誰のものかという現実世界との接点は、電子証明書が担っています。
公開鍵暗号を社会で使える仕組みにしているのは、この橋渡しの部分です。

実務での流れ:PDF署名・行政手続・ログイン

PDF署名の基本フローと受信側の確認ポイント

PDF署名の実務は、理屈だけ見るより一連の流れで捉えると整理できます。
まず文書の作成者がPDFを確定し、署名用電子証明書で署名します。
ここで付くのは、見た目の画像としてのサインではなく、文書内容のハッシュ値と秘密鍵に基づく検証可能な署名情報です。
受信側はそのPDFをAcrobatなどで開き、署名の検証結果を確認します。
電子署名法が施行されたのは2001年4月1日で、こうした電子的な真正性確認を社会実装する土台はすでに長く運用されています。

受信側で見るべき点は、単に「署名欄があるか」ではありません。
筆者が実際に確認するときは、検証パネルで「署名は有効」と表示されているか、発行元にどのCA名が出ているか、署名時刻がどう記録されているかを順に追います。
画面上に「発行元: ○○ CA」「署名時刻: YYYY-MM-DD」のような表示が出ると、どの証明書で、いつの時点の署名として扱われるかが具体的に見えてきます。
ここが暗号の美しいところなのですが、見た目の印影よりも、裏側で検証された証明書チェーンや失効状態のほうが、文書の信用性を支えています。

確認項目を実務寄りに言い換えると、受信側は署名の有効性、発行元、失効状態、タイムスタンプを見ています。
失効状態は、その証明書が途中で無効化されていないかという確認です。
タイムスタンプが付いていれば、署名時点の存在証明を補強でき、長期保存でも検証の筋道が立てやすくなります。
PDF署名の世界では、証明書チェーンや失効情報、タイムスタンプを抱き合わせで保持して長期検証性を高める考え方があり、契約書や申請書の保存ではこの発想が効いてきます。

実務で戸惑いやすいのは、「署名画像が見える」ことと「署名が検証に通る」ことが別だという点です。
受信したPDFに氏名欄や押印風の見た目があっても、検証結果で赤い警告が出れば、文書の信頼判断は止まります。
逆に、見た目が地味でも検証画面で有効性と証明書情報が整っていれば、そのPDFは機械的にも人間的にも確認可能な状態だと言えます。

e-Tax等での署名用電子証明書の使いどころ

行政手続で「文書を本人が作成・送信した」と示したい場面では、署名用電子証明書が前面に出てきます。
代表例がe-Taxの申告や各種電子申請です。
ここで使う暗証番号は英数字6〜16文字で、ログイン用の4桁とは役割も形式も違います。
署名用電子証明書は、送る文書に対して本人性と改ざん検知を与えるためのもので、単なる入口認証ではありません。

この違いは、実際の操作画面で体に入ります。
e-Taxの送信途中で英数字のPIN入力を求められた瞬間、筆者も一度手が止まりました。
普段マイナポータルで触る4桁の数字が先に頭に浮かぶので、「いつもの番号ではない」と気づくまでの短い間に、用途の違いが一気に現実味を帯びます。
暗号の観点では別種の鍵利用なのですが、利用者の感覚としては「カードの中に複数の身分証明があり、場面ごとに呼び出される」と捉えると混乱しにくくなります。

署名用電子証明書には年齢条件もあります。
15歳未満は原則として搭載できません。
これは、行政手続で求められる法的な本人確認や意思表示との関係があるためで、単なる機能制限ではなく制度設計と結び付いた条件です。
したがって、家族のカードが手元にあるからといって、誰でも同じ用途で使えるわけではありません。

有効期間も実務では見落とせません。
公的個人認証の電子証明書は原則として発行の日後5回目の誕生日までで、マイナンバーカード本体は10年です。
カード本体の期限と電子証明書の期限は一致しないので、見た目には有効なカードでも、署名の場面で電子証明書側が期限切れになっていることがあります。
e-Taxで送信段階まで進んでから詰まるケースは、このずれを理解していないと説明がつきません。

マイナポータル等での利用者証明用電子証明書

一方で、マイナポータルなどへのログインに使うのは利用者証明用電子証明書です。
こちらの役割は「今アクセスしている者が本人である」と示すことにあり、電子文書へ署名する場面とは切り分けられています。
暗証番号は数字4桁で、日常的に接する機会が多いぶん、利用者にとってはこの証明書のほうが身近かもしれません。

署名用電子証明書との違いを端的に言えば、前者は文書に効き、後者はログインに効きます。
同じマイナンバーカードの中に載っていても、証明したい対象が異なります。
マイナポータルに入るときは、提出書類へ法的な署名をしているのではなく、ポータル利用者本人として認証されている状態です。
ここを混同すると、「ログインできたのだから送信署名も同じ操作で済むはずだ」という誤解が生まれます。

この使い分けは、実務フローで見るとすっきりします。
まず利用者証明用電子証明書でポータルにログインし、サービス画面へ入る。
その後、申請内容や添付文書に対して本人の作成・送信意思を示す必要がある場面では、署名用電子証明書が呼び出されることがあります。
入口の本人確認と、文書への署名は別レイヤーです。
暗号技術としても制度上も、この分離によってなりすまし防止と意思表示の確認を分担しています。

なお、電子証明書の有効期間は原則5年で、カード本体は10年という構造は、利用者証明用電子証明書でも同じです。
ログイン用途は日常的なぶん、期限切れに気づく場面もこちらに寄りがちです。
マイナポータルに入ろうとして急に弾かれたとき、カードそのものではなく電子証明書の期限に原因があると分かると、現象の見え方が変わります。
ここでも、カードは物理媒体、電子証明書はその中で動く機能という切り分けが効いてきます。

安全性と限界:失効確認、証明書期限、鍵管理

失効確認

デジタル署名は、署名が付いている瞬間だけ見れば足りる仕組みではありません。
検証側が見ているのは、その証明書がいまも信頼連鎖の中で有効かという点です。
ここで効いてくるのが失効確認で、代表的な方法が CRLOCSP です。
CRL は失効した証明書の一覧をまとめて配布する方式で、いわば「無効になった証明書の名簿」を受け取って照合します。
対して OCSP は、特定の証明書1件について状態を個別に問い合わせる方式です。
前者は一括管理に向き、後者はその場での個別確認に向きます。

Web の証明書運用では、サーバ側があらかじめ OCSP 応答を添えて返す OCSP ステープリング も使われます。
クライアントが毎回認証局に問い合わせなくて済むので、遅延の抑制や問い合わせ負荷の軽減に効きます。
ここが暗号の美しいところなのですが、署名の信用は数学だけで完結せず、こうした検証データの流通設計まで含めて成立しています。

筆者が実務検証で腹落ちしたのは、失効確認が単なる理屈ではなく、画面の色で業務停止に直結することでした。
Acrobatで署名済み PDF を開いたとき、見た目には署名欄も印影風の表示も整っているのに、OCSP 応答の取得が不調で検証が詰まり、結果画面に赤い × が出たことがあります。
文書の内容自体は読めても、検証が通らない以上、そのまま承認フローへ流せません。
署名が「存在する」ことと、「信頼できる状態で確認できる」ことは別物です。

失効が必要になる典型例は、秘密鍵の漏えいや、証明書記載情報の前提が崩れた場合です。
たとえば署名者の秘密鍵が第三者に渡ってしまえば、その鍵で作られた署名は本人の意思を裏切る道具になります。
そのため、漏えいが判明した時点で証明書失効を行い、以後の署名を信頼対象から外す必要があります。
逆に言えば、失効確認を飛ばすと、「すでに無効化された鍵で付けられた署名」を見逃します。
署名がある=無条件で安全ではない理由はここにあります。

有効期限と更新運用

証明書には有効期限があります。
公的個人認証の電子証明書は、原則として発行の日後5回目の誕生日までが有効期間です。
マイナンバーカード本体の有効期間とは別に進むので、カードが手元で使えそうに見えても、署名用電子証明書だけが先に期限切れになる場面が起こります。

この点は、日常の運用で見落とされがちです。
筆者がよく想定するインシデントは、年度末の申請や契約更新が集中した日に、担当者が送信直前で証明書期限切れに気づくケースです。
画面上には署名機能があり、カードも読み取れているのに、実際には有効な署名を付けられない。
関係者は「昨日まで普通に使えていた感覚」のままなので初動が遅れます。
こうなると、書類作成の手間よりも、承認待ち・送信待ち・相手先との再調整で業務全体が止まります。
更新忘れは地味ですが、止まり方は地味ではありません。

さらに厄介なのは、期限切れや失効の証明書でも、署名の見た目自体は残ることです。
署名欄や署名者名が表示されていても、検証結果では「信頼できない」状態になりえます。
実務ではこのズレが誤解を生みます。
非技術者の目には「署名は付いているのに、なぜ差し戻されるのか」と映りますが、検証側は署名画像ではなく、有効期間と失効状態を見ています。

運用で差が出るのは、更新を年中行事として扱えるかどうかです。
期限そのものは制度で決まっていても、安全性は更新の手順、担当の明確化、失効時の連絡経路といった日々の管理で決まります。
制度面も動き続けており、認定認証業務に関する旧姓使用の取扱い資料が 2026年3月9日に掲載されたように、証明書まわりは制度運用の更新が現実にあります。
暗号アルゴリズムの強さだけではなく、証明書制度と事務運用の追随が信頼性を支えています。

秘密鍵とデバイスの管理

秘密鍵は、デジタル署名の本体です。
証明書は公開鍵と本人情報を結び付ける文書ですが、実際に署名を作れるのは秘密鍵を持つ側だけです。
したがって、秘密鍵が漏れれば、その時点で「本人しか作れないはずの署名」という前提が崩れます。
攻撃者が鍵を使って署名した文書は、検証画面だけ見れば本物らしく通ってしまう余地があるため、漏えい時の影響は深刻です。

漏えいが起きたときに必要なのは、証明書失効と鍵更新です。
片方だけでは足りません。
失効しなければ古い鍵を信頼対象から外せず、鍵更新しなければ正当な利用者が新しい署名基盤を持てません。
ここでも「暗号が強いから安全」では終わらず、事故後にどれだけ速く失効と再発行へ進めるかが安全性を左右します。

秘密鍵を守る現実的な防壁が、カード、トークン、スマートフォン内の安全領域、そして PIN やパスフレーズです。
たとえば公的個人認証の署名用電子証明書では、暗証番号は英数字6〜16文字です。
利用者証明用の数字4桁とは役割が異なり、こちらは文書への署名に直結するぶん、管理の重みが違います。
PIN を安易に共有したり、端末の近くに書き残したりすると、秘密鍵を安全なデバイスに閉じ込めている意味が薄れます。

スマートフォン搭載型の電子証明書も、利便性と管理責任が表裏一体です。
Android向けのスマホ用電子証明書搭載サービスは 2023年5月に始まり、iPhoneでのマイナンバーカード提供は 2025年6月24日に始まりました。
持ち歩く端末で本人確認や証明書利用ができるのは便利ですが、同時に、端末の紛失・機種変更・画面ロック管理がそのまま署名基盤の管理になります。
紙の印鑑なら机に戻れば済んだ話が、デジタルでは端末ライフサイクル全体の管理に置き換わります。

💡 Tip

署名の安全性は、アルゴリズム名よりも「秘密鍵がどこにあり、誰がどう使える状態か」で実務上の差がつきます。鍵を守る仕組みと、漏えい時に止める仕組みがそろって初めて、署名の信用が保たれます。

タイムスタンプと長期検証

署名時点の存在証明として有用なのがタイムスタンプです。
タイムスタンプは、ある時点でそのデータが存在していたことを第三者的に示す仕組みで、標準的な形式は RFC 3161 に定義されています(RFC 3161: の長期保存と検証性を扱う PAdES(ETSI の PDF 電子署名プロファイル)では、タイムスタンプや検証材料の埋め込みを含む運用が想定されます。

筆者の実務感覚では、PAdES のように署名本体に検証材料を付与する運用での追加データ量は実装依存の「概算」です。
前提の一例として、証明書チェーン(中間 CA を含む)を 2–3 件、OCSP/CRL 応答を 1 件、RFC3161 形式のタイムスタンプトークンを含める想定で、各要素の典型的なサイズ(証明書: おおむね 1–3 KB/件、OCSP 応答: 数百バイト〜数 KB、タイムスタンプ: 数百バイト〜数 KB)を仮定すると、1 署名あたり概算で約 8–15 KB 程度になることがあります。
とはいえ CA の証明書サイズやチェーン長、OCSP/CRL の形式、拡張領域の有無、TSA の応答形式などで数倍に変動し得ます。
大量保存や設計時には対象環境での実測値取得や利用する CA/TSA の仕様確認を必ず行ってください。
PAdES(ETSI の PDF 電子署名プロファイル)に関する詳細な規定を参照する場合は、ETSI の該当文書をご確認ください。

まとめ

署名は文書の改ざん検知と送信者性を担い、証明書はその公開鍵の持ち主を確かめ、PKIはその信頼を連鎖で支えます。
この役割分担で捉えると、電子契約のPDF検証でもブラウザの錠前マークでも、「署名がある」だけでは足りず、「その鍵を誰のものとして信じるか」まで見るべきだと腹落ちします。
筆者もPDFの検証画面やログイン時の証明書表示を見るたび、署名が見えていても信頼は別問題だと理解してから判断を誤らなくなりました。

次に進むなら、まず署名を「ハッシュと鍵ペアで成立する検証技術」として整理し、そのうえで行政手続や電子契約で必要な証明書種別を見分け、実務では失効・期限・信頼チェーン確認を習慣化するのが近道です。
周辺理解として、RSAやECC、ハッシュ関数、そして将来の移行先として耐量子署名まで視野に入れると、TLS 1.3 や長期保存の設計も一本の線でつながります。

関連コンテンツ(当サイト・候補)

  • シーザー暗号の仕組みと解読法(解説予定)
  • エニグマ解読の全貌:ポーランドからブレッチリーへ(歴史記事予定)

シェア

秋山 拓真

情報セキュリティ企業での暗号実装検証を経て、暗号理論の解説に専念。公開鍵暗号からポスト量子暗号まで、数学的原理をわかりやすく伝えます。

関連記事

現代暗号

ブラウザでHTTPSのサイトを開いた瞬間、画面には見えないところで「いま誰と鍵を決めたのか」と「その後の本文をどの鍵で守るのか」が一気に走ります。この記事では、まず共通鍵暗号の仕組みと量子コンピュータ時代に何が変わるかの節を先に参照すると、以降の議論の流れがつかみやすくなります。

現代暗号

WebをHTTPSで開き、Wi‑Fiに接続し、ノートPCのディスク暗号化を有効にする。ふだん何気なく触れているこの3つの動作の奥には、同じ名前の暗号がいます。

現代暗号

ブラウザの錠前アイコンを開いて証明書の詳細をのぞくと、Public-Key: RSA 2048 と Exponent: 65537 が並んでいて、公開鍵暗号は教科書の中だけの話ではなく、いま目の前の通信を支える現役技術なのだと実感します。

現代暗号

1977年に公開されたRSAは、公開してよい鍵(n, e)と外に出してはいけない秘密鍵dを分けることで、暗号と署名の考え方を一段進めた方式です。公開鍵暗号を数式から理解したい人、仕組みは知っているのに実務での役割が曖昧な人に向けて、歴史的位置づけから手で追える計算例までを一本につなげます。