Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why do browser implementations of HTTP/2 require TLS?

Why does most modern browsers require TLS for HTTP2?

Is there a technical reason behind this? Or simply just to make the web more secure?

http://caniuse.com/#feat=http2

like image 890
Bill Avatar asked Dec 03 '15 21:12

Bill


People also ask

Does HTTP2 require TLS?

HTTP/2 Security Although the standard itself does not require the use of encryption, all major browser implementations (i.e. Firefox, Chrome, Safari, Opera, IE, Edge) have decided that they will only support HTTP/2 over TLS.

Does HTTP need TLS?

The only difference between the two protocols is that HTTPS uses TLS (SSL) to encrypt normal HTTP requests and responses, and to digitally sign those requests and responses. As a result, HTTPS is far more secure than HTTP. A website that uses HTTP has http:// in its URL, while a website that uses HTTPS has https://.

Is HTTP2 encrypted?

Encryption. HTTP/2 natively supports Transport Layer Security (TLS). This allows for secure data transmission via HTTP/2. Encryption is not required in order for webmasters to use HTTP/2, but most browsers only support HTTP/2 with a secure connection.

Is HTTP2 a SSL?

While HTTP/2 did not explicitly change the security requirements for HTTP, almost all browsers that use HTTP/2 require SSL/TLS to be enabled at the website, which makes it mandatory for all intents and purposes.


1 Answers

It is partly about making more things use HTTPS and encourage users and servers to go HTTPS. Both Firefox and Chrome developers have stated this to be generally good. For the sake of users and users' security and privacy.

It is also about broken "middle boxes" deployed on the Internet that assume TCP traffic over port 80 (that might look like HTTP/1.1) means HTTP/1.1 and then they will interfere in order to "improve" or filter the traffic in some way. Doing HTTP/2 clear text over such networks end up with a much worse success rate. Insisting on encryption makes those middle boxes never get the chance to mess up the traffic.

Further, there are a certain percentage of deployed HTTP/1.1 servers that will return an error response to an Upgrade: with an unknown protocol (such as "h2c", which is HTTP/2 in clear text) which also would complicate an implementation in a widely used browser. Doing the negotiation over HTTPS is much less error prone as "not supporting it" simply means switching down to the safe old HTTP/1.1 approach.

like image 194
Daniel Stenberg Avatar answered Sep 29 '22 14:09

Daniel Stenberg