MENU

【PKI基礎⑦】デジタル証明書について解説【初心者向け講座】

インターネットで安全にやり取りをするためには、相手が「本物」であることを確認し、送ったデータが途中で改ざんされていないことを確かめる必要性があります。

このときによく使われるのが公開鍵暗号方式ハッシュアルゴリズムを組み合わせた「デジタル署名」という仕組みです。

デジタル署名を使えば、

  • 誰が送ったデータなのか(送信元の確認)
  • データが途中で書き換えられていないか(完全性の確認)

ができます。

しかし、この仕組みには大事な前提があります。それは「使う公開鍵が本物であること」です。

今回は、この「公開鍵が本物であること」を保証するための仕組み、デジタル証明書について解説します。

目次

なぜ本物の公開鍵が大事?

公開鍵が正しいかがわからない世界を想像してみましょう。

「ねこねこ」は友だちの「ねこまる」に秘密のメッセージを送りたいとします。インターネットは誰でも使える「オープンな通路」であるため、ただ送るだけでは危ないので暗号化しておくります。

そこで必要になるのが、「ねこまるの公開鍵」です。「ねこねこ」は Google で検索して「おっ、これがねこまるの公開鍵か!」と見つけました。ところが…

悪意のある「わるまる」が、「ねこまる」になりすまして偽の公開鍵をネットに置いていたらどうでしょう?

「わーい、これで暗号化できる!」と、その鍵を使ってメッセージを暗号化します。でも、実際には「ねこまるの鍵」ではなく「わるまるの鍵」だったのです。

すると、結果はこうなります:

  • メッセージは悪いネコ「わるまる」のみが復号できちゃう
  • 「ねこまる」は「え?何も届いてないけど?」状態
  • 「わるまる」に大事な秘密がバレバレ😱

「この公開鍵は本当のものなのか?」がわからなければ、暗号化の安全性が崩れちゃう、ということです。

だからこそ、本物の公開鍵であることを保証する仕組みが必要になるんです。そして、その役目を果たすのがデジタル証明書です。

デジタル証明書とは?

デジタル証明書は、公開鍵が本物であることを「信頼できる第三者」が保証してくれる仕組みです。

証明書には、持ち主の情報公開鍵がセットになっていて、さらにその情報にデジタル署名がついています。証明書を発行している、信頼ができる第三者機関のことを証明機関(CA:Certificate Authority)と呼びます。

デジタル証明書の中身

デジタル証明書には、こんな情報が入っています。

  • 公開鍵
  • 持ち主の名前や組織名
  • 証明書を発行した機関の名前
  • 有効期限
  • デジタル署名(証明機関の秘密鍵で署名)

これらが一つのファイルにまとまっていて、インターネット上での「公開鍵の本物であること」の証明に使われています。

デジタル証明書の発行までの流れ

デジタル証明書がどうやって作られるか、ステップを見てみましょう。

STEP
キーペアを作る

まずは、秘密鍵と公開鍵のキーペアを作成します。

秘密鍵はねこまるだけが持ち、絶対に他に漏らしてはいけません。また、公開鍵は証明書に乗せるために準備します。

STEP
CSR(証明書署名要求)を作る

CSR(Certificate Siginig Request:証明書署名要求)は、証明書の発行要求のデータです。

CSR には、

  • 公開鍵
  • 証明書に乗せる登録情報(名前、住所、ドメイン名など)

が入っています。

CSR は技術的な証明書の発行要求のデータとなり、この中に含まれる公開鍵や登録情報は、そのまま証明書に書き込まれる情報となります。

CSRだけでは「本当にその人(組織)が正しいか」はわかりません。なので、証明機関に申し込むときは、CSR と一緒に「申込書」や「証拠となる書類」を提出します。

STEP
証明機関が審査する

証明機関は「この申請書は本物か?」を確認します。

個人なら免許証やパスポート、企業なら登記情報やドメイン所有証明などを調べます。その審査に問題がなければ「この人(または組織)は本物だ」と確認され、証明書発行の手続きへと進みます。

STEP
証明書を発行する

証明機関は CSR に含まれる情報をもとにデジタル証明書を作成します。

証明書の情報をハッシュ化し、証明機関の秘密鍵で暗号化してデジタル署名を付与します。

デジタル署名により「この情報は確かに証明機関が保証します」と宣言したことになります。

このような流れで証明書を作ります。

証明書には「公開鍵」と「持ち主の情報」が含まれており、信頼できる証明機関によって保証されたデータとなります。

そのため証明書は「公開鍵の正当性」を担保すると同時に、インターネット上で使える免許証やパスポートのデジタル版のような、身分証明としての役割も果たしているのです。

証明書の検証の流れ

証明書を受け取った相手は、「本当に信頼できる証明機関が発行したものか?」を検証します。

STEP
証明機関の公開鍵で署名を復号

デジタル証明書を検証するときは、「その証明書を発行した証明機関の公開鍵」が必要です。

なぜなら、証明機関は自分の秘密鍵で証明書にデジタル署名しているので、その署名を復号できるのはキーペアの公開鍵だけだからです。

証明機関の公開鍵が含まれたデジタル証明書は「CA証明書」と呼ばれます。CA証明書は、ユーザーがわざわざ探す必要はなく、OS やブラウザにあらかじめ組み込まれています。

「ねこねこ」は CA 証明書に含まれる証明機関の公開鍵を使って、「ねこまる」のデジタル証明書に付与されているデジタル署名を復号してハッシュ値を取り出します。

STEP
証明書から同じハッシュ値を計算

「ねこねこ」自身もデジタル証明書のデータからハッシュ値を計算します。

STEP
2つのハッシュ値を比較

2つのハッシュ値を比較します。

  • 一致 ⇒ デジタル証明書は改ざんはなし & 証明機関が作成
  • 不一致 ⇒ 改ざん または 偽物の可能性あり

デジタル証明書の正しさは「署名の検証」と「信頼できる CA 証明書」の存在によって保証されます。

正しい CA 証明書さえ管理されていれば、誰でも安心して証明書の信頼性を判断できる仕組みになっているのです。

実際にデジタル証明書が使われるシナリオ

ここまで「デジタル証明書ってこういう仕組みだよ」という話をしてきました。でも「実際にはどこで役立っているの?」という疑問が残ると思います。

デジタル証明書は、インターネットを使う上であちこちに登場しています。わかりやすい例を2つ紹介します。

ユーザーの本人確認

ユーザー認証において、ユーザー名とパスワードを入力してログインすることも多いと思います。でも、もしパスワードが流出したらどうなるでしょう?第三者が勝手にログインできてしまいます。

そこで使えるのがデジタル証明書。

  1. 事前に信頼できる証明機関から証明書を発行してもらう
  2. パソコンやスマホにその証明書をインストールしておく
  3. ログオンする際に本人確認として「デジタル証明書を提示」

この仕組みでは、証明書を持っている本人しかログインできません。
つまり「証明書を持っている=証明機関が確認済みの本人」ということになるため、ユーザーの本人確認として証明書が使われます。

サイトの正当性確認

インターネットにてアクセスできる Web サイトの正当性の確認にもデジタル証明書が使われています。

Amazon や銀行の Web サイトを思い出してください。もし悪意がある人が、本物そっくりに作った「偽の Amazon サイト」を用意していたら?デザインやロゴが同じなら、ほとんど人は気づかずに、ログインのパスワードやクレジットカード番号を入力してしまうかもしれません。

そこで使えるのが、デジタル証明書

  1. Amazon は信頼できる証明機関から証明書を発行し、サーバーにインストールする
  2. ユーザーが Amazon へのアクセス時する時に、裏でブラウザは証明書を検証する
  3. 証明書が信頼できる証明機関から発行されていたら、エラーなく Web サイトが表示

デジタル証明書の発行元が信頼できる証明書で、証明書の内容にも問題がなかったら、特にエラーなく Web サイトが表示されます。一方、証明書が偽物だったり、有効期限が切れていたら「⚠️安全ではありません」と警告画面が表示されます。

デジタル証明書を見てみよう!

デジタル証明書はインターネットの通信相手の身元確認に使われています。実はみなさんが普段使っている Google Chrome でも、すぐにデジタル証明書をチェックすることができるんです。

普段アクセスしているサイトが「本物かどうか」を、自分の目でも確かめてみましょう!

STEP
Google Chrome で見たい Web サイトを開きます。

Google Chrome を開き、任意のサイトにアクセスします。

STEP
アドレスバーにある調整アイコンをクリック

アドレスバーの左にある調整アイコン(図の赤枠部分)をクリックします。

STEP
メニューから証明書を開く

[この接続は保護されています] をクリックした後、[証明書は有効です] をクリックします。

STEP
証明書の中身を確認

証明書ビューアが開き、Web サイトの証明書が確認できます。

🔍 見るときのポイント

証明書を開いたら、次の3つをチェックするのがオススメです。

  • 発行先(Subject)
    ⇒ どのサイトの証明書なのか
  • 発行者(Issuer)
    ⇒ どの証明機関が発行した証明書なのか
  • 有効期限(Validity)
    ⇒ いつからいつまで有効か。期限切れの証明書は安全でない可能性あり⚠️

よくあるQ&A

デジタル証明書は永遠に使える?

デジタル証明書は有効期限があります。期限切れの証明書は使えません。

無料でも発行できる?

Let’s Encrypt など一部の証明機関では無料です。

自分で作ったデジタル証明書は使える?

自己署名証明書は自分の環境では使えますが、他者からは信頼されません。

まとめ

今回の記事のまとめです。

  • デジタル証明書は「公開鍵の正当性」を保証する仕組み
  • 中身は「公開鍵+持ち主情報+発行元の署名」で構成されている
  • 証明機関(CA)が申請者を審査し、問題なければ証明書を発行する
  • 証明書の検証は「署名をCAの公開鍵で復号 → 自分で計算したハッシュ値と比較」で行う

証明書は「ネットの身分証明書」とも言える存在です。これがあるからこそ、Amazonや銀行サイトを安心して使えたり、会社のネットワークに安全にアクセスできたりします。

ただし証明書そのものは「誰が発行したのか」が肝心。
信頼できる証明機関が裏にいてはじめて「本物」として機能します。

次回は、この「証明書を発行する役割を担っている証明機関(CA)」について、もう少し詳しく解説していきます!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

フルリモートで働いているセキュリティ系エンジニアです。

このブログでは、技術・在宅ワーク・副業・旅行などについて、 ゆるっと発信しています。猫好き&コーヒー好き。

コメント

コメントする

目次