今さら聞けない証明書の基本

<この記事は 4分くらい で読むことができます。>

この記事はこんな人に向けに書いています

  • 「証明書って何?」と聞かれ困ったことのある方
  • 証明書の基本的な仕組みを知りたい方

読んだ後はこんな状態になっています

  • 自信を持って暗号化通信のロジックを説明できる。
  • セキュリティをちょっと知った気になれる。

「SSL」ってなんだっけ?

証明書と切っても切れない関係の「SSL」についてまず説明したい。
SSLとは、「Secure Socket Layer」の略で、Webサーバ⇔クライアント(ブラウザなど)や、メールサーバ⇔クライアント(メーラーなど)の通信を安全に保つために利用されている。
「SSL = 暗号化通信」というイメージが強いが、「暗号化」はあくまでも通信の安全性を保つ3つの機能のうちの1つでしかない。それでは「SSL」の3つの機能を紹介する。

  1. 暗号化機能
  2. 通信の内容をそのものを秘匿・秘密にする機能である。
    これは読んで字の如くでとても分かり易くしっくりくる。

  3. 真正性確認機能
  4. 通信の相手が正しいかどうかを確認する機能である。
    これには証明書に含まれる所有者情報を利用する。証明書発行する認証局はドメインの所有者情報を保有しているので、通信の相手を「間違ってないよ!」といった確認が出来る。また、真正度レベルは、証明書の認証レベルによって異なる。「ドメイン認証タイプ」はドメインの所有者のみを確認するため真正度が低く、「企業認証タイプ」や「EVタイプ」はドメインの所有者に加えて、ドメインを所有している企業の実在性も確認するので真正性が比較的高くなっている特徴がある。

  5. 改ざん検知機能
  6. 通信しているデータそのものが改ざん・変更されていないか検知する機能である。
    これは通信データを送信する前にデータの本文を元に改ざん検知用の関数を使用して本文に改ざん検知用のデータであるハッシュ値を併せて送付する。受信側は、送信前に使用した関数を使用して計算し、データと送られてきた検知用のデータが一致していれば、本文は改ざんされていないと見なす。これら一連の機能は「メッセージ認証機能」と呼ばれ、改ざん検知用のデータは「フィンガープリント」とも呼ばれる。
    メッセージ認証機能で利用される関数は、フィンガープリントからは本文復元不可というのが特徴である。

じゃぁ「SSLサーバ証明書」ってなんだっけ?

SSL通信の暗号化に使用する公開鍵(暗号鍵)とコモンネーム(FQDN)やドメインの所有者情報を、認証局が関連付けて証明書を発行する。そして、発行されたSSLサーバ証明書をWebサーバやメールサーバにインストールする。
サーバからSSLサーバ証明書を受け取ったクライアントはサーバのFQDNとSSLサーバ証明書に含まれるコモンネームを突合・比べて、一致していることを確認する。SSL通信を行うとき、SSLサーバ証明書のコモンネームと、サーバに設定されているFQDNが一致しているか比較し、一致している場合に、SSL通信を開始することができる。
SSLサーバ証明書は認証局が発行しているので、クライアントが通信しようとしているFQDNはドメイン所有者が運営しているサーバだと認証局が証明しているので、なりすましの防止に役立っている。これがいわゆる「真正性の確認」である。ちなみに、SSLサーバ証明書には、下記の情報が含まれている。
 ■公開鍵の情報
 ■コモンネーム
 ■公開鍵の所有者情報
 ■所有者を証明した認証局の情報
 ■証明書の有効期限
 ■証明書のシリアル番号
 ■証明書の失効リスト参照先

「CSR」って?「コモンネーム」って?

CSRとは「Certificate Signing Request」の略でSSLサーバ証明書を発行する時に必要なテキストのデータです。SSL用の秘密鍵作成時に生成するデータで、公開鍵やコモンネーム(FQDN)、組織名、部署名等が含まれている。認証局は提供されたCSRと申し込み時の企業の情報などを元にSSLサーバー証明書を発行する。
コモンネームとは、電子証明書に記載された所有者情報のひとつ。CSP SSLで販売しているSSLサーバ証明書では、サブドメインを含めたFQDNがコモンネームとなる。
通常、SSLサーバ証明書1枚で認証できるFQDNは1つのみだが、ワイルドカードやマルチドメインと呼ばれるタイプのSSLサーバ証明書は複数のFQDNでSSL通信を行うことができる。

「SSL」の仕組みをおさらいしよう

SSL通信は、データを暗号化してから通信している。このSSL通信は共通鍵暗号と公開鍵暗号の2種類を併用している。SSL通信は主に共通鍵暗号で通信を行う。共通鍵暗号は暗号側と復号側で同じ鍵を所有していなければデータを復号化することができない仕組みのため、通信を行う前に鍵を渡す必要があるが、暗号化通信を行う前は勿論通信が暗号化されていない状態なので、そのまま鍵を渡すと第三者に通信を傍受・盗聴された場合に安全性を保つことができなくなる。そこで、共通鍵の受け渡し手段として公開鍵暗号が使用されている。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA