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.[1]
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.[2]
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).[3]
- MatrixSSL seit Version 3.7.1 (veröffentlicht im Dezember 2014).[4]
- Network Security Services seit Version 3.15.5 (veröffentlicht im April 2014).[5]
- OpenSSL seit Version 1.0.2 (veröffentlicht im Januar 2015).[6]
- LibreSSL seit Version 2.1.3 (veröffentlicht im Januar 2015).[7]
- mbed TLS (zuvor PolarSSL) seit Version 1.3.6 (veröffentlicht im April 2014).[8]
- SChannel seit Version 8.1 (2012 R2).
- s2n
Weblinks
- NPN Google Technical Note (veröffentlicht 2011)
- draft-agl-tls-nextprotoneg-04 (NPN Draft) (letzte Aktualisierung: Mai 2012)
- RFC 7301 "Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension"
Einzelnachweise
- Adam Langley: NPN and ALPN. Abgerufen am 2. April 2013.
- SPDY soll in Chrome schnell durch HTTP/2 ersetzt werden. Abgerufen am 10. Februar 2015.
- Nikos Mavrogiannopoulos: gnutls 3.2.0. Archiviert vom Original am 31. Januar 2016. Abgerufen am 20. März 2021.
- MatrixSSL - News. 4. Dezember 2014. Archiviert vom Original am 14. Februar 2015. Abgerufen am 20. März 2021.
- NSS 3.15.5 release notes. In: Mozilla Developer Network. Mozilla. Abgerufen am 26. Januar 2015.
- OpenSSL 1.0.2 Branch release notes. In: The OpenSSL Project. The OpenSSL Project. 22. Januar 2015. Archiviert vom Original am 23. April 2015. Abgerufen am 20. März 2021.
- LibreSSL 2.1.3 released. 22. Januar 2015. Abgerufen am 26. Januar 2015.
- Download overview - PolarSSL. 11. April 2014. Abgerufen am 26. Januar 2015.