如何在UDP套接字上实现安全性

Fat*_*KIR 0 c++ sockets security


我正在研究点对点网络应用程序,但我无法解决我将如何在UDP套接字上提供安全性.
我不想重新发明轮子,但我不应该选择哪种方法来实现安全性.
我的想法是在每个对等体之间生成RSA密钥,并首先通过不安全的套接字共享这些密钥,并使这些密钥保持连接安全.但我不确定如何实施RSA以及这是否是最安全的方法.
顺便说一下,我正在为这个项目使用C++

非常感谢你

Pas*_*uoq 6

您正在寻找DTLS,即数据报TLS.

它类似于您从HTTPS和各种其他安全的点对点通信链路中了解的TLS协议,但它是通过UDP实现的.您会发现它已经在各种库中实现,包括GnuTLS和OpenSSL.

从安全角度来看,TLS和DTLS之间的一个主要区别是TLS将格式错误的消息定义为不可恢复的错误,而DTLS特别允许在这种情况下继续连接.这使得协议对甚至轻微的编码错误更敏感(想想幸运十三),所以最好不要自己尝试实现它.