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 ビットなど) 関数を作成することはできません。)

編集: Udp で SSL を使用する方法はありますか?

4

1 に答える 1

2

コメントで提案されているように、DTLS (Datagram TLS) を使用してください。DTLS は、UDP のような信頼性の低い通信事業者をサポートするための TLS プロトコルの拡張です (ただし、UDP を必要とせず、ピジョン メールなどで機能します)。

当社のSecureBlackbox製品は、.NET エディション (および他のエディション) で DTLS のコンポーネントとクラスを提供します。

于 2013-04-19T16:20:47.593 に答える