<div dir="ltr"><div><div><div><div><div><div><div><div>Thanks Daniel, that's what I was trying to figure out.<br><br></div>If what you're saying is true, if the encrypted blob contains an IP packet it would mean that it would look like this<br><br></div>Ethernet<br></div>IP<br></div>UDP<br></div>Ethernet<br></div>IP<br></div>WG payload<br><br><br></div>James<br><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 1, 2017 at 8:38 PM, Daniel Kahn Gillmor <span dir="ltr"><<a href="mailto:dkg@fifthhorseman.net" target="_blank">dkg@fifthhorseman.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Wed 2017-03-01 16:38:05 -0800, James Wilson wrote:<br>
> Hi,<br>
><br>
> Just out of curiosity, how does a "wireguard packet' look like on the wire<br>
> ??<br>
><br>
> I'm guessing:<br>
><br>
>  Ethernet<br>
>  IP<br>
>  UDP<br>
> |------------------|<br>
> | IP               |<br>
> | WG payload       |<br>
> |------------------|<br>
><br>
><br>
> What's in the box is encrypted<br>
><br>
> Is that right ?? If not, what does it look like?<br>
<br>
</span>I believe the cleartext (after decryption) is an actual IP packet, so<br>
everything from layer3 up the stack.<br>
<br>
<br>
If anyone wants to document this sort of thing explicitly in a useful<br>
way, you might consider writing a wireshark dissector:<br>
<br>
  <a href="https://www.wireshark.org/docs/wsdg_html_chunked/ChDissectAdd.html" rel="noreferrer" target="_blank">https://www.wireshark.org/<wbr>docs/wsdg_html_chunked/<wbr>ChDissectAdd.html</a><br>
<br>
and you can clone wireshark's source with:<br>
<br>
   git clone <a href="https://code.wireshark.org/review/wireshark" rel="noreferrer" target="_blank">https://code.wireshark.org/<wbr>review/wireshark</a><br>
<br>
The simplest thing would be to start with a dissector for the ciphertext<br>
itself, for the few pieces of metadata that are outside the encrypted<br>
packet (see e.g. §5.4.2 of<br>
<a href="https://www.wireguard.io/papers/wireguard.pdf" rel="noreferrer" target="_blank">https://www.wireguard.io/<wbr>papers/wireguard.pdf</a>)<br>
<br>
If you want to get more clever, you could add a mechanism to the<br>
wireguard module to extract session keys, and then make a decryptor<br>
plugin to wireshark. But start with just the ciphertext ;)<br>
<span class="HOEnZb"><font color="#888888"><br>
      --dkg<br>
</font></span></blockquote></div><br></div>