Im a beginner in decrypting SSL traffic but im able to decrypt normal client to server SSL traffic. The problem im encountering is when I try to decrypt SSL traffic bridged from an F5 to the Server. I was expecting the F5 to just re-established the connection in the same method as a client to the F5. All I see are:
What I normally see is:
The purpose of this is I want to diagnose encrypted health checks to see why they failing. Any Ideas? Thanks for your Help. asked 11 Jul '12, 03:15 Fishlogic edited 11 Jul '12, 05:24 SYN-bit ♦♦ |
2 Answers:
The difference in the SSL Handshake is caused by the fact that the F5 reuses the initial full SSL handshake to the server and therefor only uses a short handshake to the server to not overload it. That's why you don't see the ClientKeyExchange message. And because you don't have the ClientKeyExchange, you can't do decryption. You can change the ServerSSL profile to not cache SSL sessions for troubleshooting purposes. But beware that this will increase the CPU load on the server as each SSL session from the F5 to the server will now need to do a full SSL handshake which is very CPU intensive. answered 11 Jul '12, 04:17 SYN-bit ♦♦ showing 5 of 6 show 1 more comments |
That's not the case. It depends on the settings in th "client ssl profile" (frontend) and the "sever ssl profile" (backend).
If you want to decrypt the SSL/TLS session between the loadbalancer and the nodes, you need to have the private key, installed on the nodes, unless it's the same as the one installed on the load balancer. Furthermore, you must ensure, that the loadbalancer is NOT using any SSL/TLS ciphers with DH (Diffie Hellman) authentication, as you cannot decrypt that. You need to change the CIPHERS in the "server ssl profile" (the one you configured for the virtual server). See the F5 SOL13171. Regards answered 11 Jul '12, 03:42 Kurt Knochner ♦ The same cert/key is used on the nodes and the 'server ssl profile'. Does the following mean it's using them all ?
The node to F5 'TLSv1 Record Layer: Handshake Protocol: Server Hello' is using the following Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA I also Found this on Dev Central which kind of explains what im seeing still doesnt tell me if i can decrypt it though "The server can decrypt stuff from the F5 (Client) because the shared session key (That's actually used to encrypt the traffic) is negotiated as part of the key exchange where the server uses it's own private key. The client side key doesn't get involved). The session between the LTM and the server is a completely different TLS (Or SSL) session from the client - LTM connection." (11 Jul '12, 05:07) Fishlogic (I converted your answer to a comment, please see the FAQ for more details) The ciphersuite is not the issue here, please see my answer below... (11 Jul '12, 05:23) SYN-bit ♦♦
the ! means logical NOT. So it's NOT using any of them.
As SYN-Bit said, in this case the cipher is not your problem.
that's the reason why you can't decrpyt it. See answer of SNY-Bit. Anyway, IF the server uses a different private key than the one you imported into the loadbalancer, please use the key of the server to decrypt the communication between the lodabalancer and the node. (11 Jul '12, 06:15) Kurt Knochner ♦ Sorry have quite got the hang of the Forum ... What about ALL Use all SSL ciphers in the default SSL stack (11 Jul '12, 08:53) Fishlogic |
Thanks I saw your answer just as I posted the other one, caching turned off and captures being taken as I type..
You're welcome, I hope it will solve your issue!
I converted your answer to a comment. Please review the FAQ of this site and use "Add new Comment" instead of posting a new answer when you respond to an answer or comment. That's how this site works best...
Caching turned off but im still recieving the same traffic in the capture, Cache Size set to 0. Does the VIP need to be diabled / enabled after the cache is disabled?
Does the ClientHello from the F5 to the backend server have a SessionID (so SessionIdLength > 0)? If so, the F5 is indeed reusing an older session. I would expect that change to be active inmediately. However I'm not sure. I would need to check on my LTM-VE.
I just read your question again, are you troubleshooting production traffic or the health checks? If you are trying to decrypt the health checks (monitors), then you can only make the F5 stop reusing the old SSL session by turning of caching on the server side.
Or you can capture long enough to get a full handshake. On my server I needed to wait 300 seconds for a new full handshake (from my apache config: SSLSessionCacheTimeout 300)