TLSとSSLはどちらも、インターネット上でデータを安全に認証したり転送したりするためのプロトコルです。 しかし、TLSとSSLの違いは何でしょうか? ユーザーとして気にすべきことでしょうか?

本記事では、TLSとSSLの主な違いと、両方のプロトコルがHTTPSに接続する方法をご紹介します。または、エンドユーザーとして、おそらくTLSとSSLの違い及び「SSL証明書」や「TLS証明書」という呼び方についてあまり心配する必要がない理由もご説明します。

以下をクリックして特定の内容にジャンプいただけますが、記事全体もお読みいただけます。

TLSとSSLの違い

Transport Layer Securityの略であるTLSとSecure Socket Layerの略であるSSLは、どちらもインターネット上でデータを移動するときにデータを暗号化し、接続を認証する暗号化プロトコルです。

たとえば、ウェブサイトでクレジットカードによる支払いを処理している場合、TLSとSSLを使用すると、悪意のある攻撃者がデータを取得できないように、そのデータを安全に処理できます。

では、TLSとSSLの違いは何でしょうか?

TLSは、SSLのより新しいバージョンです。TLSでは、元のSSLプロトコルのセキュリティ脆弱性が修正されました。

詳細に入る前に、SSLとTLSの基本的な履歴を理解することが重要です。

SSL 2.0は1995年2月に最初にリリースされました。(SSL 1.0はセキュリティホールのためにリリースされませんでした。)SSL 2.0は一般公開されましたが、セキュリティホールが発見されたため、これも1996年にSSL 3.0に置き換えられました。

その後、1999年に、SSL 3.0のアップグレードとしてTLSの最初のバージョン(1.0)がリリースされました。それ以来、さらに3つバージョンがリリースされ、最新版は2018年8月のTLS 1.3です。

この時点で、既知のセキュリティ脆弱性があるため、SSLの一般公開された両方のバージョンが廃止されました。(詳細については後程述べます。)

SSLおよびTLSのリリース歴は次のとおりです。

TLSとSSLのデータを保護するための機能

SSLやTLSは大まかに次のように機能します

ウェブサーバーにSSL / TLS証明書 (「SSL証明書」と呼ばれることも多い)をインストールすると、その証明書にサーバーを認証し、サーバーでデータを暗号化および復号化する公開鍵(パブリックキー)と秘密秘密鍵(プライベートキー)が含まれます。

訪問者がサイトにアクセスすると、訪問者のウェブブラウザはサイトのSSL / TLS証明書を探します。次に、ブラウザは「ハンドシェイク」を実行して、証明書の有効性を確認し、サーバーを認証します。

訪問者のブラウザは、証明書が有効であると判断し、サーバーを認証すると、データを安全に転送するためのサーバーとの暗号化された接続を作成します。

これは、HTTPSの出番でもあります。(HTTPSは「HTTP over SSL/TLS」(SSL / TLSを使用したHTTP)の略です)。

HTTP、およびその最新版のHTTP/2は、インターネット上で情報を転送する際に重要な役割を果たすアプリケーションプロトコルです。

プレーンテキストのHTTPでは、その情報は攻撃に対して脆弱です。ただし、SSL / TLSを使用したHTTP(HTTPS)を使用すると、転送中にそのデータが暗号化さかつ認証されるため、セキュアになります。

これは、HTTPSでクレジットカードの情報を安全に処理できるがHTTPではできない理由です。また、Google ChromeがHTTPSの採用に非常に力を入れている理由でもあります。

SSLが廃止されたのにSSL証明書という呼び方が残っている理由

上記、TLSはSSLのより新しいバージョンであり、SSLの両方の一般公開されたバージョンは数年前から廃止され、既知のセキュリティ脆弱性が含まれていることについて述べました。

それでは、TLS証明書ではなくSSL証明書と呼ばれるのはなぜでしょうか?結局のところ、TLSの方は最新のセキュリティプロトコルです。

たとえば、Kinstaの機能一覧をご覧いただくと、Kinstaが無料のTLS証明書ではなく、無料のSSL証明書を提供していることがわかります。

Kinstaは時代遅れのテクノロジーを使用していませんので、ご安心ください。

SSL証明書といい方はまだ残っている理由は、単にブランド名であることです。主要な証明書プロバイダーの多くはまだSSL証明書という言い方を使用しているため、ユーザーもその言い方に慣れています。

「SSL証明書」と書いてあっても、その証明書は実際に「SSL / TLS証明書」です。(Kinstaが提供している無料のLet’s Encrypt証明書もそうです。)

つまり、証明書ではSSLプロトコルとTLSプロトコルの両方を使用できます。

SSLのみの証明書またはTLSおみの証明書というものは存在しません。したがって、SSL証明書をTLS証明書に置き換えることを心配する必要はありません。

TLSを使用した方がいいですか、SSLを使用した方がいいですか?TLSはSSLを完全に置き換えていますか?

はい、TLSはSSLを完全に置き換えています。SSLではなく、TLSを使用すべきです。

前述のように、SSLの一般公開されたバージョンの両方は、既知のセキュリティ脆弱性のため、廃止されました。そのため、SSLは2019年以降は完全に安全なプロトコルではありません。

SSLの最新版であるTLSは安全です。さらに、TLSの最新版では、パフォーマンスも改善されます

TLSは安全でパフォーマンスが向上している他、最新のウェブブラウザのほとんどはSSL 2.0とSSL 3.0をサポートしなくなりました。たとえば、Google Chromeは2014年にSSL 3.0のサポートを停止しましたが、ほとのどの主要なブラウザは2020年までにTLS 1.0とTLS 1.1のサポートも停止する予定です。

Googleは、ChromeでERR_SSL_OBSOLETE_VERSION 通知を表示するようになりました。

では、古い安全でないSSLプロトコルではなく、TLSの最新バージョンを使用していることをどのように確認しますか?

まず、証明書がサーバーが使用するプロトコルと同じことではないことにご注意ください。TLSを使用するために証明書を変更する必要はありません。「SSL証明書」という言い方ですが、証明書は既にSSLプロトコルとTLSプロトコルの両方を対応しています。

代わりに、ウェブサイトが使用するプロトコルをサーバーレベルで制御します。

Kinstaのお客さまには、TLS 1.1、TLS 1.2または最新で最も安全でパフォーマンスの最も高いバージョンであるTLS 1.3をご利用いただけます。

他社のお客さまである場合は、SSL Labsのツールを使用して、サイトのプロトコルを確認できます。

たとえば、Kinstaでホストされているウェブサイトをテストすると、KinstaがTLS 1.1、TLS 1.2、およびTLS 1.3を有効にしているが、SSLの古くて安全でないバージョンを無効にしていることが分かります。

SSLサーバーテスト

サーバーが使用するSSL / TLSプロトコルをテストする

サーバーが非推奨のSSLプロトコルを引き続きサポートしていることがわかった場合は、ホスティング会社の顧客サポートに問い合わせるか、次の手順に従って最も一般的な2つのウェブサーバーであるApacheとNginxのSSLを無効にしてください。

Kinstaが複数のTLSプロトコルを有効にしている理由

TLS 1.3が最新でパフォーマンスの最も高いプロトコルである場合、Kinstaがやや古いTLS 1.1およびTLS 1.2プロトコルも有効にしているのはなぜでしょうか?

複数のプロトコルを有効にしているとどのような利点があるのでしょうか?

前述のように、SSL / TLSハンドシェイクには2つの要素があります。

  1. ウェブサーバー
  2. クライアント(通常は訪問者のウェブブラウザ)

ハンドシェイクが機能するためには、その2つが同じプロトコルをサポートする必要があります。

したがって、複数のプロトコルを使用する主な利点は互換性です。

たとえば、ChromeとFirefoxは2018年のリリース直後にTLS 1.3のサポートを追加しましたが、AppleとMicrosoftはTLS 1.3のサポートを追加するのに少し時間がかかりました。

2019年現在でも、次のブラウザにはまだTLS 1.3のサポートがありません

TLS 1.3 使用率

各ウェブブラウザのTLS 1.3 のサポート

一方、TLS 1.3はまだ完全に採用されていませんが、2019年現在にはすべての主要なブラウザーがTLS 1.2をサポートしています

TLS 1.2 使用率

各ウェブブラウザのTLS 1.2 のサポート

サーバーでTLS 1.3とTLS 1.2の両方を有効にすると、ChromeやFirefoxなどのTLS 1.3をサポートしているブラウザでTLS 1.3の恩恵を受けながら、どのブラウザであっても互換性を確保できます。

ご利用のウェブブラウザが使用しているSSL / TLSバージョンを確認するには、How’s My SSLツールをご利用ください。

SSLクライアントテスト

ブラウザが使用しているSSL / TLSプロトコルをテストする

When it comes to security, you see SSL, TLS, HTTPS everywhere... and you might get lost.What do all these acronyms even mean? Here are all the answers you need!🔐😀Click to Tweet

まとめ

まとめますが、TLSとSSLは両方、インターネット上のデータ転送を認証かつ暗号化するプロトコルです。

2つは紐づけされていますが、TLSはSSLの最新版でより安全なバージョンです。

SSLという言い方はまだ残っていますが、SSLの一般公開されたバージョンはどちらも安全ではなく、ずっとまえから廃止されているため、SSLと言ってもTLSを意味する場合が多いです。

SSLプロトコルとTLSプロトコルの両方を使用するには、サーバーに証明書をインストールする必要があります。(WooCommerceにSSL証明書をインストールする方法はこちら。)繰り返しますが、「SSL証明書」と言っても、これらの証明書はSSLプロトコルとTLSプロトコルの両方をサポートしています。

TLS証明書を使用するためにSSL証明書を変更する必要はありません。「SSL証明書」を既にインストールしている場合、その証明書はTLSもサポートしています。

SSLはもはや安全ではないため、TLSの最新版を使用することが重要ですが、証明書はサーバーが使用するプロトコルを決定するわけではありません。証明書を取得すると、使用するプロトコルをサーバーレベルで選択できます。

Kinstaでは、すべての主要なブラウザとの互換性のある安全なTLS 1.1、TLS 1.2、およびTLS 1.3をご利用いただけます。


このチュートリアルが面白かった方なら、当社のサポートも大好きでしょう。Kinstaのすべてのホスティングプランには、ベテランのWordPress開発者とエンジニアによる24時間365日のサポートが付いています。フォーチュン500のお客様をサポートしているチームとチャットしませんか。当社のプランをご確認ください。