セキュリティ

SSL/TLSとは?意味や仕組みを基礎からわかりやすく解説!

「保護されていない通信」の表示があるWebサイトを見たときに、どうして警告が出ているのか、何がセキュリティ上危険なのかが正確にわかる人は少ないのではないでしょうか。SSLはWebサイトのセキュリティを高め、ユーザーのプライバシーを守るための重要な取り組みです。しかし、適切にSSLを導入していなければ、かえってユーザーの不安を煽ってしまうこともあります。今回はSSLの役割やSSLの種類、「保護されていない通信」の警告表示の原因や確認方法までSSLの基礎を詳しく紹介します。

SSL化設定について

目次

SSLとは?

SSLとは、Secure Sockets Layerの略で、インターネット通信の内容を暗号化し、第三者に通信内容を盗み見られないようにする仕組みです。さらに、この後説明するSSLの導入に必要なSSLサーバー証明書はWebサイトの所有者の実在性を第三者機関が証明し、Webサイトの信頼性を高めます。

https://~は暗号化済みのサイト

SSL/TLSとは

SSLは、SSL/TLSと呼ばれることがあります。このTLSはTransport Layer Securityの頭文字を取ったもので、SSLの規格の新しいバージョンです。規格としてのSSLはバージョン3.0までリリースされましたが、SSL3.1は開発されませんでした。その後の開発は、次世代規格であるTLSに引き継がれ、今ではTLSが主流となっています。

さらに最近では、SSLの規格は安全ではないとして使用が禁止されており、SSLの規格を使用していることでWebサイトのアドレスバーの左に「保護されていない通信」の警告が表示されてしまいます。しかしSSLのほうが広く認知されているため、実際の暗号化通信はTLSで行っていてもSSLと呼ばれることが未だ一般的です。そのためSSL/TLSと並記されることもあります。

SSL証明書の種類

SSLの導入には、SSLサーバー証明書をはじめとする3種類、ないしは2種類のSSL証明書が必要です。SSLの導入方法を理解するために、まずはこのSSL証明書のそれぞれの種類について紹介していきます。

SSL証明書とは

SSL証明書とは一般に、SSLサーバー証明書を発行する「ルート証明書」、ルート証明書に真正性を証明してもらうことで代わりにSSLサーバー証明書を発行する「中間証明書」、そしてWebサイトの所有者の実在性を証明して暗号化通信を行う「SSLサーバー証明書」の3つを指します。

また、SSLサーバー証明書を発行する第三者機関を認証局やCA(Certification Authority)といい、日本の代表的な認証局としては、GMOグローバルサインdigicertセコムトラストシステムズなどが挙げられます。今回はルート証明書を発行する「ルート認証局」と中間証明書からSSLサーバー証明書を発行する「中間認証局」に触れます。認証局についてや各SSL証明書の詳細は中間証明書に関する記事をご覧ください。

ルート証明書

ルート証明書とは、ルート認証局(世界のブラウザベンダーから信頼を得た認証局)が自身で認証局の存在の真正性を保証した証明書です。ルート認証局は厳格な各ブラウザの基準を満たさなければ名乗ることはできない、高い信頼を保証する認証局です。そのため、他の機関を介さなくても署名をするだけで真正性が証明できます。

中間証明書

中間証明書とは、SSLサーバー証明書を発行する中間認証局が、ルート認証局の名前を借りて中間認証局自身とSSLサーバー証明書の真正性を保証する証明書です。ルート認証局に比べて中間認証局は厳格な基準を満たしていないので、ルート認証局に真正性を保証してもらう必要があります。中間証明書にはルート認証局の署名がなされており、各ブラウザは事前にインストールしている信頼できるルート認証局の情報とその署名が一致するかどうかを確かめることで、中間証明書の真正性を判断しています。

SSLサーバー証明書

SSLサーバー証明書とは、第三者機関である認証局がWebサイトの運営者の実在を確認した後、実在性を保証するために発行する証明書です。SSLサーバー証明書には、Webサイトの実在性を確認する手続きの厳格さによって、「ドメイン認証」、「組織(OV)認証」、「EV認証」の3種類の認証があります。またSSLサーバー証明書は、SSLの暗号化通信の仕組みに必要な公開鍵を含んでおり、このSSLサーバー証明書によって暗号化通信が成立しています。

SSLサーバー証明書の種類

それでは、SSLサーバー証明書のそれぞれの種類について紹介します。

ドメイン(DV)認証

ドメイン(Domain Validation)認証とは、SSLサーバー証明書の中で取得のための手続きが比較的容易な認証です。ドメイン認証は個人でも取得でき、Webサイトの所有者の実在性の確認もインターネット上で行える手軽な認証です。手続きに時間がかからないために発行のコストも低く、無料のパッケージもあります。

組織(OV)認証

組織(OV)認証とはOrganization Validationの略で企業認証とも呼ばれます。ドメイン認証とは異なり、個人が取得することはできません。組織認証の手続きには、第三者データベースで組織の法的実在性を確認し、なりすまし防止のために電話確認を行うなど、ドメイン認証に比べて認証方法が厳格です。

EV認証

EV(Extended Validation Certificate)認証とは、SSLサーバー証明書の中で最も手続きが厳格な認証です。EV認証を取得するには、OV認証の取得よりも多くの提出書類や時間が必要になります。しかしEV認証を取得しているWebサイトのアドレスバーには緑色で企業名が表示(「Google Chrome 77」以降廃止)されるなど、高い信頼性を獲得できます。

SSLの役割

Webサイトのセキュリティを確保する手段としてよく利用されるのがSSLです。SSLは、ユーザーが安心してWebサイトへアクセスしてもらうために必要なだけでなく、サイバーセキュリティ犯罪のリスクを避けるためにも導入しておきたい技術です。

SSLの役割1. 通信内容の暗号化

SSL の1つ目の役割は、インターネット通信を第三者によって盗み見されないようにするために、通信内容を暗号化して送信することです。SSLを使っていないWebサイトのURLは「http://〜」ですが、SSLを使っているWebサイトのURLは「https://~」になります。SSLを導入することで追加される「s」は、secure(セキュア=安全)の頭文字です。 SSLは2010年代の時点で、すでに以下のようなWebサイトには必ず導入しなければならない状況になっていました。

  • 「お問い合わせ」のようなユーザーのプライバシーに関わる情報を扱うWebサイト
  • クレジットカード情報を求めるECサイト
  • IDとパスワードの入力を必要とするログインフォーム

さらに最近では、Webサイトの一部のみをSSL化するのではなく、Webサイト全体に暗号化通信を導入しようという「常時SSL対応」の流れも加速しています。

フリーWi-Fiを経由した盗聴を防いで安全性を示すSSL

悪意のある第三者にフリーWi-Fiを経由して通信内容を盗み見られないようにするためにも、SSLの導入は広がっています。近年はスマホが普及し、街角のフリーWi-Fiを使って気軽にアクセスするユーザーが増えたため、Wi-Fiを経由して通信中に内容を傍受されるリスクが高まりました。実際に自分の個人情報が悪用される可能性は低いにせよ、自分のスマホの内容が誰にも盗まれない状況だという保証があれば安心できるはずです。ユーザーは、あるWebサイトのURLが「https://~」になっていればそのWebサイトが安心して利用できるものと判断できます。

SSLの役割2. なりすましの防止

SSLには通信の暗号化の他に、サーバーとユーザーの間に第三者機関が入って「ユーザーが通信しているWebサイトが本物である」と証明するという役割があります。

認証局が通信相手を証明する仕組み

認証局から発行されたSSLサーバー証明書を企業のWebサーバーにインストールするには、様々な手続きが必要です。手続きの厳格さはSSLサーバー証明書の種類によっても異なりますが、認証局はWebサイトの運営者の実在性や運営組織の法的・物理的実在性の確認などを経て初めて、〇〇社の本物のWebサイトであると証明します。そのため、通信相手は「これは偽物ではなく本物の〇〇社のサーバーである」という確認ができ、安心して通信できるのです。

【コラム】なりすましの事例とSSL導入の必要性の高まり

かつて某銀行の公式サイトを真似た不正サイトがつくられ、個人情報を盗まれるフィッシングサイトが横行したことがありました。偽サイトや不正アクセスによってWebサイトを改ざんされたり、企業ブランドの毀損や信頼低下などのリスクを防ぐためにも、WebサイトにSSLを導入することは急務となっています。

SSL/TLS通信の仕組み

SSLは、サーバーとブラウザ間で個人情報を暗号化してやり取りするために、ブラウザがサーバーにあるWebサイトへの接続を要求した際、いくつかのフローを介して暗号化通信を行っています。

ここでは、SSLの導入に不可欠な「SSLサーバー証明書」を保有するサーバーとブラウザ間の暗号化通信の仕組みを簡単に説明します。

暗号化通信に必要な2つの証明書と3つの鍵

まずは、暗号化通信に登場する証明書と鍵を説明します。

  • SSLサーバー証明書

Webサイトの運営者と、証明書を発行した認証局の情報、共通鍵を含んでいます。

  • ルート証明書

SSLサーバー証明書を発行したルート認証局の証明書です。ブラウザは信頼できるルート認証局の証明書を元々保有しています。SSLサーバー証明書の発行元(ルート認証局)と元々インストールしているルート証明書の情報を検証してSSLサーバー証明書の真正性を確認します。

  • 共通鍵

ブラウザがSSLサーバー証明書から生成される鍵です。暗号化通信において通信内容を暗号化・複合するために必要な鍵なので、暗号化通信の前にブラウザとサーバーで同じ共通鍵を保有する必要があります。

  • 秘密鍵

サーバーが保持している鍵で、ブラウザが暗号化した共通鍵の複合に使用します。

  • 公開鍵

SSLサーバー証明書に記載されている鍵で、共通鍵の暗号化に使用します。

暗号化通信の仕組み

暗号化通信は以下のようなフローで行われています。

  1. ブラウザがサーバーにWebサイトへの接続をアクセスする
  2. サーバーがブラウザにWebサイトのSSLサーバー証明書を送る
  3. ブラウザがSSLサーバー証明書の真正性を、元々インストールしているルート証明書の情報との照合で検証する
  4. ブラウザが共通鍵を生成する
  5. ブラウザが、SSLサーバー証明書に含まれている公開鍵を使用して共通鍵を暗号化し、サーバーに送る
  6. サーバーが公開鍵を使用して暗号化された共通鍵を復号する
  7. ブラウザとサーバー間の情報を共通鍵を用いて暗号化・復号して暗号化通信を行う

このような工程を経て、通信内容の暗号化に必要な共通鍵をブラウザとサーバー間で共有しています。

SSLの必要性の高まり

SSLの導入の必要性は日々高まっています。その証拠として、Googleの透明性レポートによるとSSLによって暗号化された通信のトラフィックは95%で、SSLの普及率の高さが現れています。

スクリーンショット 2020-06-03 16.01.16_2342x1486ウェブ上での HTTPS 暗号化 – Google 透明性レポート

この普及率の高さの要因は一体何なのでしょうか。ここ数年のSSLの導入率の上昇の要因となっていると思われる、Google Chromeの仕様変更を2つ紹介します。

非SSL対応ページへの「保護されていない通信」の警告

SSLの必要性の高まりの要因として、Google Chromeが非SSL対応ページに「保護されていない通信」の警告をアドレスバーの左に表示するとしたことが挙げられます。この仕様変更は2018年9月にリリースされた「Google Chrome 68」から始まりました。

middle-ca_850x478

これまでお問い合わせフォームなどの個人情報を入力するページにだけSSL化を行う企業は多かったものの、全ページにSSL化を導入している企業は少ないのが現状でした。しかしこの仕様変更によって、Webサイトのトップページを含めてSSL化を行わなければ、警告が表示されるようになりました。SSL 化をせずに警告が表示されたままだと、それを見たユーザーからの信頼低下や機会損失の可能性があります。そのため、多くの企業がWebサイトに常時SSL化を導入するようになりました。

SSL化対応ページの検索結果の優遇

SSL化対応の普及の要因には、Google Chromeが2014年8月に発表した、SSL化対応ページを検索結果で優遇するという仕様変更も挙げられます。SSL化対応ページの検索結果の優遇とは、Webサイトを検索結果で上位に表示するかどうかの評価基準の中に、常時SSL化(Webサイトの全ページにSSLを導入すること)に対応していることを含んだということです。

HTTPS をランキング シグナルに使用します

このように、SSLを導入することがSEO対策にも繋がるようになったことで、非SSL対応のWebサイトはSSLの導入を迫られるようになりました。

「保護されていない通信」の警告表示の原因

SSLに非対応のWebサイトには、アドレスバーの横に赤字で「保護されていない通信」の警告が表示されます。この警告はどのようなWebサイトの不備に対して表示されているのでしょうか。今回は「保護されていない通信」が表示される理由を3つ紹介します。

1. SSLサーバー証明書の期限が切れている

警告が表示される原因の1つ目は、SSL通信を行うSSLサーバー証明書の有効期限が切れていることです。SSLサーバー証明書には最長2年(約27ヶ月)の有効期限があります。有効期限の間にSSLサーバー証明書を更新していなければエラーが表示されます。

SSLサーバー証明書の期限切れの確認方法

使用しているSSLサーバー証明書の期限が切れていると、下の画像のような警告が表示されます。

スクリーンショット-2020-05-22-13.54.54_638x774

三角の警告マークをクリックすると表示されるポップアップには、「このサイトへの接続は保護されていません」という警告が赤字で出ています。証明書の欄に(無効)と表記されているので、この保護されていない通信の表示の理由は証明書の有効期限が切れてるからであることでわかります。

スクリーンショット-2020-05-22-13.58.57_960x540

証明書(無効)の欄をクリックすると、上の画像のように「”Webサイトのドメイン名”証明書の有効期限は切れています」と赤字で表示され、SSLサーバー証明書のアイコンにバツ印が付いています。

SSLサーバー証明書の有効期限の仕様変更については後ほど説明します。

2. 混合コンテンツになっている

「保護されていない通信」が表示される原因の2つ目は、混合コンテンツが含まれていることです。混合コンテンツ(mixed content)とは、URLが「https://」から始まるSSL化したコンテンツと「http://」から始まる非SSL対応のコンテンツがWebサイトの中に混在している状態です。Webサイトが混合コンテンツであると「保護されていない通信」の警告がされますが、Webサイト上では警告表示の原因が混合コンテンツであると知ることはできません。

混合コンテンツの確認方法

混合コンテンツが原因で警告が表示されているのかや、どのコンテンツが非SSL対応であるかを確認するためには、開発者ツールを開く必要があります。開発者ツールは、Google ChromeであればF12をクリックすると開けます。

混合コンテンツ_850x384

開発者ツールを開くと、ページ上部の右に「Security」という項目があります。混合コンテンツになっている場合、「Security」を開くと「Resources - mixed content」と記載されています。さらに、画像の左を見るとにWebサイトの中の非SSL対応のコンテンツのページが赤色になっています。

「Security」のResourcesの項目に混合コンテンツが表示されていなければ、警告表示の原因は混合コンテンツではありません。CertificateやConnectionの項目が赤色になっていないかどうか確認してください。

混合コンテンツについての詳細や改善方法については、常時SSL化についての記事をご覧ください。

3. SSL通信の規格が古い

「保護されていない通信」の警告が表示される原因の3つ目は、SSL通信の規格が古いことです。SSL通信の規格とは、SSL3.0やTLS2.0などを指します。この警告は他の原因の場合と異なり、赤色での「保護されていない通信」の表示はありませんが、冒頭で紹介した通り、現在SSL通信の規格は安全でないとしてTLSに移行されています。TLSに関しても、最新のバージョンでなければ警告が表示されます。

SSL通信の規格の確認方法

警告表示の原因がSSL通信の規格のバージョンが古いことであるかどうかは、アドレスバーの左にある「保護されていない通信」をクリックすると表示されるポップアップから確認できます。

スクリーンショット-2020-05-22-16.58.44_638x718

上の画像のように、SSL通信の規格が古いWebサイトの場合、他の設定に不備がなくても警告が表示されてしまいます。ポップアップには「このサイトでは古いセキュリティ設定を使用しています。」と書かれており、警告表示の原因がSSL通信の設定が古いことであるとわかります。

古いセキュリティ設定とは何を指しているのかの確認には、混合コンテンツと同様に開発者ツールを使用します。

スクリーンショット-2020-05-22-17.04.25_1000x635

セキュリティ設定の古いWebサイトの場合、「Connection」の項目に「obsolete connection settings」の記載があります。このWebサイトでは、以下の3つのセキュリティ設定が古くなっています。

  • TLS 1.0の暗号化通信(TLS 1.2以降のバージョンが有効)
  • RSA暗号の鍵認証方式(ECDHEベースの暗号スイートが有効)
  • AES_128_CBCの暗号化アルゴリズム(AES-GCMベースの暗号スイートが有効)

このように、どのセキュリティ設定が古くなっているかどうかは開発者ツールで調べることができます。

「サーバーが古い可能性があります」の警告表示の原因

「保護されていない通信」の警告のほかに、「サーバーが古い可能性があります」という警告が表示されることがあります。この警告はWebサイトにアクセスした際に画面全体に表示され、ユーザーはそのWebサイトにアクセスすることが難しくなってしまいます。Webサイトの信用に関わるので、対応が送れないようにしなければなりません。

TLS1.0やTLS1.1を使用している

「サーバーが古い可能性があります」の警告表示は、古い暗号化通信の規格であるTLS1.0やTLS1.1を使用していることが原因です。先ほどTLSはSSLの次世代の規格だと紹介しましたが、現在はTLS1.2以降の規格を使用することが推奨されており、古いサーバーを使用しているとWebサイトのアクセス数を大幅に減らしてしまいます。

ChromeのTLS1.0やTLS1.1の無効化の動き

TLS1.0やTLS1.1を無効化する動きは2018年から起こっていましたが、2019年12月にリリースされたChrome79では、アドレスバーをクリックした際に表示されるポップアップに先ほどの「保護されていない通信」の警告の原因3つ目の「SSL通信の規格が古い」と同じ表示がされるのみでした。

しかし、2020年3月リリースのChrome81から「サーバーが古い可能性があります」の全画面表示が計画されました。新型コロナウイルスの感染拡大の影響を受けて2020年7月リリースのChrome84での無効化になったものの、現在Chrome以外の主要なWebブラウザベンダーでもTLS1.0やTLS1.1の無効化が実施されています。

SSLの確認方法

これまで紹介したように、SSLは適切に設定をしていないと警告が出てしまいます。非SSL対応の警告表示の確認方法で紹介したように、Google Chromeの開発者ツールからSSLの状態を確認することができます。しかしこの方法では、SSL証明書の詳しい設定やエラーの重要度がわかりません。そこで、SSLの設定の詳しい状態を確認できるツールを2つ紹介します。

SSL Server Test

SSL Server Test」は、Qualysが運営している「Qualys SSL Labs」というWebサイトに公開されているSSLのチェックツールです。

SSL-Server-Test_700x556
SSL Server Test

ページ中央にある欄にSSLの設定状態を調べたいWebサイトのURLを入力するだけで、SSLに関わる様々な設定状態を総合し、ランクに分けて評価してくれます。

SSL Server Testの使用方法や見方の詳細は中間証明書についての記事をご覧ください。

サイバートラスト SSLサーバー証明書 導入サポートツール

SSLサーバー証明書 導入サポートツール」は認証企業であるサイバートラストが開発したSSLのチェックツールです。言語は日本語ですので、英語が苦手な方はこちらをご利用ください。

サイバートラスト1_850x552サーバ証明書の設定確認 サポート - サイバートラスト

ページ中央のFQDN1の欄に証明書の設定を調べたいWebサイトのFQDNを入力すると、以下のように結果が表示されます。設定確認結果が「正しく設定されています。」になっているか確認してください。

サイバートラスト2_850x886

<証明書階層>の詳細情報を表示するを選択すると証明書の登録情報がみられます。また、証明書を文字列で表示するを押すと実際の電子証明書の内容を確認することができます。

SSLの今後

利用の拡大が進むSSLは、今後どのようになっていくのでしょうか。各ブラウザベンダーのユーザーのセキュリティ強化への仕様変更に伴い、これまでのSSLの常識が通用しなくなってきています。今回はこれまで紹介した以外の、SSLに関する2つの大幅な仕様変更を紹介します。

EV認証の組織名表示を削除

Google Chromeは2019年9月にリリースされた「Google Chrome 77」より、EV認証を取得しているWebサイトのアドレスバーへの組織名の表示を削除しました。

EV UI Moving to Page Info

この仕様変更は、安全なWebサイトを知らせるのではなく、危険なWebサイトにだけ警告を表示することでユーザーのセキュリティを守るために行われました。ブラウザには安全とされたWebサイトも安全だと通知しないことで、安全の通知により信用されたWebサイトにセキュリティの脆弱性があり、ユーザーの個人情報が盗まれるというようなケースを防いでいます。

このように、Google Chromeはこれまで紹介した以外にもユーザーのプライバシーやセキュリティーを保護するための仕様変更を行っています。SSLの今後の動向はGoogle Chromeの仕様変更が握っているとも言えます。

SSLサーバー証明書の有効期限を短縮

各認証局が発行するSSLサーバー証明書の有効期間は2014年に5年から3年へと短縮され、2018年にさらに最長825日(27ヶ月)へと短縮されました。またAppleが開発するWebブラウザであるSafariでは、2020年9月1日以降に発行される証明書のうち、有効期限が398日以上の証明書は無効にすると発表しています。つまり、有効期限が13カ月以内のSSLサーバー証明書でなければ、SafariではSSLが有効にならず、「信頼されていない」Webサイトになるということです。

SSLサーバー証明書の有効期限が短縮されている理由

では、なぜSSLサーバー証明書の有効期限が短縮されているのでしょうか。その理由は主に2つあります。

認証された情報がより新鮮になる

1つ目は、認証付与のために承認された企業情報が頻繁に正確な情報へと更新されるからです。企業情報の更新頻度が高まることで、最新の正確な情報が都度認証されるので、企業情報の信頼性が高まります。

例えばWebサイトの運営会社が組織編成の見直しや倒産をした場合、有効期限が長ければ、その間誤った情報のままで認証が使用されてしまいます。誤った情報による混乱を避けて情報の信頼性を高めるために、SSLサーバー証明書の有効期限が短縮されています。

情報漏洩の被害を抑えられる

2つ目は、セキュリティに関わる重大な事件による被害を最小限に抑えるからです。SSLサーバー証明書の有効期限が短ければ、証明書関連の情報が漏洩しても、迅速に証明書を入れ替えて漏洩による被害の影響範囲を狭めることができます。証明書の有効期限が長いと証明書の入れ替えが難しくなると言われているので、証明書の有効期限の短縮はセキュリティを高める効果もあります。

まとめ

インターネットを取り巻く環境が変化し、サイバー攻撃が狡猾になっていく中で、Webサイトのセキュリティを守るSSL/TLSの技術も進化を続けています。最新の動向を常にチェックして、SSLを自社サイトに適切に取り入れていきましょう。

この記事の著者

itra
ITRA株式会社

官公庁や大手企業を中心とした大規模なWebサイトを総合的にプロデュースするWeb制作会社。デザインからシステム、サーバーまでWebサイトに関わるお客様の悩みを解決します。

初めて使う人にも使いやすく、セキュリティレベルの高いCMSパッケージ「iCMS」

詳しくはこちら
itra