我应该如何在UDP套接字上实现安全

How Should I Implement Security On UDP Socket

本文关键字:实现 安全 套接字 UDP 我应该      更新时间:2023-10-16


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

非常感谢

您正在寻找DTLS,即Datagram TLS。

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

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