Application-Layer Protocol Negotiation
# Application-Layer Protocol Negotiation

Application-Layer Protocol Negotiation (ALPN) ist eine Erweiterung von Transport Layer Security (TLS). ALPN erlaubt der Anwendungsschicht, das Netzwerkprotokoll auszuhandeln, das über die gesicherte Verbindung genutzt werden soll; dabei werden Paketumlaufzeiten vermieden, die normalerweise durch weitere Round Trips zwischen Client und Server entstehen.

ALPN ist unabhängig von den verwendeten Protokollen der Anwendungsschicht und Bestandteil von HTTP/2.

ALPN wurde am 11. Juli 2014 als RFC 7301 veröffentlicht und stellt eine Weiterentwicklung der Next Protocol Negotiation (NPN) dar, die in SPDY zum Einsatz kam.

Nach einer Ankündigung Googles vom 10. Februar 2015 werden NPN und SPDY ab 2016 vom Chrome-Browser nicht mehr unterstützt, da diese durch die Standards HTTP/2 sowie ALPN ersetzt werden.

Der Protokollidentifikator von ALPN wird unverschlüsselt im ClientHello von TLS übermittelt.

## Unterstützung

ALPN wird von den folgenden Sicherheitslösungen unterstützt:

* GnuTLS seit Version 3.2.0 (veröffentlicht im Mai 2013).
* MatrixSSL seit Version 3.7.1 (veröffentlicht im Dezember 2014).
* Network Security Services seit Version 3.15.5 (veröffentlicht im April 2014).
* OpenSSL seit Version 1.0.2 (veröffentlicht im Januar 2015).
* LibreSSL seit Version 2.1.3 (veröffentlicht im Januar 2015).
* mbed TLS (zuvor PolarSSL) seit Version 1.3.6 (veröffentlicht im April 2014).
* SChannel seit Version 8.1 (2012 R2).
* s2n
* wolfSSL (zuvor CyaSSL) seit Version 3.7.0 (veröffentlicht im Oktober 2015).
