0

我正在使用 C#(.Net) 开发一个服务器项目。我有一个 Tcp 连接(使用 SSL)。我可以在 Tcp 中保护通信。我需要创建 Udp 系统来快速发送数据。现在如何保护 Udp?udp 是无连接的数据报协议。我认为有一种方法,那就是:

> Client connects via Tcp, Server sends a random (16 byte lenght) key to Client via Tcp.
> If client wants to send data via Udp, it replaces the data like this (key[16 byte lengt] + data)
> 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.
> Clients understands new key via incoming Tcp data, and uses the new key.

即在所有成功的 Udp 过程之后,服务器为客户端创建另一个随机密钥并将其发送给客户端。客户端使用密钥进行 Udp 身份验证。

是的,这是一种真正的方式,但在 Udp 处理之后我不会发送新数据。因为有性能问题。udp 必须很快,但如果您在每次成功的 udp 进程后发送数据,这可能会导致服务器端滞后。我想通过一次操作来实现 Udp 安全。(只有udp发送,没有tcp回调)

如果没有办法做到这一点,我将使用该系统。有人知道这件事吗?

注意:我知道,非对称密码学是最好的方法(使用 SSL),但我无法创建我的超级安全密码学(如 128 位)功能。)

编辑:有没有办法将 SSL 与 Udp 一起使用?

4

1 回答 1

2

正如评论中所建议的,使用 DTLS(数据报 TLS)。DTLS 是 TLS 协议的扩展,以支持 UDP 等不可靠的运营商(但它不需要 UDP 并且可以通过例如信鸽邮件工作)。

我们的SecureBlackbox产品为 .NET 版本(以及其他版本)中的 DTLS 提供组件和类。

于 2013-04-19T16:20:47.593 回答