TLS

トランスポート・レイヤー・セキュリティ (TLS) はインターネット・エンジニアリング・タスク・フォース (IETF) による標準プロトコルで、インターネットを介した通信において認証を行い、プライバシーとデータの完全性を確保します。このプロトコルは1999年に公開され、最新バージョンの TLS 1.3 は2018年に公開されました。TLS の日常的なユースケースは、2つのシステム間における通信の暗号化です。  接続した相手の正当性を保証し、データの完全性が維持されていることを確認し、暗号化によって一定レベルの機密性を保持できる TLS は、インターネット通信において極めて重要です。TLS はさまざまなアルゴリズムやメソッドを使用してこれらの目的を達成します。TLS は現在、最も広く普及しデプロイされているセキュリティプロトコルといえます。特に、Web ブラウザや、データのやり取りを安全にハイパーテキスト・トランスファー・プロトコル・セキュア (HTTPS) 経由で行う必要があるその他のアプリケーションにおいて TLS は最適です。また、TLS によってメールやその他のプロトコルを保護することもできます。 

TLS と SSL の違い

TLS について語られる際、セキュアソケットレイヤー (SSL) や「SSL/TLS」といった表現が使われることがよくあります。  SSL は TLS の前身にあたるプロトコルです。  業界では TLS を SSL と呼ぶ人が現在も多数います。  この記事では TLS を使いますが、TLS と SSL が同義語として使用される場合があることにご注意ください。繰り返しになりますが、TLS は、すでに廃止されている SSL の後継にあたるプロトコルです。 

Netscape の SSL プロトコルから生まれた TLS は、SSL に代わって使用されるようになりました。  Netscape に関連する問題を避けるために「TLS」という新たな名前が付けられましたが、現在も混乱が生じています。SSL とその後継の TLS には明らかな違いがあります。  TLS ではプロトコルの成熟により、脆弱性が解決されたほか、統合機能や実装機能が改善されています。認証や鍵の生成機能、複数の暗号スイートへのサポートなどが強化されている TLS は、SSL よりも効率的で安全性の高いプロトコルといえます。  TLS は、より新しく安全性に優れたアルゴリズムをサポートしています。このように TLS と SSL は同じではありません。ただし TLS はレガシー機能ともある程度、互換性があります。  TLS は SSL よりもはるかに速くハンドシェイクを処理できます。2021年に IETF は正式に TLS 1.0 と 1.1 を廃止し、AppleMicrosoft をはじめとする大手企業もこれに倣いました。 

TLS と HTTPS の関係

HTTPS はハイパーテキスト・トランスファー・プロトコル (HTTP) の安全性が強化されたバージョンです。  HTTP は、情報の伝達や交換を行うためにブラウザや Web サーバーによって使用されるプロトコルです。HTTPS では、データが転送される際に SSL/TLS によって暗号化されます。従って、Webサイトが HTTPS を使用する場合、すべての情報が SSL/TLS 証明書によって暗号化されます。 

TLS の役割 

TLS プロトコルには、完全性の確認、認証、暗号化の3つの役割があります。 

  • 完全性 : ネットワーク上で送信されるデータが侵害されていないことを確認します。

  • 認証 : 通信相手の ID を確認し、正当であることを証明します。

  • 暗号化 : サードパーティから転送されたデータを解読できないようにします。 

TLS の仕組み

TLS は2つのレイヤーに分けて考えることができます。

TLS レコードプロトコルは、TLS ハンドシェイクの際に生成される鍵を使用してアプリケーションのデータを保護します。  レコードプロトコルは、アプリケーションのデータを保護し、その完全性と真正性を検証する役割を担います。TLS ハンドシェイクプロトコルは、セッションの確立と保護に必要な認証と鍵の交換を行います。 

TLS レコードプロトコルによって接続が安全に行われ、TLS ハンドシェイクプロトコルによって、データを交換する前にクライアントとサーバーが互いを認証し合い、鍵交換が行われます。  

TLS ハンドシェイクのプロセスは複数のステップから成ります。  標準的な TLS ハンドシェイクでは、クライアントとサーバーは「hello」メッセージを送信し、鍵を交換し、メッセージを暗号化してメッセージを終了します。 

TLS による Web アプリケーションのパフォーマンスへの影響

ほとんどすべてのWebサイトで TLS 1.2 がサポートされており、(本記事の公開時において) 約60%TLS 1.3 もサポートしています。TLS 1.3 では大幅に安全性が強化されているほか、性能の低い古い機能は排除されています。また、新たに追加された機能によって TLS ハンドシェイクを高速化できます。「Session Resumption」(セッション再開) は、サーバーとクライアントが以前に通信を行ったかを確認し、セキュリティチェックの一部を省略できるか判断します。「False Start」は、ハンドシェイクが完了する前にサーバーとクライアントがデータを送信できるようにします。以前の TLS バージョンのハンドシェイクでは2度の往復通信が必要でしたが、TLS 1.3 の場合は1度で済みます。最後に「Zero Round Trip Time Resumption」(0-RTT) は、再開用のマスター鍵の生成を可能にします。 

また TLS に、サイトの検索エンジン最適化 (SEO) や顧客との信頼性構築など、ビジネスや Web アプリケーションにさまざまなメリットをもたらします。その結果、企業は検索エンジンの検索結果ページ (SERP) で競争力を維持することが可能になります。 

TLS の使用を今すぐ始めましょう

TLS 暗号化によって Web アプリケーションをデータ侵害やその他の脆弱性から保護できます。Fastly TLS では、Fastly コントロールパネルまたは API を使用してドメインごとに、あるいは複数のドメイン単位で TLS 証明書を管理することができます。  Fastly TLS によって、独自の TLS 証明書と秘密鍵を生成してアプロードすることも、サードパーティや非営利、商用の認証局 (CA) を通じて自動的に TLS 証明書が生成、管理されるよう Fastly を設定することも可能です。 

例えば、特定の認証局や、Organization Validation (OV) 証明書または Extended Validation (EV) 証明書の使用が必要な場合、Fastly コントロールパネルまたは API で独自の TLS 証明書と鍵をアップロードできます。  

Fastly が証明書を管理する場合は、Fastly のコンソールまたは API で Fastly が管理する必要がある TLS 証明書を発行する CA を選択します。  これにより、Fastly は Domain Validated (DV) 証明書を指定された認証局から取得します。  認証リクエストを完了するには、2つの方法でドメインが管理下にあることを証明する必要があります。ワイルドカードを使用して、1つの証明書ですべてのサブドメインがカバーされるようにする場合は、ドメインネームシステム (DNS) レコードにチャレンジトークンを追加しなければなりません。ワイルドカードを使用しない場合、Fastly は自動的に HTTP チャレンジに応答します。  デフォルトで Fastly は共有された一連の IP アドレスに TLS 証明書をインストールします。クライアントリクエストが Fastly に送信されると、TLS の SNI 拡張を使用して適切な証明書が選択され、クライアントは TLS ハンドシェイクでホスト名を提示することができます。

まとめ

TLS は広く普及しているセキュリティプロトコルで、プレーンテキストデータの暗号化や暗号文の復号化を行います。TLS を使用してトラフィックを暗号化することで、機密性の高いデータがハッカーによって公開されるのを防ぎ、データの安全性とプライバシーを保護することができます。

TLS の詳細や設定については、Fastly にご連絡ください。  

早速 Fastly を無料でお試しください!