c++ - 我应该如何在 UDP 套接字上实现安全性

标签 c++ security sockets

<分区>


我正在开发点对点网络应用程序,但我无法解决如何在 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/

相关文章:

php - 是否解析具有多个扩展名的 PHP 文件?

java - 是否可以使用注释实现方法级访问检查?

java - Android Studio TCPClient无法发送数据

c++ - 自动施放两个第 3 方类(class)?

c++ - vector 排序只是用自定义比较器反转输入

java - SEVERE : jdbcrealm. invaliduserreason WEB9102:Web 登录失败

.net - 如何断开 TcpClient 以允许新连接?

android - 如何执行 "RXJava 2 queue jobs"直到值改变?

c++ - gcd程序如何正确计算结果

c++ - 如何初始化一个有n个默认值的队列?