2018年7月のGoogle Chomeのバージョンアップから、常時SSL化、つまりhttps化をしていないホームページをブラウザで読み込んだ場合、画面に警告が表示されるようになりました。「保護されていない通信」という表示が出ることでユーザーがセキュリティに不安を感じてしまう恐れがあると不安を感じた企業は次々にSSL化に取り組みました。

もちろん、すべての企業がSSL化に取り組んでいるわけではありません。これからという企業もたくさんあるでしょう。そこで今回は、SSL化の概要について解説するとともに、多くの方が気になるSEOへの影響について解説します。

SSL化とは

一般にWebサイトを利用する場合は、WebブラウザとWebサーバーの通信はプロトコルと呼ばれるルールに基づいて行われます。このプロトコルの1つが馴染深いhttpです。気軽にhttpを使いインターネットを利用するのが一般的になっていたものの、なりすましやフィッシング、データ盗聴、データ改ざんなどの被害が生じるケースが見られるようになりました。このような背景のもと、セキュアな通信を実現するhttpsを利用するようになりました。httpsに使われているのがSSLです。

SSL(SecureSockets Layer)は通信の暗号化です。SSLを利用していない場合、つまり暗号化していない通信は通信情報を閲覧されてしまう可能性があります。それに対し、SSLはデータ通信を暗号化するため、たとえデータを傍受されたとしても第三者には解読できないのです。暗号化には「共通鍵暗号方式」と「公開鍵暗号方式」の2つがあります。SSLは、この2つの暗号方式を組み合わせることで安全かつスピーディーな通信を実現します。

「共通鍵暗号方式」は、ブラウザ(クライアント)とサーバーがそれぞれ共通鍵を持ち、暗号化した通信を行うものですが、共通鍵を違いに持つための通信は暗号化されていません。しかし、シンプルな分、処理速度が早いことが特徴です。

「公開鍵暗号方式」は、公開鍵と秘密鍵がセットであり、公開鍵で暗号化した場合は秘密鍵で復号する必要があります。逆のパターンもあり、秘密鍵で暗号化した場合は公開鍵が必要という具合です。この場合、サーバーが公開鍵のみをブラウザ(クライアント)に送り、ブラウザ(クライアント)が暗号化を行ったとしても、秘密鍵を持っているサーバーは複合が可能という仕組みです。共通鍵暗号方式のリスクがヘッジされるものの処理速度の遅さが難点です。

さて、SSLはこの2つの暗号化の方法をどのように組み合わせているのでしょうか。
まず、ブラウザがSSL通信をリクエストすると、サーバーからSSLサーバー証明書と公開鍵が送信されます。この情報を受け取ったブラウザ(クライアント側)は証明書を照合し認証を終えたら、共通鍵を暗号化しサーバーに送ります。サーバーは秘密の鍵で公開鍵を復号し、共通鍵をブラウザ(クライアント)とサーバーの両者が持った状態で安全な通信を実施するのです。

情報処理の勉強をしたことある方は聞き覚えのある話でしょう。一見ややこしい話ですが、悪意を持った第三者から通信データを守るために、SSLはこのような処理をスピーディーに実行しているということです。

ちなみにSSL化にあたり、「常時SSL」という言葉を聞く機会があるかと思います。これまでSSLは個人情報を入力するフォームのみに設定するというケースが多くありましたが、最近ではホームページのすべてのページをSSL化するケースが多いです。これを常時SSLと言います。