SSLとは | SSLサーバー証明書ならさくらインターネット

SSLとは

インターネット通信の暗号化(https化)を担うSSLの役割、用語の意味、暗号化通信が成立するまでの過程などをわかりやすく解説します。

SSLとは

SSLとは、簡単に言うとWebサイトとそのサイトを閲覧しているユーザとのやり取り(通信)を暗号化するための仕組みです。意外と知られていない前提ですが、みなさんが利用しているインターネットは悪意のある第三者が通信の中身を盗み見て悪用することが可能です。閲覧しているホームページのアドレスや、掲示板に書き込んだ内容、ショッピングサイトで入力したクレジットカード番号やパスワードなども盗み見ることが可能です。これでは安心してインターネットショッピングができない、ということでSSLという仕組みが生まれました。

例えば、あなたが会社のパソコンからアクセスしている場合、社内のネットワーク管理者なら、あなたの通信を自由に見ることができます。そして、それは比較的簡単にできてしまいます。飲食店などで利用できる無料Wi-Fiなども、ちょっとした知識があれば管理者が非SSLの通信を盗み見ることが可能です。

この脆弱な部分を補うため、SSLはブラウザとサーバー間の通信を通信の始まりから終わりまで暗号化します。そのため、通信の途中でデータを盗み見られたとしても、データは暗号化されているため解読は困難となります。


本記事に出てくる用語は、こちらで解説しています。

証明書を利用するまでの流れ

証明書を利用するまでに以下の工程が必要となります。

  1. 秘密鍵を生成する
  2. 秘密鍵を用いてCSRを生成する
  3. CSRを用いて証明書を生成する
  4. 秘密鍵と証明書をセットにしてWebサイトの通信を暗号化する

証明書はCSRを介して生成され、秘密鍵とペアになるように構成されています。証明書は公開鍵なので再発行できますが、秘密鍵は唯一無二の存在です。秘密鍵が流出すると、そのコモンネームのサーバーとの通信を誰でも復号できてしまうので、絶対に失くさないようにしましょう。

SSL通信が成立するまで

それでは実際に暗号化通信ができるまでに、ブラウザとサーバーの間で何が起きているかを見てみましょう。

  1. ブラウザ:SSL通信をリクエストする
  2. サーバー:SSLサーバー証明書を送付する
  3. ブラウザ:受け取った証明書の公開鍵を使って共通鍵を暗号化し、サーバーに送付する
  4. サーバー:受け取った共通鍵を、秘密鍵を使って復号する
  5. ブラウザ/サーバー:一致した共通鍵を使って送受信するデータを暗号化、復号して暗号化通信を成立させる

わかりやすさを優先して簡単に書いていますが、このような流れでブラウザとサーバー間の通信が暗号化されます。ここで重要なのは、SSLサーバー証明書は公開情報だということです。「公開して大丈夫なのか?」と思うかもしれませんが、この公開情報は秘密鍵から作られています。証明書を使って暗号化された共通鍵は、サーバーにしか入っていない秘密鍵で“のみ”復号できます。もちろん、証明書から秘密鍵を生成することはできません。このような流れで、セキュアな暗号化通信が実現されます。

さらにSSLの世界ではSSLサーバー証明書を署名する中間CA証明書があり、中間CA証明書を署名するルート証明書という構造を取り入れることで、その証明書が正しく発行されているか?ということを検証できるようになっています。これが次に解説する改ざん、なりすましの防止機能となります。

改ざん防止となりすまし防止

ここまでは通信の暗号化について解説してきました。SSLのもう一つの重要な役割として、データの改ざんとなりすましの防止という機能があります。まずはデータの改ざんについて解説していきます。

例えば、市役所に税金を振り込むための口座番号が記載されているホームページがあったとしましょう。口座番号を書き換えることができれば、税金を振り込む人からお金を窃取することができます。

このホームページをSSL化すれば、ブラウザとサーバーとの通信は暗号化(https化)されるとともに、途中で誰かがデータを書き換えると「データが改ざんされてるよ!」とわかるようになります。その信用できないデータを破棄し、送り主に再度データを送ってもらうように依頼することができます。これがSSLの改ざん防止です。

では、なりすましとはどういう状況でしょうか。先程のデータ改ざんで登場した市役所のホームページですが、完全にホームページをコピーして違うサーバーへ設置し、URLも同じにして、○○市役所ですよ!と名乗ることが実はできてしまいます。ですが、SSL通信の際に必要な秘密鍵はコピーできません。秘密鍵が無い状態でSSL通信を試みてもその通信先が保証されないため、ブラウザ側で「このホームページは○○.jpと名乗っているけど実際には違うサイトだよ!」と教えてくれます。この場合、多くのブラウザではページを表示することすらされないため、なりすましの被害を防止することができます。

改ざん防止となりすましの防止については、SSLサーバー証明書の「認証局」という組織の存在が重要になります。暗号化自体は認証局が無くても実現可能ですが、認証局はサーバーでもパソコンでもない第三者機関であり、「○○.jpを名乗るこのサイトは本当に○○.jpですよ」と保証してくれる組織です。証明書の種類によっては「○○.jpとは、株式会社○○が運営しているサイトですよ」と運営組織を保証してくれる場合もあります(OV/EV認証)。銀行のホームページにアクセスするとブラウザのアドレスバーが緑色になり会社名が表示されるのは、EV証明書という特殊な証明書を利用しているからです。

参考:「SSLサーバー証明書の違い」

SSLの限界

SSL通信は全ての通信を秘匿できるわけではなく、ネットワーク管理者なら通信先のIPアドレスやデータ量を見ることができます。例えば、会社で仕事中に明らかに業務に関係ない動画サイトのIPアドレスと大量のデータ通信を行っていた場合、動画を見てサボっていることがバレてしまうかもしれません。このあたりは良くも悪くもSSLの限界と言えます。

まとめ

ここまでSSLとは何なのか?という話のほんの触りの部分だけをご紹介してきました。SSLはセキュアな通信が実現できる代わりに理解の難しい技術になります。サーバーを運用してSSL化されたサイトを配信する程度であれば、秘密鍵やCSR、SSLサーバー証明書のそれぞれの役割が大まかに理解できれば十分です。

またSSLの限界を知り、できることとできないことを把握することで、より一層セキュアにインターネットを利用する意識が身につきます。この機会に、インターネットの利用方法を振り返ってみましょう。

用語の解説

記事に出てきた用語について、こちらで解説します。

SSLサーバー証明書 SSL証明書、サーバー証明書、エンドエンティティ証明書などと呼ばれるものですが、いわゆる「証明書」と呼ばれるのはこれになります。後の用語解説に出てくる「秘密鍵」と一緒に利用するもので、サーバーにインストールして利用します。レンタルサーバーでは管理画面から自分でインストールするものもありますが、一般的には管理画面上で購入して有効化されることが多く、レンタルサーバーを運用する上で証明書ファイルの実体を操作することは少ないといえます。
CSR CSRとはCertificates Signing Requestの略であり、簡単に言うとSSLサーバー証明書の発行申請書のようなものです。CSRには発行したい証明書のコモンネームや組織名などが記載されています。もっとも重要なのは、この後に出てくる秘密鍵とセットになる公開鍵が含まれていることです。この公開鍵に認証局が署名するとSSLサーバー証明書になります。
公開鍵・秘密鍵 CSRを作成するには、まず「秘密鍵」を作成する必要があります。公開鍵は秘密鍵を使って作成されるのでセットになっており、公開鍵で暗号化したものは対となる秘密鍵以外では復号できません。公開鍵は証明書に含まれており、秘密鍵はCSRを生成する際に必要なため、セットで作成されたサーバー内にあることが一般的です。秘密鍵は認証局で保管するものではないため、一度失くしてしまうと再発行ができません。また、乱数を使って生成されるため再作成もできません。そのため取扱いに十分注意する必要があります。さくらのレンタルサーバでは、SSL設定を削除すると秘密鍵も消えてしまいますが、秘密鍵のバックアップボタンがありますので削除前に秘密鍵をダウンロードしておくことをおすすめしています。
復号 公開鍵で暗号化されたデータを秘密鍵で暗号化を解除して元の平文に戻すことです。
ルート認証局・ルート証明書 証明書を発行する最上位の認証局は「ルート認証局」と呼ばれ、ルート認証局が自分自身を証明するために発行する証明書のことを「ル―ト証明書」といいます。一般的に自己署名の証明書は信頼できませんが、ルート認証局は定められた厳正な運用基準に基づいた審査を受け、信頼性を担保されています。また、ルート証明書はWebブラウザ等にあらかじめ組み込まれており、Webサイトとの通信時にサイトが提示するSSLサーバー証明書の正当性をそのルート証明書によって判断します。
最終更新日:2018.1.12
記事一覧へもどる

お使いのブラウザでは、さくらのサービスやWebサイトがご利用できなくなります。

安全な通信のため TLSv1.2 に対応したバージョンへのアップグレードをお願い致します。
詳しくは TLS1.0/1.1無効化についてのお知らせをご覧ください。