Application-Layer Protocol Negotiation: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Updated with reference to the Java Platform instead of Java Language
Noiseiron (talk | contribs)
Added external link to "TLS Application-Layer Protocol Negotiation (ALPN) Protocol IDs registry
Line 27: Line 27:
== External links ==
== External links ==
{{commons category|SSL and TLS}}
{{commons category|SSL and TLS}}
* [https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids The registry of ALPN protocol IDs is maintained by IANA as a TLS extension.]
* [https://tools.ietf.org/html/draft-agl-tls-nextprotoneg-04 draft-agl-tls-nextprotoneg-04 (NPN draft)] (last updated: May 2012)
* [https://tools.ietf.org/html/draft-agl-tls-nextprotoneg-04 draft-agl-tls-nextprotoneg-04 (NPN draft)] (last updated: May 2012)
* RFC 7301 "Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension"
* RFC 7301 "Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension"

Revision as of 02:43, 27 December 2018

Application-Layer Protocol Negotiation (ALPN) is a Transport Layer Security (TLS) extension for application layer protocol negotiation. ALPN allows the application layer to negotiate which protocol should be performed over a secure connection in a manner that avoids additional round trips and which is independent of the application layer protocols. It is needed by secure HTTP/2 connections, which improves the compression of web pages and reduces their latency compared to HTTP/1.x. The ALPN and HTTP/2 standards emerged from development work done by Google on the now withdrawn SPDY protocol.

Support

ALPN is supported by these libraries.

  • GnuTLS since version 3.2.0 released in May 2013.[1]
  • MatrixSSL since version 3.7.1 released in December 2014.[2]
  • Network Security Services since version 3.15.5 released in April 2014.[3]
  • OpenSSL since version 1.0.2 released in January 2015.[4]
  • LibreSSL since version 2.1.3 released in January 2015.[5]
  • mbed TLS (previously PolarSSL) since version 1.3.6 released in April 2014.[6]
  • SChannel since 8.1 / 2012 R2.
  • s2n since its original public release in June 2015.
  • wolfSSL (formerly CyaSSL) since version 3.7.0 released in October 2015. [7]
  • Go (in the standard library crypto/tls package) since version 1.4 released in December 2014. [8]
  • picotls[9]
  • JSSE in Java since JDK 9 released in September 2017.[10]

History

On July 11, 2014, ALPN was published as RFC 7301. ALPN replaces NPN [11]

TLS False Start was disabled in Google Chrome from version 20 (2012) onward except for websites with the earlier Next Protocol Negotiation (NPN) extension.[12]

References

  1. ^ "gnutls 3.2.0". Retrieved 2015-01-26.
  2. ^ "MatrixSSL - News". 2014-12-04. Archived from the original on 2015-02-14. Retrieved 2015-01-26. {{cite web}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)
  3. ^ "NSS 3.15.5 release notes". Mozilla Developer Network. Mozilla. Retrieved 2015-01-26.
  4. ^ "OpenSSL 1.0.2 release notes". The OpenSSL Project. The OpenSSL Project. 2015-01-22. Retrieved 2015-01-26.
  5. ^ "LibreSSL 2.1.3 released". 2015-01-22. Retrieved 2015-01-26.
  6. ^ "Download overview - PolarSSL". 2014-04-11. Retrieved 2015-01-26.
  7. ^ "wolfSSL Release Change Log". 2015-10-26. Retrieved 2015-09-11.
  8. ^ "Go 1.4 Release Notes". 2014-12-10. Retrieved 2017-11-28.
  9. ^ "Picotls". Github. Retrieved 2 August 2018.
  10. ^ "JEP 244: TLS Application-Layer Protocol Negotiation Extension". 2017-08-07. Retrieved 2018-08-29.
  11. ^ Langley, Adam. "» NPN and ALPN". Retrieved 2 April 2013.
  12. ^ Langley, Adam. "False Start's Failure (11 Apr 2012)". Retrieved 25 September 2013.

External links