Hi Ivan,

On Thu, 22 Aug 2013 00:34:35 +0200, Ivan Ristić <[email protected]> wrote:

Pretty soon we're going to see a good chunk of the browsers support TLS
1.2, and that's great. At the same time, all browsers are vulnerable to
protocol downgrade attacks, whereby an active MITM can downgrade the
connection to SSL 3.

Given that this is not a TLS issue (it already defends against protocol
rollback), I feel that HSTS would be a good place to implement a
defence. If we have an extension that specifies the maximum TLS version
supported by the server, browsers can refuse to downgrade. (If the
server chooses to negotiate a lower version on the first connection
attempt, well, I guess that that could be acceptable.)

Has this been discussed here before?

P.S. In researching this topic I also came across Brian Smith having the
same idea: https://bugzilla.mozilla.org/show_bug.cgi?id=450280#c21

This have been discussed a couple of times in the TLS WG group the past couple of years, and was discussed at the TLS WG's IETF 84 meeting in Vancouver <http://www.ietf.org/proceedings/84/tls.html> a year ago.

In those discussions there were two groups of proposals:

1) A couple of variations from EKR and Adam Langley using Special Cipher Suite signaling (SCSV) to indicate the client's maximum supported version so that the server could know the client was being downgraded for some reason, and

2) my proposal to use the server's ability to respond with the RFC 5746 Renego extension as a proxy indication that the server is (or ought to be) able to tolerate a client signaling a newer TLS version than supported by the server, and force a new handshake signaling the highest supported version if a fallback is occurring. This approach is deployed in Opera versions 10.50 to 11.0x and 12.x (not v15+)

As the discussion is being reopened, I have just refreshed my draft <http://datatracker.ietf.org/doc/draft-pettersen-tls-version-rollback-removal/> . I have not updated the statistics, since I do not yet have recent statistics that can be used.

Regarding your proposal I think it may rely too heavily on the server administrator actively enabling this extension. While the extension could be added automatically, it might depend on the server either being the TLS server too, or automatically aware of the front-end's version, or the front-end will have to add the extension while it is forwarding the HTTP response (and in that case there might be additional issues related to variations of HTTP, such as SPDY).

Additionally, I think a longterm problem would be how to determine when to finally disable the client support for rollbacks? I think the goal should be to remove version rollback as a client option.

Regarding your short description of how it would work, I'll also note that the client would not be able to see the HSTS header before it have actually sent a HTTP request to the server (IOW, similar to the pre-existing HSTS bootstrap problem), and in the case of a rollback attack that will be *after* the attacker have managed to force the client to roll back to an older version. This would then mean that the attacker is (supposedly) able to decrypt (or otherwise compromise) the information sent in that request (cookies, login credentials, credit card info, etc.). Once the client have received the HSTS header it will then have to close the connection, reconnect and negotiate using its highest version without allowing rollbacks, and perhaps resubmit the request (which have various problems concerning requests that have side effects, e.g. purchase actions).

This approach would probably work against attackers that are using attacks of the kind used in BEAST or CRIME if newer protocol versions have been patched against the particular attack being deployed.

I am also not sure if it is such a good idea to migrate detailed transport layer information (version support) into a higher level protocol (HTTP).

--
Sincerely,
Yngve N. Pettersen

Using Opera's mail client: http://www.opera.com/mail/
_______________________________________________
websec mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/websec

Reply via email to