<分区>
我正在开发点对点网络应用程序,但我无法解决如何在 UDP 套接字上提供安全性。
我不想重新发明轮子,但我不知道应该选择哪种方法来实现安全性。
我的想法是首先在每个对等方之间生成 RSA key 并通过不安全的套接字共享这些 key ,并使用这些 key 保持连接安全。但我不确定如何实现 RSA,以及这是否是最安全的方式。
顺便说一句,我在这个项目中使用 C++
非常感谢
<分区>
我正在开发点对点网络应用程序,但我无法解决如何在 UDP 套接字上提供安全性。
我不想重新发明轮子,但我不知道应该选择哪种方法来实现安全性。
我的想法是首先在每个对等方之间生成 RSA key 并通过不安全的套接字共享这些 key ,并使用这些 key 保持连接安全。但我不确定如何实现 RSA,以及这是否是最安全的方式。
顺便说一句,我在这个项目中使用 C++
非常感谢
最佳答案
您正在寻找DTLS , 数据报 TLS。
它就像您从 HTTPS 和其他各种安全的点对点通信链接中了解到的 TLS 协议(protocol),但它是在 UDP 上实现的。您会发现它已经在各种库中实现,包括 GnuTLS 和 OpenSSL。
从安全的角度来看,TLS 和 DTLS 之间的一个主要区别是 TLS 将格式错误的消息定义为不可恢复的错误,而 DTLS 特别允许在这种情况下继续连接。这使得协议(protocol)对即使是轻微的编码错误也更加敏感(想想 Lucky Thirteen ),所以你最好不要尝试自己实现它。
关于c++ - 我应该如何在 UDP 套接字上实现安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24480942/