SSLとは・・・情報を暗号化して送受信してくれる仕組みです。
例えば、Webサイト上で「個人情報」や「クレジットカード番号」などを登録するさいに、暗号化して送受信してくれます。
これによって、第三者から盗み見らていても、暗号化されているので、内容を特定される事はありません。
また、普段利用しているWebサイトがSSL対応しているかは、URLを確認すれば分かります(下図確認)
今回の記事では、もっと詳細な「SSLの仕組み」や「共有SSLと独自SSLの違い」・「SSL証明書」についても順に解説していきます。
以下、目次になります。
- SSL証明書とは
- SSLの仕組みについて
- 共有SSLと独自SSLの違い
SSL証明書とは
SSL証明書の役割は、下記三つになります。
- 「SSL」を用いて、通信情報を暗号化する
- 「SSL」を利用しているWebサイトの運営会社(所有者)の確認ができる
- 「SSL」を利用しているWebサイトの運営会社(所有者)が、第三者機関(認証局)からの信頼性が高いことを証明できる
また、SSL対応しているWebサイトであれば、ブラウザ上からSSL(サーバー)証明書を確認することができます。
SSL証明書の確認手順
※今回は、「Google Chrome」での確認手順になります(他のブラウザでも、手順はほぼ一緒です)
まず、「Google Chrome」で、SSL対応しているページを開きます。
例として、下図のように「楽天」の「買い物カゴ」ページを開いてみます(楽天の買い物カゴページは、アカウント情報や個人情報を扱っているため、SSL対応しています)
そして、「鍵マーク」の部分をクリックしてください(SSL対応しているページは、URLの前に「鍵マーク」が表示されます)
すると、下図のようにポップアップ画面が開きますので「接続」タブを開いてください。
こちらに、Webサイトの運営会社情報(Rakuten.IncやJP Tokyo)や、第三機関(認証局)の情報(VeriSign)
また、暗号化情報も表示されています。
上図の「証明書情報」をクリックすると、さらに詳細な情報を確認することができます(下図)
第三機関(認証局)が、(信頼性を)証明した「ドメイン」や、有効期限を確認することができます。
さらに「詳細」タブでは、
第三機関(認証局)の詳細情報や、信頼性を証明されたWebサイトの運営会社の詳細情報を確認できます。
以上が、SSL証明書の確認手順でした。
SSLの仕組みについて
SSLの仕組みを理解するには、まず下記2つの仕組みを理解しなければなりません。
- 【共通鍵暗号方式】
- 【公開鍵暗号方式】
上記二つは、二者間の通信を暗号化する際、最も一般的で基本的な暗号化方式です。仕組みについては、こちらで分かりやすく解説しています→【3分で理解できる!共通鍵暗号方式と公開鍵暗号方式の仕組み】
「SSL」では、この「共通鍵暗号方式」と「公開鍵暗号方式」の両方を仕組みを用いて、暗号化通信を行っています。
では、具体的に解説していきます。
まず、「SSL」の暗号化通信は、大きく2段階(STEP)に分かれています。
【1STEP】~通信内容を暗号化するための「共通鍵」を、クライアント/サーバー間で共有する~
※「クライアント」・・・サイトを閲覧する側、「サーバー」・・・サイトを公開している側
1STEPでは「公開鍵暗号方式」で、通信内容を暗号化するための「共通鍵」を、クライアント/サーバー間で共有します。
以下、流れになります。
- 「クライアント」から、”SSL通信をしたいです”と、「サーバー」へ要求する
- 「サーバー」は、”了解”と言って、SSL(サーバー)証明書と公開鍵を、「クライアント」へ送信する
- 「クライアント」は、受け取った公開鍵を用いて、(クライアント側で生成した)「共通鍵」を暗号化して、「サーバー」へ送る
- 「サーバー」は、受け取った暗号データを、秘密鍵を用いて復号化し、「共通鍵」を取得する
この流れで、最終的に「共通鍵」をクライアント/サーバー間で共有することができます。
次のステップでは、この「共通鍵」を利用して、実際の通信データ(個人情報やログイン情報)を暗号化していきます。
【2STEP】~共有した「共通鍵」で、データを暗号化して通信する~
2stepでは、”1stepで共有した共通鍵”を用いた「共通鍵暗号方式」で、実際の通信データ(個人情報やログイン情報)を暗号化して通信します。
以下、流れになります。
- 「クライアント」が、通信データを「共通鍵」で暗号化し「サーバー」へ送信する
- 「サーバー」は、受け取った暗号データを「共通鍵」で復号化し、データを取得する
※「サーバー」から「クライアント」への通信も、同じ流れになります。
以上、2stepが、「SSL」の通信の仕組み(流れ)になります。
以下で、図解しています。
共有SSLと独自SSLの違い
SSLには、大きく「共有SSL」と「独自SSL」に分けることができます。
当章では、順にそれぞれの特徴や違いについて解説していきます。
まず前提として、「SSL」に対応するには「SSL証明書」が必要ですが、基本的には、一つの「SSL証明書」に対して、一つの「ドメイン」を対応させなければなりまえん。
ですが、一つの「SSL証明書」に対して、複数の「ドメイン」を対応させることもできます。
ここで、1対1で対応しているのが「独自SSL」になり、1対 多 で対応しているのが「共有SSL」になるのです。
では、それぞれの特徴を挙げていきます。
独自SSLの特徴
「独自SSL」は、ドメインはそのまま利用できます。
例えば、当サイトのドメインは「viral-community.com」なので、通常通信(http)の場合「https://viral-community.com」にアクセスすれば良いです。
そして、SSL通信(https)の場合も、ドメインはそのまま利用できるので「https://viral-community.com」にアクセスすれば良い事になります。
ドメインは一緒なので、利用者からの信頼感を損なう事もありません。
一点、デメリットとしては、お金が掛かってしまう事です。
ただ昨今では、低価格化が進み、「3000円 / 年」程度のモノもあるので、個人でも導入が容易になっています
なので、「ネットショップの決済ページ」など、利用者の重要な情報(個人情報やクレジットカード情報)を扱い、信頼感を損なってはダメな場合には、必ず使用するようにしてください。
共有SSLの特徴
「共有SSL」は、なんといっても”ドメインが変わってしまう”事です。
「レンタルサーバー」を例にすれば分かりやすいでしょう。
レンタルサーバーを提供している会社は、その会社のドメイン「(例)●●●●●.ssl-●●●●●.jp」に対して、SSL証明書を対応させて、それを「共有SSL」としてサービス化しています。
例えば、当サイトが上記レンタルサーバーを利用し、「共有SSL」も利用したとします。
その場合、当サイトのドメインは「viral-community.com」なので、通常通信(http)の場合は「https://viral-community.com」にアクセスすれば良いです。
ですが、SSL通信(https)の場合は、ドメインがレンタルサーバー提供会社のものになるので「https://●●●●●.ssl-●●●●●.jp」にアクセスしなければなりません、、
これは、利用者からの信頼感を非常に損ねてしまいます。
利用者からしたら、急に「viral-community.com」から「●●●●●.ssl-●●●●●.jp」に変更になったら、疑問に思いますし、それが心配へとなっていきます。
”本当にこのサイトで、個人情報を入力して大丈夫なのか、、、”と思ってしまうわけです。
また、SSL証明書は、レンタルサーバー提供会社に対してのものなので、「共有SSL」に対応したサイト運営会社の情報確認や証明は、全く行われません。
さらに、他のレンタルサーバー利用者で、「共有SSL」を使っている人が多ければ多いほど、「共有SSL」に対応させたページの動作が遅くなってしまいます。
以上が、デメリットです。
メリットとしては、まず「お金が安価、または掛かりません」
ほとんどのレンタルサーバーでは、無料でサービス化されています。
また、暗号化は「独自SSL」と全く差異なく行われますので、通信じたいは安全です。
使用時としては、利用者が自分だけや自社だけの場合に使用すれば良いでしょう。
例えば、「ブログのログイン画面や管理画面」は、ブログのログイン情報が第三者から傍受されたらマズイですが、管理画面の利用者は自分だけなので、「共有SSL」で良いでしょう(共有SSLを利用して、自社ブログ(Wordpress)の管理画面やログイン画面をSSL対応させる手順については、こちら→【WordPressの管理画面を、https(SSL通信)に設定する手順】)
以上、「独自SSL」と「共有SSL」の特徴でした。
まとめ
今回の記事では、「SSLの仕組み」や「共有SSLと独自SSLの違い」・「SSL証明書」について解説してきました。
ネットショップなど、「個人情報」や「クレジットカード情報」等、サイト利用者の重要な情報を扱う場合は、SSL対策は必須ですし、サイト運営者は、SSLに対して正しい知識を持つ事が重要です。
その上で、自社サイトに適したSSL対策をしておきましょう。