title: How to secure Udp?
body: <p>I'm working on a server project in C#(.Net). I have a Tcp connection (with SSL). I can secure communication in Tcp. I need to create Udp system for sending datas fast. Now how can I secure Udp? Udp is connection-less, datagram protocol. I think there is a way, thats:</p>
  
  <pre><code>&gt; Client connects via Tcp, Server sends a random (16 byte lenght) key to Client via Tcp.
  &gt; If client wants to send data via Udp, it replaces the data like this (key[16 byte lengt] + data)
  &gt; Server checks incoming data's first 16 byte and if it's true, generates an other random password and sends it client back via Tcp.
  &gt; Clients understands new key via incoming Tcp data, and uses the new key.
  </code></pre>
  
  <p>Namely after all success Udp process, server creates an other random key for the client and sends it to client. Client uses key for the Udp authentication.</p>
  
  <p>Yes this is a true way but I wont send new data after Udp process. Because there is a performance issue. Udp must be fast but if you send a data after every success udp process, this can create a lag server-side. I want to make a Udp security with one operation. (only Udp send, no Tcp callback)</p>
  
  <p>If there is no way to do it, I'm going to use that system. Anybody know something about this?</p>
  
  <p>(<strong>NOTE:</strong> I know, asymmetric cryptology is the best way (SSL using) but I can't create my super secure cryptology (like 128-bit) function.)</p>
  
  <p><em><strong>EDIT:</strong> Is there a way to use SSL with Udp?</em></p>