I've been recommending Application-Layer Protocol Negotiation (the successor to Next Protocol Negotiation) to people for a while, but recently realised that I actually don't have a concrete example of its security benefits, despite the feature being widely reported as a "security improvement" as well as a speed bonus in some infrastructure scenarios. Most articles on the matter are quite nebulous in regard to the security aspects, and I didn't spot an obvious answer in the RFC.

How does ALPN support improve the security of TLS and the system overall? I understand that it reduces the connection overhead and therefore makes it more feasible to implement everywhere, but this isn't really a direct improvement to the protocol's security.

1 Answer 1


ALPN by itself does not offer any security benefits or speed improvements. But, if your application needs a negotiation of the application protocol then this negotiation can be done already inside the TLS handshake and thus does not need additional roundtrips. And this is where the speed improvement comes from.

The major use of ALPN is inside the browsers to tell the server that the client supports HTTP/2. If the server supports this too it will tell the client inside the TLS handshake already so that the client will start with HTTP/2 immediately after the TLS handshake instead of needing another negotiation. And since HTTP/2 offers more performance than HTTP/1.1 independently if TLS or not is used the choice of this protocol over HTTP/1.1 adds to the speed improvement.

  • 1
    "ALPN by itself does not offer any [...] speed improvements" - from what I've read, it reduces the number of round-trips in certain infrastructure setups, thus improving handshake latency. But perhaps you are right for the rest of it; it seems odd that people discuss it as a security benefit though.
    – Polynomial
    Jan 12, 2017 at 11:52
  • 2
    @Polynomial: As I wrote: it reduces the number of round-trips if there is a need for application protocol selection since this selection can now be done inside the TLS handshake already. Like done with HTTP/2 vs. HTTP/1.x selection in the browsers. The "security benefit" might be because people discuss it together with HTTP/2 vs. HTTP/1.1 and the security benefit there is that most browsers implement HTTP/2 only when using TLS, thus kind of enforcing better security. Jan 12, 2017 at 11:59

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .