What the Renegotiation Bug Means to You
A few weeks ago a newĀ TLS and SSLv3 renegotiation vulnerabilityĀ was disclosed, and thereās been a fair bit of confusion around it. When the first reports of the bug hit the wire, my initial impression was that the exploit was too complex to be practical, but as more information comes to light Iām starting to think itās worth paying attention to. Since every web browser and most other kinds of encrypted Internet connections ā such as between mail servers ā use TLS or SSLv3 to protect traffic, the potential scope for this is massive. The problem is thatĀ TLSĀ and SSLv3 allow renegotiation outside of an established TLS connection, creating a small window of opportunity for an attacker to sit in the middle and, at a particular phase of a connection, inject arbitrary data. The key bits are that the attacker must be in the middle, and thereās only a specific window for data injection. The encryption itself isnāt cracked, and the attacker canāt read the encrypted data, but the attacker now has a hole to inject something which could allow unanticipated actions, such as sending a command to a web application a user is connected to. A lot of people are comparing this to Cross Site Request Forgery (CSRF), where a malicious website tricks the browser into doing something on a trusted site the user is logged into, like changing their password. This is a bit similar because weāre injecting something into aĀ trustedĀ connection, but the main differentiator isĀ whereĀ the problem lies. CSRF happens way up at the application layer, and to hit it all we need to do is trick the user (or their browser) to get access. This new flaw is at a networking layer, so we have a lot less context or feedback. For the TLS/SSL attack to work, the attacker has to be within the same local network (broadcast domain) as the victim, because the exploit is at the ātransportā layer. This alone decreases the risk significantly right out of the gate. Is this a viable exploit tactic? Absolutely, but within the bounds of a local network, and within the limits of what you can do with injection. This attack vector is most useful in situations where there is easy access to networks: unsecured WiFi and large network segments that arenāt protected from man in the middle (MITM) attacks. The more significant cause for concern is if you are running an Internet facing web application that is: Vulnerable to the TLS/SSL renegotiation vulnerability as described and eitherā¦ Running a web app that doesnāt have any built in application layer protections (anti-CSRF, session state, etc.). Running a web app that allows users to store and retrieve things usingĀ simple POST requestsĀ (such as Twitter). Or using TLS/SSLv3 as transport security for something else, such as IMAP/SSL, POP/SSL, or SMTP/TLSā¦ In those cases, if an attacker can get on the same network as one of your users, they can inject data and potentially cause bad things to happen, possibly even redirecting your user to a new, malicious site. One recent example (since fixed) showed how an attacker could trick Twitter into posting the userās account credentials. Currently theĀ draft of the fixĀ binds a renegotiation handshake to a particular already established TLS channel, which closes the hole. Unfortunately, since SSLv3 does not support extensions there is no possible way for a secure renegotiation to happen; thus the death of SSL is nigh, and long live (a fixed) TLS. Share: