SSL(Secure Sockets Layer)
SSL(Secure Sockets Layer )は、インターネット上で情報を暗号化して送受信する仕組みです。Web上のURLは、一般的にhttpかhttpsから始まります。httpsは、httpに S=Secure(安全)の頭文字をつけたもので、HTTPというインターネットの通信形式にSSLの暗号化技術を付加したものです。
SSLによってhttpでの通信を暗号化することで、安全にインターネット上でデータのやり取りを行うことができます。
現在では、Googleのブラウザ「chrome」においてhttpから始まるサイトを開こうとすると警告がでたり、政府系のサイトはSSL化が義務化されたり、Webサイトを常時SSL化する流れが進んでいます。
これからサイトを作る場合でも、常時SSL化に対応することは必須です。
SSLの仕組み
SSLでの通信は、一言でいえばユーザーとサーバー間での通信を暗号化し、インターネットを安全に使うためのものです。基本的には、ファイルを暗号化して相手に送り、送られた側がファイルを元に戻す(復号化)ことで、通信中のファイルの中身を第三者から傍受されたり改竄されたりすることなく、ファイルのやりとりができます。
このやりとりの際、ユーザーとサーバー間でのみ使える鍵(共通鍵)がつくられます。このつくられた共通鍵は、暗号化と復号化するときに用いられ、両者の通信の中で使うことを目的とした鍵です。これを「共通鍵暗号方式」といいます。
しかしこの暗号化と復号化するときに同じ鍵を使う共通鍵暗号方式には、ひとつ問題があります。それは共通鍵の受け渡しです。ユーザーとサーバー側で同じ共通鍵を使うため、その共通鍵を相手に渡さなければ暗号化の通信は成立しません。暗号化されていない通信で、共通鍵をそのまま送ることは危険ですので、共通鍵を渡す通信にも別の暗号化が必要になってきます。それが「公開鍵暗号方式」です。
- (1)サーバーが、「公開鍵」の記載された「SSLサーバー証明書」をユーザーに送信
- (2)ユーザーのOSもしくはブラウザでSSL証明書を検証
- (3)信頼できるSSL証明書だと認証された場合、ユーザーは「共通鍵」を生成し、サーバーから送られた公開鍵を使って暗号化
- (4)サーバーは受け取った共通鍵を、「秘密鍵」によって復号
- (5)以降の通信は共通鍵を用いて暗号化
(1)のSSLサーバー証明書は、HTTPS化の際に取得するもので、公開鍵のほかに、サイトの運営者情報や、サーバー証明書を発行した「ルート認証局」などが記載されています。
ルート認証局とは、国際的な電子証明書監査規格(WebTrust for CA等)に合格した最高権威の認証機関です。パソコンのOSやブラウザには、出荷時にあらかじめ認証局の情報が組み込まれています。これと、サーバーから送られてきたSSL証明書の認証局情報を照らし合わせて、信頼できる証明書であるかどうかが検証されます(2)。
※サーバーとは、Web上にサイトを開いて、ユーザーが訪問できるようにするコンピュータのことです。個人でサイトを作る人は、業者からサーバーをレンタルして利用することが多いでしょう。
常時SSL化のメリット
通信が暗号化されることで、盗聴や改ざんの危険から守れる
非SSLサイトの場合、通信内容が第三者から盗み見られたり、改ざんされたりする危険がありました。HTTPSサイトにすると、ユーザーのブラウザとサイトサーバー間で、暗号化のための鍵が交換されるため、盗聴や改ざんの危険からユーザーを守ることができます。
クレジットカード情報やログイン情報の入力欄がないサイトでも、SSL化は必要です。というのも、通信内容には、ユーザーのブラウザに保存されている閲覧履歴(Cookie)やログイン情報も含まれるからです。
またSSL化することにより、ユーザーの通信を保護するサイトであるというアピールもできます。現在、FirefoxやGoogle Chrome、Safari等の主要ブラウザでは、常時SSLサイトには安全を示す鍵マークが、非SSLサイトには警告がつくようになっています。
Chrome のセキュリティにとって大きな一歩: HTTP ページに「保護されていません」と表示されるようになります
Google では、Chrome を最初にリリースした時から、セキュリティを Chrome の基本原則の 1 つと考え、ウェブを閲覧するユーザーの安全を守る(英語)ために常に取り組んできました。Chrome で HTTPS によって暗号化されていないサイトに「保護されていません」と表示し、最終的にはすべての非暗号化サイトにこの警告を表示すると発表(英語)したのは、およそ 2 年前のことです。この警告により、ウェブ上で銀行口座の確認やコンサート チケットの購入などを行う際に、個人情報が保護されるかどうかを簡単に知ることができます。7 月 25 日より、Google はすべての Chrome ユーザーを対象にこの変更のロールアウトを開始しました。
通信が暗号化されることで、盗聴や改ざんの危険から守れる
大手検索エンジンのGoogleは、インターネットのセキュリティ向上のため、サイト所有者(ウェブマスター)に対し、HTTPからHTTPSへの切り替えを求めてきました。2014年8月には、検索結果の順位決定シグナルにHTTPSを使用すること、このシグナルは、コンテンツの質に対する評価といった他シグナルより強くはないものの、これから長い期間をかけて強化することを発表しました。
長期的に見ると、HTTPS化した方が、検索結果の順位によい影響を与え、結果ユーザーの目に触れる機会も多くなることが考えられます。報酬を増やすためにより多くのユーザーに訪問してもらいたいアフィリエイターも、HTTPS化を検討するとよいでしょう。
HTTPS をランキング シグナルに使用します
セキュリティは Google の最優先事項です。Google は、デフォルトで強力な HTTPS 暗号化を導入するなど、業界でも最先端のセキュリティを Google サービスに導入することに力を注いでいます。これにより、たとえば Google 検索、Gmail、Google ドライブを使用しているユーザーは自動的に、Google に安全に接続することができます。
Google は、Google のサービスだけにとどまらず、より広い範囲でインターネットを安全に利用できるように取り組んでいます。そこで大きな割合を占めているのは、ユーザーが Google から安全なサイトにアクセスできるようにすることです。たとえば、Google ではウェブマスター向けにハッキングの対策や修正方法について詳しい情報を提供するサイトを作成しました。
Google ではさらにもう一歩踏み込んで、数か月前の Google I/O では、「HTTPS everywhere」をウェブで提唱しました。
「HTTP/2」という通信形式に対応しており、表示速度が上がる
サイトをHTTPSにすると、HTTP/2という、現時点で最も新しいHTTPの通信規格に対応できるようになります。HTTP/2は、一世代前のHTTP/1.1と違い、複数の画像や動画といったコンテンツを同時に読み込むことができるため、結果としてサイトの表示速度が向上します。
ただ、Google ChromeやFirefox、Safari、IE等の主要なブラウザでは、HTTP/2に対応しているのはHTTPSサイトのみです。非SSLサイトは対応していません。そのため、ユーザーの利便性に貢献できるよう、常時SSL化が推奨されています。なお、「HTTP/2」は、Xサーバーやロリポップ!さくらのインターネットといった、個人向けプランを提供しているレンタルサーバー各社でも利用可能です。
アクセス解析が詳細にできる
Googleが無料で提供する「Google アナリティクス」などのアクセス解析ツールでは、非SSLサイトがHTTPSサイトから訪問された場合、参照元(リファラ)が「なし」と表示されてしまいます。たとえば、Google(SSL化済み)からの検索で流入があった場合、自サイトがHTTPだと、どこから流入してきたのかが計測できなくなります。アクセス解析を詳細に行うためにも、HTTPS化は必要です。
常時SSL化のデメリット
常時SSL化する場合、SSLの種類によってはお金がかかる場合があります。法人でSSL化する場合や、クレジットカード・個人情報をやりとりするサイトの場合は有料SSLプランを選択する必要が出てきます。個人が運営するサイトの場合、無料でSSL化が可能なことが多いです。ただし、SSL化するとサイトURLが「http://……」から「https://……」に変わるため、SNSのシェアカウントがゼロにリセットされます。
そしてサイト内のコンテンツは、すべてHTTPSに変更する必要があるため、すでにHTTP広告のコードを貼っていた場合、SSL対応コードに貼りかえる手間もかかります。なおA8.netは、2016年からSSL化に対応しています。
広告タグのSSL化はなぜ必要?
個人が運営するサイトの多くは、個人情報やクレジットカード情報を取り扱わないサイトが多いため、一見SSL化は必要がないように思いがちですが、近年、検索エンジンの順位に影響を与えられるようになり、サイトをSSL化(HTTPS化)する人が増加傾向にあります。
WebサイトをHTTPS化する場合、読み込む外部ファイルは全てHTTPS化(SSL対応)している必要があります。
その為、この度A8.netでは広告タグもSSL化の対応をさせていただきました。
SSLの種類
SSLは、「独自SSL」と「共有SSL(共用SSLとも)」の大きく2つに分かれます。これは、自分のサイトの対してのみSSLサーバー証明書を発行するか、複数人で証明書を共有するかの違いです。暗号化の強度は変わりません。
独自SSLの場合、証明書に自分のサイト情報が記載できることや、HTTPS通信時にサイトURLが変わらないことが特徴です。共有SSLの場合、証明書には共有しているサーバー情報が載り、HTTPS通信時にURLが変わります。共有SSLは安価に導入できることがメリットでしたが、個人向けに無料の独自SSLサービスが増えた現在、選択する理由は少なくなったといえるでしょう。
さらに独自SSLは、認証レベルによって「ドメイン認証」「企業認証」「EV認証」の3つに分かれます。企業認証とEV認証はいずれも法人向けで、EV認証は企業認証よりさらに厳格な審査が行われます。個人でサイトを運営する方は、自動的にドメイン認証を選択することになります。暗号化の強度はいずれも変わりません。
ドメイン認証 | 企業認証 | EV認証 | |
---|---|---|---|
個人で取得可能 | 〇 | × | × |
認証レベル | ドメイン所有権 | 組織の実在性 | 組織の法的・物理的実在性 |
年間料金 | 無料~ | 数万円 | 数万~10万円以上 |
SSLの導入方法
サイトを常時SSL化するには、利用するサーバーでの申し込みが必要です。初めてサイトを作る人は、サーバーへの申し込みと同時にSSL設定を済ませておくとよいでしょう。
SSL化する際は、CSRというSSL証明書申請書類に記入する選択肢が出てきます。サイトを運営する組織の所在地や組織名を記入しますが、個人向けなどプランによっては、CSRの記入がなくても手続き可能です。
ドメイン認証の場合、SSL申請してから約24時間以内にサイトドメインに対して認証が行われ、サイトがHTTPS化されます。企業認証やEV認証で行われるような電話確認などはありません。