Application-Layer Protocol Negotiation

Application-Layer Protocol Negotiation (ALPN) は、Transport Layer Security (TLS) の拡張の一つである。アプリケーション層でのプロトコルネゴシエーションに関する拡張であり、セキュア通信においてアプリケーション層がどの通信プロトコルを使用するのかを決定する際に、余分なラウンドトリップタイムの発生を避け、アプリケーション層のプロトコルに依らずにネゴシエーションを行うことを可能とする。ALPNは主にSPDYおよびHTTP/2で利用されている。

2021年現在では、ALPACAと命名されたTLSにおけるクロスプロトコル攻撃の対策の1つとして、それ以外のアプリケーションプロトコルでもALPNの利用が推奨されている[1]。

## 標準仕様

[編集]

2014年7月11日、ALPNの仕様はRFC 7301にてProposed standardとして公開されている。

HTTP CONNECTリクエストメソッドで通信を行う場合のため、ALPN HTTPヘッダーがRFC 7639で規定されている。

## NPN

[編集]

Next Protocol Negotiation (NPN) はかつて開発されていたALPNと同目的の拡張である。

TLSの高速化を目的としてGoogle Chromeで従来有効化されていたTLS False Startにはバージョンロールバック攻撃が可能であるなどセキュリティ上の問題があることから、Googleは新たにNPNを提唱し、Chrome 20以降ではNPNに対応しているサイトを除いてはTLS False Startを無効化した[2]。

NPNは後にALPNによって置き換えられた[3]。Google Chromeでは、バージョン51でNPNへの対応が廃止となった[4]。

## サポート

[編集]

ALPNは以下のライブラリでサポートされている。

* GnuTLS 3.2.0（2013年5月リリース）以降[5]
* MatrixSSL（英語版） 3.7.1（2014年12月リリース）以降[6]
* Network Security Services 3.15.5（2014年4月リリース）以降[7]
* OpenSSL 1.0.2（2015年1月リリース）以降[8]
* LibreSSL 2.1.3（2015年1月リリース）以降[9]
* mbed TLS（英語版） 1.3.6（2014年4月リリース）以降[10]
* SChannel 8.1 / 2012 R2以降

## 脚注

[編集]

1. ^ “ALPACA (アルパカ) － TLS の脆弱性を狙う奇妙な名前の攻撃”. Naked Security (2021年6月11日). 2023年2月10日閲覧。 “3. 可能であればApplication Layer Protocol Negotiation (ALPN) を使用すること。”
2. ^ Langley, Adam (2012年4月11日). “False Start's Failure (11 Apr 2012)”. 2015年2月10日閲覧。
3. ^ Langley, Adam (2013年3月20日). “» NPN and ALPN”. 2015年2月10日閲覧。
4. ^ 末岡洋子 (2016年5月27日). “開発者向けの機能を強化した「Google Chrome 51」が公開”. OSDN Magazine. 2023年2月4日閲覧。
5. ^ “gnutls 3.2.0”. 2015年2月10日閲覧。
6. ^ “MatrixSSL - News” (2014年12月4日). 2015年2月10日閲覧。
7. ^ “NSS 3.15.5 release notes”. Mozilla Developer Network. Mozilla. 2015年2月10日閲覧。
8. ^ “OpenSSL 1.0.2 release notes”. The OpenSSL Project. The OpenSSL Project (2015年1月22日). 2015年2月10日閲覧。
9. ^ “LibreSSL 2.1.3 released” (2015年1月22日). 2015年2月10日閲覧。
10. ^ “Download overview - PolarSSL” (2014年4月11日). 2015年2月10日閲覧。

## 外部リンク

[編集]

ウィキメディア・コモンズには、Application-Layer Protocol Negotiationに関連するカテゴリがあります。

* RFC 7301 "Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension"
* RFC 7639 The ALPN HTTP Header Field

### NPN

[編集]

* NPN Google Technical Note
* Transport Layer Security (TLS) Next Protocol Negotiation Extension draft-agl-tls-nextprotoneg-04（NPNの最終草稿）

この項目は、インターネットやウェブに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています（PJ:コンピュータ/P:コンピュータ）。

|

* 表示
* 編集

* 表
* 話
* 編
* 歴

ウェブブラウザ

* 比較（英語版）
* 歴史（英語版）
* 一覧
* UNIX対応（英語版）
* 年表
* 利用シェア

| 機能|

* アドブロック
* ダウンロードマネージャ
* Cookies
* DNS over HTTPS
* DNSSEC
* Favicon
* ブックマーク
* ブックマークレット
* スマートブックマーク（英語版）
* ブラウザセキュリティ（英語版）
* プライバシーモード
* タブブラウザ
* 拡張機能

|

ウェブ標準|

* Acidテスト
* CSS
* HTML
* HTML5
* OCSP
* SVG
* XHTML
* WebGL
* WebSocket
* WebRTC
* XMLHttpRequest
* JavaScript
* MathML

関連項目|

* World Wide Web
* ウィジェット
* リッチインターネットアプリケーション
* インターネットスイート
* モバイルサイト
* オフラインリーダー（英語版）
* BrowserChoice.eu
* マン・イン・ザ・ブラウザ
* WPAD
* PAC
* HTTP
* HTTP/2
* HTTP/3
* HTTPS
* TLS/SSL
* セキュア通信
* Tor
* VPN
* プロキシ
* HTTPの持続的接続
* HTTPパイプライン
* SPDY
* ALPN
* XML
* CRL
* HTMLレンダリングエンジン
* 推奨ブラウザ
* ネットサーフィン
* Webサーバ
* ブラウザ戦争
* フルブラウザ
* ネット検閲
* ディープ・パケット・インスペクション
* ブロッキング
* コンテンツフィルタリング
* インターネット広告
* アドネットワーク
* アクセス解析
* ウェブビーコン
* フィルターバブル
* SEO

デスクトップ|

| KHTML, WebKit, Blink
（Chromium系）|

| 自由ソフトウェア
（開発継続中）|

* Brave
* Braver
* Chromium
* Dooble（英語版）
* Iridium（オランダ語版）
* Konqueror
* Otter Browser
* Web

|

フリーウェア
（開発継続中）|

* Avant
* Blisk
* Dragon（英語版）
* Craving Explorer2.x
* Chrome
* iCab
* Lunascape
* Maxthon
* Microsoft Edge(version 79以降)
* OmniWeb
* Opera (Version 15以降)
* Safari
* Sleipnir(version 4.0以降)
* SRWare Iron
* Vivaldi

（開発終了済）
すべて▲|

* Arora
* Falkon
* Flock (Version 3.0以降)
* Fluid（英語版）
* rekonq
* RockMelt
* シイラ
* Origyn（英語版）
* Sputnik
* Swift
* Uzbl（英語版）
* WebPositive
* xombrero（英語版）

Gecko & Servo
（Firefox系）|

| （開発継続中）|

* Avant
* Basilisk（英語版）
* Epic（英語版）
* Firefox
* GNU IceCat
* LibreWolf
* Lunascape
* SlimBrowser
* SeaMonkey
* Tor Browser
* Waterfox
* Floorp
* Midori

|

（開発終了済）
すべて▲|

* Beonex Communicator
* Camino
* Classilla
* Conkeror
* Flock (Version 2.6.1以前)
* Galeon
* Ghostzilla
* K-Meleon
* 風博士
* Kirix Strata
* Lotus Symphony
* Mozilla
* Netscape
* Pale Moon（旧バージョン）
* Sleipnir（2.x系,3.x系のversionのみ）
* Timberwolf（英語版）
* xB Browser

Trident & EdgeHTML
（Edge, IE系）
（開発終了済）すべて▲|

* aiBrowser
* AOL Explorer
* Avant
* Conqueror Browser
* Craving Explorer1.x
* Deepnet Explorer
* Donut(RAPT,unDonut)
* Grani
* GreenBrowser
* Internet Explorer
* Lunascape
* Maxthon
* MenuBox
* NeoPlanet
* NetCaptor
* MediaBrowser
* Microsoft Edge(version 78以前)
* Sleipnir(version 4.x系以前)
* SpaceTime（英語版）
* UltraBrowser
* WebbIE
* ZAC Browser

Presto|

* Opera (Version 12.18以前)▲

Goanna|

* Pale Moon

テキスト|

* ELinks
* Emacs/W3▲
* Line Mode Browser▲
* Links
* Lynx
* Net-Tamer▲
* w3m
* ほぼテキストブラウザ▲
* WannaBe（英語版）▲

その他|

* abaco（英語版）
* Amaya
* Arachne（英語版）▲
* Arena（英語版）▲
* Beaker
* Charon（英語版）
* Dillo
* EGBrowser▲
* Gazelle
* ホームページリーダー▲
* Ladybird
* IBrowse▲
* KidZui
* Mosaic-CK
* Mothra（英語版）▲
* NetPositive▲
* NetSurf
* Oregano（英語版）▲
* NCSA Mosaic▲
* WebBoy▲
* Avast SafeZone Browser

モバイル|

| WebKit/Blink|

* Android標準ブラウザ▲
* Brave
* Google Chrome for Android
* Google Chrome for iOS
* Dolphin Browser
* iCab Mobile
* iLunascape
* Microsoft Edge
* S60 web browser
* Onion Browser（IOS専用）
* Opera Mobile(version 14以降)
* Orion Browser（IOS専用）
* Safari
* Silk
* SRWare Iron (for Android)
* ニンテンドー3DSインターネットブラウザ
* Steel（英語版）
* BOLT（英語版）
* Opera Coast
* Espial HTML5 Browser

|

Gecko|

* Firefox for mobile
* iLunascape
* MicroB
* Minimo▲
* Orfox（Android専用）▲
* Tor Browser（version 8.5以降。Orfoxの後継でAndroid専用）

Trident/EdgeHTML|

* iLunascape
* Internet Explorer Mobile▲
* Microsoft Edge（2020年まで）▲

Presto|

* ニンテンドーDSブラウザー
* ニンテンドーDSiブラウザー
* Opera Mobile(version 12以前)

その他|

* Blazer（英語版）
* Deepfish▲
* Galio▲
* ibisBrowser
* Iris Browser
* Konqueror Embedded
* NetFront
* Obigo Browser
* Opera Mini
* Skweezer
* Skyfire（英語版）
* Teashark
* ThunderHawk（英語版）
* UC Browser
* uZard Web
* Vision
* WinWAP
* Smooz

テレビ · ゲーム機|

| WebKit/Blink|

* Google TV
* NetFront Browser NX
* Steam overlay
* Espial HTML5 Browser
* Amazon Silk

|

Gecko|

* Kylo（英語版）

Presto|

* インターネットチャンネル

その他|

* Galio▲
* MSN TV (WebTV)
* NetFront

* ▲印のブラウザは開発終了

* カテゴリ
* コモンズ