A basic understanding in how the SSL dissector in wireshark works is like this
I currently have a modified version of the SSL dissector such that it would enable remote decryption i.e. TLS session keys (not the keylog file) generated from another computer are sent to the gateway where my modified ssl dissector can use those keys to decrypt the data. To do this, at some point I need to add a delay for every key exchange message to make sure that the appropriate TLS secrets have arrived inorder to create a decoder variable for that ssl session. Because of the sequential nature of dissection in wireshark, the delay would eventually add up causing an undesirable performance. Can someone please guide me on how I could avoid this problem or improve my code such that the delay does not accumulate. So far, I have looked at multithreading which is advised to be a big “No-No” for wireshark. If multithreading is possible, could someone please tell me how do I proceed ? I am aware of this thread in the dev. Sketch for remote decryption in wireshark can also be seen here asked 03 Dec ‘16, 03:09 mac9393 |
One Answer:
Multi-threading won't help you here, there is still a dependency between packets, and sometimes even between the ordering of TCP sessions (in the case of session resumption, though having the master secret for the resumed sessions helps a bit). Your problem is the dependency on external data (the TLS master secrets). I see at least two options:
The receiving side could use the Extcap API or just a simple pipe to stdin ( answered 03 Dec '16, 08:41 Lekensteyn |