跳转到内容

应用层协议协商

本页使用了标题或全文手工转换
维基百科,自由的百科全书
(重定向自ALPN)

应用层协议协商(Application-Layer Protocol Negotiation,简称ALPN)是一个传输层安全协议(TLS)扩展,ALPN 使得应用层可以协商在安全连接层之上使用什么协议,避免了额外的往返通讯,并且独立于应用层协议。 ALPN 用于 HTTP/2 连接,和HTTP/1.x 相比,ALPN 的使用增强了网页的压缩率减少了网络延时。ALPN 和 HTTP/2 协议是伴随着 Google 开发 SPDY 协议出现的。

Google Chrome从版本20(2012年)开始,使用早期的Next Protocol Negotiation(NPN)扩展的网站被禁用TLS False Start。[1]

NPN已被重制的版本替代——即ALPN。[1]2014年7月11日,ALPN被发布为RFC 7301。

RFC 7301規定,伺服器只能選擇客戶端提供的協定;沒有共同支援的協定時,須以致命的no_application_protocol警報回應。ALPN協商結果屬於單一連線,而不是TLS工作階段;恢復工作階段時只考慮新握手中的協商值。[2]

支持

[编辑]

下列库支持ALPN:

  • GnuTLS从2013年5月发布的3.2.0版本开始。[3]
  • MatrixSSL从2014年12月发布的3.7.1版本开始。[4]
  • Network Security Services从2014年4月发布的3.15.5开始。[5]
  • OpenSSL从2015年1月发布的1.0.2开始。[6]
  • LibreSSL从2015年1月发布的2.1.3开始。[7]
  • mbed TLS (previously PolarSSL)从2014年4月发布的1.3.6开始。[8]
  • SChannel从8.1 / 2012 R2开始。
  • s2n从它2015年6月发布之初支持。
  • wolfSSL (formerly CyaSSL)从2015年10月发布的3.7.0开始。[9]

参考资料

[编辑]
  1. ^ 1.0 1.1 Langley, Adam.
  2. ^ RFC 7301: TLS Application-Layer Protocol Negotiation Extension, Sections 3.1–3.2. RFC Editor. Internet Engineering Task Force. 2014-07 [2026-10-28]. (原始内容存档于2026-10-17) (英语). 
  3. ^ "gnutls 3.2.0" (页面存档备份,存于互联网档案馆).
  4. ^ "MatrixSSL - News" 互联网档案馆的存檔,存档日期2015-02-14.. 2014-12-04.
  5. ^ "NSS 3.15.5 release notes" Archive.today的存檔,存档日期2015-01-26.
  6. ^ "OpenSSL 1.0.2 release notes" (页面存档备份,存于互联网档案馆).
  7. ^ "LibreSSL 2.1.3 released" (页面存档备份,存于互联网档案馆). 2015-01-22.
  8. ^ "Download overview - PolarSSL" (页面存档备份,存于互联网档案馆). 2014-04-11.
  9. ^ "wolfSSL Release Change Log" (页面存档备份,存于互联网档案馆). 2015-10-26.

外部链接

[编辑]