トランスポート層セキュリティ プロトコル

適用対象: Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows 10

この IT プロフェッショナル向けのトピックでは、トランスポート層セキュリティ (TLS) プロトコルのしくみについて説明し、TLS 1.0、TLS 1.1、および TLS 1.2 の IETF RFC へのリンクを示します。

Note

Windows Server の今後のリリースでは、TLS 1.0 と 1.1 は既定で無効になります。 詳細については、「TLS バージョン 1.0 および 1.1 の無効化リソース」を参照してください。

TLS (および SSL) プロトコルは、アプリケーション プロトコル層と TCP/IP 層の間に配置されます。この層では、アプリケーション データをセキュリティで保護し、トランスポート層に送信できます。 プロトコルはアプリケーション層とトランスポート層の間で機能するため、TLS と SSL は複数のアプリケーション層プロトコルをサポートできます。

TLS および SSL は、接続指向のトランスポート (通常は TCP) が使用されていることを前提としています。 このプロトコルを使用すると、クライアント アプリケーションとサーバー アプリケーションは、次のセキュリティ リスクを検出できます。

  • メッセージの改ざん

  • メッセージの傍受

  • メッセージの偽造

TLS および SSL プロトコルは、2 つの層に分けることができます。 最初の層は、アプリケーション プロトコルと 3 つのハンドシェイク プロトコル (ハンドシェイク プロトコル、暗号仕様変更プロトコル、アラート プロトコル) で構成されます。 2 番目の層は、レコード プロトコルです。

TLS および SSL プロトコル層

Schannel SSP は、TLS と SSL プロトコルを変更せずに実装します。 SSL プロトコルは独自のプロトコルですが、インターネット技術標準化委員会によって、パブリック TLS 仕様が生成されます。 Windows のバージョンでサポートされている TLS または SSL のバージョンの詳細については、「TLS/SSL (Schannel SSP) のプロトコルに関するページを参照してください。 各仕様には、次の情報が含まれています。

  • TLS レコード プロトコル

  • TLS ハンドシェイク プロトコル: - 暗号仕様変更プロトコル - アラート プロトコル

  • 暗号化の計算

  • 必須の暗号スイート

  • アプリケーション データ プロトコル

RFC 5246 - トランスポート層セキュリティ (TLS) プロトコル バージョン 1.2

RFC 4346 - トランスポート層セキュリティ (TLS) プロトコル バージョン 1.1

RFC 2246 - TLS プロトコル バージョン 1.0

TLS セッションの再開

Windows Server 2012 R2 で導入された Schannel SSP では、TLS セッションの再開のサーバー側の部分が実装されました。 RFC 5077 のクライアント側の実装は、Windows 8 で追加されました。

TLS をサーバーに接続するデバイスは、頻繁に再接続する必要があります。 TLS セッションの再開機能では、省略された形式で TLS ハンドシェイクが行われるため、TLS 接続を確立するためのコストが削減されます。 TLS サーバーのグループが互いの TLS セッションを再開できるため、より多くの再開試行が実行されるようになります。 この変更により、Windows Phone および Windows RT デバイスを含む、RFC 5077 をサポートするすべての TLS クライアントで次の節約を実現できます。

  • サーバー上のリソース使用量の削減

  • 使用帯域幅の削減によるクライアント接続の効率の向上

  • 接続の再開のための TLS ハンドシェイクに費やされる時間の短縮

ステートレスな TLS セッションの再開の詳細については、IETF のドキュメントの RFC 5077 を参照してください。

アプリケーション プロトコルのネゴシエーション

Windows Server 2012 R2 および Windows 8.1 では、クライアント側の TLS アプリケーション プロトコルのネゴシエーションを可能にする機能が導入されました。 アプリケーションは、HTTP 2.0 標準開発の一部としてプロトコルを利用することができ、ユーザーは、SPDY プロトコルを実行するアプリを使用して、Twitter、Google などのオンライン サービスにアクセスできます。

アプリケーション プロトコルのネゴシエーションのしくみについては、トランスポート層セキュリティ (TLS) のアプリケーション レイヤー プロトコルのネゴシエーション拡張に関するページを参照してください。

TLS による Server Name Indicator (SNI) 拡張機能のサポート

Server Name Indication (SNI) は SSL プロトコルと TLS プロトコルを拡張する機能で、1 台のサーバーでいくつもの仮想イメージを実行している場合にサーバーを適切に認識できるようにします。 仮想ホスティング シナリオでは、証明書がそれぞれ異なる何種類ものドメインが 1 台のサーバーでホストされます。 このような場合、クライアントに送信する証明書をサーバーで事前に認識することができません。 SNI を利用することで、クライアントが対象となるドメインをプロトコル内で事前に通知できるため、サーバーが証明書を正しく選択できるようになります。

これにより、次の追加機能が提供されます。

  • 1 つのインターネット プロトコルとポートの組み合わせで SSL Web サイトを多数ホストできます。

  • 1 台の Web サーバーに複数の SSL Web サイトをホストする場合に、メモリ使用量を削減できます

  • SSL Web サイトに同時接続できるユーザーの数を増やせます。