通信プロトコル「QUIC」が標準化~HTTP/3によるウェブサイト表示速度の更なる向上~-フィッシング対策協議会

通信プロトコル「QUIC」をご存じという情シスの方はどれだけいるのでしょうか?
「知っていた!」という方はかなりの勉強家ではないかと思います。
今回は、このQUICが標準化されることになった背景やこれが使われるHTTP/3について、紹介したいと思います。

 

事前準備:HTTP/3とは

QUICを語る前に、まずはHTTP/3について説明しておきます。
HTTP/3とは、「(2015年5月に規格化された)HTTP/2よりウェブサイトの表示速度をさらに高速化するための通信プロトコルの新しい仕様(新version)」で、ネット通信の高速化とセキュリティ強化への期待から、今後、各社ブラウザへの実装が進み、普及していくことが予想されています。

では、HTTP/3とHTTP/2では何が大きく変わるのでしょうか? それはHTTP/3で採用されるトランスポート層のプロトコルがTCP(Transmission Control Protocol)ではなく、UDP(User Datagram Protocol)が使われることになります。
「インターネット通信=TCP/IP」というイメージがあるのではないかと思いますが、TCPは信頼性を重んじていることから厳格な運用ルールがあります。しかしながら、UDPは信頼性よりも”データを送ること”に重きを置いており、信頼性を補完する工夫が可能であれば、「高速化」の観点からはUDPの方が優位にあるといえます。

このような背景があり、通信プロトコルなどインターネット技術の標準化を推進する IETF( Internet Engineering Task Force )は、2021年5月27日(米国時間)に、HTTP/3で用いる通信プロトコルに QUIC(Quick UDP Internet Connections)を標準化した技術仕様「RFC 9000」として承認しました。

 

QUICとは?

TCPではクライアント-サーバー間の通信において、”3wayハンドシェイク”、更にSSL通信時には”TLSハンドシェイク”を行います。このハンドシェイクはサーバーの応答速度に影響することから、応答速度が遅いサーバーであった場合、ハンドシェイクの回数に応じて遅くなっていきます。
先に述べたようにUDPはこのハンドシェイクなしに通信を開始することが可能です。しかしながら、この「ハンドシェイクを行わない」ことにより、通信の信頼性を損なってしまっては意味がありません。
そこで、ハンドシェイクを行わないUDPにおいても信頼性の高い通信の実現を目指したものが、今回標準化された「QUIC」なのです。

もう少し教科書的に表現するとすれば、

「QUICは、インターネット黎明期から使われている TCPの代替を目指し、Google によって開発された UDP上で動作するトランスポート層プロトコル」

と覚えておくとよいでしょう。

Googleはこの標準化のためにIETFにドラフトを提出し、2016 年に IETF QUIC ワーキンググループが設置されました。
QUICではパケットの再送・トラフィックの制御など、信頼性のある通信とTLS/SSLと同等のセキュリティ保護を実現し、TCP上で HTTP/2を使用する場合の不都合を解消することや、通信開始時の往復回数を減らす目的があります。


<出典:フィッシング対策協議会>

おさらいになりますが、HTTP/3がHTTP/2と比較して異なる点は、HTTP/2がTCPを使うのに対して、HTTP/3はUDP上のQUIC を使った通信を行うところです。
TCPとUDP、どちらも通信をするためのプロトコルですが、HTTP/3は速度を向上させるための新しい技術仕様として策定されています。

HTTP/2はリクエストの多重化と優先度制御を行うことで、HTTP/1よりも高速化できるようになっていましたが、HTTP/3では、リクエストの多重化と暗号化を「QUIC」が行い、ハンドシェイクは TLS で行う構造になっています。
これは、HTTP/3が暗号化通信を前提にしており、TLSハンドシェイクをQUICが受け持つことで、UDPにおいても通信の信頼性を担保しています。

尚、HTTP/3は HTTP/2と同じ “https://”スキーマを使用する為、利用者は HTTP/2を使用しているか HTTP/3を使用しているかは意識する必要はありません。
利用環境に応じて、HTTP/2から HTTP/3に自動的に切り替わります。


<出典:フィッシング対策協議会>

QUICでは、TLS 1.3による暗号化が必須である為、HTTP/3による通信では暗号化されていない通信は存在しなくなります。

*ハンドシェイク
通信・ネットワークの分野では、装置同士が通信を開始する際に、利用する通信方式や各種の設定値などを互いに通知・交換したり、交渉・調整することをハンドシェイクという。伝達内容や形式は通信プロトコルなどによって定められており、データの送受信速度や誤り訂正方式、暗号化の設定などを交換する。

 

 HTTP/3を利用する際の注意点

一般的にウェブサイト通信は TCP 80番ポートと TCP 443番ポートが利用されていますが、HTTP/3 に切り替わるためには UDP 443番ポートを利用するため、クライアントとサーバーともに UDP 443番ポートが開放されている必要があります。
ファイアウォールやプロキシーサーバーなどで UDP443番ポートがブロックされている場合は、HTTP/3を利用することができません。
また、HTTP/3は暗号化通信が前提となりますので、HTTP/3でコンテンツを提供する場合は、サーバー証明書の利用、ウェブサイトが常時SSL化されている必要があります。

 

今日、常時SSL化していないサイトは様々なアラート表示が出るなど、肩身の狭い思いをしていることでしょう。その意味でも常時SSL化はWebサイトを管理している人にとっては”必須”の対応といえます。
その際に、HTTP/3での快適なブラウジングを可能とするため、ポートセッティングなどの必要事項を理解し、実践してみることにもトライしてはいかがでしょうか?

 

【執筆:編集Gp ハラダケンジ】


本記事は、フィッシング対策協議会様のニュースの内容を元に作成しております。
ソース:https://www.antiphishing.jp/news/info/quic_http3_20210827.html

関連記事

カテゴリー:

ナレッジ情シス知恵袋

情シス求人

  1. チームメンバーで作字やってみた#1

ページ上部へ戻る