On 2009.11.08 at 12:59:47 +0100, David Sommerseth wrote: > > This flaw makes it, how I have understood it, possible to "duplicate" an > on-going SSL connection (or transaction, which it often is referred to), > making the SSL based server believe those two connections are the same > client.
> The MITM attacker sends a SSL/TLS protocol renegotiation request to the > server, the server responds to it back to the attacker, where the > attacker and the server agrees on a new transaction protocol. Then the > attacker sends this server response back to the original client, and the > client continues as before. > I also understand it that the attacker cannot read the traffic from the > client, but the attacker now got an accepted channel which the server > now recognises equally as the client channel. So it is kind of like a > hidden hijack of an on-going connection. No. It only makes it possible to send few packetes which server would misinterpret as coming from legitimate client. Once real ClientHelo message from legitimate client is send, and renegotiation takes place, attacker can't neither read nor send any information to the server. Problem is that HTTPS server typically don't care whether information was send before renegotiation or after. It assembles both information into one HTTP request and executes it. Attack is only applicable to the situation where same server accepts both non-authenticated and authenticated connections on the same port, and allows clients to upgrade connection from non-authenticated to authenticated. I'm not sure that this behavoir is not possible at all with OpenVPN, but I've never seen such a configuration. Either client certificates are required (so MitM cannot perform first handshake) or are not required at all. With HTTPS it is also possible to hijack connection with basic auth (i.e with username/password send via TLS=encrypted channel) using this renegotiation mechanism. But only because action is send as first line of HTTP-request and WWW-Authenticate header - later. For any protocol which requires client to authenticate itself before sending commands, this attack is not applicable. This is why this flaw go unnoticed for so many years.