Application-Layer Protocol Negotiation (original) (raw)

Application-Layer Protocol Negotiation (ALPN) は、Transport Layer Security (TLS) の拡張の一つである。アプリケーション層でのプロトコルネゴシエーションに関する拡張であり、セキュア通信においてアプリケーション層がどの通信プロトコルを使用するのかを決定する際に、余分なラウンドトリップタイムの発生を避け、アプリケーション層のプロトコルに依らずにネゴシエーションを行うことを可能とする。ALPNはSPDYおよびHTTP/2で利用されている。 TLSの高速化を目的としてGoogle Chromeで従来有効化されていたTLS False Startにはバージョンロールバック攻撃が可能であるなどセキュリティ上の問題があることから、Googleは新たにNext Protocol Negotiation (NPN) を提唱し、Chrome 20以降ではNPNに対応しているサイトを除いてはTLS False Startを無効化した。 NPNは後にALPNによって置き換えられた。2014年7月11日、ALPNは RFC 7301 として標準化された。 HTTP CONNECTリクエストメソッドで通信を行う場合のため、ALPN HTTPヘッダーがRFC 7639で規定されている。