
SSL(https)とは?鍵マークの意味となぜ必須なのかを解説
前回の記事(「サーバーとは?レンタルサーバーの役割とHPが表示される仕組みを解説」)では、サーバーの仕組みについて解説しました。
この記事では、URLの冒頭にある「https」の「s」が意味するSSL(TLS)について、暗号化の仕組みと、なぜ必須とされているのかを解説します。
SSL/TLSとは何か:通信を暗号化する仕組み
SSLは「Secure Sockets Layer」の略で、現在は後継規格であるTLS(Transport Layer Security)に置き換わっていますが、慣習的に「SSL」と呼ばれることが今も多く残っています。
SSL/TLSは、ブラウザとサーバーの間でやり取りされる通信を暗号化し、第三者に盗み見られても内容が分からない状態にする仕組みです。
暗号化には「公開鍵暗号方式」と「共通鍵暗号方式」という2つの方式が組み合わせて使われます。
公開鍵暗号方式は、暗号化用の「公開鍵」と復号用の「秘密鍵」がペアになった仕組みで、誰でも公開鍵で暗号化できますが、対応する秘密鍵を持つ本人しか元に戻せません。
共通鍵暗号方式は、送信側と受信側が同じ鍵を使う仕組みで、処理が速いという特徴があります。
SSL/TLSでは、まず公開鍵暗号方式を使って安全に共通鍵を受け渡し、その後の実際のデータのやり取りは、処理が速い共通鍵暗号方式で行うという、2つの方式を組み合わせたハイブリッドな仕組みになっています。
SSLサーバー証明書:「このサイトは本物である」ことの証明
SSL/TLSで暗号化通信を行うには、Webサーバー側に「SSLサーバー証明書」を導入する必要があります。
この証明書は、認証局(Certificate Authority)と呼ばれる第三者機関が、「このドメインは、申請した組織・個人のものである」ことを確認したうえで発行するものです。
ブラウザは、サイトにアクセスした際にこの証明書を確認し、正しい認証局から発行された有効な証明書であれば、アドレスバーに鍵マークを表示します。
鍵マークは、通信が暗号化されていることに加えて、なりすましサイトではなく申請どおりのドメインであることを、第三者機関が確認済みであるという意味も持っています。
現在は、Let’s Encryptのように無料でSSLサーバー証明書を発行する認証局や、証明書の取得・更新を自動化しているレンタルサーバーも増えており、以前と比べて導入のハードルは下がっています。
なぜSSL(https)が必須とされているのか
httpsへの対応が必須とされる理由は、大きく2つあります。
1つ目は、Googleの検索結果における評価です。
Googleは2014年8月、公式ブログでHTTPSを検索順位を決めるランキングシグナルの1つとして使用すると発表しました。
このときの発表では、影響は「グローバルでクエリの1%未満」というごく軽微なものであるとされていましたが、同時に「これから長い期間をかけて強化していきます」とも述べられており、Webサイトの標準仕様としてhttpsへの移行が推奨される流れが作られました。
2つ目は、ブラウザ側の警告表示です。
Googleは2018年、Chromeにおいて、httpsに対応していないサイトのアドレスバーに「保護されていない通信」という警告を表示すると発表し、同年7月にリリースされたChrome 68から、この警告表示が実際に開始されました。
特に、お問い合わせフォームなど個人情報を入力するページでは、この警告がより強く表示される仕様になっており、httpsに対応していないだけで、訪問者に不安を与えてしまう状態になっています。
おわりに
SSL(TLS)は、公開鍵暗号方式と共通鍵暗号方式を組み合わせて通信を暗号化し、SSLサーバー証明書によって、なりすましでない本物のサイトであることを証明する仕組みです。
2014年のGoogleの発表以降、httpsはSEO上の評価対象になり、2018年以降はブラウザの警告表示の対象にもなったため、現在ではWebサイト運営における必須の設定になっています。
次の記事では、自分でホームページを更新できる仕組みである、CMS・WordPressについて解説します。
参考にした情報
- SSL暗号化通信の仕組み(GMOグローバルサイン) https://jp.globalsign.com/ssl/about/ssl-encryptions.html
- グーグルはなぜHTTPSをランキングシグナルに使うことにしたのか(鈴木謙一氏) https://www.suzukikenichi.com/blog/gooogle-decides-to-use-https-as-a-ranking-signal/
- Chromeが非HTTPSサイトに「保護されていません」と表示(トレンドマイクロ) https://www.trendmicro.com/ja_jp/research/18/g/Chrome-plans-to-mark-non-HTTPS-sites-as-not-secure-starting-late-July-2018.html