I'm using
I get these record and handshake types:
Problem 1: packet 4 has handshake type 1 but no record type. WTF? asked 05 May '13, 20:14 Zack edited 05 May '13, 20:15 |
One Answer:
Problem 1 is caused by the fact that the client initiated the SSL session with a SSL version 2 client hello. In SSLv2, the SSL records did not have a record type. Do you still see SSLv2 client hello's in your production network? Problem 2 is indeed caused by the fact that the second SSL handshake message in the packet is encrypted. There is currently no way to correlate multiple occurrences of multiple fields with the "-T fields" output. This cannot be solved in generic way because of the way the "-E fields" option interacts with the dissection data. For SSL handshake messages, this could be solved to add a ssl.handshake.type field for encrypted handshake messages too with a specific code. You could also use LUA or MATE to link the values together. Or use "-T pdml" to create XML output in which the whole tree is hierarchically printed. answered 06 May '13, 01:04 SYN-bit ♦♦ |
Re SSLv2 client hello, this is probably not an issue for real captures; I just didn't realize that the example HTTPS capture on the wireshark wiki was that old. I'll look into Lua; I already was going to need a postprocessing script, so that might solve two problems at once.
On further investigation, Lua appears to have the same correlation problem: a
Listener.new("ip")
tap that uses extractors to queryssl.record.content_type
andssl.handshake.type
will get arrays of length 3 and 1, respectively, for the troublesome packet 8, with no indication of the correlation. AListener.new("ssl")
tap is only called once, for the first SSL record in the packet. So now I'm stumped again.